@import url('https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,opsz,wght@0,6..12,200..1000;1,6..12,200..1000&display=swap');

:root {
  --color-primary: #00577B;
  --text-primary: #2A3139;
  --color-secondary: #97d422;
  --color-text: #172433;
  --color-border: #E5E5E5;
} 

html {
  font-size: 16px;
}

body {
  font-family: 'Nunito Sans', sans-serif !important;
}

/* Texte d'introduction pour la page organismes-membres */
.intro-text {
  margin-bottom: 2rem;
  font-size: 1.1rem;
  text-align: center;
}

.intro-text p {
  margin-bottom: 1rem;
}

.intro-text a {
  color: var(--color-primary);
  text-decoration: underline;
}

.intro-text a:hover {
  color: var(--color-secondary);
}

.h3 {
  font-size: 1.5rem;
}

.h4 {
  font-size: 1.125rem;
} 

.h3,
.h4 {
  font-weight: 600;
}

.btn-secondary {
  font-weight: 600;
  padding: .625rem 2rem;
  line-height: 26px;
  border-radius: 100px;
}

.btn-secondary,
.btn-secondary:hover,
.btn-secondary:focus,
:not(.btn-check)+.btn:active.btn-secondary,
.btn:first-child:active.btn-secondary,
.btn:focus-visible.btn-secondary {
  background-color: var(--color-secondary);
  border: 1px solid var(--color-secondary);
  box-shadow: none;
  color: var(--text-primary);
}

.organizations ul,
.map ul {
  margin: 0;
  padding: 0;
}

.organizations {
  text-align: center;
}

.organizations a {
  display: inline-block;
}

.organizations p:first-child {
  margin-bottom: 0;
}
.organizations p:first-child a {
  color: var(--color-secondary);
}

.organizations ul li {
  display: inline-block;
  padding: .25rem;
  margin: 0 .5rem 0;
}
.organizations ul li a:hover {
  transform: scale(1.1);
}

.organizations ul li a svg path {
  fill: #4d5968;;
}


.organizations .col-12 {
  margin-bottom: 1.5rem;
  border-bottom: 1px solid var(--color-secondary);
}
.organizations .col-12:last-child {
  margin-bottom: 0;
  border-bottom: none;
}


.organizations .organization-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.organizations .organization-logo-wrapper {
  min-height: 245px;
  max-height: 245px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
}

.organizations .logo {
  display: flex;
  width: 100%;
  max-width: 100%;
  min-height: 200px;
  max-height: 245px;
  align-items: center;
  justify-content: center;
  overflow: visible;
  background: transparent;
  position: relative;
}

.organizations .organization-title {
  min-height: 3rem;
  display: flex;
  align-items: flex-start;
  justify-content: center;
}

.organizations .logo-none {
  background-color: #B1B1B1;
  width: 300px;
  height: 300px;
  margin: 0 auto 1rem;
}

.organizations .logo img,
.organizations-logo-img {
  max-width: 245px !important;
  max-height: 245px !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  object-position: center !important;
  display: block !important;
  margin: 0 auto !important;
  /* Forcer les dimensions pour éviter le crop, même si l'image est déjà générée en carré */
  aspect-ratio: auto !important;
  /* Ignorer complètement les dimensions de l'image source */
  image-rendering: auto !important;
  box-sizing: border-box !important;
}

.organizations .logo:hover,
.organizations .logo-none:hover {
  filter: contrast(125%) brightness(125%);
  transition: transform .25s ease;
}


/* Map */

.map {
  position: relative;
  font-size: 1rem;
  color: #535968;
}

.map a {
  display: block;
  font-weight: 600;
}
.map a,
.map a:hover  {
  text-decoration: none;
  color: var(--text-primary);
}


.map ul li {
  list-style-type: none;
}

