/*
 Theme Name: Astra Child
 Template: astra
 Description: Thème enfant de Astra
 Author: Mato
 Version: 1.0
*/

/* =========================================================
   1. FOUNDATION / TOKENS
   Base visuelle commune du thème
========================================================= */

:root {
  /* Palette */
  --gc-bg-base: #0a1020;
  --gc-bg-deep: #0b1020;
  --gc-bg-mid: #0a1120;
  --gc-bg-dark: #09101c;
  --gc-grid-line: rgba(116, 146, 220, 0.12);
  --gc-radial-glow: rgba(61, 98, 210, 0.2);

  --gc-white: #ffffff;
  --gc-white-soft: #f5f7ff;
  --gc-white-warm: #f6f4ef;
  --gc-white-cream: #f3efe7;
  --gc-label-soft: #f2f5ff;
  --gc-text-muted: rgba(255, 255, 255, 0.78);
  --gc-text-placeholder: rgba(255, 255, 255, 0.55);

  --gc-green: #33f5bf;
  --gc-green-rgb: 51, 245, 191;
  --gc-kicker-green: #5cf3a9;

  /*--gc-orange: #ff8c42;*/
  --gc-orange: #D45A20;
  --gc-orange-alt: #ff8a3d;
  --gc-orange-soft: #f28a52;
  --gc-orange-rgb: 255, 140, 66;
  --gc-orange-soft-rgb: 242, 138, 82;

  --gc-error: #ff9d9d;

  /* Surfaces */
  --gc-panel-bg: linear-gradient(180deg, #1c2138 0%, #171c33 100%);
  --gc-field-bg: rgba(5, 12, 26, 0.55);
  --gc-card-bg: rgba(255, 255, 255, 0.02);
  --gc-step-bg: rgba(10, 16, 28, 0.1);
  --gc-step-bg-hover: rgba(14, 22, 38, 0.34);

  /* Borders */
  --gc-border-soft: rgba(255, 255, 255, 0.16);
  --gc-border-card: rgba(255, 255, 255, 0.35);
  --gc-border-glass: rgba(170, 205, 255, 0.12);

  /* Shadows */
  --gc-shadow-glass:
    inset 0 0 0 1px rgba(255, 255, 255, 0.02),
    0 0 0 1px rgba(120, 170, 255, 0.02);
  --gc-shadow-soft: 0 0 18px rgba(255, 255, 255, 0.04);
  --gc-shadow-header: 0 10px 30px rgba(0, 0, 0, 0.18);

  /* Radius */
  --gc-radius-xs: 2px;
  --gc-radius-sm: 4px;
  --gc-radius-md: 10px;
  --gc-radius-lg: 14px;
  --gc-radius-xl: 16px;
  --gc-radius-pill: 999px;

  /* Spacing */
  --gc-space-xs: 4px;
  --gc-space-sm: 8px;
  --gc-space-md: 10px;
  --gc-space-lg: 16px;
  --gc-space-xl: 18px;
  --gc-space-2xl: 20px;
  --gc-space-3xl: 24px;
  --gc-space-4xl: 30px;

  /* Transitions */
  --gc-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --gc-transition-fast: 0.25s ease;
  --gc-transition-base: 0.25s ease;
  --gc-transition-smooth: 0.35s ease;
  --gc-transition-medium: 0.42s ease;
  --gc-transition-panel: 0.9s var(--gc-ease-out);

  /* Reveal */
  --gc-reveal-distance: 34px;
  --gc-reveal-duration: 1.15s;
  --gc-reveal-ease: var(--gc-ease-out);

  /* Header */
  --gc-header-height: 80px;
  --gc-header-height-desktop: 80px;
  --gc-header-height-mobile: 82px;
  --gc-header-active-height: var(--gc-header-height-desktop);
  --gc-admin-offset: 0px;

  --gc-header-max-width: 1200px;
  --gc-header-desktop-x: 42px;
  --gc-header-mobile-x: 42px;

  --gc-header-bg: rgba(10, 16, 32, 0.96);
  --gc-header-mask-bg: #0a1020;
  --gc-mobile-menu-bg: #08051c;
  --gc-header-border: rgba(255, 255, 255, 0.08);
  --gc-menu-border: rgba(255, 255, 255, 0.12);

  --gc-menu-text: rgba(255, 255, 255, 0.62);
  --gc-menu-text-desktop: rgba(255, 255, 255, 0.78);
  --gc-menu-green: var(--gc-green);
  --gc-menu-orange: var(--gc-orange-alt);

  --gc-header-blur: 14px;
  --gc-green-glow: 0 0 14px rgba(51, 245, 191, 0.28);
  --gc-green-glow-mobile: 0 0 12px rgba(51, 245, 191, 0.22);
  --gc-orange-glow: 0 10px 24px rgba(255, 138, 61, 0.24);

  --gc-menu-font-size: 12px;
  --gc-menu-font-size-compact: 11px;
  --gc-menu-font-weight: 900;
  --gc-menu-font-weight-desktop: 800;
  --gc-menu-letter-desktop: 0.12em;
  --gc-menu-letter-desktop-compact: 0.08em;
  --gc-menu-letter-mobile: 0.22em;
  --gc-menu-letter-cta: 0.18em;

  /* Footer */
  --footer-bg: #0b1325;
  --footer-grid-line: rgba(180 187 183 / 9%);
  --footer-grid-size: 52px;
  --footer-grid-x: 0px;
  --footer-grid-y: 0px;
  --footer-text: #D0D8E6;
  --footer-white: #ffffff;
  --footer-green: var(--gc-green);
  --footer-max: 1120px;
  --footer-mobile-max: 330px;
  --footer-desktop-x: clamp(40px, 5vw, 70px);
  --footer-mobile-x: 46px;
}

/* =========================================================
   2. GLOBAL BACKGROUND / WORDPRESS WRAPPERS
========================================================= */

html,
body {
  min-height: 100%;
  background-color: var(--gc-bg-base) !important;
  background-image:
    linear-gradient(var(--gc-grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--gc-grid-line) 1px, transparent 1px),
    radial-gradient(circle at 50% 58%, var(--gc-radial-glow), transparent 42%),
    linear-gradient(180deg, var(--gc-bg-deep) 0%, var(--gc-bg-mid) 40%, var(--gc-bg-dark) 100%) !important;
  background-size: 52px 52px, 52px 52px, auto, auto !important;
  background-attachment: fixed !important;
  background-repeat: repeat, repeat, no-repeat, no-repeat !important;
}

body,
.site,
.site-content,
.ast-container,
.ast-page-builder-template,
.ast-page-builder-template .site-content,
.ast-separate-container #primary,
.ast-plain-container #primary,
.elementor,
.elementor-section,
.elementor-top-section,
.elementor-container,
.elementor-widget-wrap,
.e-con,
.e-parent,
.e-child {
  background-color: transparent !important;
}

/* =========================================================
   3. UTILITIES / HELPERS
========================================================= */

.gc-glass-card {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--gc-border-glass);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.035) 0%, rgba(120, 170, 255, 0.02) 100%);
  box-shadow: var(--gc-shadow-glass);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

