/* ════════════════════════════════════════════
   TARTEAUCITRON.JS COOKIE MANAGER CUSTOM STYLES
   Tailored to Notiss Premium & Luxury Design
   ════════════════════════════════════════════ */

/* --- Root & Global Reset Overrides to bypass Tailwind CSS conflicts --- */
#tarteaucitronRoot {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
  color: #333333;
}

#tarteaucitronRoot * {
  box-sizing: border-box !important;
}

/* Ensure buttons have pointer cursor and reset Tailwind's button styles */
#tarteaucitronRoot button,
#tarteaucitronRoot a {
  cursor: pointer !important;
  font-family: 'Inter', -apple-system, sans-serif !important;
  border-radius: 0 !important; /* Force rectangular design */
}

/* --- Cookie Banner (#tarteaucitronAlertBig) --- */
#tarteaucitronRoot #tarteaucitronAlertBig {
  background: #090514 !important; /* var(--c-notiss-dark) */
  color: #ffffff !important;
  border-radius: 0 !important; /* Rectangular shape */
  border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
  box-shadow: 0 -10px 40px rgba(0, 0, 0, 0.3) !important;
  padding: 24px 40px !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  bottom: 0 !important;
  text-align: left !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 24px !important;
  flex-wrap: wrap !important;
  z-index: 2147483645 !important;
}

/* Force hide banner when closed by JS or when modal is open */
#tarteaucitronRoot #tarteaucitronAlertBig[style*="display: none"],
#tarteaucitronRoot #tarteaucitronAlertBig[style*="display:none"],
.tarteaucitron-modal-open #tarteaucitronRoot #tarteaucitronAlertBig {
  display: none !important;
}

/* Text Container */
#tarteaucitronRoot #tarteaucitronDisclaimerAlert {
  color: rgba(255, 255, 255, 0.85) !important;
  font-size: 0.9rem !important;
  line-height: 1.6 !important;
  flex: 1 1 500px !important;
  max-height: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: inline-block !important;
}

#tarteaucitronRoot #tarteaucitronDisclaimerAlert strong {
  color: #ffffff !important;
  font-weight: 600 !important;
  font-size: 0.9rem !important;
}

/* Links inside the banner */
#tarteaucitronRoot #tarteaucitronDisclaimerAlert a,
#tarteaucitronRoot #tarteaucitronPrivacyUrlDialog,
#tarteaucitronRoot #tarteaucitronPrivacyUrl {
  color: #ffffff !important;
  text-decoration: underline !important;
  font-weight: 500 !important;
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 4px !important;
  display: inline-block !important;
  height: auto !important;
  transition: color 0.2s ease !important;
}

#tarteaucitronRoot #tarteaucitronDisclaimerAlert a:hover,
#tarteaucitronRoot #tarteaucitronPrivacyUrlDialog:hover,
#tarteaucitronRoot #tarteaucitronPrivacyUrl:hover {
  color: var(--c-blue-cta) !important;
}

/* Banner Button Wrapper (handled by flex wrap but we style the buttons individually) */
#tarteaucitronRoot #tarteaucitronAlertBig button.tarteaucitronCTAButton,
#tarteaucitronRoot #tarteaucitronAlertBig button#tarteaucitronCloseAlert,
#tarteaucitronRoot #tarteaucitronAlertBig button#tarteaucitronPersonalize2 {
  font-family: 'Plus Jakarta Sans', 'Inter', sans-serif !important;
  font-size: 0.8rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 12px 24px !important;
  border-radius: 0 !important; /* Rectangular buttons */
  margin: 0 4px !important;
  transition: all 0.2s ease-in-out !important;
  border: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 44px !important;
}

/* "Accepter tout" Button (CTA style) */
#tarteaucitronRoot #tarteaucitronAlertBig button#tarteaucitronCloseAlert {
  background-color: var(--c-blue-cta) !important;
  color: #090514 !important;
}

#tarteaucitronRoot #tarteaucitronAlertBig button#tarteaucitronCloseAlert:hover {
  background-color: #59D3F2 !important;
  transform: translateY(-1px) !important;
}

