:root {
  --ov-bg: #f3f7fc;
  --ov-panel: #ffffff;
  --ov-ink: #15243a;
  --ov-muted: #55657d;
  --ov-brand: #0f6ecd;
  --ov-brand-deep: #0a4d91;
  --ov-accent: #11b981;
  --ov-line: #d8e3f1;
  --ov-shadow: 0 18px 36px rgba(21, 36, 58, 0.08);
  --ov-shadow-strong: 0 24px 48px rgba(21, 36, 58, 0.14);
}

body {
  background:
    radial-gradient(1200px 500px at 10% -10%, #dceafe 0%, transparent 60%),
    radial-gradient(900px 450px at 100% 0%, #dcfce7 0%, transparent 55%),
    linear-gradient(180deg, rgba(255,255,255,0.7), rgba(255,255,255,0.9)),
    var(--ov-bg) !important;
  color: var(--ov-ink) !important;
}

.site-primary-header-wrap,
.ast-primary-header-bar,
.site-header {
  background: rgba(255, 255, 255, 0.88) !important;
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--ov-line);
  box-shadow: 0 8px 24px rgba(15, 45, 85, 0.06);
}

.main-header-menu .menu-link,
.ast-builder-menu-1 .menu-link {
  color: var(--ov-ink) !important;
  font-weight: 600 !important;
}

.main-header-menu .menu-link:hover,
.main-header-menu .current-menu-item > .menu-link {
  color: var(--ov-brand) !important;
}

.elementor-location-header,
.elementor-location-footer,
.elementor-section,
.elementor-element.e-con,
.ast-container,
.site-content .ast-container,
.elementor-widget-container {
  border-radius: 16px;
}

.elementor-widget-container,
.elementor-element.e-con-boxed > .e-con-inner,
.ast-builder-grid-row {
  box-shadow: var(--ov-shadow);
  border: 1px solid rgba(216, 227, 241, 0.75);
  background: linear-gradient(180deg, #ffffff, #fbfdff);
}

.elementor-widget-text-editor p,
.elementor-widget-heading,
p {
  color: var(--ov-muted);
}

h1, h2, h3, h4, h5, h6,
.elementor-heading-title {
  color: var(--ov-ink) !important;
  letter-spacing: -0.015em;
}

.elementor-button,
.ast-button,
button,
input[type="submit"],
.woocommerce a.button {
  background: linear-gradient(115deg, var(--ov-brand), var(--ov-brand-deep)) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 12px !important;
  box-shadow: 0 14px 24px rgba(15, 110, 205, 0.3), inset 0 1px 0 rgba(255,255,255,0.18) !important;
  font-weight: 700 !important;
  letter-spacing: 0.01em;
}

.elementor-button:hover,
.ast-button:hover,
button:hover,
input[type="submit"]:hover,
.woocommerce a.button:hover {
  transform: translateY(-1px);
  filter: saturate(1.07);
}

.elementor-widget-image img,
img.custom-logo,
.wp-image-3824 {
  border-radius: 12px;
  box-shadow: var(--ov-shadow-strong);
  border: 1px solid rgba(216, 227, 241, 0.8);
  transition: transform .35s ease, box-shadow .35s ease, filter .35s ease;
  filter: saturate(1.04) contrast(1.03);
}

.elementor-widget-image img:hover,
img.custom-logo:hover,
.wp-image-3824:hover {
  transform: translateY(-3px) scale(1.01);
  box-shadow: 0 30px 54px rgba(21, 36, 58, 0.2);
}

.ti-widget,
.ti-inner,
.ti-review-item,
.trustindex-google-widget,
[class*="trustindex"] {
  border-radius: 14px !important;
}

.ti-inner,
.ti-review-item {
  border: 1px solid var(--ov-line) !important;
  background: #fff !important;
  box-shadow: var(--ov-shadow) !important;
  position: relative;
}

.ti-inner::before,
.ti-review-item::before {
  content: "Avis vérifié";
  position: absolute;
  top: 10px;
  right: 10px;
  font-size: 11px;
  font-weight: 700;
  color: #0c5d38;
  background: #dcfce7;
  border: 1px solid #86efac;
  border-radius: 999px;
  padding: 4px 8px;
}

a {
  text-underline-offset: 2px;
}

.site-footer,
.site-below-footer-wrap,
.site-primary-footer-wrap {
  background:
    radial-gradient(700px 220px at 15% -20%, rgba(125,211,252,0.15), transparent 60%),
    radial-gradient(700px 220px at 85% -20%, rgba(16,185,129,0.14), transparent 60%),
    #0d223f !important;
  color: #e7eef8 !important;
}

.site-footer a,
.site-below-footer-wrap a,
.site-primary-footer-wrap a {
  color: #c7dcff !important;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner {
  border-radius: 14px !important;
  box-shadow: var(--ov-shadow) !important;
}

/* Accent visuel de conversion sur les zones bouton / contact */
.elementor-widget-button .elementor-button-wrapper,
.wpcf7,
form {
  position: relative;
}

.elementor-widget-button .elementor-button-wrapper::after {
  content: "";
  display: block;
  width: 46px;
  height: 4px;
  margin: 10px auto 0;
  border-radius: 99px;
  background: linear-gradient(90deg, var(--ov-brand), var(--ov-accent));
  opacity: .7;
}

@media (max-width: 921px) {
  .ast-builder-grid-row,
  .elementor-element.e-con,
  .elementor-widget-container {
    border-radius: 12px;
  }
}