.ghet-kicker {
  margin: 0 0 18px;
  line-height: 1;
  text-transform: uppercase;
}

.ghet-kicker__slashes,
.ghet-kicker__text {
  display: inline-block;
  font-size: 16px;
  font-weight: 700;
}

.ghet-kicker__slashes {
  margin-right: 10px;
  color: var(--gc-orange-alt);
  letter-spacing: 0.22em;
}

.ghet-kicker__text {
  color: var(--gc-kicker-green);
  letter-spacing: 0.34em;
}

.ghet-title-dot .elementor-heading-title {
  display: inline;
}

.ghet-title-dot .elementor-heading-title::after,
.ghet-inline-dot::after {
  content: ".";
  color: var(--gc-orange-alt);
  font: inherit;
}

.ghet-title-dot .elementor-heading-title::after {
  position: relative;
  top: 0;
  margin-left: 0.01em;
  line-height: 1;
}

.ghet-inline-dot::after {
  line-height: inherit;
}

.quote-bar {
  position: relative;
  padding-left: 20px;
}

.quote-bar::before {
  content: "";
  position: absolute;
  top: 0.2em;
  left: 0;
  width: 4px;
  height: 70%;
  border-radius: var(--gc-radius-xs);
  background: var(--gc-orange-alt);
}

/* =========================================================
   4. HEADER RESPONSIVE / ASTRA
========================================================= */

body {
  padding-top: calc(var(--gc-header-active-height) + var(--gc-admin-offset));
}

body.admin-bar {
  --gc-admin-offset: 46px;
}

@media (min-width: 783px) {
  body.admin-bar {
    --gc-admin-offset: 32px;
  }
}

body::before {
  content: "";
  position: fixed;
  inset: 0 0 auto;
  z-index: 9998;
  height: calc(var(--gc-header-active-height) + var(--gc-admin-offset));
  background: var(--gc-header-mask-bg);
  pointer-events: none;
}

#masthead {
  position: fixed !important;
  inset: var(--gc-admin-offset) 0 auto !important;
  z-index: 9999 !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow: visible !important;
  background: var(--gc-header-bg) !important;
  border-bottom: 1px solid var(--gc-header-border) !important;
  box-shadow: var(--gc-shadow-header) !important;
  backdrop-filter: blur(var(--gc-header-blur));
  -webkit-backdrop-filter: blur(var(--gc-header-blur));
}

#wpadminbar {
  z-index: 100000 !important;
}

@media (min-width: 1101px) {
  #ast-desktop-header {
    display: block !important;
  }

  #ast-mobile-header {
    display: none !important;
  }
}

@media (max-width: 1100px) {
  :root {
    --gc-header-active-height: var(--gc-header-height-mobile);
  }

  #ast-desktop-header {
    display: none !important;
  }

  #ast-mobile-header {
    display: block !important;
  }
}

:is(#ast-desktop-header, #ast-mobile-header) {
  width: 100% !important;
  background: transparent !important;
}

:is(#ast-desktop-header, #ast-mobile-header) .ast-site-title-wrap {
  display: none !important;
}

:is(#ast-desktop-header, #ast-mobile-header) :is(.site-branding, .site-logo-img, .custom-logo-link) {
  display: flex !important;
  align-items: center !important;
}

:is(#ast-desktop-header, #ast-mobile-header) .custom-logo {
  display: block !important;
  width: auto !important;
  height: auto !important;
}

:is(#ast-desktop-header, #ast-mobile-header) :is(.ast-above-header-bar, .ast-primary-header-bar) {
  background: transparent !important;
  border: 0 !important;
}

#ast-desktop-header :is(.site-header-above-section-right, .ast-builder-menu-1, .main-header-bar-navigation, .site-navigation, .main-navigation),
#ast-mobile-header :is(.site-header-primary-section-left, .site-header-primary-section-right, .ast-button-wrap) {
  display: flex !important;
  align-items: center !important;
}

#ast-desktop-header .site-header-above-section-right,
#ast-mobile-header .site-header-primary-section-right,
#ast-mobile-header .ast-button-wrap {
  justify-content: flex-end !important;
}

/* Desktop header */
#ast-desktop-header .ast-above-header-bar {
  min-height: 84px !important;
}

#ast-desktop-header .site-above-header-wrap.ast-container {
  width: min(100%, var(--gc-header-max-width)) !important;
  max-width: var(--gc-header-max-width) !important;
  margin-inline: auto !important;
  padding-inline: var(--gc-header-desktop-x) !important;
}

#ast-desktop-header .ast-builder-grid-row {
  display: grid !important;
  grid-template-columns: auto 1fr !important;
  align-items: center !important;
  column-gap: 34px !important;
}

#ast-desktop-header .custom-logo {
  max-width: 215px !important;
}

#ast-desktop-header .site-header-above-section-right {
  gap: 28px !important;
  min-width: 0 !important;
}

#ast-desktop-header :is(.ast-builder-menu-1, .main-header-bar-navigation, .site-navigation, .main-navigation) {
  min-width: 0 !important;
}

#ast-desktop-header #ast-hf-menu-1 {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 32px !important;
  margin: 0 !important;
  padding: 0 !important;
}

#ast-desktop-header #ast-hf-menu-1 > li {
  margin: 0 !important;
  padding: 0 !important;
}

#ast-desktop-header #ast-hf-menu-1 .menu-link,
#ast-desktop-header #ast-hf-menu-1 .current-menu-item > .menu-link,
#ast-desktop-header #ast-hf-menu-1 .current_page_item > .menu-link,
#ast-desktop-header #ast-hf-menu-1 .menu-link[aria-current="page"] {
  padding: 0 !important;
  color: var(--gc-menu-text-desktop) !important;
  text-shadow: none !important;
  font-size: var(--gc-menu-font-size) !important;
  font-weight: var(--gc-menu-font-weight-desktop) !important;
  line-height: 1 !important;
  letter-spacing: var(--gc-menu-letter-desktop) !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  transition:
    color var(--gc-transition-fast),
    text-shadow var(--gc-transition-fast);
}