/* "Refuser tout" Button */
#tarteaucitronRoot #tarteaucitronAlertBig button.tarteaucitronDeny,
#tarteaucitronRoot #tarteaucitronAlertBig button#tarteaucitronRejectAlert2 {
  background-color: transparent !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.3) !important;
}

#tarteaucitronRoot #tarteaucitronAlertBig button.tarteaucitronDeny:hover,
#tarteaucitronRoot #tarteaucitronAlertBig button#tarteaucitronRejectAlert2:hover {
  border-color: #ffffff !important;
  background-color: rgba(255, 255, 255, 0.1) !important;
  transform: translateY(-1px) !important;
}

/* "Personnaliser" Button */
#tarteaucitronRoot #tarteaucitronAlertBig button#tarteaucitronPersonalize2 {
  background-color: transparent !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.3) !important;
}

#tarteaucitronRoot #tarteaucitronAlertBig button#tarteaucitronPersonalize2:hover {
  border-color: #ffffff !important;
  background-color: rgba(255, 255, 255, 0.1) !important;
  transform: translateY(-1px) !important;
}

/* Mobile responsive layout for banner */
@media (max-width: 768px) {
  #tarteaucitronRoot #tarteaucitronAlertBig {
    padding: 24px 20px !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 16px !important;
  }
  #tarteaucitronRoot #tarteaucitronDisclaimerAlert {
    flex: none !important;
    width: 100% !important;
    margin-bottom: 8px !important;
  }
  /* Stacking the buttons on mobile */
  #tarteaucitronRoot #tarteaucitronAlertBig button.tarteaucitronCTAButton,
  #tarteaucitronRoot #tarteaucitronAlertBig button#tarteaucitronCloseAlert,
  #tarteaucitronRoot #tarteaucitronAlertBig button#tarteaucitronPersonalize2 {
    width: 100% !important;
    margin: 4px 0 !important;
  }
}


/* --- Cookie Control Panel Modal (#tarteaucitron) --- */

/* Modal Overlay backdrop */
#tarteaucitronBack {
  background: rgba(9, 5, 20, 0.6) !important; /* Sleek dark overlay matching site */
  backdrop-filter: blur(4px) !important; /* Modern blur */
  z-index: 2147483646 !important;
}

#tarteaucitron {
  border-radius: 0 !important; /* Rectangular panel */
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.3) !important;
  border: 0 !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  z-index: 2147483647 !important;
  width: 90% !important;
  max-width: 720px !important;
  overflow: hidden !important;
}

/* On desktop centering */
@media (min-width: 768px) {
  #tarteaucitron {
    left: 50% !important;
    margin-left: -360px !important; /* half of max-width */
  }
}

.tarteaucitronBorder {
  border-radius: 0 !important;
  border: 0 !important;
  background: #ffffff !important;
  max-height: 80vh !important;
  display: flex !important;
  flex-direction: column !important;
}

/* Modal Title bar / Header */
#tarteaucitron #tarteaucitronServices .tarteaucitronMainLine {
  background: #090514 !important; /* Dark header */
  border: 0 !important;
  margin: 0 !important;
  padding: 30px 24px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
}

#tarteaucitron #tarteaucitronServices .tarteaucitronMainLine .tarteaucitronH2 {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 1.4rem !important;
  font-weight: 700 !important;
  color: #ffffff !important;
  margin: 0 0 10px 0 !important;
  float: none !important;
  display: block !important;
}

#tarteaucitron #tarteaucitronServices .tarteaucitronMainLine .tarteaucitronName {
  margin: 0 !important;
  float: none !important;
  text-align: center !important;
}

#tarteaucitron #tarteaucitronServices .tarteaucitronMainLine .tarteaucitronName a {
  color: #ffffff !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 700 !important;
  font-size: 1.4rem !important;
}

/* Sub-info in header */
#tarteaucitronInfo {
  background: transparent !important;
  color: rgba(255, 255, 255, 0.7) !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
  padding: 10px 0 !important;
  margin: 10px 0 0 0 !important;
  max-width: 100% !important;
  font-size: 0.85rem !important;
}

