:root,
[data-bs-theme=light] {
  color-scheme: light;
  --bs-light-rgb: 255, 255, 255;
  --el-subtitle:#377A78;
  --el-gray:#f5f8ff;/*d1d8f3*/
  --el-gray-rgb:#f5f8ff;
  --el-lgray:#f7f7f7;
  --bs-border-color:#d1d8f3;
  --el-blue-rgb:206, 227, 250;
  --bs-nav-link-color:#38457a;
  --bs-white-rgb:255, 255, 255;
  --bs-primary:#37457A;
  --bs-primary-rgb:56,69,122;
  --bs-primary-bg-subtle:#d7dae5;  
  --bs-primary-border-subtle:#8b95bc; 
  --bs-primary-text-emphasis:#1c2249;  
  --bs-info:#6371A6;
  --bs-info-rgb:99,113,166;
  --bs-info-bg-subtle:#8F9BC9;
  --bs-info-border-subtle:#91A0D9; 
  --bs-info-text-emphasis:#475073; 
  --bs-warning:#e9c638;
  --bs-warning-rgb:233,198,56;
  --bs-warning-bg-subtle:#fdf5d1;
  --bs-warning-border-subtle:#f4e089;
  --bs-warning-text-emphasis:#1c2249;
  --bs-yellow-rgb:233,198,56;
  --bs-teal:#1a697d;
  --bs-teal-rgb:26,105,125;
  --bs-teal-bg-subtle:#d0e8ed;
  --bs-teal-border-subtle:#6baabb;
  --bs-teal-text-emphasis:#0f5567;
  --bs-secondary:#637278;
  --bs-secondary-rgb:99,114,120;
  --bs-secondary-bg-subtle:#dde0e1;
  --bs-secondary-border-subtle:#a7b0b3;
  --bs-secondary-text-emphasis:#2f373a;
  --bs-body-color:#1c1c1c;
  --bs-body-color-rgb:28,28,28;
  --bs-body-bg:#ffffff;
  --bs-body-line-height:1.65;
  --bs-link-color:#243063;
  --bs-link-color-rgb:36,48,99;
  --bs-link-hover-color:#1c2249;
  --bs-link-decoration:underline;
  --bs-nav-link-color:#38457a;
  --bs-font-sans-serif: 'Quicksand', system-ui, -apple-system, sans-serif;
  /*  Focus  */
  --eh-focus-inner:#38457a; 
  --eh-focus-outer:#e9c638;  
  --eh-focus-width:3px;
  --eh-header-height: 70px;
}

