/* =====================================================
   TEMPLATE: ELEGANT
   Raffiné, aéré, grands radius, diamant h2
   ===================================================== */

/* -- h2 : centré, diamant, letter-spacing -- */

.front.template-elegant h2 {
  position: relative;
  text-align: center;
  letter-spacing: 0.04em;
  font-weight: 600;
  padding-bottom: 2rem;
  margin-bottom: 3rem;
}

.front.template-elegant h2::before {
  content: none;
}

.front.template-elegant h2::after {
  content: "\25C6";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  width: auto;
  height: auto;
  background: none;
  font-size: 0.75rem;
  color: var(--accent-color);
  text-align: center;
}

.front.template-elegant .section-black h2::after,
.front.template-elegant .section-red h2::after,
.front.template-elegant .section-green h2::after,
.front.template-elegant .section-purple h2::after,
.front.template-elegant .section-primary h2::after,
.front.template-elegant .section-accent h2::after,
.front.template-elegant .section-neutral h2::after,
.front.template-elegant .section-teal h2::after {
  color: white;
}

/* -- BlockService : aéré, grand radius, bordure fine -- */

.front.template-elegant .block-service {
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 300ms;
  border-radius: 1rem;
  padding: 2.5rem 2rem;
}

.front.template-elegant .block-service:hover {
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
}

.front.template-elegant .service-icon {
  height: 5rem;
  width: 5rem;
  border-radius: 9999px;
  background: rgb(var(--accent-100));
  color: rgb(var(--accent-700));
}

.front.template-elegant .service-link {
  --tw-text-opacity: 1;
  color: rgb(var(--accent-600) / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.front.template-elegant .service-link:hover {
  --tw-text-opacity: 1;
  color: rgb(var(--accent-700) / var(--tw-text-opacity, 1));
}

/* -- BlockTestimonial : centré, bordure haute accent -- */

.front.template-elegant .block-testimonial {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  text-align: center;
  border-top: 3px solid var(--accent-color);
  border-radius: 1rem;
  padding: 2rem;
}

.front.template-elegant .testimonial-header {
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.front.template-elegant .testimonial-photo {
  margin-bottom: 0.75rem;
  border-radius: 9999px;
}

/* -- BlockFaq : bordures fines, pas de numéros, espacé -- */

.front.template-elegant .block-faq details {
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
  border-radius: 0.75rem;
}

.front.template-elegant .block-faq summary {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.front.template-elegant .block-faq summary:hover {
  background: rgb(var(--accent-50));
}

.front.template-elegant .faq-number {
  display: none;
}

.front.template-elegant .faq-chevron {
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity, 1));
}

.front.template-elegant .faq-answer {
  border-top-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(243 244 246 / var(--tw-border-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity, 1));
}

/* -- BlockPerson : bordure fine, grand radius, aéré -- */

.front.template-elegant .block-person {
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  border-radius: 1rem;
  padding: 2rem;
}

.front.template-elegant .person-photo {
  border-radius: 9999px;
}

.front.template-elegant .person-social {
  border-radius: 9999px;
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity, 1));
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.front.template-elegant .person-social:hover {
  background: rgb(var(--accent-100));
  color: rgb(var(--accent-700));
}

/* -- BlockHero -- */

.front.template-elegant .hero-cta {
  --tw-bg-opacity: 1;
  background-color: rgb(var(--brand-600) / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 300ms;
  border-radius: 0.75rem;
}

.front.template-elegant .hero-cta:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(var(--brand-700) / var(--tw-bg-opacity, 1));
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}

.front.template-elegant .hero-cta-secondary {
  --tw-text-opacity: 1;
  color: rgb(var(--brand-600) / var(--tw-text-opacity, 1));
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 300ms;
  border-radius: 0.75rem;
}

.front.template-elegant .hero-cta-secondary:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(var(--brand-50) / var(--tw-bg-opacity, 1));
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
}

.front.template-elegant .hero-feature {
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 300ms;
  border-radius: 1rem;
}

.front.template-elegant .hero-feature:hover {
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
}

.front.template-elegant .hero-feature-icon {
  border-radius: 9999px;
  background: rgb(var(--accent-100));
  color: rgb(var(--accent-700));
}

/* -- Hero V2 card -- */

.front.template-elegant .hero-v2-card {
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
  border-radius: 1rem;
}

/* -- BlockCta -- */

.front.template-elegant .block-cta,
.front.template-elegant .block-cta-v2 {
  border-radius: 1rem;
}

.front.template-elegant .cta-button {
  border-radius: 0.75rem;
}

/* -- BlockTimeline -- */

.front.template-elegant .timeline-date {
  border-radius: 999px;
}

.front.template-elegant .timeline-image img {
  border-radius: 1rem;
}

.front.template-elegant .timeline-line::before {
  width: 1px;
  background: var(--accent-color);
  opacity: 0.3;
}

.front.template-elegant .timeline-card {
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  border-radius: 1rem;
  padding: 1.5rem 2rem;
}

/* -- BlockVideo -- */

.front.template-elegant .video-embed {
  border-radius: 1rem;
}

/* -- Header : ombre douce -- */

.front.template-elegant header {
  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.04);
}

/* -- BlockShowcase -- */

.front.template-elegant .showcase-img {
  border-radius: 1rem;
}

.front.template-elegant .showcase-patch-text {
  border-radius: 1rem;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

/* -- BlockIllustratedCard -- */

.front.template-elegant .block-illustrated-card {
  --ic-radius: 1rem;
}

.front.template-elegant .ic-content {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

.front.template-elegant .ic-button {
  border-radius: 0.75rem;
}

.front.template-elegant .ic-overlap .ic-content {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}