/**
 * Socle visuel des contenus standards WeRun.
 *
 * Portée volontairement limitée : contenus WordPress/Gutenberg et widgets
 * Elementor natifs. Les widgets HTML et modules WeRun spécialisés conservent
 * leurs propres feuilles de style.
 */

:where(
  .entry-content,
  .post-content,
  .elementor-widget-theme-post-content > .elementor-widget-container,
  .elementor-widget-text-editor > .elementor-widget-container
) {
  color: var(--werun-text-soft);
}

:where(
  .entry-content,
  .post-content,
  .elementor-widget-theme-post-content > .elementor-widget-container,
  .elementor-widget-text-editor > .elementor-widget-container
):not(.werun-theme-skip):not([data-werun-theme-skip])
:where(h1, h2, h3, h4, h5, h6, strong, b) {
  color: var(--werun-text-strong);
}

:where(
  .elementor-widget-heading,
  .elementor-widget-theme-post-title,
  .elementor-widget-post-info
):not(.werun-theme-skip):not([data-werun-theme-skip])
:where(.elementor-heading-title, .elementor-post-info__item) {
  color: var(--werun-text-strong);
}

:where(
  .entry-content,
  .post-content,
  .elementor-widget-theme-post-content > .elementor-widget-container,
  .elementor-widget-text-editor > .elementor-widget-container
):not(.werun-theme-skip):not([data-werun-theme-skip])
:where(p, li, dd, figcaption, small) {
  color: var(--werun-text-soft);
}

:where(
  .entry-content,
  .post-content,
  .elementor-widget-theme-post-content > .elementor-widget-container,
  .elementor-widget-text-editor > .elementor-widget-container,
  .elementor-widget-icon-list
):not(.werun-theme-skip):not([data-werun-theme-skip]) a:not(.elementor-button) {
  color: var(--werun-link);
  text-decoration-color: rgba(19, 175, 240, 0.34);
  text-underline-offset: 0.16em;
  transition: color 0.18s ease, text-decoration-color 0.18s ease;
}

:where(
  .entry-content,
  .post-content,
  .elementor-widget-theme-post-content > .elementor-widget-container,
  .elementor-widget-text-editor > .elementor-widget-container,
  .elementor-widget-icon-list
):not(.werun-theme-skip):not([data-werun-theme-skip]) a:not(.elementor-button):hover,
:where(
  .entry-content,
  .post-content,
  .elementor-widget-theme-post-content > .elementor-widget-container,
  .elementor-widget-text-editor > .elementor-widget-container,
  .elementor-widget-icon-list
):not(.werun-theme-skip):not([data-werun-theme-skip]) a:not(.elementor-button):focus-visible {
  color: var(--werun-link-hover);
  text-decoration-color: currentColor;
}

/* Gutenberg et contenus éditoriaux */
:where(.entry-content, .post-content, .elementor-widget-theme-post-content)
:where(blockquote, .wp-block-quote, .wp-block-pullquote) {
  border-color: var(--werun-primary);
  border-radius: 0 var(--werun-radius-md) var(--werun-radius-md) 0;
  background: var(--werun-surface-soft);
  color: var(--werun-text-soft);
}

:where(.entry-content, .post-content, .elementor-widget-theme-post-content)
:where(blockquote, .wp-block-quote, .wp-block-pullquote) cite {
  color: var(--werun-text-faint);
}

:where(.entry-content, .post-content, .elementor-widget-theme-post-content)
:where(hr, .wp-block-separator) {
  border-color: var(--werun-border);
  color: var(--werun-border);
}

:where(.entry-content, .post-content, .elementor-widget-theme-post-content)
:where(code, kbd, samp, pre) {
  border-color: var(--werun-border);
  color: var(--werun-text);
  background: var(--werun-surface-soft);
}

:where(.entry-content, .post-content, .elementor-widget-theme-post-content) pre {
  border: 1px solid var(--werun-border);
  border-radius: var(--werun-radius-md);
  box-shadow: var(--werun-shadow);
}