#ast-desktop-header #ast-hf-menu-1 .menu-link:hover,
#ast-desktop-header #ast-hf-menu-1 .menu-link:focus {
  color: var(--gc-menu-green) !important;
  text-shadow: var(--gc-green-glow) !important;
}

#ast-desktop-header .ast-header-button-1 {
  flex: 0 0 auto !important;
}

#ast-desktop-header .ast-builder-button-wrap > a.menu-link {
  display: none !important;
}

@media (min-width: 1101px) and (max-width: 1240px) {
  :root {
    --gc-header-desktop-x: 30px;
  }

  #ast-desktop-header .ast-builder-grid-row {
    column-gap: 24px !important;
  }

  #ast-desktop-header .site-header-above-section-right {
    gap: 18px !important;
  }

  #ast-desktop-header #ast-hf-menu-1 {
    gap: 20px !important;
  }

  #ast-desktop-header #ast-hf-menu-1 .menu-link {
    font-size: var(--gc-menu-font-size-compact) !important;
    letter-spacing: var(--gc-menu-letter-desktop-compact) !important;
  }

  #ast-desktop-header .custom-logo {
    max-width: 190px !important;
  }
}

/* Mobile header fermé */
#ast-mobile-header .ast-primary-header-bar {
  min-height: var(--gc-header-height-mobile) !important;
}

#ast-mobile-header .ast-builder-grid-row {
  display: grid !important;
  grid-template-columns: auto auto !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
  max-width: 100% !important;
  padding-inline: var(--gc-header-mobile-x) !important;
}

#ast-mobile-header .custom-logo {
  max-width: 220px !important;
}

#ast-mobile-header .menu-toggle {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 46px !important;
  height: 46px !important;
  padding: 0 !important;
  color: #ffffff !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

#ast-mobile-header .menu-toggle:hover,
#ast-mobile-header .menu-toggle:focus,
#ast-mobile-header .menu-toggle[aria-expanded="true"] {
  color: #ffffff !important;
  background: transparent !important;
  box-shadow: none !important;
}

#ast-mobile-header .menu-toggle svg,
#ast-mobile-header .menu-toggle svg path,
#ast-mobile-header .menu-toggle :is(.ast-mobile-svg, .ast-mobile-svg path),
#ast-mobile-header .mobile-menu-toggle-icon :is(svg, svg path) {
  width: 27px !important;
  height: 27px !important;
  color: #ffffff !important;
  fill: #ffffff !important;
  stroke: #ffffff !important;
}

/* Menu mobile ouvert */
#ast-mobile-header .ast-mobile-header-content {
  width: 100% !important;
  background: var(--gc-mobile-menu-bg) !important;
  border-top: 1px solid var(--gc-header-border) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

#ast-mobile-header .ast-mobile-header-content :is(.ast-main-header-bar-alignment, .main-header-bar-navigation, .site-navigation, .main-navigation) {
  width: 100% !important;
}

#ast-hf-mobile-menu {
  display: grid !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 20px 30px 18px !important;
  background: transparent !important;
}

#ast-hf-mobile-menu .menu-item {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
}

#ast-hf-mobile-menu .menu-item > .menu-link,
#ast-hf-mobile-menu .current-menu-item > .menu-link,
#ast-hf-mobile-menu .current_page_item > .menu-link {
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
  min-height: 48px !important;
  padding: 18px 0 !important;
  color: var(--gc-menu-text) !important;
  background: transparent !important;
  border: 0 !important;
  text-decoration: none !important;
  font-size: var(--gc-menu-font-size) !important;
  font-weight: var(--gc-menu-font-weight) !important;
  line-height: 1.2 !important;
  letter-spacing: var(--gc-menu-letter-mobile) !important;
  text-transform: uppercase !important;
  transition:
    color var(--gc-transition-fast),
    text-shadow var(--gc-transition-fast),
    background-color var(--gc-transition-fast),
    transform var(--gc-transition-fast),
    box-shadow var(--gc-transition-fast);
}

#ast-hf-mobile-menu .menu-item:not(#menu-item-2410) > .menu-link:hover,
#ast-hf-mobile-menu .menu-item:not(#menu-item-2410) > .menu-link:focus {
  color: var(--gc-menu-green) !important;
  text-shadow: var(--gc-green-glow-mobile);
}

#ast-hf-mobile-menu #menu-item-2410 {
  margin-top: 12px !important;
  padding-top: 16px !important;
  border-top: 1px solid var(--gc-menu-border) !important;
}

#ast-hf-mobile-menu #menu-item-2410 > .menu-link {
  justify-content: center !important;
  min-height: 44px !important;
  padding: 0 24px !important;
  color: #ffffff !important;
  background: var(--gc-menu-orange) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
  text-align: center !important;
  font-size: var(--gc-menu-font-size) !important;
  font-weight: var(--gc-menu-font-weight) !important;
  letter-spacing: var(--gc-menu-letter-cta) !important;
}

#ast-hf-mobile-menu #menu-item-2410 > .menu-link:hover,
#ast-hf-mobile-menu #menu-item-2410 > .menu-link:focus {
  color: #ffffff !important;
  background: #ff9652 !important;
  transform: translateY(-1px);
  box-shadow: var(--gc-orange-glow);
}

/* =========================================================
   5. HERO VIDEO
========================================================= */

.elementor-element.elementor-element-31f49ac {
  --gc-hero-min-height: 940px;
  --gc-hero-content-max: 1140px;
  --gc-hero-video-opacity: 0.4;
  --gc-hero-side-offset: max(40px, calc((100vw - var(--gc-hero-content-max)) / 2));

  position: relative !important;
  isolation: isolate;
  overflow: hidden !important;
  min-height: var(--gc-hero-min-height);
  background: none !important;
  background-image: none !important;
}

.elementor-element.elementor-element-31f49ac .elementor-background-video-container,
.elementor-element.elementor-element-31f49ac .elementor-background-video-hosted {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
}

.elementor-element.elementor-element-31f49ac .elementor-background-video-container {
  z-index: 0 !important;
  overflow: hidden !important;
}

.elementor-element.elementor-element-31f49ac .elementor-background-video-hosted {
  min-width: 100% !important;
  min-height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  opacity: var(--gc-hero-video-opacity) !important;
  transform: none !important;
}

.elementor-element.elementor-element-31f49ac::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgba(5, 10, 18, 0.78) 0%, rgba(5, 10, 18, 0.46) 42%, rgba(5, 10, 18, 0.18) 72%, rgba(5, 10, 18, 0.1) 100%);
  pointer-events: none;
}