[data-bs-theme=dark] {
  color-scheme: dark;
  --bs-light-rgb:3,13,28;
  --el-subtitle:#e9c638;
  --el-gray:#020a1d;
  --el-gray-rgb:2,10,29;
  --bs-white-rgb:4,17,47;
  --el-lgray:#040713;
  --el-blue-rgb:25,43,62;
  --bs-body-bg:#030D26;
  --bs-body-bg-rgb:3,13,38;/*4,17,47;*/
  --bs-tertiary-bg:#1e2340;
  --bs-secondary-bg:#1a1f38;
  --bs-border-color:#2e3560;
  --bs-body-color:#e8eaf6;
  --bs-body-color-rgb:232,234,246;
  --bs-secondary-color:#a7b0b3;
  --bs-heading-color:#ffffff;
  --bs-primary:#8b9fd4;
  --bs-primary-rgb:139,159,212;
  --bs-primary-bg-subtle:#1e2340;
  --bs-primary-border-subtle:#38457a;
  --bs-primary-text-emphasis: #c5d0eb;
  --bs-teal:#4db88a;
  --bs-teal-rgb:77,184,138;
  --bs-teal-bg-subtle:#0d2a1e;
  --bs-teal-border-subtle:#1a6b4e;
  --bs-teal-text-emphasis:#0b5133;
  --bs-warning:#e9c638;
  --bs-warning-rgb:233,198,56;
  --bs-warning-bg-subtle:#2a2410;
  --bs-warning-border-subtle:#7a6118;
  --bs-warning-text-emphasis:#f4e089;
  --bs-yellow-rgb:167,176,179;
  --bs-secondary:#a7b0b3;
  --bs-secondary-rgb:167,176,179;
  --bs-secondary-bg-subtle:#1e2428;
  --bs-secondary-border-subtle:#3d4a4e;
  --bs-secondary-text-emphasis:#c8d0d3;
  --bs-link-color:#e9c638;
  --bs-link-color-rgb:233,198,56;
  --bs-link-hover-color:#c5d0eb;
  /* Focus  dark */
  --eh-focus-inner:#e9c638;
  --eh-focus-outer:#ffffff;
}
[data-bs-theme=dark] body {
  background-color: var(--bs-body-bg);
  /*background-image:
    linear-gradient(to left, rgba(var(--bs-light-rgb), .65) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(var(--bs-light-rgb), .65) 1px, transparent 1px),
    radial-gradient(circle 800px at 0% 200px, rgba(56, 69, 122, 0.25), transparent),
    radial-gradient(circle 600px at 100% 200px, rgba(56, 69, 122, 0.15), transparent);
  background-size: 96px 64px, 96px 64px, 100% 100%;*/
}
[data-bs-theme="dark"] .alert-warning {
      --bs-alert-color: var(--bs-body-color);
}
[data-bs-theme=dark] .btn-primary {
  --bs-btn-color: #1c2249;
  --bs-btn-bg:var(--bs-warning);
  --bs-btn-border-color:var(--bs-warning);
  --bs-btn-hover-color: #1c2249;
  --bs-btn-hover-bg: #d4b030;
  --bs-btn-hover-border-color: #d4b030;
  --bs-btn-active-color: #1c2249;
  --bs-btn-active-bg:#d4b030;
  --bs-btn-active-border-color:#d4b030;
}
[data-bs-theme=dark] .btn-warning {
  --bs-btn-color: #1c2249;
  --bs-btn-hover-color: #1c2249;
  --bs-btn-active-color: #1c2249;
}
[data-bs-theme=dark] .btn-secondary {
  --bs-btn-color: #12151f;
  --bs-btn-bg: #a7b0b3;
  --bs-btn-border-color: #a7b0b3;
  --bs-btn-hover-color: #12151f;
  --bs-btn-hover-bg:#c8d0d3;
  --bs-btn-hover-border-color: #c8d0d3;
}
[data-bs-theme=dark] .btn-outline-primary {
  --bs-btn-color:var(--bs-warning);
  --bs-btn-border-color:var(--bs-warning);
  --bs-btn-hover-bg:var(--bs-warning);
  --bs-btn-hover-border-color: var(--bs-warning);
  --bs-btn-hover-color:#1c2249;
  --bs-btn-active-bg:#d4b030;
  --bs-btn-active-border-color:#d4b030;
  --bs-btn-active-color:#1c2249;
}
[data-bs-theme=dark] h2,[data-bs-theme=dark] .h2 {
  color: var(--bs-warning);
}

*:focus         { outline: none; } 

*:focus-visible {
  outline:        var(--eh-focus-width) solid var(--eh-focus-inner);
  outline-offset: 0;
  box-shadow:     0 0 0 calc(var(--eh-focus-width) * 2) var(--eh-focus-outer);
  border-radius:  2px;
}

/* Surcharge des composants Bootstrap qui effacent le focus */
.btn:focus-visible,
.form-control:focus,
.form-select:focus,
.form-check-input:focus,
.nav-link:focus-visible,
.dropdown-item:focus-visible {
  outline:        var(--eh-focus-width) solid var(--eh-focus-inner);
  outline-offset: 0;
  box-shadow:     0 0 0 calc(var(--eh-focus-width) * 2) var(--eh-focus-outer);
}

.skip-link {
  position:        absolute;
  top:             -100%;
  left:            1rem;
  z-index:         9999;
  padding:         .75rem 1.5rem;
  background:      var(--bs-primary);
  color:           #ffffff;   
  font-weight:     700;
  font-size:       1rem;
  border-radius:   0 0 .5rem .5rem;
  text-decoration: none;
  transition:      top .2s ease;
}
.skip-link:focus {
  top: 0;
}
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration:        .01ms !important;
    animation-iteration-count: 1     !important;
    transition-duration:       .01ms !important;
    scroll-behavior:           auto  !important;
  }
}

html {
  font-size:18px; 
  scroll-behavior: smooth;
  /* WCAG 2.2 SC 2.4.11 : empêche le header sticky de masquer le focus */
  scroll-padding-top: var(--eh-header-height);
}