.text-ellipsis {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sidebar-custom  {
  position: relative;
  width: auto;
  height: 710px;
}
.sidebar-custom.hidden {
  display: none;
}

.sidebar-custom .custom-header {
  background-color: var(--color-primary);
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem 2rem;
}
.sidebar-custom .custom-header button:hover {
  background-color: transparent;
}
.sidebar-custom .custom-header .h3 {
  color: #FFF;
}
.sidebar-custom .custom-header #sidebarIcon img {
  filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(7499%) hue-rotate(136deg) brightness(107%) contrast(89%);
  display: inline-block;
  max-width: 1.75rem;
  max-height: 1.75rem;
  width: auto;
  height: auto;
}

.sidebar-custom #sidebarContent {
  background-color: #FFF;
  overflow-y: scroll;
  width: auto;
}

.sidebar-custom form input[type="text"] {
  padding: .75rem 1rem .75rem 3rem;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  color: var(--text-primary);
}
.sidebar-custom form input[type="text"]:focus {
  box-shadow: none;
  border-color: var(--color-primary);
}
.sidebar-custom form .content-search  {
  position: relative;
}
.sidebar-custom form .content-search img {
  display: inline-block;
  position: absolute;
  top: 50%;
  left: 1rem;
  transform: translateY(-50%);
}

.sidebar-custom form #ClearSearch {
  background-color: transparent;
  position: absolute;
  top: 50%;
  right: 1rem;
  transform: translateY(-50%);
  padding: 0;
}

.sidebar-custom  form .search-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background-color: #FEFEFE;
  max-height: 296px;
  height: auto;
  overflow-y: scroll;
  margin-top: .25rem;
  padding: 1rem;
  border: 1px solid var(--color-border);
  border-radius: 8px;
  z-index: 1000;
}
 
.sidebar-custom #sidebarContent #view-search .search-list > li:not(:last-child),
.sidebar-custom form .search-dropdown .search-list li:not(:last-child),
.sidebar-custom #sidebarContent #view-members .content-posts > li:not(:last-child) {
  margin-bottom: 1rem;
}

.sidebar-custom form .search-dropdown .search-list li a,
.sidebar-custom #sidebarContent #view-members .content-posts li .member-link,
.sidebar-custom #sidebarContent #view-search .search-list li a {
  font-size: 1rem;
}

.sidebar-custom form .search-dropdown .search-list li a:hover {
  color: var(--color-primary) !important;
}

.sidebar-custom #sidebarContent #view-categories .content-categories > li {
  padding: 0 0 .5rem;
  margin: 0 0 .5rem;
  border-bottom: 1px solid var(--color-border);
}
.sidebar-custom #sidebarContent #view-categories .content-categories li a {
  font-size: 1.125rem;
}

.sidebar-custom #sidebarContent #view-search .search-list li a,
.sidebar-custom #sidebarContent #view-members .content-posts li a {
  display: flex;
  align-items: center;
  gap: .75rem;
}
.sidebar-custom .details-header {
  position: relative;
}

.sidebar-custom .details-header-image {
  width: 100%;
  overflow: hidden;
}

.sidebar-custom .details-header-image img {
  width: 100%;
  height: auto;
  display: block;
}

.sidebar-custom .details-header-logo {
  background-color: #FEFEFE;
  border-radius: 50%;
  padding: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 120px;
  height: 120px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.sidebar-custom .details-logo-img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 50%;
}

.sidebar-custom .details-header-asset {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.sidebar-custom .details-header-actions {
  position: absolute;
  left: 2rem;
  bottom: -1.25rem;
  z-index: 10;
}

.sidebar-custom .details-action-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background-color: var(--color-primary);
  border-radius: 99px;
  text-decoration: none;
  transition: opacity 0.25s ease;
  flex-shrink: 0;
}

.sidebar-custom .details-action-btn:hover {
  opacity: 0.8;
}

.sidebar-custom .details-action-btn svg {
  width: 24px;
  height: 24px;
}

.sidebar-custom .details-status-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 1rem;
  background-color: #EEF7DB;
  border-radius: 99px;
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-primary);
  line-height: 24px;
  white-space: nowrap;
  height: 40px;
}