.elementor-element.elementor-element-31f49ac > .e-con-inner {
  position: relative !important;
  z-index: 3 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: inherit;
  margin: 0 !important;
  padding-top: calc(var(--gc-header-active-height, 80px) + 40px) !important;
  padding-inline: var(--gc-hero-side-offset) !important;
  background: none !important;
  background-image: none !important;
}

.elementor-element.elementor-element-31f49ac :is(.elementor-element-d0a8732, .elementor-element-c3180a4) {
  width: min(100%, 760px) !important;
  max-width: 760px !important;
  min-width: 0 !important;
  overflow: visible !important;
  --width: min(100%, 760px) !important;
  --content-width: 100% !important;
}

.elementor-element.elementor-element-31f49ac .elementor-element-755651c,
.elementor-element.elementor-element-31f49ac .elementor-element-755651c .elementor-widget-container,
.elementor-element.elementor-element-31f49ac .elementor-element-755651c .ghet-kicker {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  overflow: visible !important;
}

.elementor-element.elementor-element-31f49ac .elementor-element-755651c {
  --width: 100% !important;
  --container-widget-width: 100% !important;
  --container-widget-flex-grow: 0 !important;
}

.elementor-element.elementor-element-31f49ac .elementor-element-755651c .ghet-kicker {
  text-align: left !important;
  justify-content: flex-start !important;
}

.elementor-element.elementor-element-31f49ac .elementor-element-755651c :is(.ghet-kicker__text, .ghet-kicker__slashes) {
  display: inline !important;
  white-space: nowrap !important;
}

/* Hero collé au header sur home */
body.home {
  padding-top: 0 !important;
}

body.home::before {
  display: none !important;
}