body {
  font-family:var(--bs-font-sans-serif);
  line-height:var(--bs-body-line-height);
  position: relative;
  /*background:radial-gradient(125% 125% at 50% 90%, #fff 40%, rgba(206, 227, 250,.88) 100%);/*
  background-image: 
    linear-gradient(to left, rgba(var(--bs-light-rgb), .65) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(var(--bs-light-rgb), .65) 1px, transparent 1px),
    radial-gradient(circle 800px at 0% 200px, rgba(206, 227, 250, 1), transparent),
    radial-gradient(circle 600px at 100% 200px, rgba(206, 227, 250, 0.2), transparent);
  background-size: 96px 64px, 96px 64px, 100% 100%;*/
}
/*body::before {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: radial-gradient(120% 120% at 50% 10%, #ffffff 40%, #6366f1 100%);
  z-index: -1;
  pointer-events: none;
}*/
a.blank::after {
    content: "\F1C5";
    font-family: "bootstrap-icons";
    margin-left: 0.3em;
}
.text-subtitle{color:var(--el-subtitle);font-weight:700;}
.py-5 {
  padding-top: 5rem !important;
  padding-bottom: 5rem !important;
}
/* NAVBAR TOGGLER */
.navbar-toggler {
  border: none !important;
  background-color: var(--bs-primary) !important;
  width: 50px;
  height: 50px;
  padding: 0 !important;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--bs-border-radius) !important;
}
.navbar-toggler-icon {
  background-image: none !important;
  position: relative;
  width: 28px !important;
  height: 3px !important;
  background-color:var(--bs-warning);
  transition: background-color 0.2s ease;
}
.navbar-toggler-icon::before,
.navbar-toggler-icon::after {
  content: "";
  position: absolute;
  width: 28px;
  height: 3px;
  background-color:var(--bs-warning);
  transition: transform 0.3s ease, top 0.3s ease, opacity 0.3s ease;
}
.navbar-toggler-icon::before { top: -8px; }
.navbar-toggler-icon::after  { top: 8px; }
.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon {
  background-color: transparent;
}
.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon::before {
  transform: rotate(45deg);
  top: 0; left: 0;
}
.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon::after {
  transform: rotate(-45deg);
  top: 0; left: 0;
}

.topbar{border-bottom:1px dashed rgba(100,118,126,.26);}
.topbar .dropdown-menu{z-index:1026;}
.bg-gray{background:var(--el-gray)}
.bg-lgray{background:var(--el-lgray)}
.bg-yellow{background:rgba(var(--bs-yellow-rgb),.11);border-bottom:1px dashed var(--bs-warning);border-top:1px dashed var(--bs-warning);}
.bg-gradient-blue{background:radial-gradient(120% 120% at 10% 50%, rgba(var(--el-blue-rgb),.22) 40%, rgba(var(--el-blue-rgb),1) 100%);}
.border-lblue{border-color:1px solid var(--bs-border-color);}
header{box-shadow:0px 10px 13px -7px var(--el-gray)}
/*.bg-light {--bs-bg-opacity: .5;}*/

/* HEADER  */
.nav-link,
.dropdown-item {
  min-height:  44px;
  display:     flex;
  align-items: center;
}
.navbar-nav .dropdown-menu { border: 1px solid var(--bs-border-color); border-radius: var(--bs-border-radius); }
.navbar-nav .nav-link {
  font-weight: 700;
  color: var(--bs-primary);
}
.navbar-nav .nav-link:hover {
  color: var(--bs-primary-text-emphasis);
}

.animHeader {
  transition: box-shadow 0.3s ease;
}
.animHeader.scrollAnim {
  box-shadow: 0 2px 26px rgba(0, 0, 0, 0.08);
}
ul.breadcrumb li:not(:last-child)::after {
  float: right;
  font-size:1rem;
  padding-left:.8rem;
  padding-right: .8rem;
  color: rgb(var(--bs-primary-rgb));
  content: var(--bs-breadcrumb-divider,"\F231");
  font-family:"bootstrap-icons";
}
ul.breadcrumb li a{font-size:.9rem;text-decoration:none;}
/*.hero-section{
	background-image: 
    linear-gradient(to left, rgba(var(--bs-light-rgb), 1) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(var(--bs-light-rgb), 1) 1px, transparent 1px),
    radial-gradient(circle 800px at 100% 200px, rgba(206, 227, 250, 0.518), transparent),
    radial-gradient(circle 600px at 0% 200px, rgba(206, 227, 250, 0.2), transparent);
  background-size: 96px 64px, 96px 64px, 100% 100%;
}*/

