:root {
  --primary:#d3170f;
  --secondary:#3bb452;
  --ink:#212529;
  --muted:#707070;
  --line:#e8e8e8;
  --surface:#fff;
  --soft:#f5f7f9;
  --container:1140px;
  --motion-fast:200ms;
  --motion-panel:350ms;
  --motion-ease:cubic-bezier(.2,.7,.2,1);
  font-family:Poppins,Arial,sans-serif;
  color:var(--ink);
  font-synthesis:none;
  text-rendering:optimizeLegibility
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth
}
body {
  margin:0;
  font-size:14px;
  line-height:1.8;
  color:#707070;
  background:#fff
}
img {
  max-width:100%;
  height:auto;
  vertical-align:middle
}
a {
  color:var(--primary);
  text-decoration:none;
  transition:color var(--motion-fast) var(--motion-ease)
}
a:hover {
  color:#a4100b
}
button,input,select,textarea {
  font:inherit
}
button,a {
  touch-action:manipulation
}
button:focus-visible,a:focus-visible {
  outline:3px solid #78aaff;
  outline-offset:3px
}
h1,h2,h3,h4,h5,h6 {
  margin:0 0 1rem;
  color:var(--ink);
  font-weight:600;
  line-height:1.3
}
p {
  margin:0 0 1.25rem
}
ul {
  padding-left:1.25rem
}
.body {
  overflow:clip
}
.container {
  width:min(calc(100% - 32px),var(--container));
  margin-inline:auto
}
.row {
  display:flex;
  flex-wrap:wrap;
  margin-inline:-12px
}
.row>[class*="col"],.row>.col {
  padding-inline:12px;
  min-width:0
}
.col {
  flex:1 0 0%;
  width:100%;
  max-width:100%
}
.col-9 {
  width:75%
}
.col-lg-6,.col-md-6 {
  width:50%
}
.col-lg-4,.col-md-4 {
  width:33.3333%
}
.col-lg-3,.col-md-3 {
  width:25%
}
.col-lg-8 {
  width:66.6667%
}
.col-lg-9 {
  width:75%
}
.col-lg-5 {
  width:41.6667%
}
.col-lg-7 {
  width:58.3333%
}
.col-lg-12,.col-md-12 {
  width:100%
}
.row.align-items-center {
  align-items:center
}
.row.align-items-start {
  align-items:flex-start
}
.row.justify-content-center {
  justify-content:center
}
.row.justify-content-between {
  justify-content:space-between
}
.row.justify-content-end {
  justify-content:flex-end
}
.gy-5 {
  row-gap:3rem
}
.gy-4 {
  row-gap:1.5rem
}
.gy-3 {
  row-gap:1rem
}
.section {
  position:relative;
  padding:5rem 0
}
.section-height-3 {
  padding-block:3.5rem
}
.bg-transparent {
  background:transparent
}
.bg-primary {
  background:var(--primary)!important
}
.bg-light {
  background:#f4f6f8
}
.position-relative {
  position:relative
}
.position-absolute {
  position:absolute
}
.overflow-hidden {
  overflow:hidden
}
.border-0 {
  border:0
}
.border {
  border:1px solid var(--line)
}
.border-bottom {
  border-bottom:1px solid var(--line)
}
.rounded {
  border-radius:5px
}
.shadow,.box-shadow-none {
  box-shadow:0 5px 24px rgba(0,0,0,.08)
}
.z-index-0 {
  z-index:0
}
.z-index-1 {
  z-index:1
}
.m-0 {
  margin:0!important
}
.mt-0 {
  margin-top:0
}
.mt-3 {
  margin-top:1rem
}
.mt-4 {
  margin-top:1.5rem
}
.mb-0 {
  margin-bottom:0!important
}
.mb-1 {
  margin-bottom:.25rem
}
.mb-2 {
  margin-bottom:.5rem
}
.mb-3 {
  margin-bottom:1rem
}
.mb-4 {
  margin-bottom:1.5rem
}
.mb-4-5 {
  margin-bottom:2rem
}
.mb-5 {
  margin-bottom:3rem
}
.mt-5 {
  margin-top:3rem
}
.my-4 {
  margin-block:1.5rem
}
.my-5 {
  margin-block:3rem
}
.mx-auto {
  margin-inline:auto
}
.me-2 {
  margin-right:.5rem
}
.me-3 {
  margin-right:1rem
}
.me-4 {
  margin-right:1.5rem
}
.ms-1 {
  margin-left:.25rem
}
.ms-2 {
  margin-left:.5rem
}
.ms-3 {
  margin-left:1rem
}
.ms-4 {
  margin-left:1.5rem
}
.ms-5-5 {
  margin-left:3rem
}
.py-1 {
  padding-block:.25rem
}
.py-2 {
  padding-block:.5rem
}
.py-3 {
  padding-block:1rem
}
.py-4 {
  padding-block:1.5rem
}
.py-5 {
  padding-block:3rem
}
.px-2 {
  padding-inline:.5rem
}
.px-3 {
  padding-inline:1rem
}
.px-4 {
  padding-inline:1.5rem
}
.px-5 {
  padding-inline:3rem
}
.pt-5 {
  padding-top:3rem
}
.pb-3 {
  padding-bottom:1rem
}
.pb-5 {
  padding-bottom:3rem
}
.pb-5-5 {
  padding-bottom:3.5rem
}
.p-0 {
  padding:0
}
.d-flex {
  display:flex
}
.d-block {
  display:block
}
.d-inline-block {
  display:inline-block
}
.d-none {
  display:none!important
}
.flex-row {
  flex-direction:row
}
.flex-column {
  flex-direction:column
}
.flex-wrap {
  flex-wrap:wrap
}
.align-items-center {
  align-items:center
}
.align-items-start {
  align-items:flex-start
}
.align-items-end {
  align-items:flex-end
}
.justify-content-center {
  justify-content:center
}
.justify-content-between {
  justify-content:space-between
}
.justify-content-end {
  justify-content:flex-end
}
.text-center {
  text-align:center
}
.text-end {
  text-align:right
}
.text-uppercase {
  text-transform:uppercase
}
.text-capitalize {
  text-transform:capitalize
}
.text-decoration-none {
  text-decoration:none
}
.text-white,.text-color-light {
  color:#fff!important
}
.text-color-dark {
  color:#212529!important
}
.text-color-primary {
  color:var(--primary)!important
}
.font-weight-light {
  font-weight:300
}
.font-weight-medium {
  font-weight:500
}
.font-weight-semibold {
  font-weight:600
}
.font-weight-bold {
  font-weight:700
}
.line-height-1 {
  line-height:1
}
.line-height-3 {
  line-height:1.3
}
.line-height-5 {
  line-height:1.5
}
.text-1 {
  font-size:.75rem
}
.text-2 {
  font-size:.8125rem
}
.text-3 {
  font-size:.875rem
}
.text-4 {
  font-size:1rem
}
.text-5 {
  font-size:1.25rem
}
.text-6 {
  font-size:1.5rem
}
.text-12 {
  font-size:3rem
}
.text-13 {
  font-size:3.5rem
}
.ws-nowrap {
  white-space:nowrap
}
.float-end {
  float:right
}
.top-5 {
  top:5px
}
.gap-2 {
  gap:.5rem
}
.gap-3 {
  gap:1rem
}
.gap-4 {
  gap:1.5rem
}
.w-100 {
  width:100%
}
.h-100 {
  height:100%
}
.text-color-hover-primary:hover {
  color:var(--primary)
}
.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  border:1px solid transparent;
  border-radius:3px;
  padding:.75rem 1.4rem;
  cursor:pointer;
  font-weight:700;
  text-align:center;
  transition:background-color var(--motion-fast) var(--motion-ease),color var(--motion-fast) var(--motion-ease),border-color var(--motion-fast) var(--motion-ease)
}
.btn-primary {
  color:#fff;
  background:var(--primary)
}
.btn-primary:hover {
  color:#fff;
  background:#aa110b
}
.btn-secondary {
  color:#fff;
  background:#333
}
.btn-outline {
  background:transparent
}
.btn-outline.btn-secondary {
  border-color:#444;
  color:#333
}
.btn-outline.btn-secondary:hover {
  color:#fff;
  background:#333
}
.btn-rounded {
  border-radius:50px
}
.btn-py-2 {
  padding-block:.5rem
}
.btn-py-3 {
  padding-block:1rem
}
.form-control,select.form-control,textarea.form-control,input.form-control {
  width:100%;
  min-height:48px;
  padding:12px 16px;
  border:1px solid #d6d6d6;
  border-radius:3px;
  background:#fff;
  color:#333
}
.form-control:focus,select.form-control:focus,textarea.form-control:focus {
  border-color:inherit;
  outline:2px solid var(--primary);
  box-shadow:none
}
textarea.form-control {
  min-height:140px;
  resize:vertical
}
.form-group {
  margin-bottom:1rem
}
.form-row {
  display:flex;
  gap:1rem
}
.contact-form-success,.contact-form-error {
  margin:0 0 1rem;
  padding:1rem;
  border-radius:4px
}
.contact-form-success {
  background:#eaf7ed;
  color:#266c35
}
.contact-form-error {
  background:#fff0ef;
  color:#a4100b
}
.header-nav-main nav:not(.is-open) {
  display:none
}
.accordion-content[hidden] {
  display:none
}
.divider {
  height:1px;
  background:var(--line);
  margin:2rem 0
}
#header {
  position:relative;
  z-index:20;
  background:#fff;
  transition:box-shadow .2s
}
#header.is-sticky {
  box-shadow:0 4px 16px rgba(0,0,0,.1)
}
#header .header-body .container {
  width:100%;
  padding-inline:12px
}
@media (min-width:576px) {
  #header .header-body .container { max-width:540px }
  #header .header-nav-features {
    position:relative;
    padding-inline-start:20px;
    margin-inline-start:10px
  }
  #header .header-nav-features::before {
    content:"";
    position:absolute;
    inset-inline-start:0;
    top:50%;
    width:1px;
    height:16px;
    transform:translateY(-50%);
    background:rgba(0,0,0,.1)
  }
}
@media (min-width:768px) {
  #header .header-body .container { max-width:720px }
}
@media (min-width:992px) {
  #header {
    position:sticky;
    top:calc(-1 * var(--header-top-height, 78px))
  }
  #header .header-body .container { max-width:960px }
  #header .header-nav-bar > .container > .header-row { min-height:77px }
}
@media (min-width:1200px) {
  #header .header-body .container { max-width:1140px }
}
.header-body {
  background:#fff
}
.header-container {
  max-width:1170px
}
.header-row {
  min-height:76px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem
}
.header-body .header-row {
  min-height:62px
}
.header-body .header-row.py-2 {
  min-height:70px
}
.header-logo img {
  width:123px;
  height:auto
}
.header-column {
  display:flex;
  align-items:center;
  min-width:0
}
.header-column.justify-content-end {
  margin-left:auto
}
.header-social-icons,.social-icons {
  display:flex;
  gap:12px;
  list-style:none;
  padding:0;
  margin:0
}
.header-nav-bar {
  background:#fff
}
.header-nav-bar>.container>.header-row {
  min-height:82px
}
.header-nav-main nav {
  display:block
}
.nav {
  display:flex;
  list-style:none;
  margin:0;
  padding:0
}
.nav-link {
  display:block;
  padding:1rem 1.15rem;
  color:#444;
  font-weight:600
}