.sidebar-custom .details-content .details-services > ul {
  margin-left: 1.5rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--color-border);
}
.sidebar-custom .details-content .details-services ul li {
  list-style-type: disc;
}

.sidebar-custom .details-content .details-address-active {
  padding-top: 1.25rem;
}
.sidebar-custom .details-content .details-address-active > li:not(.last-contact-item):not(:last-child),
.sidebar-custom .details-content .details-address-active .map-others,
.sidebar-custom .details-content .details-address-active .map-others > li:not(:last-child),
.sidebar-custom .details-content .details-address > li:not(.last-contact-item):not(:last-child) {
  margin-bottom: 1rem;
}
.sidebar-custom .details-content .details-address-active > li:not(.last-contact-item):not(:last-child),
.sidebar-custom .details-content .details-address-active .map-others,
.sidebar-custom .details-content .details-address-active .map-others > li:not(:last-child),
.sidebar-custom .details-content .details-address > li:not(.last-contact-item):not(:last-child) {
  padding-bottom: 1rem;
}

.sidebar-custom .details-content .details-address-active > li:not(.last-contact-item):not(:last-child),
.sidebar-custom .details-content .details-address-active .map-others,
.sidebar-custom .details-content .details-address-active .map-others > li:not(:last-child),
.sidebar-custom .details-content .details-address > li:not(.last-contact-item):not(:last-child) {
  border-bottom: 1px solid var(--color-border);
}

.sidebar-custom .details-content .details-address-active > li.last-contact-item {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}

.sidebar-custom .details-content .details-address-active li a,
.sidebar-custom .details-content .details-address li a {
  color: var(--text-primary);
  text-decoration: none;
}

.sidebar-custom .details-content .details-address-active li a:hover,
.sidebar-custom .details-content .details-address li a:hover {
  color: var(--color-primary);
  text-decoration: underline;
}

.sidebar-custom .details-content .details-address-active li a ul li,
.sidebar-custom .details-content .details-address li a ul li {
  color: var(--text-primary);
}

.sidebar-custom .details-content-non-member {
  background-color: #FEFEFE;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.sidebar-custom .details-contact-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0;
  flex-wrap: nowrap;
}

.sidebar-custom .details-contact-item svg {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

.sidebar-custom .details-contact-link {
  color: var(--text-primary);
  text-decoration: underline;
  font-size: 1rem;
  font-weight: 600;
  line-height: 24px;
  word-break: break-word;
}

.sidebar-custom .details-contact-link:hover {
  color: var(--color-primary);
}

.sidebar-custom .details-contact-links {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.25rem;
  flex: 1;
  min-width: 0;
}

.sidebar-custom .details-contact-separator {
  color: var(--text-primary);
  font-weight: 400;
  margin: 0 0.25rem;
}

.sidebar-custom .details-address-section {
  margin-bottom: 1rem;
}

.sidebar-custom .details-address-section .h5 {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
  color: var(--text-primary);
}

.sidebar-custom .details-address-section ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.sidebar-custom .details-divider {
  height: 1px;
  background-color: #E5E5E5;
  margin: 1rem 0;
}

.sidebar-custom .details-content .details-address-active li a ul, 
.sidebar-custom .details-content .details-address li a ul {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.underline {
  text-decoration: underline;
}
 
.sidebar-custom #memberLegend {
  position: absolute;
  bottom: 5rem;
  font-size: .875rem;
  padding: 2rem;
  opacity: 0;
}

#showMapBtn {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
}

.map-container-wrapper  {
  display: none;
  position: relative;
  width: auto;
}
.map-container-wrapper.active {
  display: block;
  height: 710px;
}

#map-container {
  width: 100%;
  height: 100%;
}

#map-container .gm-style-mtc-bbw .gm-style-mtc:first-of-type > button,
#map-container .gm-style-mtc-bbw .gm-style-mtc:last-of-type > button {
 border-radius: 100px !important;
}

#map-container .gm-style-mtc-bbw .gm-style-mtc:first-of-type > button {
  margin-right: .5rem !important;
}