/* clamp() → titres lisibles à 320px sans overflow (reflow WCAG 1.4.10) */
h1,.h1 { font-size: clamp(1.75rem,4vw,2.5rem);}
h2,.h2 { font-size: clamp(1.4rem,3vw, 2rem);}
h3,.h3 { font-size: clamp(1.15rem,2.5vw,1.5rem);}
h4,.h4 { font-size: clamp(1.05rem,2vw,1.25rem);}
h1,.h1,h2,.h2{line-height: 1.2; margin-bottom: 1rem;color:var(--bs-primary);}
h3,.h3,h4,.h4{color:var(--bs-teal);font-weight:700;}
.section-title {
  position: relative;
  padding-bottom: .75rem;
  margin-bottom: 1.5rem;
}
.section-title::after,.step-number::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 48px;
  height: 3px;
  background: var(--bs-warning);
  border-radius: 2px;
}
.text-center .section-title::after,
.section-title.text-center::after {
  left: 50%;
  transform: translateX(-50%);
}
.list-icon {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.lead{ font-size: clamp(1.05rem, 2vw, 1.2rem);color:var(--bs-primary)}

a:not(.btn):not(.nav-link):not(.navbar-brand):not(.dropdown-item) {
  text-decoration: underline;
  text-decoration-style: dotted;
  text-underline-offset: 5px;
  transition: text-decoration-style 0.2s ease, text-decoration-thickness 0.2s ease;
}
a:not(.btn):not(.nav-link):not(.navbar-brand):not(.dropdown-item):hover {
  text-decoration-style: solid;
  text-decoration-thickness: 3px;
}

/* LAYOUT */
.container-fluid {
  padding-inline: clamp(1rem, 4vw, 4rem);
}

.container-wide {
  width: 100%;
  max-width: 1680px;
  margin-inline: auto;
  padding-inline: var(--bs-gutter-x, 1.5rem);
}

/* BOUTONS */
.btn {
  min-height: 48px;
  min-width:  48px;
  padding:    .6rem 1.5rem;
}

.btn-primary {
  --bs-btn-color: #ffffff;                      
  --bs-btn-bg:var(--bs-primary);
  --bs-btn-border-color:var(--bs-primary);
  --bs-btn-hover-color:#ffffff;
  --bs-btn-hover-bg:var(--bs-primary-text-emphasis);
  --bs-btn-hover-border-color:var(--bs-primary-text-emphasis);
  --bs-btn-active-color:#ffffff;
  --bs-btn-active-bg:var(--bs-primary-text-emphasis);
}

.btn-warning {
  --bs-btn-color:var(--bs-warning-text-emphasis);
  --bs-btn-bg:var(--bs-warning);
  --bs-btn-border-color:var(--bs-warning);
  --bs-btn-hover-color:var(--bs-warning-text-emphasis);
  --bs-btn-hover-bg: #d4b030;
  --bs-btn-hover-border-color: #d4b030;
  --bs-btn-active-color:var(--bs-warning-text-emphasis);
}

.btn-secondary {
  --bs-btn-color:#ffffff;                     
  --bs-btn-bg:var(--bs-secondary);
  --bs-btn-border-color:var(--bs-secondary);
  --bs-btn-hover-color:#ffffff;
  --bs-btn-hover-bg:var(--bs-secondary-text-emphasis);
  --bs-btn-hover-border-color:var(--bs-secondary-text-emphasis);
}

.btn-outline-primary {
  --bs-btn-color:var(--bs-primary);
  --bs-btn-border-color:var(--bs-primary);
  --bs-btn-hover-bg:var(--bs-primary);
  --bs-btn-hover-color:#ffffff;
  --bs-btn-active-bg:var(--bs-primary);
  --bs-btn-active-color: #ffffff;
}
.btn-outline-warning {
  --bs-btn-color:var(--bs-warning-text-emphasis);
  --bs-btn-border-color:var(--bs-warning);
  --bs-btn-hover-bg:var(--bs-warning);
  --bs-btn-hover-color:var(--bs-warning-text-emphasis);
  --bs-btn-active-color:var(--bs-warning-text-emphasis);
}
.btn-teal {
  --bs-btn-color:#ffffff;
  --bs-btn-bg:var(--bs-teal);
  --bs-btn-border-color:var(--bs-teal);
  --bs-btn-hover-color:#ffffff;
  --bs-btn-hover-bg:var(--bs-teal-text-emphasis);
  --bs-btn-hover-border-color:var(--bs-teal-text-emphasis);
  --bs-btn-active-color:#ffffff;
  --bs-btn-active-bg:var(--bs-teal-text-emphasis);
}
.btn-outline-teal {
  --bs-btn-color:var(--bs-teal);
  --bs-btn-border-color:var(--bs-teal);
  --bs-btn-hover-bg:var(--bs-teal);
  --bs-btn-hover-color:#ffffff;
  --bs-btn-active-bg:var(--bs-teal);
  --bs-btn-active-color:#ffffff;
}
[data-bs-theme=dark] .btn-teal {
  --bs-btn-color:var(--bs-teal-text-emphasis);
  --bs-btn-hover-color:#ffffff;
  --bs-btn-active-color:var(--bs-teal-text-emphasis);
}
[data-bs-theme=dark] .btn-outline-teal {
  --bs-btn-hover-color:var(--bs-teal-text-emphasis);
  --bs-btn-active-color:var(--bs-teal-text-emphasis);
}
/* FORMULAIRES — WCAG SC 1.3.1, 3.3.1, 3.3.3 */
.form-label {
  font-weight:   600;
  margin-bottom: .4rem;
}
.form-label .required,
label .required {
  color:       #c0392b;
  margin-left: .2rem;
  font-weight: 700;
  aria-hidden: true;
}
.invalid-feedback {
  display:     block;
  font-size:   .9rem;
  font-weight: 600;
  color:       #c0392b;
}

.form-control.is-invalid,
.form-select.is-invalid {
  border-color: #c0392b;
  border-width:  2px;
}

.logo{width: 235px;}
.st0{fill:#37457A;font-size:1.3rem;letter-spacing:2;}
.st1{fill:#E8C638; font-size:1rem;}
.st7{fill:#788990;font-size:.55rem;}
#footer .st1{font-size:.75rem;}
[data-bs-theme=dark] .st0,
[data-bs-theme=dark] .st7 { fill: #ffffff; }

.accordion-item h4 button span {
      font-size: clamp(1rem, 4vh, 1.1rem);
      color: var(--bs-secondary);
      font-weight: 700;
}
.accordion {
  --bs-accordion-bg: transparent;
  --bs-accordion-border-color: var(--bs-border-color);
}
.accordion-flush .accordion-item,
.accordion-item {
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--bs-border-color);
  margin-bottom: 0;
}
.accordion-flush .accordion-item:first-child,
.accordion-item:first-child {
  border-top: none;
}
.accordion-flush .accordion-item:last-child,
.accordion-item:last-child {border-bottom: none;}

.accordion-button:not(.collapsed) {background: transparent !important;}
.accordion-button {position: relative;}
.accordion-button::after {
  content: '';
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 32px;
  height: 32px;
  border: 2px solid var(--bs-border-color);
  border-radius: 50%;
  background-color: rgba(var(--bs-primary-rgb), 0.7);
  -webkit-mask-size: 32px;
  mask-size: 32px;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  transition: all 0.3s ease;
}
.accordion-button.collapsed::after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2'%3E%3Cline x1='12' y1='5' x2='12' y2='19'/%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2'%3E%3Cline x1='12' y1='5' x2='12' y2='19'/%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3C/svg%3E");
}
.accordion-button:not(.collapsed)::after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2'%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2'%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3C/svg%3E");
  transform: translateY(-50%);
}
.accordion-button:hover::after {
  background-color: rgba(var(--bs-primary-rgb), 1);
  border-color: var(--bs-primary);
}


/* Soft Morning Mist — blanc → bleu ciel → indigo doux */

#footer,.bg-morning-mist {
  background-image:
    linear-gradient(135deg,
      rgba(248, 250, 252, .25)   0%,
      rgba(219, 234, 254, .3) 30%,
      rgba(165, 180, 252, .2) 60%,
      rgba(129, 140, 248, .4) 100%
    ),
    radial-gradient(circle at 20% 30%, rgba(255, 255, 255, 0.6) 0%, transparent 40%),
    radial-gradient(circle at 80% 70%, rgba(199, 210, 254, 0.4) 0%, transparent 50%),
    radial-gradient(circle at 40% 80%, rgba(224, 231, 255, 0.3) 0%, transparent 60%);
}

[data-bs-theme=dark] .bg-morning-mist, [data-bs-theme=dark] #footer {
  background-image:
    linear-gradient(135deg,
      rgba(6, 11, 36,  1)  0%,
      rgba(30, 35, 64, 0.9) 30%,
      rgba(56, 69, 122, 0.7) 60%,
      rgba(28, 34, 73, 0.8) 100%
    ),
    radial-gradient(circle at 20% 30%, rgba(139, 159, 212, 0.15) 0%, transparent 40%),
    radial-gradient(circle at 80% 70%, rgba(56,  69,  122, 0.2)  0%, transparent 50%),
    radial-gradient(circle at 40% 80%, rgba(30,  35,  64,  0.3)  0%, transparent 60%);
}