#footer .list .icon {
  flex-shrink:0;
  margin-inline-end:.75rem
}
.nav-link:hover,.nav-link.active {
  color:var(--primary);
  background:transparent
}
.header-nav-bar .btn-outline.btn-secondary {
  border-color:#26843b;
  color:#26843b
}
.header-nav-bar .btn-outline.btn-secondary:hover {
  color:#fff;
  background:#26843b
}
.dropdown {
  position:relative
}
.dropdown-menu {
  display:none;
  position:absolute;
  top:100%;
  left:0;
  z-index:5;
  min-width:245px;
  padding:.5rem 0;
  margin:0;
  list-style:none;
  background:#fff;
  box-shadow:0 6px 20px rgba(0,0,0,.14)
}
.dropdown:hover .dropdown-menu,.dropdown:focus-within .dropdown-menu,.dropdown.is-open .dropdown-menu {
  display:block
}
.dropdown-item {
  display:block;
  padding:.55rem 1rem;
  color:#333
}
.dropdown-item:hover {
  background:#f3f3f3;
  color:var(--primary)
}
.header-btn-collapse-nav {
  display:none;
  border:0;
  border-radius:3px;
  background:#333;
  color:#fff;
  padding:.75rem 1rem
}
.page-header {
  min-height:290px;
  padding:4rem 0 3rem;
  background-position:center;
  background-size:cover
}
.page-header .container {
  position:relative;
  z-index:1
}
.page-header h1 {
  font-size:2.5rem
}
.page-header h2 {
  font-size:1rem;
  color:#707070;
  font-weight:400
}
.custom-container-background {
  position:relative;
  margin-top:-100px;
  padding:3rem;
  background:#fff;
  box-shadow:0 4px 25px rgba(0,0,0,.08)
}
.custom-container-background:before {
  content:none
}
.custom-z-index-1 {
  z-index:2
}
.custom-big-text-1 {
  font-size:clamp(4rem,10vw,9.7rem);
  letter-spacing:.8px;
  position:relative;
  left:-100px;
  line-height:1;
  color:var(--primary)
}
.red-text {
  color:#B22011
}
.custom-divider {
  height:60px;
  width:1px;
  border-left:1px solid rgba(255,255,255,.2)
}
.custom-svg-position-1,.custom-svg-position-2,.custom-svg-position-3,.custom-svg-position-4,.custom-svg-position-5 {
  position:absolute;
  pointer-events:none;
  opacity:.48
}
.custom-svg-position-1 {
  top:-190px;
  left:-330px
}
.custom-svg-position-2 {
  top:210px;
  right:-47px
}
.custom-svg-position-3 {
  left:-30px;
  top:-40px
}
.custom-svg-position-4 {
  top:-430px;
  right:-100px
}
.custom-svg-position-5 {
  top:-60px;
  right:-15%;
  width:80%;
  height:100%;
  z-index:0
}
.page-header-svg-container {
  transform:rotate(280deg);
  position:relative;
  z-index:2;
  left:10%
}
.scroll-reveal {
  opacity:1;
  transform:none
}
.scroll-reveal.is-pending:not(:focus-within) {
  opacity:0;
  transform:translateY(22px);
  transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1);
  transition-delay:var(--reveal-delay,0ms)
}
.scroll-reveal.is-visible {
  opacity:1;
  transform:none;
  transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1);
  transition-delay:var(--reveal-delay,0ms)
}
path.scroll-reveal.is-visible {
  animation:draw-decorative-line 7s .1s both
}
@keyframes draw-decorative-line {
  from { stroke-dasharray:1600; stroke-dashoffset:1600 }
  to { stroke-dasharray:1600; stroke-dashoffset:0 }
}
@keyframes fade-up {
  from {
  opacity:0;
  transform:translateY(18px)
}
to {
  opacity:1;
  transform:none
}
}
section:has(.custom-big-text-1) {
  min-height:565px;
  padding-block:3.5rem
}
.partner-gallery,.logo-carousel {
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(120px,1fr);
  gap:2rem;
  overflow-x:auto;
  scroll-snap-type:x mandatory
}
.partner-gallery>*,.logo-carousel>* {
  scroll-snap-align:center
}
.partner-gallery img,.logo-carousel img {
  max-height:90px;
  width:auto;
  object-fit:contain
}
}
.lightbox-portfolio img {
  display:block
}
.feature-box {
  height:100%;
  padding:1.5rem;
  border:1px solid #eee;
  background:#fff
}
.feature-box h3 {
  font-size:1.2rem
}
.feature-box-icon img {
  width:80px;
  height:80px;
  object-fit:contain
}
.custom-view-more svg {
  transition:transform .3s ease
}
.custom-view-more:hover svg {
  transform:translateX(7px)
}
.custom-form-control-group-style-1 {
  display:flex
}
.custom-form-control-group-style-1 .form-control {
  height:60px;
  border-width:2px
}
.custom-form-control-group-style-1 .form-control:first-child {
  border-radius:35px 0 0 35px;
  border-right:0
}
.custom-form-control-group-style-1 .form-control:last-child {
  border-radius:0 35px 35px 0
}
.footer,.footer-like {
  color:#bbb;
  background:#202329
}
.footer a {
  color:#fff
}
.footer .section {
  padding-block:3rem
}
.page-content img {
  max-width:100%
}
.accordion-item {
  border-bottom:1px solid #ddd
}
.accordion-toggle {
  display:block;
  position:relative;
  padding:1rem 2.5rem 1rem 1rem;
  color:#222
}
.accordion-toggle:after {
  content:'+';
  position:absolute;
  right:.5rem;
  font-size:1.3rem
}
.accordion-toggle[aria-expanded="true"]:after {
  content:'−'
}
.accordion-content {
  padding:0 1rem 1rem
}
.list-icons {
  list-style:none;
  padding:0
}
.list-icons li {
  padding:.35rem 0
}
.social-icons a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  border-radius:50%;
  background:rgba(255,255,255,.1);
  color:#fff
}
.social-icons-icon-dark a,
#footer .social-icons-clean a {
  color:#212529;
  background:transparent
}
.social-icons-icon-dark a:hover,
#footer .social-icons-clean a:hover {
  color:var(--primary)
}
.custom-section-1 {
  position:relative
}
.background-image-wrapper {
  background-position:center;
  background-size:cover
}
section:has(.custom-big-text-1) .custom-big-text-1 {
  margin:51px 0 0!important;
  padding:0!important
}
section:has(.custom-big-text-1) .container.pb-5 {
  padding-bottom:1rem!important;
  margin-bottom:0!important
}
section:has(.custom-big-text-1)+section {
  padding-top:7rem!important
}
.custom-container-background {
  box-shadow:none
}
.scroll-to-top {
  position:fixed;
  right:10px;
  bottom:0;
  z-index:1040;
  display:block;
  min-width:50px;
  height:9px;
  padding:10px 10px 35px;
  border-radius:4px 4px 0 0;
  background:#404040;
  color:#fff;
  font-size:.8em;
  text-align:center;
  text-decoration:none;
  opacity:0;
  transition:opacity .3s
}
.scroll-to-top.visible {
  opacity:.75
}
.scroll-to-top:hover {
  color:#fff;
  opacity:1
}
@media(max-width:991px) {
  .scroll-to-top.hidden-mobile { display:none!important }
}
@media(min-width:576px) {
  .d-sm-block {
  display:block!important
}
.container {
  width:min(calc(100% - 40px),var(--container))
}
.col-sm-6 {
  width:50%
}
}
@media(min-width:768px) {
  .container {
  width:min(calc(100% - 48px),var(--container))
}
.col-md-4 {
  width:33.3333%
}
.col-md-6 {
  width:50%
}
.col-md-12 {
  width:100%
}
.my-md-5 {
  margin-block:3rem
}
}
@media(min-width:992px) {
  .d-lg-block {
  display:block!important
}
.d-lg-none {
  display:none!important
}
.container {
  width:min(calc(100% - 60px),var(--container))
}
.header-nav-main nav {
  display:block!important
}
.header-nav-main {
  margin-bottom:0!important
}
.header-nav-bar .header-row {
  justify-content:space-between
}
.dropdown:hover .dropdown-menu,.dropdown:focus-within .dropdown-menu {
  display:block
}
}
@media(max-width:991px) {
  .col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9 {
  width:50%
}
.header-nav-bar>.container>.header-row {
  min-height:auto;
  padding-block:.6rem
}
.header-nav-bar .header-row>.header-column {
  width:100%
}
.header-nav-bar .header-row.align-items-center {
  justify-content:space-between
}
.header-btn-collapse-nav {
  display:inline-flex;
  margin-left:auto
}
.header-nav-main nav {
  display:none;
  width:100%
}
.header-nav-main nav.is-open {
  display:block
}
.header-nav-main .nav {
  flex-direction:column
}
.header-nav-main .nav-link {
  padding:.7rem 1rem
}
.header-nav-main .dropdown-menu {
  position:static;
  box-shadow:none;
  padding-left:1rem
}
.header-nav-main .dropdown:hover .dropdown-menu {
  display:none
}
.header-nav-main .dropdown.is-open .dropdown-menu {
  display:block
}
.header-nav-bar .header-column>.header-row {
  flex-wrap:wrap
}
.header-nav-bar .header-column>.header-row>a.btn {
  display:none
}
.custom-big-text-1 {
  left:0
}
.custom-container-background {
  margin-top:-55px;
  padding:2rem
}
.page-header {
  min-height:240px
}
.section {
  padding-block:3.5rem
}
section:has(.custom-big-text-1) {
  min-height:510px;
  padding-block:1rem
}
section:has(.custom-big-text-1) .custom-big-text-1 {
  margin:0!important;
  padding:0!important
}
}
@media(max-width:767px) {
  .col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-3,.col-md-4,.col-md-6 {
  width:100%
}
.row {
  row-gap:1.25rem
}
.header-row {
  min-height:68px
}
.header-social-icons {
  display:none
}
.header-nav-features {
  font-size:.9rem
}
.custom-big-text-1 {
  font-size:4rem;
  padding-block:1rem
}
.page-header {
  min-height:205px;
  padding:3rem 0 2rem
}
.page-header h1 {
  font-size:2rem
}
.section {
  padding-block:2.75rem
}
.custom-container-background {
  padding:1.5rem;
  margin-top:-35px
}
.partner-gallery {
  gap:1rem
}
.form-row {
  display:block
}
.form-row>* {
  margin-bottom:1rem
}
.text-12 {
  font-size:2.4rem
}
.text-13 {
  font-size:2.8rem
}
.ws-nowrap {
  white-space:normal
}
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
  scroll-behavior:auto!important;
  animation-duration:.01ms!important;
  animation-iteration-count:1!important;
  transition-duration:.01ms!important
}
}
/* Vanilla carousel, partner cards and native image viewer. */
.logo-carousel,.partner-gallery {
  display:flex;
  align-items:stretch;
  gap:1.5rem;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scroll-snap-type:x mandatory;
  scrollbar-width:thin;
  padding-bottom:.5rem;
  user-select:none;
  -webkit-user-select:none;
  touch-action:pan-x pan-y;
  cursor:grab
}
.logo-carousel.is-dragging,.partner-gallery.is-dragging { cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto }
.logo-carousel img,.partner-gallery img { -webkit-user-drag:none;user-select:none;-webkit-user-select:none;pointer-events:none }
.logo-carousel>* {
  flex:0 0 14%;
  min-width:120px;
  display:grid;
  place-items:center;
  scroll-snap-align:center
}
.logo-carousel img {
  max-width:100%;
  max-height:90px;
  object-fit:contain
}
.partner-gallery>.portfolio-item {
  flex:0 0 calc((100% - 4.5rem)/4);
  min-width:200px;
  scroll-snap-align:start;
  transition:filter .25s ease
}
.thumb-info {
  position:relative;
  height:100%;
  background:#fff
}
.thumb-info-wrapper {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:180px;
  overflow:hidden;
  border:1px solid #eee
}
.thumb-info-wrapper>img {
  width:100%;
  height:160px;
  padding:15px;
  object-fit:contain
}
.thumb-info-title {
  display:block;
  padding:.75rem 0;
  color:#222
}
.thumb-info-inner {
  display:block
}
.thumb-info-type {
  display:block;
  color:#707070;
  font-size:.8rem
}
.thumb-info-action {
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  background:rgba(0,0,0,.35);
  opacity:0;
  transition:opacity var(--motion-fast) var(--motion-ease)
}
.thumb-info:hover .thumb-info-action,.thumb-info:focus-within .thumb-info-action {
  opacity:1
}
.thumb-info:hover .thumb-info-title,.thumb-info:focus-within .thumb-info-title {
  box-shadow:0 -8px 18px rgba(0,0,0,.14)
}
.thumb-info-action a {
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  border-radius:50%;
  background:#fff;
  color:var(--primary)
}
.partner-gallery-wrap {
  margin-block:1.5rem
}
.partner-gallery [data-carousel-clone] { pointer-events:none }
.faq-page .accordion-content {
  display:grid;
  grid-template-rows:0fr;
  opacity:0;
  transition:grid-template-rows var(--motion-panel) var(--motion-ease),opacity var(--motion-fast) var(--motion-ease)
}
.faq-page .accordion-content[hidden] { display:none }
.faq-page .accordion-content > .card-body {
  min-height:0;
  overflow:hidden;
}
.faq-page .accordion-content.is-open { grid-template-rows:1fr;opacity:1 }
.partenaires-page .partner-gallery-wrap { overflow:hidden }
.partenaires-page .partner-gallery { position:relative;touch-action:pan-x pan-y;cursor:grab }
.partenaires-page .partner-gallery > .portfolio-item { user-select:none;-webkit-user-select:none }
.partenaires-page .partner-gallery .thumb-info-title { transition:transform var(--motion-fast) var(--motion-ease),box-shadow var(--motion-fast) var(--motion-ease) }
.partenaires-page .partner-gallery .thumb-info:hover,
.partenaires-page .partner-gallery .thumb-info:focus-within { box-shadow:0 8px 24px rgba(0,0,0,.18) }
.partenaires-page .partner-gallery .thumb-info:hover .thumb-info-title,
.partenaires-page .partner-gallery .thumb-info:focus-within .thumb-info-title { z-index:2 }
:is(.particuliers-page,.contact-page,.professionnels-page) form.formToSend .form-control {
  min-height:42px;
  padding:8px 16px;
  border:0;
  border-radius:6px;
  background-color:#f4f4f4;
  color:#212529;
  line-height:25.9px
}
:is(.particuliers-page,.contact-page,.professionnels-page) form.formToSend select.form-control {
  appearance:none;
  padding:11.2px 40px 11.2px 16px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 12px center;
  background-size:16px 12px
}
:is(.particuliers-page,.contact-page,.professionnels-page) form.formToSend [type=submit] {
  padding:16px 38.4px;
  border:0;
  border-radius:999px;
  background:#26843b;
  color:#fff;
  line-height:21px
}
:is(.particuliers-page,.contact-page,.professionnels-page) form.formToSend [type=submit]:hover { background:#1e6c30 }
:is(.particuliers-page,.contact-page,.professionnels-page) form.formToSend .form-control:focus { background-color:#f4f4f4 }
.image-viewer {
  position:fixed;
  inset:0;
  max-width:min(90vw,1100px);
  max-height:90vh;
  padding:3rem;
  background:#171717;
  border:0;
  color:#fff
}
.image-viewer::backdrop {
  background:rgba(0,0,0,.84)
}
.image-viewer img {
  display:block;
  max-width:min(80vw,950px);
  max-height:75vh;
  margin:auto;
  object-fit:contain
}
.image-viewer button {
  position:absolute;
  border:0;
  border-radius:50%;
  width:44px;
  height:44px;
  background:rgba(255,255,255,.15);
  color:#fff;
  font-size:2rem;
  cursor:pointer
}
.image-viewer .viewer-close {
  top:12px;
  right:12px
}
.image-viewer .viewer-prev {
  left:10px;
  top:50%;
  transform:translateY(-50%)
}
.image-viewer .viewer-next {
  right:10px;
  top:50%;
  transform:translateY(-50%)
}
@media(max-width:767px) {
  .logo-carousel>* {
  flex-basis:40vw;
  min-width:120px
}
.partner-gallery>.portfolio-item {
  flex-basis:75vw
}
.image-viewer {
  padding:2.5rem 2rem
}
.image-viewer img {
  max-width:80vw;
  max-height:70vh
}
}
.form-input-custom-gobert {
  height:60px;
  line-height:1;
  padding:10px 30px;
  border:2px solid #ccc;
  border-radius:30px
}
.custom-form-control-group-style-1 .form-input-custom-gobert {
  border-radius:30px
}
#qstr {
  width:100%;
  padding:1.2rem 1rem;
  border:2px solid var(--primary);
  border-radius:8px;
  background:#fff;
  color:#000
}
@media(min-width:1200px) {
  .col-xl-3 {
  width:25%
}
.col-xl-5 {
  width:41.6667%
}
.col-xl-7 {
  width:58.3333%
}
.justify-content-xl-end {
  justify-content:flex-end
}
.text-xl-start {
  text-align:left
}
}
@media(min-width:768px) {
  .col-md-7 {
  width:58.3333%
}
}
@media(min-width:576px) {
  .col-sm-10 {
  width:83.3333%
}
}

/* Corrections de fidélité pour les bannières et contenus des pages internes. */
.page-header.page-header-modern {
  min-height: 0;
  padding: 0 !important;
  background-position: center;
}
.page-header.page-header-modern > .container {
  padding-top: 3rem;
  padding-bottom: 4rem;
  margin-bottom: 0 !important;
}
.page-header.page-header-modern .page-header-svg-container {
  display: none;
}
.page-header.page-header-modern .row {
  text-align: left !important;
}
.page-header.page-header-modern .breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  align-items: center;
  padding: 0;
  list-style: none;
}
.page-header.page-header-modern .breadcrumb li + li::before {
  content: "/";
  margin-right: .6rem;
  color: #707070;
}
.page-header.page-header-modern + section > .custom-container-background {
  margin-top: -5rem;
  padding: 0 0 1.2rem;
  isolation: isolate;
  background: #fff;
  box-shadow: none;
}
.page-header.page-header-modern + section > .custom-container-background::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  left: 50%;
  width: 125vw;
  height: 300px;
  transform: translateX(-50%);
  background: #fff;
}
.page-header.page-header-modern + section > .custom-container-background > .row {
  padding-top: 0 !important;
}
.page-header.page-header-modern + section > .custom-container-background > .row > .col {
  padding-inline: 0;
}
.page-header.page-header-modern + section .counters .counter strong {
  font-size: 3.5rem;
}
@media (max-width: 767px) {
  .page-header.page-header-modern > .container {
    padding-top: 2rem;
    padding-bottom: 3rem;
  }
  .page-header.page-header-modern + section > .custom-container-background {
    margin-top: -2rem;
    padding: 0 0 .5rem;
  }
  .page-header.page-header-modern + section > .custom-container-background::before {
    width: 150vw;
  }
  .page-header.page-header-modern + section .counters .counter strong {
    font-size: 2.5rem;
  }
}