body.home :is(#content, #content.site-content, #content > .ast-container, #primary, #main, article.ast-article-single, .entry-content, .entry-content > .elementor, .entry-content > .elementor > .elementor-element-5d6e10c),
body.home .elementor-element.elementor-element-31f49ac {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body.home .elementor-element.elementor-element-31f49ac > .e-con-inner {
  padding-top: calc(var(--gc-header-active-height, 80px) + 40px) !important;
}

/* =========================================================
   6. GLOBAL REVEAL ANIMATION / SECTIONS
========================================================= */

.gc-reveal-text,
.gc-reveal-text :is(.elementor-heading-title, .elementor-widget-container, p, .elementor-button-wrapper),
.gc-reveal-text > :is(.elementor-element, .elementor-widget) {
  opacity: 0;
  transform: translateY(var(--gc-reveal-distance));
  will-change: transform, opacity;
}

.gc-reveal-text.is-visible,
.gc-reveal-text.is-visible :is(.elementor-heading-title, .elementor-widget-container, p, .elementor-button-wrapper),
.gc-reveal-text.is-visible > :is(.elementor-element, .elementor-widget) {
  animation: gcTextReveal var(--gc-reveal-duration) var(--gc-reveal-ease) forwards;
}

.gc-reveal-text.is-visible > :is(.elementor-element, .elementor-widget):nth-child(1) { animation-delay: 0.1s; }
.gc-reveal-text.is-visible > :is(.elementor-element, .elementor-widget):nth-child(2) { animation-delay: 0.28s; }
.gc-reveal-text.is-visible > :is(.elementor-element, .elementor-widget):nth-child(3) { animation-delay: 0.48s; }
.gc-reveal-text.is-visible > :is(.elementor-element, .elementor-widget):nth-child(4) { animation-delay: 0.7s; }
.gc-reveal-text.is-visible > :is(.elementor-element, .elementor-widget):nth-child(5) { animation-delay: 0.92s; }

.gc-delay-1 { animation-delay: 0.12s !important; }
.gc-delay-2 { animation-delay: 0.28s !important; }
.gc-delay-3 { animation-delay: 0.45s !important; }
.gc-delay-4 { animation-delay: 0.65s !important; }
.gc-delay-5 { animation-delay: 0.85s !important; }

@keyframes gcTextReveal {
  0% {
    opacity: 0;
    transform: translateY(var(--gc-reveal-distance));
  }

  60%,
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

body.elementor-editor-active .gc-reveal-text,
body.elementor-editor-active .gc-reveal-text *,
body.elementor-editor-active .gc-reveal-text.is-visible,
body.elementor-editor-active .gc-reveal-text.is-visible * {
  visibility: visible !important;
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
  animation: none !important;
  transition: none !important;
  will-change: auto !important;
}

/* =========================================================
   7. COMPONENT / FORMULAIRE D’ADHÉSION
========================================================= */

.membership-choice {
  --accent: rgba(255, 255, 255, 0.28);
  --accent-rgb: 255, 255, 255;
  --button-text: var(--gc-white);
  --panel-bg: var(--gc-panel-bg);
  --field-bg: var(--gc-field-bg);
  --text-main: var(--gc-white);
  --text-soft: var(--gc-white-soft);
  --text-muted: var(--gc-text-placeholder);

  --icon-user: url("https://ghet-creativ.codephenix.fr/wp-content/uploads/2026/04/icon-perso.png");
  --icon-calendar: url("https://ghet-creativ.codephenix.fr/wp-content/uploads/2026/04/icon-date.png");
  --icon-building: url("https://ghet-creativ.codephenix.fr/wp-content/uploads/2026/04/icon-build.png");
  --icon-contact: url("https://ghet-creativ.codephenix.fr/wp-content/uploads/2026/04/icon-perso-double.png");
  --icon-mail: url("https://ghet-creativ.codephenix.fr/wp-content/uploads/2026/04/icon-mail.png");
  --icon-phone: url("https://ghet-creativ.codephenix.fr/wp-content/uploads/2026/04/icon-tel.png");
  --icon-web: url("https://ghet-creativ.codephenix.fr/wp-content/uploads/2026/04/icon-web.png");
  --icon-structure: url("https://ghet-creativ.codephenix.fr/wp-content/uploads/2026/04/icon-structure.png");
  --icon-message: url("https://ghet-creativ.codephenix.fr/wp-content/uploads/2026/04/icon-message.png");
  --icon-location: url("https://ghet-creativ.codephenix.fr/wp-content/uploads/2026/04/icon-adresse.png");

  width: 100%;
  max-width: 760px;
  margin: 0 auto;
  padding: 20px 24px 30px;
  border: 1.5px solid rgba(255, 255, 255, 0.18);
  border-radius: var(--gc-radius-lg);
  background: var(--panel-bg);
  box-shadow: var(--gc-shadow-soft);
  transition:
    border-color 0.45s ease,
    box-shadow 0.45s ease,
    background 0.45s ease,
    transform 0.45s ease;
}

.membership-choice.theme-talent {
  --accent: var(--gc-green);
  --accent-rgb: var(--gc-green-rgb);
  --button-text: #071a11;
}

.membership-choice.theme-partner {
  --accent: var(--gc-orange);
  --accent-rgb: var(--gc-orange-rgb);
  --button-text: var(--gc-white);
}

.membership-choice:is(.theme-talent, .theme-partner) {
  border-color: var(--accent);
  background:
    radial-gradient(circle at 50% 0%, rgba(var(--accent-rgb), 0.08), transparent 42%),
    var(--panel-bg);
  box-shadow:
    0 0 22px rgba(var(--accent-rgb), 0.18),
    0 0 55px rgba(var(--accent-rgb), 0.1),
    inset 0 0 0 1px rgba(var(--accent-rgb), 0.18);
}

.membership-choice-label {
  margin: 0 0 18px;
  color: var(--gc-label-soft);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-align: center;
}

.membership-cards,
.membership-choice .ghet-cf7-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.membership-cards {
  gap: 18px;
}

.membership-choice .ghet-cf7-grid {
  gap: 16px 18px;
}

.membership-card {
  --card-accent: rgba(255, 255, 255, 0.34);
  --card-accent-rgb: 255, 255, 255;
  position: relative;
  display: block;
  cursor: pointer;
}

.membership-card input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.membership-card-talent:is(:hover, .is-active) {
  --card-accent: var(--gc-green);
  --card-accent-rgb: var(--gc-green-rgb);
}

.membership-card-partner:is(:hover, .is-active) {
  --card-accent: var(--gc-orange);
  --card-accent-rgb: var(--gc-orange-rgb);
}

.membership-card-inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 165px;
  padding: 24px 20px;
  border: 1px solid rgba(var(--card-accent-rgb), 0.45);
  border-radius: var(--gc-radius-md);
  background: var(--gc-card-bg);
  text-align: center;
  transition:
    border-color var(--gc-transition-medium),
    box-shadow var(--gc-transition-medium),
    background var(--gc-transition-medium),
    transform 0.42s var(--gc-ease-out);
}

.membership-card:is(:hover, .is-active) .membership-card-inner {
  border-color: var(--card-accent);
  transform: translateY(-3px);
}

.membership-card:hover .membership-card-inner {
  background:
    radial-gradient(circle at 50% 0%, rgba(var(--card-accent-rgb), 0.12), transparent 52%),
    rgba(var(--card-accent-rgb), 0.045);
  box-shadow:
    0 0 14px rgba(var(--card-accent-rgb), 0.32),
    inset 0 0 0 1px rgba(var(--card-accent-rgb), 0.12);
}

.membership-card.is-active .membership-card-inner {
  background:
    radial-gradient(circle at 50% 0%, rgba(var(--card-accent-rgb), 0.16), transparent 52%),
    rgba(var(--card-accent-rgb), 0.07);
  box-shadow:
    0 0 18px rgba(var(--card-accent-rgb), 0.34),
    0 0 42px rgba(var(--card-accent-rgb), 0.12),
    inset 0 0 0 1px rgba(var(--card-accent-rgb), 0.18);
}

.membership-card-title,
.membership-card-text {
  transition: color 0.35s ease;
}

.membership-card-title {
  display: block;
  margin-bottom: 14px;
  color: var(--text-main);
  font-size: 22px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.membership-card-text {
  color: rgba(255, 255, 255, 0.74);
  font-size: 13px;
  line-height: 1.5;
}

.membership-card:is(:hover, .is-active) :is(.membership-card-title, .membership-card-text) {
  color: var(--card-accent);
}

.membership-card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  margin: 0 auto 14px;
  color: var(--card-accent);
  opacity: 0.9;
  filter: drop-shadow(0 0 8px rgba(var(--card-accent-rgb), 0.22));
}

.membership-card-icon :is(svg, img) {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.membership-form-panel {
  max-height: 0;
  margin-top: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-10px);
  transition:
    max-height var(--gc-transition-panel),
    opacity 0.45s ease,
    margin-top 0.45s ease,
    transform 0.55s var(--gc-ease-out);
}

.membership-form-panel.is-open {
  max-height: 1600px;
  margin-top: 22px;
  opacity: 1;
  transform: translateY(0);
}

.membership-form-block {
  display: none;
}

.membership-form-block.is-active {
  display: block;
  animation: membershipReveal 0.55s var(--gc-ease-out) both;
}

.membership-choice :is(.wpcf7, .wpcf7 form, .ghet-cf7-form, .ghet-field, .wpcf7-form-control-wrap) {
  width: 100%;
  margin: 0;
}

.membership-choice .ghet-field-full {
  grid-column: 1 / -1;
}

.membership-choice .ghet-field {
  animation: membershipFieldReveal 0.55s var(--gc-ease-out) both;
}

.membership-choice .ghet-field:nth-child(1) { animation-delay: 0.04s; }
.membership-choice .ghet-field:nth-child(2) { animation-delay: 0.08s; }
.membership-choice .ghet-field:nth-child(3) { animation-delay: 0.12s; }
.membership-choice .ghet-field:nth-child(4) { animation-delay: 0.16s; }
.membership-choice .ghet-field:nth-child(5) { animation-delay: 0.2s; }
.membership-choice .ghet-field:nth-child(6) { animation-delay: 0.24s; }
.membership-choice .ghet-field:nth-child(7) { animation-delay: 0.28s; }
.membership-choice .ghet-field:nth-child(8) { animation-delay: 0.32s; }
.membership-choice .ghet-field:nth-child(9) { animation-delay: 0.36s; }
.membership-choice .ghet-field:nth-child(10) { animation-delay: 0.4s; }

.membership-choice .ghet-field label {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 8px;
  color: var(--text-soft);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.08em;
  transition: color 0.3s ease;
}

.membership-choice .ghet-field label::before {
  content: "";
  display: inline-block;
  flex: 0 0 15px;
  width: 15px;
  height: 15px;
  background-color: currentColor;
  opacity: 0.95;
  -webkit-mask: var(--field-icon) center / contain no-repeat;
  mask: var(--field-icon) center / contain no-repeat;
}

.membership-choice .icon-user { --field-icon: var(--icon-user); }
.membership-choice .icon-calendar { --field-icon: var(--icon-calendar); }
.membership-choice .icon-building { --field-icon: var(--icon-building); }
.membership-choice .icon-contact { --field-icon: var(--icon-contact); }
.membership-choice .icon-mail { --field-icon: var(--icon-mail); }
.membership-choice .icon-phone { --field-icon: var(--icon-phone); }
.membership-choice .icon-web { --field-icon: var(--icon-web); }
.membership-choice .icon-structure { --field-icon: var(--icon-structure); }
.membership-choice .icon-message { --field-icon: var(--icon-message); }
.membership-choice .icon-location { --field-icon: var(--icon-location); }

.membership-choice .ghet-field:is(:hover, :focus-within) label {
  color: var(--accent);
}

.membership-choice :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="date"], textarea) {
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  border: 1px solid rgba(var(--accent-rgb), 0.42);
  border-radius: var(--gc-radius-sm);
  background: var(--field-bg);
  color: var(--text-main);
  box-shadow: none;
  transition:
    border-color 0.35s ease,
    box-shadow 0.35s ease,
    background 0.35s ease;
}