.service-card {
    position: relative;
    border: 1px solid var(--bs-primary);
    border-left: 4px solid var(--bs-warning);
    border-radius:.88rem;
    padding: 1.2rem 1.5rem;
    transition: border-color .2s, background-color .15s;
}
.service-card:hover, .service-card:focus-within {
    border-color:var(--bs-primary);
    background-color: var(--el-lgray);
    box-shadow: 0 8px 24px rgba(0,0,0,.12);
}
.service-card .service-card-title {
    font-size: 1.2rem;
    font-weight: 600;
    margin-bottom: .5rem;
    line-height: 1.35;
}
.service-card .service-card-title a {
    color: var(--c-blugre);
    text-decoration: none;
}
.service-card .service-card-title a::after {
    content: '';
    position: absolute;
    inset: 0;
}
.service-card .service-card-title a:focus {
    outline: none;
}
.service-card:focus-within .service-card-title a:focus-visible ~ * {
    outline: none;
}
.service-card:has(a:focus-visible) {
    outline: 2px solid var(--bs-primary);
    outline-offset: 2px;
}
.service-card .service-card-text {
    font-size: .97rem;
    margin: 0;
    line-height: 1.55;
}

.step-item {
  display: flex;
  gap: 1.25rem;
  padding: 1.5rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.step-item:last-child {
  border-bottom: none;
}
.step-item .bi {
  font-size: 3rem; /* ai-2xl = 96px */
  flex-shrink: 0;
  line-height: 1;
}

.step-number {
  flex-shrink: 0;
  font-weight: 800;
  font-size:.88rem;
  color: var(--bs-warning);
  line-height: 1;
  min-width: 2.5rem;
}
.step-number.big-number{font-size:4rem;}
.step-content h3 {
  color: var(--bs-primary);
  font-size: 1.05rem;
  margin-bottom: 0.35rem;
}
.step-content p {
  font-size: 0.9rem;
  line-height: 1.65;
  margin-bottom: 0;
}

/* NAV PILLS */
.nav-pills .nav-link {
  color: var(--bs-primary);
  border: none;
  background-color: transparent;
  font-weight: 600;
  transition: background-color .2s ease, color .2s ease;
}

.nav-pills .nav-item:not(:last-child) .nav-link {
  border-right: 2px solid var(--bs-primary-border-subtle);
  border-radius: 0;
}

.nav-pills .nav-link:hover:not(.active) {
  background-color: var(--bs-primary-bg-subtle);
}

.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
  background-color: var(--bs-primary);
  color: #ffffff;
}