:where(.entry-content, .post-content, .elementor-widget-theme-post-content)
:where(.wp-block-image figcaption, .wp-block-gallery figcaption, figcaption) {
  color: var(--werun-text-faint);
}

/* Tableaux standards */
:where(
  .entry-content,
  .post-content,
  .elementor-widget-theme-post-content,
  .elementor-widget-text-editor
):not(.werun-theme-skip):not([data-werun-theme-skip]) table {
  border-color: var(--werun-border);
  color: var(--werun-text-soft);
  background: var(--werun-surface);
}

:where(
  .entry-content,
  .post-content,
  .elementor-widget-theme-post-content,
  .elementor-widget-text-editor
):not(.werun-theme-skip):not([data-werun-theme-skip]) :where(th, td) {
  border-color: var(--werun-border);
}

:where(
  .entry-content,
  .post-content,
  .elementor-widget-theme-post-content,
  .elementor-widget-text-editor
):not(.werun-theme-skip):not([data-werun-theme-skip]) th {
  color: var(--werun-text-strong);
  background: var(--werun-surface-soft);
}

:where(
  .entry-content,
  .post-content,
  .elementor-widget-theme-post-content,
  .elementor-widget-text-editor
):not(.werun-theme-skip):not([data-werun-theme-skip]) tbody tr:hover {
  background: var(--werun-surface-hover);
}

/* Formulaires WordPress et Elementor standards. */
:where(
  .entry-content,
  .post-content,
  .elementor-widget-form,
  .elementor-widget-search-form,
  .elementor-widget-login,
  .wpforms-container
):not(.werun-theme-skip):not([data-werun-theme-skip])
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea) {
  border-color: var(--werun-border-strong);
  border-radius: var(--werun-radius-md);
  background: var(--werun-field-bg);
  color: var(--werun-text);
  box-shadow: none;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
}

:where(
  .entry-content,
  .post-content,
  .elementor-widget-form,
  .elementor-widget-search-form,
  .elementor-widget-login,
  .wpforms-container
):not(.werun-theme-skip):not([data-werun-theme-skip])
:where(input, textarea)::placeholder {
  color: var(--werun-field-placeholder);
  opacity: 1;
}

:where(
  .entry-content,
  .post-content,
  .elementor-widget-form,
  .elementor-widget-search-form,
  .elementor-widget-login,
  .wpforms-container
):not(.werun-theme-skip):not([data-werun-theme-skip])
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea):focus {
  border-color: var(--werun-primary);
  box-shadow: var(--werun-focus-ring);
  outline: 0;
}

:where(
  .elementor-widget-form,
  .elementor-widget-login,
  .wpforms-container
):not(.werun-theme-skip):not([data-werun-theme-skip]) label {
  color: var(--werun-text-strong);
}

