:root {
  --sinebula-ultra-alpha: .075;
  --sinebula-alpha: .3;
  --sinebula-blue: rgb(78,0,218);
  --sinebula-dark-blue: rgb(46,1,128);
  --sinebula-light-grey: rgb(87,87,86);
  --sinebula-grey: rgb(44,43,47);
  --sinebula-dark-grey: rgb(11,14,20);
  --sinebula-grey-ultra-alpha: rgba(87,87,86,var(--sinebula-ultra-alpha));
  --sinebula-light-pink: rgb(250,140,207);
  --sinebula-light-pink-alpha: rgba(250,140,207,var(--sinebula-alpha));
  --sinebula-dark-pink: rgb(250,93,189);
  --sinebula-light-green: rgb(212,255,77);
  --sinebula-dark-green: rgb(0,160,96);
  
  --sinebula-boxed-container-fluid-max-width: 1320px;
  
  --sinebula-overlay: transparent;
  --sinebula-jumbo-blend-mode: hard-light;
  --sinebula-jumbo-overlay: var(--sinebula-blue);
}

body {
  --body-color: var(--sinebula-grey);
}

body.alt {
  --sinebula-light-pink: rgb(240,248,255);
  --sinebula-dark-pink: rgb(169,172,182);
  --sinebula-light-pink-alpha: rgba(240,248,255,var(--sinebula-alpha));
}

body.site * {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  --template-dark: var(--sinebula-grey);
  --body-color: var(--sinebula-grey);
}

/*
body.site:not(.offline) .site-grid {
  background-color: var(--sinebula-grey-ultra-alpha); // fond légèrement grisé pour utilisation blanc pur
}
*/

body.site.offline .outer {
  background: url('../../../../../images/sinebula-fond-overlay.webp');
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
}

body.site.offline .offline-card .header {
  color: var(--sinebula-blue);
  background-color: transparent;
  background-image: none;
  border-bottom: 1px solid var(--border-color);
}

body.site.offline h2,
.container-footer .site-description {
  color: var(--sinebula-blue);
  font-family: 'utopia-std-subhead', serif;
  font-weight: 600;
  font-style: italic;
}

.container, .container-fluid, .container-xxl, .container-xl, .container-lg, .container-md, .container-sm {
  padding-left: 1rem;
  padding-right: 1rem;
}

.container-header {
  background-color: transparent;
  background-image: none !important;
}

.container-banner {
  margin-bottom: 0 !important;
}

.container-component main {
  margin-top: 0 !important;
}

body.itemid-101 .container-header .container-nav {
  max-width: 840px;
}

.container-header .grid-child {
  padding-left: 1rem;
  padding-right: 1rem;
}

.container-header .site-description {
  display: none;
}

.container-header .mod-menu {
  justify-content: end;
  align-items: center;
}

.container-header .mod-menu > li > a {
  color: var(--sinebula-blue);
  font-weight: 700;
  font-size: 1rem;
}

.container-header .mod-menu > li > a:hover,
.container-header .mod-menu > li > a:active,
.container-header .mod-menu > li > a:focus {
  color: var(--sinebula-dark-blue);
}

.container-header .mod-menu > li.active::after, .container-header .mod-menu > li:hover::after {
  background: var(--sinebula-dark-pink);
}

@media (width >= 992px) {
  .container-header .mod-menu > li::after {
    opacity: .5;
    height: 3px;
  }
}

.container-footer {
  margin-top: 0;
  --footercolor: var(--sinebula-blue);
  --footerbg: var(--sinebula-light-pink);
  background-image: linear-gradient(180deg, var(--sinebula-light-pink) 0%, var(--sinebula-dark-pink) 100%);
}

.container-footer .grid-child {
  align-items: center;
  padding-top: 5rem;
  padding-bottom: 5rem;
}

@media (width >= 992px) {
  .container-footer .grid-child {
    align-items: end;
  }
}

.container-footer .site-description {
  color: var(--sinebula-blue);
  margin-left: 55px;
  font-size: 1.25rem;
  line-height: 1.2;
}