[data-bs-theme=dark] .nav-pills .nav-link.active,
[data-bs-theme=dark] .nav-pills .show > .nav-link {
  color: #1c2249;
}
/* TAB CONTENT  */
.tab-content {
  border-top: 3px solid var(--bs-warning);
  padding-top: 1.75rem;
}

.list-flow {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* SOCIAL SHARE BUTTONS */
.social-btnshare {
  position: fixed;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  z-index: 900;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.social-btnshare a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  color: #fff !important;
  font-size: 1.1rem;
  text-decoration: none;
  border-radius: 4px 0 0 4px;
  opacity: .82;
  box-shadow: -2px 2px 8px rgba(0,0,0,.18);
  transition: opacity .2s, transform .2s;
}
.social-btnshare a:hover {
  opacity: 1;
  transform: translateX(-5px);
}
.list-som{overflow-y: auto; max-height: 80vh;}
#GTMSHFacebook { background: #1877F2; }
#GTMSHPinterest  { background: #E60023; }
#GTMSHTwitter   { background: #14171A; }
#GTMSHLinkedIn  { background: #0A66C2; }

@media (max-width: 767.98px) {
  .social-btnshare {display: none; }
}

/* MENU 2 COLONNES */
@media (min-width: 992px) {
  .dropdown-2col {
    min-width: clamp(380px, 55vw, 860px);
  }
  .border-md-end {border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;}
}

.dropdown-parent-link {
  white-space: normal;
  font-weight: 700;
  color: var(--bs-primary);
  line-height: 1.3;
}
.dropdown-parent-link:hover,
.dropdown-parent-link:focus {
  color: var(--bs-primary-text-emphasis);
}

/* Séparateur vertical entre colonnes — masqué sur mobile */
.dropdown-2col .border-start {
  border-color: var(--bs-border-color) !important;
}
.dropdown-item.active, .dropdown-item:active {
  background-color: var(--bs-primary);color: var(--el-gray);
}
.dropdown-item:hover, .dropdown-item:focus {
  background-color: var(--el-gray);color: var(--bs-primary);
}
[data-bs-theme=dark] .dropdown-parent-link {
  color: var(--bs-primary-text-emphasis);
}
[data-bs-theme=dark] .dropdown-2col .border-start {
  border-color: var(--bs-border-color) !important;
}

/* Animation ouverture dropdown */
@keyframes dropdown-open {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (min-width: 992px) {
  .navbar .dropdown-menu.show,
  .topbar .dropdown-menu.show {
    animation: dropdown-open 0.22s cubic-bezier(0.16, 1, 0.3, 1) forwards;
  }
}

/* Module DEVIS */
.devis-option {
    cursor: pointer;
    display: block;
}
.devis-option input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    pointer-events: none;
}
.devis-option-inner {
    border: 2px solid var(--bs-border-color);
    border-radius: 12px;
    padding: 1.25rem .75rem;
    text-align: center;
    transition: border-color .15s, background .15s, box-shadow .15s;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    position: relative;
}
.devis-option-inner i {
    font-size: 2rem;

    transition: color .15s;
}
.devis-option-inner .devis-option-label {
    font-size: .875rem;
    font-weight: 500;
    line-height: 1.3;
    transition: color .15s;
}
.devis-option-check {
    position: absolute;
    top: .5rem;
    right: .5rem;
    width: 1.25rem;
    height: 1.25rem;
    border-radius: 50%;
    border: 2px solid var(--bs-border-color);
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all .15s;
    font-size: .6rem;
}
.devis-option:hover .devis-option-inner {
    border-color:var(--bs-primary);
    background:var(--el-gray);
}
.devis-option:hover .devis-option-inner i {
    color: var(--bs-primary);
}
/* Indicateur de focus clavier visible sur la carte */
.devis-option input[type="checkbox"]:focus-visible ~ .devis-option-inner {
    outline: 3px solid var(--el-subtitle);
    outline-offset: 3px;
}
.devis-option input[type="checkbox"]:checked ~ .devis-option-inner {
    border-color:var(--el-subtitle);
    background:var(--el-gray);
    box-shadow: 0 0 0 3px rgba(13,110,253,.15);
}
.devis-option input[type="checkbox"]:checked ~ .devis-option-inner i {
    color:var(--el-subtitle);
}
.devis-option input[type="checkbox"]:checked ~ .devis-option-inner .devis-option-label {
    color:var(--el-subtitle);
    font-weight: 600;
}
.devis-option input[type="checkbox"]:checked ~ .devis-option-inner .devis-option-check {
    background:var(--el-subtitle);
    border-color:var(--el-subtitle);
    color: #fff;
}
.iti {display: block !important;}
/* ===== Mega menu Nos services ===== */
.mega-services {
  position: static;
}
.mega-services > .dropdown-menu {
  border-radius: 0 0 var(--bs-border-radius-lg) var(--bs-border-radius-lg);
  border-top: 2px solid var(--bs-primary);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .1);
}
.mega-cat-title {
  display: block;
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--bs-primary);
  padding: .25rem .75rem;
  text-decoration: none;
}
a.mega-cat-title:hover {
  text-decoration: underline;
}
.mega-cat-divider {
  height: 1px;
  background-color: var(--bs-border-color);
  margin: .6rem .75rem;
}

