/**
 * Bicome Site Builder — ABS Classes
 *
 * CSS de la palette + composants ABS, servi en frontend par enqueue WordPress
 * (en dehors du système Elementor pour éviter tout conflit V3/V4).
 */

:root {
  --abs-orange: #C86818;
  --abs-orange-secondary: #A85410;
  --abs-orange-light: #E89052;
  --abs-orange-08: rgba(200, 104, 24, 0.08);
  --abs-orange-12: rgba(200, 104, 24, 0.12);
  --abs-orange-shadow: rgba(200, 104, 24, 0.20);
  --abs-text: #1F1A14;
  --abs-char: #2B241D;
  --abs-muted: #6B6258;
  --abs-accent: #6B3A1A;            /* Café espresso (ex-vert RSE) */
  --abs-accent-12: rgba(107, 58, 26, 0.12);
  --abs-sand: #EBE3D7;
  --abs-cream: #FFF6EE;
  --abs-off: #FFFFFF;
  --abs-dark: #1A1410;
  --abs-spacing-xs: 8px;
  --abs-spacing-sm: 16px;
  --abs-spacing-md: 24px;
  --abs-spacing-lg: 40px;
  --abs-spacing-xl: 64px;
  --abs-radius-sm: 8px;
  --abs-radius-md: 12px;
  --abs-radius-lg: 18px;
  --abs-radius-xl: 24px;
  --abs-radius-pill: 999px;
}

/* ===== Boutons ABS ===== */
.elementor a.abs-btn-primary,
a.abs-btn-primary,
.abs-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: var(--abs-orange);
  color: #FFFFFF !important;
  padding: 15px 30px;
  border-radius: 999px;
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.02em;
  border: 1.5px solid var(--abs-orange);
  transition: all .35s cubic-bezier(.2,.8,.2,1);
  cursor: pointer;
  text-decoration: none;
}
.elementor a.abs-btn-primary:hover,
a.abs-btn-primary:hover,
.abs-btn-primary:hover {
  background: var(--abs-orange-secondary);
  border-color: var(--abs-orange-secondary);
  transform: translateY(-2px);
  box-shadow: 0 12px 24px -8px var(--abs-orange-shadow);
}

.abs-btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: transparent;
  color: var(--abs-text) !important;
  border: 1.5px solid var(--abs-text);
  padding: 15px 30px;
  border-radius: 999px;
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  font-size: 14px;
  transition: all .35s ease;
  text-decoration: none;
}
.abs-btn-outline:hover {
  background: var(--abs-text);
  color: #FFFFFF !important;
  transform: translateY(-2px);
}

/* ===== Titres ABS ===== */
.abs-h1, h1.abs-h1 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: clamp(36px, 5vw, 64px);
  line-height: 1.1;
  letter-spacing: -0.03em;
  color: var(--abs-text);
}
.abs-h2, h2.abs-h2 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: clamp(26px, 3.5vw, 42px);
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--abs-text);
}
.abs-h3, h3.abs-h3 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 22px;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--abs-text);
}
.abs-eyebrow {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--abs-orange);
  display: inline-block;
  margin-bottom: 14px;
}
.abs-eyebrow.abs-eyebrow-accent {
  color: var(--abs-accent);
}

/* ===== Cards ===== */
.abs-card {
  background: #FFFFFF;
  border: 1px solid var(--abs-sand);
  border-radius: 24px;
  padding: 32px 26px;
  transition: all .4s cubic-bezier(.2,.8,.2,1);
}
.abs-card:hover {
  transform: translateY(-8px);
  border-color: var(--abs-orange);
  box-shadow: 0 18px 36px -14px var(--abs-orange-shadow);
}

.abs-icon-circle {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: var(--abs-orange-12);
  color: var(--abs-orange);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
}
.abs-icon-circle.abs-icon-accent {
  background: var(--abs-accent-12);
  color: var(--abs-accent);
}

/* ===== Sections ===== */
.abs-section {
  padding: 80px 24px;
}
@media (max-width: 980px) {
  .abs-section {
    padding: 60px 24px;
  }
}
@media (max-width: 600px) {
  .abs-section {
    padding: 40px 16px;
  }
}

.abs-cta-band {
  background: var(--abs-dark);
  color: #FFFFFF !important;
  padding: 100px 24px;
  text-align: center;
}
.abs-cta-band h1,
.abs-cta-band h2,
.abs-cta-band h3 {
  color: #FFFFFF !important;
}

/* ===== Stat number (chiffres clés) ===== */
.abs-stat-num {
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: 54px;
  line-height: 1;
  letter-spacing: -2px;
  color: var(--abs-orange);
  display: block;
  width: 100%;
  text-align: center;
}
.abs-stat-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--abs-muted);
  font-weight: 600;
  margin-top: 10px;
  display: block;
  width: 100%;
  text-align: center;
}

/* ===== Fix layout widget Counter Elementor + colonnes stats =====
   Évite la superposition des chiffres (30, 350, 800+, 32) quand
   les widgets counter d'Elementor s'ignorent en largeur.
*/
.elementor-widget-counter {
  width: 100%;
}
.elementor-widget-counter .elementor-counter,
.elementor-widget-counter .elementor-counter-number-wrapper,
.elementor-widget-counter .elementor-counter-title {
  text-align: center !important;
  width: 100%;
}
.elementor-widget-counter .elementor-counter-number {
  display: inline-block;
  width: auto;
}

/* Section Stats : 4 colonnes stats égales avec gap visible */
.elementor-section.abs-stats-row,
.elementor-element-populated.abs-stats-cell {
  flex-wrap: wrap;
}
@media (max-width: 980px) {
  .elementor-widget-counter,
  .elementor-element-populated.abs-stats-cell {
    flex: 1 1 50%;
    margin-bottom: 24px;
  }
}
@media (max-width: 600px) {
  .elementor-widget-counter,
  .elementor-element-populated.abs-stats-cell {
    flex: 1 1 100%;
  }
}

/* ===== Fix Heading widget : empêche les heading de déborder les colonnes ===== */
.elementor-widget-heading {
  word-wrap: break-word;
  overflow-wrap: break-word;
  hyphens: auto;
}
.elementor-widget-heading .elementor-heading-title {
  word-wrap: break-word;
  overflow-wrap: break-word;
}

/* ===== Reduced motion ===== */
@media (prefers-reduced-motion: reduce) {
  .abs-btn-primary,
  .abs-btn-outline,
  .abs-card,
  .abs-icon-circle {
    transition: none;
  }
}
