/* ---------------------------------------------------------------------------- */
/* Imports */
/* ---------------------------------------------------------------------------- */
.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}
.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  width: auto;
}

.clearfix:before, .clearfix:after {
  content: " ";
  display: table;
}
.clearfix:after {
  clear: both;
}

i[class^=icon],
i[class*=" icon"] {
  display: flex;
  align-items: center;
}

/* ---------------------------------------------------------------------------- */
/* Components - Buttons */
/* ---------------------------------------------------------------------------- */
.text-link:hover {
  text-decoration: underline;
}

.full-button .btn-holder {
  flex: 0 0 100%;
  max-width: 100%;
  box-shadow: 0 0 35px 5px rgba(0, 0, 0, 0.1);
}
@media (min-width: 576px) {
  .full-button .btn-holder {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
.full-button .btn-holder .button {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0;
  height: 150px;
}
@media (min-width: 992px) {
  .full-button .btn-holder .button {
    height: 190px;
  }
}
.full-button .btn-holder .button .icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  font-size: 100px;
  color: rgb(232.4042553191, 130.0957446809, 143.9042553191);
}
@media (min-width: 992px) {
  .full-button .btn-holder .button .icon {
    font-size: 135px;
  }
}
.full-button .btn-holder .button span {
  position: relative;
  z-index: 5;
  text-transform: uppercase;
}

.button {
  color: var(--color-white);
  text-decoration: none;
  background: none;
  cursor: pointer;
  padding: 14px 33px;
  transition: all 0.3s ease;
}
@media (min-width: 768px) {
  .button {
    padding: 14px 33px;
  }
}
.button.border-radius {
  border-radius: 7px;
}
.button.small-font {
  padding: 0.625rem 0.875em;
}

.outline-color-main {
  color: #c7243a !important;
  border: 2px solid #c7243a !important;
}
.outline-color-main:hover {
  box-shadow: inset 0 0 0 1px rgb(91.0319148936, 16.4680851064, 26.5319148936) !important;
  color: rgb(91.0319148936, 16.4680851064, 26.5319148936) !important;
  border: 2px solid rgb(91.0319148936, 16.4680851064, 26.5319148936) !important;
}

.opaque-color-main {
  border: 2px solid #c7243a !important;
  background: #c7243a !important;
  color: var(--color-white);
}
.opaque-color-main:hover {
  color: var(--color-white) !important;
  border: 2px solid rgb(91.0319148936, 16.4680851064, 26.5319148936) !important;
  background: rgb(91.0319148936, 16.4680851064, 26.5319148936) !important;
}

.outline-color-secondary {
  color: #ffb26d !important;
  border: 2px solid #ffb26d !important;
}
.outline-color-secondary:hover {
  box-shadow: inset 0 0 0 1px rgb(236.5, 111.7705479452, 0) !important;
  color: rgb(236.5, 111.7705479452, 0) !important;
  border: 2px solid rgb(236.5, 111.7705479452, 0) !important;
}

.opaque-color-secondary {
  border: 2px solid #ffb26d !important;
  background: #ffb26d !important;
  color: var(--color-black);
}
.opaque-color-secondary:hover {
  color: var(--color-white) !important;
  border: 2px solid rgb(236.5, 111.7705479452, 0) !important;
  background: rgb(236.5, 111.7705479452, 0) !important;
}

.outline-color-white {
  color: #ffffff !important;
  border: 2px solid #ffffff !important;
}
.outline-color-white:hover {
  box-shadow: inset 0 0 0 1px rgb(191.25, 191.25, 191.25) !important;
  color: rgb(191.25, 191.25, 191.25) !important;
  border: 2px solid rgb(191.25, 191.25, 191.25) !important;
}

.opaque-color-white {
  border: 2px solid #ffffff !important;
  background: #ffffff !important;
  color: var(--color-black);
}
.opaque-color-white:hover {
  color: var(--color-black) !important;
  border: 2px solid rgb(191.25, 191.25, 191.25) !important;
  background: rgb(191.25, 191.25, 191.25) !important;
}

.outline-color-black {
  color: #000000 !important;
  border: 2px solid #000000 !important;
}
.outline-color-black:hover {
  box-shadow: inset 0 0 0 1px black !important;
  color: black !important;
  border: 2px solid black !important;
}

.opaque-color-black {
  border: 2px solid #000000 !important;
  background: #000000 !important;
  color: var(--color-white);
}
.opaque-color-black:hover {
  color: var(--color-white) !important;
  border: 2px solid black !important;
  background: black !important;
}

/* ---------------------------------------------------------------------------- */
/* Components - Content-text */
/* ---------------------------------------------------------------------------- */
.style-h1,
h1 {
  font-size: clamp(7.0886075949vh, 5.5729166667vw, 7rem);
  line-height: 1.35;
}
@media (min-width: 768px) {
  .style-h1,
  h1 {
    line-height: 1.35;
  }
}

.style-h2,
h2 {
  font-size: clamp(2.3125rem, 2.96875vw, 3.5625rem);
  line-height: 1.35;
}
@media (min-width: 768px) {
  .style-h2,
  h2 {
    line-height: 1.35;
  }
}

.style-h3,
h3 {
  font-size: clamp(1.625rem, 1.875vw, 2.25rem);
  line-height: 1.35;
}
@media (min-width: 768px) {
  .style-h3,
  h3 {
    line-height: 1.35;
  }
}

.style-h4,
h4 {
  font-size: clamp(1.375rem, 1.40625vw, 1.6875rem);
  line-height: 1.75;
}
@media (min-width: 768px) {
  .style-h4,
  h4 {
    line-height: 1.35;
  }
}

.style-h5,
h5 {
  font-size: clamp(1rem, 0.9375vw, 1.125rem);
  line-height: 1.75;
}
@media (min-width: 768px) {
  .style-h5,
  h5 {
    line-height: 1.35;
  }
}

.style-h6,
h6 {
  font-size: clamp(1rem, 0.8333333333vw, 1rem);
  line-height: 1.75;
}
@media (min-width: 768px) {
  .style-h6,
  h6 {
    line-height: 1.35;
  }
}

.style-p,
p {
  font-size: clamp(1.125rem, 0.9375vw, 1.125rem);
  line-height: 1.75;
}
@media (min-width: 768px) {
  .style-p,
  p {
    line-height: 1.75;
  }
}

.style-font-menu-mobile,
font-menu-mobile {
  font-size: clamp(1.5rem, 3.5443037975vh, 1.75rem);
  line-height: 1;
}
@media (min-width: 768px) {
  .style-font-menu-mobile,
  font-menu-mobile {
    line-height: 1;
  }
}

.style-font-content-text {
  font-size: clamp(1rem, 0.8333333333vw, 1rem);
  line-height: 1.75;
}
@media (min-width: 768px) {
  .style-font-content-text {
    line-height: 1.75;
  }
}

.style-font-content-text-big {
  font-size: clamp(1.125rem, 1.1458333333vw, 1.375rem);
  line-height: 1.75;
}
@media (min-width: 768px) {
  .style-font-content-text-big {
    line-height: 1.75;
  }
}

.style-font-button, .text-link, .button {
  font-size: clamp(1.125rem, 0.9375vw, 1.125rem);
  line-height: 1.25;
}
@media (min-width: 768px) {
  .style-font-button, .text-link, .button {
    line-height: 1;
  }
}

.style-font-button-small, .text-link.small-font, .button.small-font {
  font-size: clamp(1rem, 0.8333333333vw, 1rem);
  line-height: 1.25;
}
@media (min-width: 768px) {
  .style-font-button-small, .text-link.small-font, .button.small-font {
    line-height: 1;
  }
}

.style-font-main-menu {
  font-size: clamp(1rem, 0.8333333333vw, 1.125rem);
  line-height: 1;
}
@media (min-width: 768px) {
  .style-font-main-menu {
    line-height: 1;
  }
}

.style-font-main-sub-menu {
  font-size: clamp(1rem, 0.8333333333vw, 1rem);
  line-height: 1;
}
@media (min-width: 768px) {
  .style-font-main-sub-menu {
    line-height: 1;
  }
}

.style-font-form {
  font-size: clamp(1.25rem, 1.0416666667vw, 1.25rem);
  line-height: 1;
}
@media (min-width: 768px) {
  .style-font-form {
    line-height: 1;
  }
}

/* Font Weight */
.fw-thin {
  font-weight: 100 !important;
}

.fw-extralight {
  font-weight: 200 !important;
}

.fw-light {
  font-weight: 300 !important;
}

.fw-regular {
  font-weight: 400 !important;
}

.fw-medium {
  font-weight: 500 !important;
}

.fw-semibold {
  font-weight: 600 !important;
}

.fw-bold {
  font-weight: 700 !important;
}

.fw-extrabold {
  font-weight: 800 !important;
}

.fw-black {
  font-weight: 900 !important;
}

/* Titles */
.suptitle {
  font: 400 1.5625rem/1.3 var(--font-main);
  margin-bottom: 30px;
}

/* Paragraphes */
.style-p strong,
p strong {
  font-weight: 700;
}

b, strong {
  font-weight: bold;
}

i, em {
  font-style: italic;
}

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sup {
  top: -0.4rem;
}

sub {
  bottom: -0.25rem;
}

.content-text,
.element_texte {
  /* ---------- Images ---------- */
}
.content-text > *:first-child,
.element_texte > *:first-child {
  margin-top: 0;
}
.content-text > *:last-child,
.element_texte > *:last-child {
  margin-bottom: 0;
}
.content-text .style-p,
.content-text p,
.element_texte .style-p,
.element_texte p {
  margin-bottom: 25px;
}
.content-text .style-p strong,
.content-text p strong,
.element_texte .style-p strong,
.element_texte p strong {
  font-weight: 700;
}
.content-text .style-p + *:not(p):not(ol):not(ul):not(img),
.content-text p + *:not(p):not(ol):not(ul):not(img),
.element_texte .style-p + *:not(p):not(ol):not(ul):not(img),
.element_texte p + *:not(p):not(ol):not(ul):not(img) {
  margin-top: 50px;
}
.content-text .style-p:last-of-type,
.content-text p:last-of-type,
.element_texte .style-p:last-of-type,
.element_texte p:last-of-type {
  margin-bottom: 0 !important;
}
.content-text hr,
.element_texte hr {
  height: 1px;
  display: block;
  margin: 3rem auto;
  background: var(--color-grey-light);
  border: none;
  clear: both;
}
.content-text img,
.element_texte img {
  border-radius: 2px;
}
.content-text .alignleft,
.element_texte .alignleft {
  float: left;
  max-width: 45%;
  margin: 5px 35px 15px 0;
}
.content-text .alignleft.wp-caption,
.element_texte .alignleft.wp-caption {
  margin-right: 2rem;
}
.content-text .alignright,
.element_texte .alignright {
  float: right;
  max-width: 45%;
  margin: 5px 0 15px 35px;
}
.content-text .alignright.wp-caption,
.element_texte .alignright.wp-caption {
  margin-left: 2rem;
}
.content-text .aligncenter,
.element_texte .aligncenter {
  padding: 10px 0;
  margin: 0 auto 2rem;
  clear: both;
}
.content-text .aligncenter.wp-caption,
.element_texte .aligncenter.wp-caption {
  max-width: 100%;
}
.content-text .wp-caption p,
.element_texte .wp-caption p {
  color: #888;
  font: italic 12px/16px var(--font-main);
  text-align: center;
  padding: 0 5px;
  margin: 10px 10px 0 0;
}