/* ===== Page Reader Widget ===== */
.page-reader-widget {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  z-index: 1060;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .5rem;
}
.reader-fab {
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  background-color: var(--bs-primary);
  color: #fff;
  border: none;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .25);
  font-size: 1.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform .15s, box-shadow .15s;
}
.reader-fab:hover,
.reader-fab:focus-visible {
  transform: scale(1.1);
  box-shadow: 0 6px 18px rgba(0, 0, 0, .3);
  outline: 3px solid var(--bs-warning);
  outline-offset: 2px;
}
.reader-toolbar {
  background: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: var(--bs-border-radius-lg);
  padding: .45rem .55rem;
  box-shadow: 0 4px 16px rgba(0, 0, 0, .25);
  display: flex;
  align-items: center;
  gap: .3rem;
}
.reader-btn {
  width: 2.1rem;
  height: 2.1rem;
  border-radius: var(--bs-border-radius);
  background: transparent;
  border: 1px solid var(--bs-border-color);
  color: var(--bs-body-color);
  font-size: .95rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
}
.reader-btn:hover:not(:disabled),
.reader-btn:focus-visible:not(:disabled) {
  background: var(--bs-primary);
  color: #fff;
  border-color: var(--bs-primary);
  outline: 2px solid var(--bs-primary);
  outline-offset: 1px;
}
.reader-btn:disabled {
  opacity: .35;
  cursor: not-allowed;
}
.reader-btn-close:hover:not(:disabled),
.reader-btn-close:focus-visible:not(:disabled) {
  background: var(--bs-danger);
  border-color: var(--bs-danger);
  outline-color: var(--bs-danger);
}
.reader-speed {
  font-size: .8rem;
  border: 1px solid var(--bs-border-color);
  border-radius: var(--bs-border-radius);
  padding: 0 .4rem;
  background: var(--bs-body-bg);
  color: var(--bs-body-color);
  cursor: pointer;
  height: 2.1rem;
}
.reader-speed:focus-visible {
  outline: 2px solid var(--bs-primary);
  outline-offset: 1px;
}
.font-size-btn {
  font-weight: 700;
  font-size: .95rem;
  min-width: 2.1rem;
}