.membership-choice textarea {
  min-height: 120px;
  resize: vertical;
}

.membership-choice :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="date"], textarea)::placeholder {
  color: var(--text-muted);
}

.membership-choice :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="date"], textarea):focus {
  outline: none;
  border-color: var(--accent);
  background: rgba(var(--accent-rgb), 0.035);
  box-shadow:
    0 0 0 1px rgba(var(--accent-rgb), 0.24),
    0 0 14px rgba(var(--accent-rgb), 0.12);
}

.membership-choice .ghet-submit-wrap {
  position: relative;
  margin-top: 26px;
}

.membership-choice .ghet-submit-wrap::before {
  content: "";
  position: absolute;
  top: 50%;
  left: calc(50% - 118px);
  z-index: 2;
  width: 18px;
  height: 18px;
  background-color: var(--button-text);
  pointer-events: none;
  transform: translateY(-50%);
  transition:
    transform 0.28s var(--gc-ease-out),
    filter var(--gc-transition-fast);
  -webkit-mask: url("https://ghet-creativ.codephenix.fr/wp-content/uploads/2026/04/icon-avion.png") center / contain no-repeat;
  mask: url("https://ghet-creativ.codephenix.fr/wp-content/uploads/2026/04/icon-avion.png") center / contain no-repeat;
}

.membership-choice :is(input[type="submit"], .wpcf7-submit) {
  width: 100%;
  min-height: 64px;
  padding: 18px 26px 18px 58px;
  border: none;
  border-radius: 6px;
  background-color: var(--accent);
  color: var(--button-text) !important;
  font-size: 13px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.045em;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow:
    0 0 18px rgba(var(--accent-rgb), 0.22),
    0 10px 28px rgba(var(--accent-rgb), 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.16);
  transition:
    transform 0.28s var(--gc-ease-out),
    box-shadow var(--gc-transition-fast),
    filter var(--gc-transition-fast);
}

.membership-choice .ghet-submit-wrap:hover :is(input[type="submit"], .wpcf7-submit) {
  transform: translateY(-3px) scale(1.018);
  box-shadow:
    0 0 26px rgba(var(--accent-rgb), 0.34),
    0 14px 38px rgba(var(--accent-rgb), 0.26),
    0 0 70px rgba(var(--accent-rgb), 0.16);
}

.membership-choice .ghet-submit-wrap:hover::before {
  transform: translateY(calc(-50% - 3px)) scale(1.018);
}

.membership-choice .ghet-submit-wrap:active :is(input[type="submit"], .wpcf7-submit) {
  transform: translateY(0) scale(1);
  filter: brightness(0.96);
}

.membership-choice .ghet-submit-wrap:active::before {
  transform: translateY(-50%) scale(1);
  filter: brightness(0.96);
}

.membership-progress {
  display: none;
  width: 100%;
  max-width: 560px;
  height: 12px;
  margin: 20px auto 34px;
  overflow: hidden;
  border-radius: var(--gc-radius-pill);
  background: rgba(255, 255, 255, 0.08);
}

.membership-progress-fill {
  display: block;
  width: var(--membership-progress, 0%);
  height: 100%;
  border-radius: inherit;
  background: var(--accent);
  box-shadow:
    0 0 16px rgba(var(--accent-rgb), 0.35),
    0 0 42px rgba(var(--accent-rgb), 0.14);
  transition:
    width 0.35s var(--gc-ease-out),
    background 0.25s ease,
    box-shadow 0.25s ease;
}

.membership-choice .wpcf7-spinner {
  display: none;
}

.membership-choice .wpcf7-not-valid-tip {
  margin-top: 6px;
  color: var(--gc-error);
  font-size: 12px;
}

.membership-choice .wpcf7-response-output {
  margin: 16px 0 0 !important;
  padding: 10px 12px !important;
  border-radius: 6px;
  color: var(--gc-white);
}

