:root {
  --nvg-color-primary: #e40f10;
  --nvg-color-primary-hover: #000000;
  --nvg-color-secondary: #303030;
  --nvg-color-secondary-hover: #303030;
  --nvg-color-on-surface: #000000;
  --nvg-color-border: #e9e9e9;
  --nvg-bg-light: #f5f5f5;
  --nvg-color-on-bg-light: #000000;
  --nvg-bg-dark: #000000;
  --nvg-btn-padding-y: 12px;
  --nvg-btn-padding-x: 25px;
  --nvg-btn-font-size: 0.9em;
  --nvg-btn-font-weight: 300;
  --nvg-radius-small: 0;
  --nvg-radius-medium: 0;
  --nvg-radius-large: 0;
  --nvg-shadow-small: 0 4px 12px rgba(0, 0, 0, 0.08);
  --nvg-shadow-medium: 0 0 40px rgba(0, 0, 0, 0.1);
  --nvg-shadow-large: 0 0 40px rgba(0, 0, 0, 0.1);
  --nvg-space-small: 10px;
  --nvg-space-medium: 20px;
  --nvg-container-max: 1800px;
  --nvg-container-narrow: 1500px;
}

.nvg-btn,
.wp-block-button .wp-block-button__link.wp-element-button {
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.9em;
  font-weight: 400;
  color: var(--nvg-color-text);
  background: none;
  border: 0;
  border-radius: 0;
  padding: 0;
  border-bottom: 1px solid var(--nvg-color-text);
  line-height: 1.3;
}

.nvg-btn:hover,
.nvg-btn:focus,
.wp-block-button .wp-block-button__link.wp-element-button:hover,
.wp-block-button .wp-block-button__link.wp-element-button:focus {
  color: var(--nvg-color-primary);
  background: none;
  border-bottom-color: var(--nvg-color-primary);
}

/* Variante contour → CTA rempli rouge (cf. .woocommerce .button, .bandeau_full a) */
.wp-block-button.is-style-outline .wp-block-button__link.wp-element-button {
  padding: var(--nvg-btn-padding-y) var(--nvg-btn-padding-x);
  background: var(--nvg-color-primary);
  color: var(--nvg-color-on-primary);
  border: 0;
  border-bottom: 0;
  box-shadow: none;
  letter-spacing: 0.2em;
  font-size: 1.1em;
  font-weight: 300;
}

.wp-block-button.is-style-outline .wp-block-button__link.wp-element-button:hover,
.wp-block-button.is-style-outline .wp-block-button__link.wp-element-button:focus {
  background: var(--nvg-color-primary-hover);
  color: var(--nvg-color-on-primary);
}

/* Secondaire : fond noir (cf. .button-vers-blog) */
.wp-block-button.is-style-secondary .wp-block-button__link.wp-element-button {
  background: #000000;
  color: #ffffff;
  border-bottom: 0;
  padding: var(--nvg-btn-padding-y) var(--nvg-btn-padding-x);
  letter-spacing: 0.2em;
}

.wp-block-button.is-style-secondary .wp-block-button__link.wp-element-button:hover,
.wp-block-button.is-style-secondary .wp-block-button__link.wp-element-button:focus {
  background: var(--nvg-color-secondary);
  color: #ffffff;
}

.nvg-accordion.nvg-accordion {
  --nvg-accordion-trigger-hover-bg: none;
  --nvg-accordion-icon-bg-open: none;
  --nvg-accordion-icon-color-open: var(--nvg-color-primary);
  margin-bottom: 5px;
  border: none;
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
  border: 1px solid #f2f2f2;
  background: #f5f5f5;
}
.nvg-accordion.nvg-accordion:hover {
  border-color: transparent;
  box-shadow: none;
  border-color: var(--nvg-color-primary);
}
.nvg-accordion.nvg-accordion.is-open {
  border-color: var(--nvg-color-primary);
  box-shadow: none;
}
.nvg-accordion.nvg-accordion .nvg-accordion__trigger {
  position: relative;
  padding: 15px 50px 15px 30px;
  font-size: 1.3em;
  font-weight: inherit;
  color: #2a2b2a;
  text-transform: none;
  letter-spacing: 0;
  transition: all 0.3s;
}
.nvg-accordion.nvg-accordion .nvg-accordion__trigger:hover {
  color: #000;
  background: #f5f5f5;
}
.nvg-accordion.nvg-accordion .nvg-accordion__trigger:focus-visible {
  outline: 2px solid var(--nvg-color-primary);
  outline-offset: -2px;
}
.nvg-accordion.nvg-accordion .nvg-accordion__trigger .nvg-accordion__icon {
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border-radius: 0;
  background: none;
}
.nvg-accordion.nvg-accordion .nvg-accordion__trigger .nvg-accordion__icon::before, .nvg-accordion.nvg-accordion .nvg-accordion__trigger .nvg-accordion__icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  background: var(--nvg-color-primary);
  border-radius: 1px;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