/*Clients Logo*/
.logo-carousel-wrapper {
  position: relative;
  width: 100%;
  height: 100px;
  overflow: hidden;
}
.logo-carousel {
  display: flex;
  width: max-content;    
  will-change: transform;
  animation: none;             
}
.logo-item {
  flex: 0 0 auto;             
  padding: 0 1.5rem;            
}
.logo-item img {
  display: block;
  width: 190px;                
  height: auto;
  aspect-ratio: 190 / 90;       
}
.logo-carousel.is-ready {
  animation: scroll-logos 50s linear infinite;
}
@keyframes scroll-logos {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* Carte SVG département — dark mode via toggle JS (data-bs-theme) */
[data-bs-theme="dark"] .dept-map {
  filter: brightness(.55) saturate(.8) hue-rotate(5deg);
}

@media (max-width: 991.98px) {
  .logo { width: 140px; }
  .st0{font-size:1.5rem;}
  .st1{font-size:.89rem;;}
  #footer .st1{font-size:.83rem;}
  .navbar-nav .dropdown-item { white-space: normal; line-height: 1.3; }
  #main_navbar { flex-wrap: wrap; }
  #main_navbar .navbar-collapse { order: 100; flex-basis: 100%; }
  #main_navbar .navbar-toggler,
  #main_navbar .navbar-brand,
  #main_navbar > .d-flex { flex-shrink: 0; }
  .dropdown-2col {
    min-width: 0;
  }
  .dropdown-2col .col-6 {
    width: 100%;
  }
  .dropdown-2col .border-start {
    border-left: none !important;
    border-top: 1px solid var(--bs-border-color);
    margin-top: .25rem;
    padding-top: .25rem;
  }
}

/* Slider témoignages */
#testimonials-carousel .carousel-control-prev,
#testimonials-carousel .carousel-control-next {
  width: 2.5rem;
  height: 2.5rem;
  top: 50%;
  bottom: auto;
  transform: translateY(-50%);
  border-radius: 50%;
  opacity: .85;
  background-color: var(--bs-primary);
}
#testimonials-carousel .carousel-control-prev:hover,
#testimonials-carousel .carousel-control-next:hover {
  opacity: 1;
}
#testimonials-carousel .carousel-indicators [data-bs-slide-to] {
  background-color: var(--bs-primary);
  opacity: .4;
}
#testimonials-carousel .carousel-indicators .active {
  opacity: 1;
}