/* Boutons standards uniquement — les modules spécialisés gardent leurs styles. */
:where(
  .entry-content,
  .post-content,
  .elementor-widget-button,
  .elementor-widget-form,
  .elementor-widget-search-form,
  .elementor-widget-login,
  .wpforms-container
):not(.werun-theme-skip):not([data-werun-theme-skip])
:where(.elementor-button, button:not([class*="werun-"]), input[type="submit"], input[type="button"]) {
  border-color: var(--werun-primary);
  border-radius: var(--werun-radius-md);
  background: var(--werun-primary);
  color: var(--werun-text-on-primary);
  box-shadow: 0 7px 18px rgba(19, 175, 240, 0.16);
  transition: border-color 0.18s ease, background-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

:where(
  .entry-content,
  .post-content,
  .elementor-widget-button,
  .elementor-widget-form,
  .elementor-widget-search-form,
  .elementor-widget-login,
  .wpforms-container
):not(.werun-theme-skip):not([data-werun-theme-skip])
:where(.elementor-button, button:not([class*="werun-"]), input[type="submit"], input[type="button"]):hover,
:where(
  .entry-content,
  .post-content,
  .elementor-widget-button,
  .elementor-widget-form,
  .elementor-widget-search-form,
  .elementor-widget-login,
  .wpforms-container
):not(.werun-theme-skip):not([data-werun-theme-skip])
:where(.elementor-button, button:not([class*="werun-"]), input[type="submit"], input[type="button"]):focus-visible {
  border-color: var(--werun-primary-hover);
  background: var(--werun-primary-hover);
  color: var(--werun-text-on-primary);
  box-shadow: 0 10px 24px rgba(19, 175, 240, 0.22);
  transform: translateY(-1px);
}

/* Widgets Elementor natifs fréquemment employés. */
:where(
  .elementor-widget-icon-list,
  .elementor-widget-image-box,
  .elementor-widget-icon-box,
  .elementor-widget-counter
):not(.werun-theme-skip):not([data-werun-theme-skip])
:where(.elementor-icon-list-text, .elementor-image-box-description, .elementor-icon-box-description, .elementor-counter-title) {
  color: var(--werun-text-soft);
}

:where(
  .elementor-widget-image-box,
  .elementor-widget-icon-box,
  .elementor-widget-counter
):not(.werun-theme-skip):not([data-werun-theme-skip])
:where(.elementor-image-box-title, .elementor-icon-box-title, .elementor-counter-number-wrapper) {
  color: var(--werun-text-strong);
}

:where(
  .elementor-widget-accordion,
  .elementor-widget-toggle,
  .elementor-widget-tabs
):not(.werun-theme-skip):not([data-werun-theme-skip])
:where(.elementor-tab-title, .elementor-tab-content) {
  border-color: var(--werun-border);
}

:where(
  .elementor-widget-accordion,
  .elementor-widget-toggle,
  .elementor-widget-tabs
):not(.werun-theme-skip):not([data-werun-theme-skip]) .elementor-tab-title {
  color: var(--werun-text-strong);
  background: var(--werun-surface-soft);
}

:where(
  .elementor-widget-accordion,
  .elementor-widget-toggle,
  .elementor-widget-tabs
):not(.werun-theme-skip):not([data-werun-theme-skip]) .elementor-tab-content {
  color: var(--werun-text-soft);
  background: var(--werun-surface);
}

:where(.elementor-widget-divider):not(.werun-theme-skip):not([data-werun-theme-skip])
.elementor-divider-separator {
  border-color: var(--werun-border);
}

/* Petites classes utilitaires pour les prochains widgets personnalisés. */
.werun-theme-surface {
  border: 1px solid var(--werun-border);
  border-radius: var(--werun-radius-lg);
  background: var(--werun-surface);
  color: var(--werun-text);
  box-shadow: var(--werun-shadow);
}

.werun-theme-surface--soft {
  background: var(--werun-surface-soft);
}

.werun-theme-text {
  color: var(--werun-text);
}

.werun-theme-muted {
  color: var(--werun-text-soft);
}

.werun-theme-link {
  color: var(--werun-link);
}

.werun-theme-link:hover,
.werun-theme-link:focus-visible {
  color: var(--werun-link-hover);
}

/* Les couleurs configurées explicitement dans Elementor restent prioritaires. */
html.werun-theme-dark body:not(.elementor-editor-active)
:where(
  .elementor-widget-heading:not(.elementor-element-edit-mode),
  .elementor-widget-text-editor:not(.elementor-element-edit-mode),
  .elementor-widget-icon-list:not(.elementor-element-edit-mode),
  .elementor-widget-image-box:not(.elementor-element-edit-mode),
  .elementor-widget-icon-box:not(.elementor-element-edit-mode)
):not(.werun-theme-skip):not([data-werun-theme-skip]) {
  --e-global-color-text: var(--werun-text-soft);
  --e-global-color-primary: var(--werun-primary);
  --e-global-color-secondary: var(--werun-text-strong);
}

@media (prefers-reduced-motion: reduce) {
  :where(
    .entry-content,
    .post-content,
    .elementor-widget-button,
    .elementor-widget-form,
    .elementor-widget-search-form,
    .elementor-widget-login,
    .wpforms-container
  ) *,
  .werun-theme-surface,
  .werun-theme-link {
    transition: none !important;
  }
}