/* Style the global "TOUT ACCEPTER" and "TOUT REFUSER" buttons in the modal header */
#tarteaucitronRoot button#tarteaucitronAllAllowed,
#tarteaucitronRoot button#tarteaucitronAllDenied,
#tarteaucitronRoot button#tarteaucitronAllDenied2 {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 0.8rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
  padding: 10px 18px !important;
  height: 40px !important;
  border-radius: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  opacity: 1 !important;
  margin: 4px 6px !important;
  transition: all 0.2s ease-in-out !important;
}

#tarteaucitronRoot button#tarteaucitronAllAllowed {
  background-color: #1B870B !important; /* Premium Green */
  color: #ffffff !important;
  border: 1px solid #1B870B !important;
}

#tarteaucitronRoot button#tarteaucitronAllAllowed:hover {
  background-color: #156908 !important;
  border-color: #156908 !important;
}

#tarteaucitronRoot button#tarteaucitronAllDenied,
#tarteaucitronRoot button#tarteaucitronAllDenied2 {
  background-color: #9C1A1A !important; /* Premium Red */
  color: #ffffff !important;
  border: 1px solid #9C1A1A !important;
}

#tarteaucitronRoot button#tarteaucitronAllDenied:hover,
#tarteaucitronRoot button#tarteaucitronAllDenied2:hover {
  background-color: #7A1414 !important;
  border-color: #7A1414 !important;
}

/* Close buttons on modal */
#tarteaucitron #tarteaucitronClosePanel,
#tarteaucitronAlertSmall #tarteaucitronCookiesListContainer #tarteaucitronClosePanelCookie {
  background: transparent !important;
  color: rgba(255, 255, 255, 0.6) !important;
  font-size: 24px !important;
  font-weight: 300 !important;
  width: 44px !important;
  height: 44px !important;
  top: 15px !important;
  right: 15px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: color 0.2s ease !important;
  border-radius: 0 !important;
}

#tarteaucitron #tarteaucitronClosePanel:hover {
  color: var(--c-blue-cta) !important;
}

/* Replace text close button with a clean X symbol */
#tarteaucitron #tarteaucitronClosePanel {
  font-size: 0 !important; /* Hide "Close" text */
}
#tarteaucitron #tarteaucitronClosePanel::before {
  content: '×' !important;
  font-size: 32px !important;
  line-height: 1 !important;
}

/* Modal Content area */
#tarteaucitronServices {
  padding: 0 !important;
  margin: 0 !important;
  overflow-y: auto !important;
  flex-grow: 1 !important;
}

/* Clean up Category groups if dynamic grouping is enabled */
.asCatToggleBtn {
  background: #f4f6fc !important;
  color: #090514 !important;
  border: 0 !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 600 !important;
  padding: 12px 20px !important;
  margin-top: 15px !important;
  border-radius: 0 !important;
}

/* List Lines (Services list) */
#tarteaucitronServices ul {
  padding: 0 !important;
  margin: 0 !important;
}

#tarteaucitronServices li.tarteaucitronLine {
  background: #ffffff !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05) !important;
  padding: 20px 24px !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 16px !important;
  border-left: 0px !important; /* remove green/red border on the left */
  min-height: 80px !important;
  transition: background-color 0.2s ease !important;
}

#tarteaucitronServices li.tarteaucitronLine:hover {
  background: #F9F8F6 !important; /* var(--c-notiss-grey) */
}

/* Service details (left column) */
#tarteaucitronServices li.tarteaucitronLine .tarteaucitronName {
  flex: 1 1 auto !important;
  width: auto !important;
  margin: 0 !important;
  float: none !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
}

#tarteaucitronServices li.tarteaucitronLine .tarteaucitronName span.tarteaucitronH3 {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  color: #090514 !important;
  margin: 0 0 4px 0 !important;
}

#tarteaucitronServices li.tarteaucitronLine .tarteaucitronName a {
  font-size: 0.75rem !important;
  color: #6B5F4E !important; /* var(--c-muted) */
  text-decoration: underline !important;
  margin-top: 2px !important;
  font-weight: 400 !important;
}

#tarteaucitronServices li.tarteaucitronLine .tarteaucitronName a:hover {
  color: #090514 !important;
}