@keyframes membershipReveal {
  from {
    opacity: 0;
    transform: translateY(14px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes membershipFieldReveal {
  from {
    opacity: 0;
    transform: translateY(12px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* =========================================================
   8. COMPONENT / STEP CARDS
========================================================= */

.gc-step-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.gc-step-card {
  --step-accent: var(--gc-orange-soft);
  --step-accent-soft: rgba(var(--gc-orange-soft-rgb), 0.35);
  --step-accent-inset: rgba(var(--gc-orange-soft-rgb), 0.12);
  --step-accent-glow: rgba(var(--gc-orange-soft-rgb), 0.35);

  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 18px !important;
  min-height: 72px;
  padding: 14px 18px !important;
  border: 1px solid var(--gc-border-soft) !important;
  border-radius: var(--gc-radius-xl) !important;
  background: var(--gc-step-bg) !important;
  transition:
    border-color var(--gc-transition-base),
    background-color var(--gc-transition-base),
    box-shadow var(--gc-transition-base),
    transform var(--gc-transition-base) !important;
}

.gc-step-card:hover {
  border-color: var(--step-accent) !important;
  background: var(--gc-step-bg-hover) !important;
  box-shadow: 0 0 0 1px var(--step-accent-inset) inset !important;
}

.gc-step-card > .e-con,
.gc-step-card .elementor-widget,
.gc-step-card .elementor-widget-container {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
}

.gc-step-number {
  flex: 0 0 68px !important;
  min-width: 68px !important;
  max-width: 68px !important;
}

.gc-step-content {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: 4px !important;
  min-width: 0 !important;
}

.gc-step-number p,
.gc-step-title p,
.gc-step-text p {
  margin: 0 !important;
}

.gc-step-number p {
  color: var(--gc-white-cream) !important;
  font-size: 48px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: -0.04em !important;
  transition: color var(--gc-transition-base) !important;
}

.gc-step-card:hover .gc-step-number p {
  color: var(--step-accent) !important;
}

.gc-step-divider {
  display: block !important;
  align-self: center !important;
  flex: 0 0 3px !important;
  width: 3px !important;
  min-width: 3px !important;
  max-width: 3px !important;
  height: 58px !important;
  min-height: 58px !important;
  overflow: visible !important;
  border-radius: var(--gc-radius-pill) !important;
  background: var(--step-accent-soft);
}

.gc-step-card:hover .gc-step-divider {
  background: var(--step-accent) !important;
  box-shadow: 0 0 12px var(--step-accent-glow) !important;
}

.gc-step-title p {
  color: var(--gc-white-warm) !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  line-height: 1.1 !important;
  letter-spacing: -0.02em !important;
}

.gc-step-text p {
  color: var(--gc-text-muted) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  line-height: 1.45 !important;
}

.gc-step-card:hover :is(.gc-step-title p, .gc-step-text p) {
  color: var(--gc-white) !important;
}

/* =========================================================
   9. COMPONENT / SOCIAL ICONS GLOBAL
========================================================= */

.ghet-socials {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 20px;
  margin-left: 54px;
  line-height: 1;
}

.ghet-socials a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  color: #6fffc0;
  text-decoration: none;
  transition:
    transform var(--gc-transition-base),
    color var(--gc-transition-base),
    background var(--gc-transition-base),
    box-shadow var(--gc-transition-base),
    filter var(--gc-transition-base);
}

.ghet-socials a:hover {
  color: #ff6e31;
  background: rgba(255, 110, 49, 0.08);
  box-shadow: 0 0 10px rgba(255, 110, 49, 0.3);
  transform: translateY(-2px);
}

.ghet-socials a:hover img {
  filter:
    brightness(0)
    saturate(100%)
    invert(58%)
    sepia(73%)
    saturate(2117%)
    hue-rotate(340deg)
    brightness(101%)
    contrast(103%);
}

/* =========================================================
   10. FOOTER / ASTRA
========================================================= */

#colophon {
  background-color: var(--footer-bg) !important;
  background-image:
    linear-gradient(var(--footer-grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--footer-grid-line) 1px, transparent 1px) !important;
  background-size: var(--footer-grid-size) var(--footer-grid-size) !important;
  background-position: var(--footer-grid-x) var(--footer-grid-y) !important;
  background-attachment: fixed !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
}

#colophon :is(.site-primary-footer-wrap, .site-below-footer-wrap, .ast-builder-grid-row-container, .ast-builder-grid-row-container-inner, .site-primary-footer-inner-wrap, .site-footer-section, .footer-widget-area, aside, section) {
  background: transparent !important;
  background-image: none !important;
}

#colophon :is(.widget, .footer-widget-area, section, p, ul, li) {
  margin: 0 !important;
  padding: 0 !important;
}

#colophon .site-footer-primary-section-2 #block-56 {
  display: none !important;
}

#colophon .site-primary-footer-wrap {
  padding: 72px var(--footer-desktop-x) 34px !important;
  color: var(--footer-text) !important;
}

#colophon .site-primary-footer-wrap .ast-builder-grid-row-container-inner {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
}

#colophon .site-primary-footer-inner-wrap.ast-builder-grid-row {
  display: grid !important;
  grid-template-columns: 1.25fr 0.9fr 1fr !important;
  align-items: start !important;
  justify-items: start !important;
  width: 100% !important;
  max-width: var(--footer-max) !important;
  margin: 0 auto !important;
  column-gap: clamp(42px, 7vw, 96px) !important;
}

#colophon :is(.site-footer-section, .footer-widget-area, .ast-builder-html-element) {
  width: 100% !important;
  text-align: left !important;
}

#colophon .site-footer-primary-section-1 img {
  display: block !important;
  width: 176px !important;
  max-width: 100% !important;
  height: auto !important;
  margin: 0 0 26px !important;
}

#colophon .site-footer-primary-section-1 :is(#block-15 p, .widget_text p) {
  max-width: 285px !important;
  color: var(--footer-text) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.65 !important;
  letter-spacing: 0.01em !important;
}

#colophon :is(.site-footer-primary-section-2 #block-58 p, .site-footer-primary-section-3 #block-20 p) {
  margin-bottom: 28px !important;
  color: var(--footer-white) !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  text-align: left !important;
}

#colophon :is(.footer-navigation, .footer-nav-wrap, #astra-footer-menu, #astra-footer-menu li) {
  width: 100% !important;
  margin-left: 0 !important;
  padding-left: 0 !important;
  text-align: left !important;
}

#colophon #astra-footer-menu {
  display: block !important;
  list-style: none !important;
}

#colophon #astra-footer-menu li {
  display: block !important;
  margin-bottom: 13px !important;
}

#colophon #astra-footer-menu li:last-child {
  margin-bottom: 0 !important;
}

#colophon #astra-footer-menu :is(a, .menu-link) {
  display: inline-block !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--footer-text) !important;
  text-decoration: none !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
  letter-spacing: 0.03em !important;
  text-transform: uppercase !important;
  text-align: left !important;
  transform-origin: left center !important;
  transition:
    color 0.25s ease,
    transform 0.25s ease;
}

#colophon #astra-footer-menu :is(a, .menu-link):hover {
  color: var(--footer-green) !important;
  transform: translateX(3px);
}

#colophon .site-footer-primary-section-3 :is(.footer-widget-area, .widget, section, .ast-builder-html-element) {
  margin: 0 !important;
  padding: 0 !important;
  text-align: left !important;
}

#colophon .footer-contact-mail {
  width: 100% !important;
  margin: 0 0 28px !important;
  padding: 0 !important;
  text-align: left !important;
}

#colophon .footer-contact-mail a {
  position: relative;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--footer-text) !important;
  text-decoration: none !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;
  transition:
    color var(--gc-transition-smooth),
    text-shadow var(--gc-transition-smooth);
}

#colophon .footer-contact-mail a:hover {
  color: var(--footer-green) !important;
  text-shadow: 0 0 12px rgba(61, 255, 160, 0.35);
}

#colophon .footer-mail-icon {
  display: block !important;
  flex: 0 0 18px !important;
  width: 18px !important;
  height: 18px !important;
  object-fit: contain !important;
}

#colophon .ghet-socials {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 23px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: left !important;
}

#colophon .ghet-socials a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 20px !important;
  height: 20px !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  transition:
    transform 0.25s ease,
    filter 0.25s ease;
}