@media (min-width: 992px) {
  .header-nav-bar > .container > .header-row > .header-column {
    width: 100%;
  }

  .header-nav-bar .header-column > .header-row {
    width: 100%;
    justify-content: space-between;
  }

  #header #mainNav > li > .nav-link {
    padding: 0 24px 0 0;
  }

  #header .header-nav-bar .btn-outline {
    padding: 12px 48px;
    border-width: 2px;
    white-space: nowrap;
  }
}

.gobert-consent-banner {
  position:fixed;
  z-index:2000;
  left:50%;
  bottom:16px;
  width:min(1120px,calc(100vw - 32px));
  transform:translateX(-50%);
  border:1px solid #d8dce0;
  border-left:4px solid var(--primary);
  border-radius:8px;
  background:#fff;
  box-shadow:0 8px 32px rgba(0,0,0,.2)
}
.gobert-consent-content {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:1.5rem;
  padding:1.1rem 1.35rem
}
.gobert-consent-content h2 {
  margin:0 0 .3rem;
  color:#212529;
  font-size:1.05rem;
  line-height:1.4
}
.gobert-consent-content p {
  margin:0;
  color:#444;
  font-size:.9rem;
  line-height:1.55
}
.gobert-consent-content p a { color:#a4100b;text-decoration:underline }
.gobert-consent-actions { display:flex;gap:.65rem }
.gobert-consent-actions button,.gobert-consent-manage {
  min-height:44px;
  padding:.65rem 1.15rem;
  border:2px solid var(--primary);
  border-radius:5px;
  background:var(--primary);
  color:#fff;
  font:inherit;
  font-weight:600;
  cursor:pointer
}
.gobert-consent-actions button:hover { background:#aa110b;border-color:#aa110b }
.gobert-consent-manage {
  position:fixed;
  z-index:1500;
  left:14px;
  bottom:14px;
  border-color:#d3170f;
  background:#fff;
  color:#a4100b;
  box-shadow:0 2px 10px rgba(0,0,0,.16)
}
.gobert-consent-manage:hover { background:#fff5f4 }
.gobert-consent-error {
  position:fixed;
  z-index:2001;
  left:14px;
  bottom:70px;
  max-width:min(380px,calc(100vw - 28px));
  margin:0;
  padding:.8rem 1rem;
  border:1px solid #e1b4b0;
  border-radius:6px;
  background:#fff;
  color:#7b211b;
  box-shadow:0 3px 16px rgba(0,0,0,.12);
  line-height:1.5
}
.privacy-confirmation {
  margin-top:2rem;
  padding:1rem 1.2rem;
  border-left:3px solid #d3170f;
  background:#f7f7f7
}
.formToSend .is-invalid {
  border-color: #b42318 !important;
  box-shadow: 0 0 0 2px rgba(180, 35, 24, .12) !important;
}
.field-validation-message {
  display:block;
  margin-top:.35rem;
  color:#b42318;
  font-size:.82rem;
  line-height:1.4;
}
.field-validation-message[hidden] { display:none; }
.custom-form-control-group-style-1 + .field-validation-message,
.form-control-group + .field-validation-message { margin-top:-.55rem;margin-bottom:.75rem; }
@media(max-width:700px) {
  .gobert-consent-banner { bottom:8px;width:calc(100vw - 16px) }
  .gobert-consent-content { grid-template-columns:1fr;gap:.85rem;padding:1rem }
  .gobert-consent-actions button { flex:1 1 0;padding-inline:.6rem }
  .gobert-consent-manage { left:8px;bottom:8px }
  .gobert-consent-error { left:8px;bottom:64px;max-width:calc(100vw - 16px) }
}

/* Consistent feedback for shared controls, including forms and consent. */
:where(button,[type=submit],.social-icons a,.thumb-info,.thumb-info-action a,.form-control) {
  transition:background-color var(--motion-fast) var(--motion-ease),color var(--motion-fast) var(--motion-ease),border-color var(--motion-fast) var(--motion-ease),box-shadow var(--motion-fast) var(--motion-ease);
}
.form-control:focus-visible {
  outline:2px solid var(--primary);
  outline-offset:3px;
}
:where(button,[type=submit]):disabled {
  cursor:wait;
  opacity:.65;
}
@media(prefers-reduced-motion:reduce) {
  .scroll-reveal { transition-delay:0ms!important }
}