/* Service description popup/details block */
#tarteaucitronServices li.tarteaucitronLine .tarteaucitronName .tarteaucitronListCookies {
  font-size: 0.75rem !important;
  color: #6B5F4E !important;
  margin-top: 4px !important;
}

/* Ask/Allow/Deny buttons (right column) */
#tarteaucitronServices li.tarteaucitronLine .tarteaucitronAsk {
  flex-shrink: 0 !important;
  margin: 0 !important;
  float: none !important;
  display: flex !important;
  gap: 8px !important;
}

/* Allow & Deny Buttons inside modal list (only individual services) */
#tarteaucitronRoot #tarteaucitronServices li.tarteaucitronLine button.tarteaucitronAllow,
#tarteaucitronRoot #tarteaucitronServices li.tarteaucitronLine button.tarteaucitronDeny {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
  padding: 8px 16px !important;
  min-width: 90px !important;
  border-radius: 0 !important; /* Rectangular shape */
  border: 1px solid rgba(0, 0, 0, 0.1) !important;
  background: transparent !important;
  color: #090514 !important;
  transition: all 0.2s ease-in-out !important;
  opacity: 0.4 !important;
  text-align: center !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 36px !important;
}

/* Icon hiding inside buttons */
#tarteaucitronRoot #tarteaucitronServices button.tarteaucitronAllow .tarteaucitronCheck,
#tarteaucitronRoot #tarteaucitronServices button.tarteaucitronDeny .tarteaucitronCross {
  display: none !important;
}

/* Allow button hover and active state */
#tarteaucitronRoot #tarteaucitronServices button.tarteaucitronAllow:hover {
  opacity: 0.8 !important;
  background-color: rgba(27, 135, 11, 0.05) !important;
  border-color: #1B870B !important;
  color: #1B870B !important;
}

#tarteaucitronRoot #tarteaucitronServices li.tarteaucitronIsAllowed button.tarteaucitronAllow {
  background-color: #1B870B !important; /* Green */
  color: #ffffff !important;
  border-color: #1B870B !important;
  opacity: 1 !important;
}

/* Deny button hover and active state */
#tarteaucitronRoot #tarteaucitronServices button.tarteaucitronDeny:hover {
  opacity: 0.8 !important;
  background-color: rgba(156, 26, 26, 0.05) !important;
  border-color: #9C1A1A !important;
  color: #9C1A1A !important;
}

#tarteaucitronRoot #tarteaucitronServices li.tarteaucitronIsDenied button.tarteaucitronDeny {
  background-color: #9C1A1A !important; /* Red */
  color: #ffffff !important;
  border-color: #9C1A1A !important;
  opacity: 1 !important;
}

/* Save / Close footer area */
#tarteaucitronSave {
  background: #F9F8F6 !important; /* var(--c-notiss-grey) */
  border-top: 1px solid rgba(0, 0, 0, 0.05) !important;
  padding: 16px 24px !important;
  text-align: right !important;
  margin: 0 !important;
  width: 100% !important;
  flex-shrink: 0 !important;
  border-radius: 0 !important;
}

#tarteaucitronRoot button#tarteaucitronSaveButton {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 0.8rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 12px 24px !important;
  background-color: #090514 !important; /* Dark Notiss button */
  color: #ffffff !important;
  border: 0 !important;
  border-radius: 0 !important; /* Rectangular shape */
  transition: all 0.2s ease-in-out !important;
  height: 44px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

#tarteaucitronRoot button#tarteaucitronSaveButton:hover {
  background-color: var(--c-blue-cta) !important;
  color: #090514 !important;
}

/* Mobile responsive layout for modal services */
@media (max-width: 600px) {
  #tarteaucitron {
    width: 95% !important;
    max-height: 90vh !important;
  }
  #tarteaucitronServices li.tarteaucitronLine {
    flex-direction: column !important;
    align-items: stretch !important;
    padding: 16px !important;
    gap: 12px !important;
  }
  #tarteaucitronServices li.tarteaucitronLine .tarteaucitronAsk {
    width: 100% !important;
  }
  #tarteaucitronRoot #tarteaucitronServices button.tarteaucitronAllow,
  #tarteaucitronRoot #tarteaucitronServices button.tarteaucitronDeny {
    flex: 1 1 50% !important;
  }
}
