/* ============================================================
   03 — COMPONENTS
   Composants Elementor et UI spécifiques
   ============================================================ */

/* ==========================================================
   1. CTA (Call To Action)
   ========================================================== */
.elementor-widget-call-to-action .elementor-cta {
  container-type: inline-size;
  aspect-ratio: 3/2 !important;
  display: flex !important;
  border-radius: var(--radius-m, 8px) !important;
  overflow: hidden !important;
}

.elementor-widget-call-to-action .elementor-cta__content {
  display: flex !important;
  height: 100% !important;
  width: 100% !important;
  padding: 1rem 1rem 2rem 1rem !important;
}

.elementor-widget-call-to-action .elementor-cta__title {
  font-size: 10cqi !important;
}

.elementor-widget-call-to-action .elementor-cta__icon svg {
  width: 10cqi !important;
  height: 10cqi !important;
}

/* CTA — Variante center */
.cta-center.elementor-widget-call-to-action .elementor-cta,
.cta-center.elementor-widget-call-to-action .elementor-cta__content {
  align-items: center !important;
  justify-content: center !important;
  text-align: center;
}

/* CTA — Variante bottom-left */
.cta-bottom-left.elementor-widget-call-to-action .elementor-cta,
.cta-bottom-left.elementor-widget-call-to-action .elementor-cta__content {
  align-items: flex-end !important;
  justify-content: flex-start !important;
  text-align: left;
}

.cta-bottom-left.elementor-widget-call-to-action .elementor-cta__content {
  padding: 1rem !important;
}

/* ==========================================================
   2. POPUP — Close icon
   ========================================================== */
.elementor-popup-modal .close-icon .elementor-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px;
  border: 2px solid #fff;
  border-radius: 999px;
  box-sizing: border-box;
}

.elementor-popup-modal .close-icon .elementor-icon svg {
  display: block;
}

/* ==========================================================
   3. ACCORDIONS
   ========================================================== */
.mon-accordeon a {
  text-decoration: underline !important;
}

.mon-accordeon .e-n-accordion-item-title-header {
  flex-grow: 1;
  padding-right: 8px;
}

.mon-accordeon .e-n-accordion-item-title {
  transition: color .25s ease, background-color .25s ease, border-color .25s ease;
}

.mon-accordeon .e-n-accordion-item-title-text {
  transition: color .25s ease;
}

.mon-accordeon .e-n-accordion-item-title-icon :is(svg, i) {
  transition: transform .25s ease, fill .25s ease, opacity .25s ease, color .25s ease;
}

.mon-accordeon .e-n-accordion-item-title[aria-expanded="true"]
.e-n-accordion-item-title-icon :is(svg, i) {
  transform: rotate(90deg);
}

/* Accordion — Animation (page + modal) */
.acc-anim-page .e-n-accordion-item,
.acc-anim-modal .e-n-accordion-item {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .6s cubic-bezier(.25, .46, .45, .94),
              transform .6s cubic-bezier(.25, .46, .45, .94);
}

.acc-anim-page .e-n-accordion-item.visible,
.acc-anim-modal .e-n-accordion-item.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Accordion — Mode éditeur */
.elementor-editor-active .acc-anim-page .e-n-accordion-item,
.elementor-editor-active .acc-anim-modal .e-n-accordion-item {
  opacity: 1;
  transform: none;
}

/* ==========================================================
   4. CARD ARTIST
   ========================================================== */
.card-artist {
  position: relative;
  overflow: hidden !important;
  border-radius: var(--radius-m);
}

/* Image zoom */
.card-artist img {
  transition: transform .8s ease;
}

.card-artist:hover img {
  transform: scale(1.1);
}

/* Overlays */
.card-artist::before,
.card-artist::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: var(--radius-m);
  pointer-events: none;
  transition: opacity .3s ease;
  z-index: 1;
}

.card-artist::before {
  background: linear-gradient(to bottom,
    transparent 0%,
    transparent 40%,
    rgba(0, 0, 0, .7) 100%
  );
  opacity: 1;
}

.card-artist::after {
  background: linear-gradient(to bottom,
    rgba(0, 0, 0, .5) 0%,
    rgba(0, 0, 0, .5) 40%,
    rgba(0, 0, 0, .85) 100%
  );
  opacity: 0;
}

.card-artist:hover::before { opacity: 0; }
.card-artist:hover::after  { opacity: 1; }

/* Texte qui monte au hover */
.card-artist .texte-artiste .elementor-widget {
  position: relative;
  z-index: 2;
  transition: transform 1s cubic-bezier(.22, 1, .36, 1);
  transition-delay: .1s;
}

.card-artist .texte-artiste .elementor-widget-theme-post-title {
  transition-delay: 0s;
}

.card-artist:hover .texte-artiste .elementor-widget {
  transform: translateY(-10px);
}

/* Icône au-dessus des overlays */
.card-artist .elementor-widget-icon {
  position: relative;
  z-index: 3;
}

/* Cercle framed + transition */
.card-artist .elementor-widget-icon.elementor-view-framed .elementor-icon {
  transition: border-color .25s ease, background-color .25s ease, color .25s ease;
}

.card-artist:hover .elementor-widget-icon.elementor-view-framed .elementor-icon {
  border-color: #fff !important;
}

/* Icône SVG au hover */
.card-artist .elementor-widget-icon svg path {
  transition: fill .25s ease;
}

.card-artist:hover .elementor-widget-icon svg path {
  fill: #fff !important;
}