.nvg-accordion.nvg-accordion .nvg-accordion__trigger .nvg-accordion__icon::before {
  width: 2px;
  height: 24px;
  transform: translate(-50%, -50%);
}
.nvg-accordion.nvg-accordion .nvg-accordion__trigger .nvg-accordion__icon::after {
  width: 24px;
  height: 2px;
  transform: translate(-50%, -50%);
}
.nvg-accordion.nvg-accordion .nvg-accordion__trigger .nvg-accordion__icon.is-open::before {
  opacity: 0;
  transform: translate(-50%, -50%) scaleY(0);
}
.nvg-accordion.nvg-accordion .nvg-accordion__trigger .nvg-accordion__icon.is-open::after {
  transform: translate(-50%, -50%);
}
.nvg-accordion.nvg-accordion .nvg-accordion__trigger[aria-expanded=true] .nvg-accordion__icon::before {
  opacity: 0;
  transform: translate(-50%, -50%) scaleY(0);
}
.nvg-accordion.nvg-accordion .nvg-accordion__panel {
  border-top: none;
}
.nvg-accordion.nvg-accordion .nvg-accordion__panel-inner {
  padding: 15px 30px;
}

.nvg-card.nvg-card {
  border: 0;
  padding: var(--nvg-space-xlarge) var(--nvg-space-medium) var(--nvg-space-medium);
  box-shadow: none;
  background: var(--nvg-bg-light);
  color: var(--nvg-color-on-bg-light);
  border-bottom: 3px solid var(--nvg-color-primary);
}
.nvg-card.nvg-card .wp-block-heading {
  font-size: 1.5em;
  text-transform: none;
  font-weight: 400;
  color: var(--nvg-color-primary);
}
.nvg-card.nvg-card .nvg-icon--size-auto {
  width: 3rem;
}
.nvg-card.nvg-card .nvg-icon {
  margin-bottom: 1rem;
}
.nvg-card.nvg-card p {
  font-size: 1em;
}
.nvg-card.nvg-card.is-style-style-2 {
  background: var(--nvg-bg-light);
  color: var(--nvg-color-on-bg-light);
  border-bottom: 3px solid var(--nvg-color-secondary);
}
.nvg-card.nvg-card.is-style-style-3 {
  background: var(--nvg-color-primary);
  color: var(--nvg-color-on-primary);
  border-bottom: 3px solid var(--nvg-color-on-primary);
}

.nvg-contact-card.nvg-contact-card {
  --nvg-contact-card-icon-size: 2rem;
  --nvg-contact-card-icon-color: #fff;
  --nvg-contact-card-icon-bg: var(--nvg-color-primary);
  --nvg-contact-card-gap: 1.25rem;
  --nvg-contact-card-item-gap: 0.75rem;
}

.nvg-contact-card.nvg-contact-card--site-default {
  background: var(--nvg-bg-light);
  color: var(--nvg-color-on-bg-light);
  box-shadow: none;
  padding: var(--nvg-space-medium);
  border-left: 6px solid var(--nvg-color-primary);
}
.nvg-contact-card.nvg-contact-card--site-default .nvg-contact-card__icon {
  padding: 0.5rem;
  border-radius: 3rem;
}
.nvg-contact-card.nvg-contact-card--site-default .nvg-contact-card__title {
  font-size: 1.5em;
  font-weight: 400;
  text-transform: none;
  line-height: 1.3;
}
.nvg-contact-card.nvg-contact-card--site-default .nvg-contact-card__text a {
  position: relative;
  text-decoration: none;
}
.nvg-contact-card.nvg-contact-card--site-default .nvg-contact-card__text a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background-color: currentColor;
  transform: scaleX(1);
  transform-origin: left;
  transition: transform 0.25s ease;
}
.nvg-contact-card.nvg-contact-card--site-default .nvg-contact-card__text a:hover, .nvg-contact-card.nvg-contact-card--site-default .nvg-contact-card__text a:focus {
  color: var(--nvg-color-primary);
}
.nvg-contact-card.nvg-contact-card--site-default .nvg-contact-card__text a:hover::after, .nvg-contact-card.nvg-contact-card--site-default .nvg-contact-card__text a:focus::after {
  transform: scaleX(0);
}

.nvg-focus.nvg-focus {
  --nvg-focus-radius: 0;
  --nvg-focus-icon-size: 1.5rem;
  display: block;
  position: relative;
  border: 0;
  border-left: 4px solid var(--nvg-color-primary);
  padding: 20px 25px 20px 55px;
  margin-top: 25px;
  margin-bottom: 35px;
}
.nvg-focus.nvg-focus .nvg-focus__icon {
  position: absolute;
  left: 14px;
  top: 20px;
  font-size: 0.8em;
  background: var(--nvg-color-primary);
}
.nvg-focus.nvg-focus.is-style-style-2 {
  display: block;
  position: relative;
  border: 0;
  border-left: 4px solid var(--nvg-color-secondary);
  padding: 20px 25px 20px 55px;
  margin-top: 25px;
  margin-bottom: 35px;
}
.nvg-focus.nvg-focus.is-style-style-2 .nvg-focus__icon {
  background: var(--nvg-color-secondary);
}

.nvg-list.nvg-list {
  --nvg-list-accent-color: var(--nvg-color-primary);
  --nvg-list-gap-medium: 10px;
}

.nvg-titre-label.nvg-titre-label--site-default {
  background: var(--nvg-bg-light);
  color: var(--nvg-color-on-bg-light);
  padding: var(--nvg-space-small) var(--nvg-space-medium);
  border-left: 4px solid var(--nvg-color-primary);
}