#map-container .custom-marker {
  cursor: pointer;
  background-color: var(--color-primary);
  position: relative;
  padding: .25rem;
  border-width: 2px;
  border-style: solid;
  border-radius: 8px;
  border-color: #FEFEFE;
  color: #FFF;
  transition: transform 0.2s ease;
}

#map-container [role="dialog"],
#map-container [role="dialog"] .gm-style-iw-ch {
  padding: 0 !important;
}
#map-container [role="dialog"] .gm-style-iw-d {
  overflow: auto !important;
}


#map-container [role="dialog"] button {
  background-color: var(--color-primary) !important;
  position: absolute !important;
  top: 1rem;
  right: 1rem;
  width: 2rem !important;
  height: 2rem !important;
} 
#map-container [role="dialog"] button span  {
  background-color: #FFF;
  margin: auto !important;
}

#map-container .gm-style img {
  max-width: 100% !important;
}

#map-container .pint {
  background-color: var(--text-primary);
  color: #FFF;
}

#map-container .pint-img img {
  width: auto;
  height: auto;
  object-fit: cover;
}
#map-container .pint-wrapper .gm-style-iw-t .gm-style-iw  {
  top: 5.5rem;
}
#map-container .pint-wrapper .gm-style-iw-t .gm-style-iw-tc::after {
  content: none !important;
}


/* 
#map-container .pint-img .pint-content .contactInfo li ul {
  display: flex;
  align-items: center;
  gap: 1rem;
}

#map-container .pint-img .pint-content .contactInfo > li:not(:last-child) {
  margin-bottom: .5rem;
  padding-bottom: .5rem;
  border-bottom: 1px dashed #000;
}

#map-container .pint-img .pint-content .pint-services-title span {
  background-color: var(--color-secondary);
  font-size: 1.125rem;
  font-weight: 600;
  display: inline-block;
  padding: .25rem .5rem;
  line-height: 20px;
  border-radius: 100px;
  color: #FFF;
}
#map-container .pint-img .pint-content .pint-services-content ul {
  margin-left: 1.5rem;
}
#map-container .pint-img .pint-content .pint-services-content ul li {
  font-weight: 500;
  list-style-type: disc;
} 
*/

#showSidebarBtn {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2000;
  white-space: nowrap;
}

/* Contrôles de zoom personnalisés */
#map-container .custom-zoom-controls {
  position: absolute;
  bottom: 1rem;
  left: 1rem;
  z-index: 1000;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  background-color: transparent;
}

#map-container .custom-zoom-controls .zoom-btn {
  width: 40px;
  height: 40px;
  background-color: var(--color-primary);
  color: #FEFEFE;
  border: 2px solid #FEFEFE;
  border-radius: 8px;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
  user-select: none;
}

#map-container .custom-zoom-controls .zoom-btn:hover {
  background-color: var(--color-secondary);
  transform: scale(1.05);
}

#map-container .custom-zoom-controls .zoom-btn:active {
  transform: scale(0.95);
}

#map-container .custom-zoom-controls .zoom-btn:focus {
  outline: 2px solid var(--color-secondary);
  outline-offset: 2px;
}

/* Note diverse dans les détails du membre */
.sidebar-custom .details-note-diverse {
  background-color: #F5F5F5;
  padding: 1rem;
  border-radius: 8px;
  border-left: 3px solid var(--color-primary);
}

.sidebar-custom .details-note-diverse p {
  margin-bottom: 0.5rem;
  color: var(--text-primary);
  font-size: 0.9rem;
  line-height: 1.5;
}

.sidebar-custom .details-note-diverse p:last-child {
  margin-bottom: 0;
}

/**
 * 2.0 Media Queries
 * ----------------------------------------------------------------------------
 */


/* Medium devices (tablets, 768px) */
@media (min-width: 768px) {
  
  .sidebar-custom #memberLegend {
    bottom: 0;
  }

}

@media (min-width: 992px) {

  .organizations .col-12 {
    margin-bottom: 3rem;
  }

}