.container-footer .brand-logo {
  max-width: 200px;
}

.container-footer hr.brand-signature {
  max-width: 85px;
  border-width: 3px;
  border-color: var(--sinebula-blue);
  opacity: 1;
  margin-top: 3rem;
  margin-bottom: 3rem;
}

.container-footer .contact-info {
  margin-left: 55px;
}

.footer a:not(.btn):hover, .footer a:not(.btn):focus, .footer .btn-link:hover, .footer .btn-link:focus {
  color: var(--sinebula-dark-blue);
}

body.site.offline .header h2 {
  margin-bottom: 1.5rem;
  max-width: 280px;
  margin-left: auto;
  margin-right: auto;
  font-size: var(--h2size);
}

body.site.offline .offline-card .logo {
  width: 90%;
  height: auto;
}

body.site label {
  font-weight: bold;
  color: var(--template-text-dark);
}

body.site .form-control {
  border-color: var(--sinebula-blue);
  border-width: 3px;
  border-radius: .5rem;
}

.text-sinebula-blue {
  color: var(--sinebula-blue) !important;
}

.fullwidth {
  margin-left: calc( -50vw + 50%) !important;
  margin-right: calc( -50vw + 50% ) !important;
  max-width: calc( 100vw);
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  position: relative;
}

.fullwidth-bg-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  mix-blend-mode: multiply;
  background-color: transparent;
}

.color-overlay .fullwidth-bg-overlay {
  background-color: var(--sinebula-overlay);
}

body.alt .color-overlay .fullwidth-bg-overlay {
  background-color: rgba(255,0,0,0.5);
}

.fullwidth.boxed .container-fluid {
  max-width: var(--sinebula-boxed-container-fluid-max-width);
  margin: inherit auto;
  position: relative;
  z-index: 10;
}

.fullwidth h3 {
  font-size: 2rem;
  font-family: 'utopia-std-display', serif;
  font-weight: 700 !important;
}

@media (width >= 768px) {
  .fullwidth h3 {
    font-size: 3rem;
  }
}

.jumbo {
  position:relative;
}
.jumbo .jumbo-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  mix-blend-mode: var(--sinebula-jumbo-blend-mode);
  background-color: var(--sinebula-jumbo-overlay);
  background: linear-gradient(180deg, rgba(255,255,255,.8) 20%, var(--sinebula-blue) 80%);
}

.jumbo {
  display: flex;
  align-items: end;
  min-height: 100vh;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  padding-bottom: 2rem;
  padding-top: 6rem;
}

.jumbo .container {
  z-index: 10;
}

h1 {
  font-size: 3.5rem;
  font-family: 'utopia-std-display', serif;
  font-weight: 700 !important;
}

h2 {
  font-size: 2.5rem;
  font-family: 'utopia-std-subhead', serif;
  font-weight: 600 !important;
  font-style: italic;
  color: var(--sinebula-blue);
}

.jumbo h2 {
  color: var(--template-dark);
}

.jumbo h1 {
  font-size: 2rem;
  font-family: 'utopia-std-subhead', serif;
  font-weight: 600 !important;
  font-style: italic;
  color: var(--sinebula-blue);
}


.jumbo .manifesto h2 {
  font-family: 'utopia-std-display', serif;
  font-weight: 700 !important;
  font-style: normal;
  font-size: 1.25rem;
}


.sub-heading {
  font-weight: 700;
  font-size: 1.25rem;
}

.jumbo .sub-heading {
  font-size: 1.25rem;
}

.jumbo .manifesto p {
  font-weight: 400;
  font-size: 1rem;
}

.jumbo .manifesto p strong {
  display: inline;
  background-image: linear-gradient(90deg, var(--sinebula-light-pink-alpha) 0%, var(--sinebula-dark-pink) 20%, var(--sinebula-dark-pink) 80%, var(--sinebula-light-pink-alpha) 100%);
  background-repeat: no-repeat;
  background-size: 100% 3px;
  background-position: 0 100%;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  padding-bottom: 3px;
}