#colophon .ghet-socials a:hover {
  transform: translateY(-3px);
  filter: drop-shadow(0 0 10px rgba(51, 245, 191, 0.45));
}

#colophon .ghet-socials img {
  display: block !important;
  float: none !important;
  width: 20px !important;
  height: 20px !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: contain !important;
}

#colophon .site-below-footer-wrap {
  padding: 0 var(--footer-desktop-x) 36px !important;
}

#colophon .site-below-footer-wrap .ast-builder-grid-row-container-inner {
  max-width: var(--footer-max) !important;
  margin: 0 auto !important;
  padding-top: 26px !important;
  border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
}

#colophon :is(.site-below-footer-wrap, .site-below-footer-wrap p, .site-below-footer-wrap .ast-footer-copyright) {
  color: var(--footer-text) !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  letter-spacing: 0 !important;
  text-align: center !important;
}

/* =========================================================
   11. SPECIFIC CONTAINERS
========================================================= */

.gc-container-partenaires {
  width: auto;
  min-width: 358px !important;
  height: 160px !important;
  min-height: 160px !important;
}

/* =========================================================
   12. RESPONSIVE
========================================================= */

@media (max-width: 1100px) {
  body.home .elementor-element.elementor-element-31f49ac > .e-con-inner {
    padding-top: calc(var(--gc-header-height-mobile, 82px) + 34px) !important;
  }
}

@media (max-width: 1024px) {
  .elementor-element.elementor-element-31f49ac {
    --gc-hero-min-height: 760px;
  }
}

@media (max-width: 896px) {
  #colophon .site-primary-footer-wrap {
    padding: 76px var(--footer-mobile-x) 28px !important;
  }

  #colophon .site-primary-footer-inner-wrap.ast-builder-grid-row {
    grid-template-columns: 1fr !important;
    max-width: var(--footer-mobile-max) !important;
    margin: 0 !important;
    row-gap: 42px !important;
  }

  #colophon :is(.site-footer-primary-section-1, .site-footer-primary-section-2, .site-footer-primary-section-3) {
    max-width: var(--footer-mobile-max) !important;
  }

  #colophon .site-footer-primary-section-1 :is(#block-15 p, .widget_text p) {
    max-width: 320px !important;
    line-height: 1.7 !important;
  }

  #colophon .site-below-footer-wrap {
    padding: 0 var(--footer-mobile-x) 38px !important;
  }

  #colophon .site-below-footer-wrap .ast-builder-grid-row-container-inner {
    max-width: var(--footer-mobile-max) !important;
    margin: 0 !important;
  }

  #colophon :is(.site-below-footer-wrap, .site-below-footer-wrap p, .site-below-footer-wrap .ast-footer-copyright) {
    max-width: var(--footer-mobile-max) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    line-height: 1.45 !important;
  }
}

@media (max-width: 767px) {
  .elementor-element.elementor-element-31f49ac {
    --gc-hero-min-height: 620px;
  }

  .elementor-element.elementor-element-31f49ac :is(.elementor-element-d0a8732, .elementor-element-c3180a4) {
    width: 100% !important;
    max-width: 100% !important;
    --width: 100% !important;
  }

  .elementor-element.elementor-element-31f49ac .elementor-element-755651c :is(.ghet-kicker__text, .ghet-kicker__slashes) {
    white-space: normal !important;
  }

  .elementor-element.elementor-element-615a0f8 {
    flex-direction: column !important;
    align-items: stretch !important;
    max-width: 100% !important;
  }

  .elementor-element.elementor-element-615a0f8 > .elementor-element,
  .elementor-element.elementor-element-615a0f8 .elementor-button {
    width: 100% !important;
    min-width: 0 !important;
  }

  .membership-choice {
    padding: 18px 16px 20px;
  }

  .membership-cards,
  .membership-choice .ghet-cf7-grid {
    grid-template-columns: 1fr;
  }

  .membership-card-inner {
    min-height: 140px;
  }

  .membership-card-title {
    font-size: 18px;
  }

  .gc-step-card {
    min-height: auto;
    gap: 14px !important;
    padding: 16px !important;
  }

  .gc-step-number {
    flex: 0 0 48px !important;
    min-width: 48px !important;
    max-width: 48px !important;
  }

  .gc-step-number p {
    font-size: 32px !important;
  }

  .gc-step-divider {
    flex-basis: 2px !important;
    width: 2px !important;
    min-width: 2px !important;
    max-width: 2px !important;
    height: 42px !important;
    min-height: 42px !important;
  }

  .gc-step-title p {
    font-size: 20px !important;
  }

  .gc-step-text p {
    font-size: 14px !important;
  }

  #ast-mobile-header .menu-toggle {
    width: 42px !important;
    height: 42px !important;
  }

  #ast-mobile-header .menu-toggle svg,
  #ast-mobile-header .menu-toggle svg path {
    width: 25px !important;
    height: 25px !important;
  }
}

@media (max-width: 544px) {
  :root {
    --footer-mobile-x: 26px;
  }

  #colophon .site-primary-footer-wrap {
    padding-top: 78px !important;
  }

  #colophon .site-primary-footer-inner-wrap.ast-builder-grid-row {
    row-gap: 40px !important;
  }
}

@media (max-width: 430px) {
  #ast-hf-mobile-menu .menu-item > .menu-link {
    min-height: 64px !important;
    padding-inline: 22px !important;
    font-size: 13px !important;
  }

  #ast-hf-mobile-menu #menu-item-2410 > .menu-link {
    min-height: 46px !important;
  }
}

@media (max-width: 390px) {
  :root {
    --gc-header-mobile-x: 30px;
  }

  #ast-mobile-header .custom-logo {
    max-width: 195px !important;
  }
}

@media (max-width: 340px) {
  :root {
    --gc-header-mobile-x: 22px;
  }

  #ast-mobile-header .custom-logo {
    max-width: 170px !important;
  }

  #ast-mobile-header .menu-toggle svg,
  #ast-mobile-header .menu-toggle svg path {
    width: 23px !important;
    height: 23px !important;
  }
}

/* =========================================================
   13. ACCESSIBILITY / REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {
  .membership-choice,
  .membership-card-inner,
  .membership-form-panel,
  .membership-progress-fill,
  .membership-choice :is(input, textarea, .wpcf7-submit),
  .gc-step-card,
  .ghet-socials a,
  .footer-contact-mail a,
  #masthead {
    transition: none !important;
  }

  .membership-form-block.is-active,
  .membership-choice .ghet-field,
  .gc-reveal-text,
  .gc-reveal-text *,
  .gc-reveal-text.is-visible,
  .gc-reveal-text.is-visible * {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }
}