.jumbo .manifesto h2:not(:first-of-type) {
  margin-top: 3rem;
}

@media((width >= 768px) and (width < 1200px)) {
  .jumbo {
    align-items: center;
    padding-bottom: 0;
    padding-top: 0;
  }
  
  .jumbo h1 {
    font-size: 3rem;
  }
  .jumbo .sub-heading {
    font-size: 1.5rem;
  }
  
  .jumbo .manifesto h2 {
    font-size: 1.5rem;
  }
  
  .jumbo .manifesto p {
    font-size: 1.2rem;
  }
  
  h2 {
    font-size: 3rem;
  }
}

@media (width >= 1200px)  {
  .jumbo {
    align-items: center;
    padding-bottom: 0;
    padding-top: 0;
  }
  
  .jumbo h1 {
    font-size: 3.5rem;
  }
  
  .jumbo .sub-heading {
    font-size: 1.75rem;
  }
  
  .jumbo .manifesto h2 {
    font-size: 1.75rem;
  }
  
  .jumbo .manifesto p {
    font-size: 1.25rem;
  }
  
  h2 {
    font-size: 3.5rem;
  }
}


.text-utopia-std-subhead {
  font-family: 'utopia-std-subhead', serif;
  font-weight: 600;
  font-style: italic;
}

.com_content.view-article.legal h1 {
  color: var(--template-text-dark);
}

.com-content-article__body {
  min-height: 50vh;
}

.back-to-top-link,
.back-to-top-link:focus {
  color: var(--sinebula-blue);
  border: 3px solid var(--sinebula-blue);
  background-color: white;
  border-radius: .5rem;
}

.back-to-top-link:hover {
  border-color: var(--sinebula-blue);
  background-color: var(--sinebula-light-pink);
  color: var(--sinebula-blue);
}

.contact-form-section {
  min-height: 60vh;
  display: flex;
  align-items: center;
  background-color: var(--sinebula-dark-grey);
}



.btn {
  --btn-hover-color: var(--sinebula-blue);
  border-width: 3px;
  padding: .75rem 2rem;
  border-radius: 1.875rem;
}

@media (width >= 992px) {
  padding: .75rem 4rem;
}

.btn-primary {
  border-color: var(--sinebula-blue);
  background-color: white;
  color: var(--sinebula-blue);
  text-transform: uppercase;
  font-weight: 900;
  box-shadow: 3px 3px var(--sinebula-blue);
}

.btn-primary:hover,
.btn-primary:active,
.btn:first-child:active,
.btn-primary:focus {
  border-color: var(--sinebula-blue);
  background-color: var(--sinebula-light-pink);
}

.btn-lg {
  font-size: 1.25rem;
}

.section-description {
  font-size: 1.25rem;
}

.section__offre .grid-container {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, 1fr);
  width: 100%;
}

@media (width < 576px) {
  .section__offre .grid-container {
    grid-template-columns: 1fr;
  }
}

.section__offre .grid-item {
  background-color: white;
  border-radius: 2rem;
  box-shadow: 3px 3px var(--sinebula-dark-pink);
}

@media (width >= 576px) {
  .section__offre .grid-item-centered {
    grid-column: 1 / span 2;
    justify-self: center;
    width: calc(50% - 0.5rem);
  }
}


.bg-sinebula-grey-ultra-alpha {
  background: linear-gradient(-45deg, var(--sinebula-grey-ultra-alpha), white);
}

.bg-sinebula-blue {
  background-color: var(--sinebula-blue);
}

.logo-client-container {
  text-align: center;
  margin-bottom: 3rem;
}

.logo-client-img {
  max-height: 70px;
  max-width: 140px;
}

.border-sinebula-blue {
  border-color: var(--sinebula-blue) !important;
}

a {
  --link-color: var(--sinebula-blue);
  text-decoration: none;
}

a.card-link:hover {
  text-decoration: underline;
  --link-hover-color: var(--sinebula-dark-blue);
}

.text-white .fa-duotone {
  --fa-primary-color: white;
  --fa-secondary-color: white;
}