/* ============================================================
   SM.PRIVÉ — cookie consent skin (tarteaucitron)
   Loaded after vendors/tarteaucitron/css/tarteaucitron.min.css.

   The vendor stylesheet is written almost entirely in !important,
   so the overrides here have to match it. Brand tokens come from
   css/brand.css when the page loads it, with literal fallbacks for
   the legacy pages that do not.
   ============================================================ */

#tarteaucitronRoot {
  --tac-navy: var(--sm-navy, #163d6c);
  --tac-navy-2: var(--sm-navy-2, #0f2c50);
  --tac-coral: var(--sm-coral, #ed8d73);
  --tac-coral-2: var(--sm-coral-2, #e07555);
  --tac-green: var(--sm-green, #b2ceae);
  --tac-cream: var(--sm-cream, #fbf2e7);
  --tac-ink: var(--sm-ink, #33425c);
  --tac-ink-soft: var(--sm-ink-soft, #5d6a82);
  --tac-paper: var(--sm-paper, #ffffff);
  --tac-rule: var(--sm-rule, #e7e7e1);
  --tac-sans: var(--sm-sans, "Plus Jakarta Sans", "Lato", system-ui, sans-serif);
  --tac-serif: var(--sm-serif, "Fraunces", Georgia, serif);
}

/* The vendor puts #tarteaucitronAlertBig on content-box, and the legacy theme
   does the same to buttons — percentage flex bases then overflow their row. */
#tarteaucitronRoot #tarteaucitronAlertBig,
#tarteaucitronRoot #tarteaucitronAlertBig *,
#tarteaucitronRoot #tarteaucitron,
#tarteaucitronRoot #tarteaucitron * {
  box-sizing: border-box !important;
}

#tarteaucitronRoot,
#tarteaucitronRoot button,
#tarteaucitronRoot span,
#tarteaucitronRoot div,
#tarteaucitronRoot a,
#tarteaucitronRoot li {
  font-family: var(--tac-sans) !important;
}

/* Shared pill button geometry — every CTA is the same size and weight so
   accepting and refusing are given equal prominence. */
#tarteaucitronRoot #tarteaucitronAlertBig button,
#tarteaucitronRoot #tarteaucitron button.tarteaucitronAllow,
#tarteaucitronRoot #tarteaucitron button.tarteaucitronDeny,
#tarteaucitronRoot #tarteaucitron #tarteaucitronPrivacyUrlDialog,
#tarteaucitronRoot #tarteaucitron #tarteaucitronClosePanel {
  margin: 0 !important;
  border: 1px solid transparent !important;
  border-radius: 999px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  letter-spacing: .01em !important;
  cursor: pointer !important;
  transition: background-color .18s ease, color .18s ease,
              border-color .18s ease, box-shadow .18s ease !important;
}

/* The vendor prefixes every CTA with a ☐ / ✓ / ✗ glyph. The buttons are
   already labelled (and aria-labelled), so the glyphs are just noise. */
#tarteaucitronRoot .tarteaucitronCheck,
#tarteaucitronRoot .tarteaucitronCross {
  display: none !important;
}

#tarteaucitronRoot button:focus-visible,
#tarteaucitronRoot a:focus-visible {
  outline: 2px solid var(--tac-coral) !important;
  outline-offset: 2px !important;
}

/* ============================================================
   1. The banner
   A floating card rather than a full-bleed strip: it has to read as
   "above the page" on the white sections and on the navy footer alike,
   which a navy strip flush to the bottom edge does not.
   ============================================================ */

#tarteaucitronRoot #tarteaucitronAlertBig {
  box-sizing: border-box !important;
  left: 16px !important;
  right: 16px !important;
  bottom: 20px !important;
  top: auto !important;
  width: auto !important;
  max-width: 1180px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  background: var(--tac-cream) !important;
  color: var(--tac-navy) !important;
  text-align: left !important;
  border: 1px solid rgba(22, 61, 108, .10) !important;
  border-top: 4px solid var(--tac-coral) !important;
  border-radius: 18px !important;
  box-shadow: 0 30px 70px -22px rgba(15, 44, 80, .55),
              0 2px 10px rgba(15, 44, 80, .10) !important;
  overflow: hidden !important;
  animation: smpCookieRise .38s cubic-bezier(.22, .8, .36, 1) both;
}

@keyframes smpCookieRise {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  #tarteaucitronRoot #tarteaucitronAlertBig { animation: none !important; }
}

#tarteaucitronRoot #tarteaucitronAlertBig .smp-cc-inner {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: wrap !important;
  gap: 18px 36px !important;
  padding: 24px 30px !important;
}

#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert {
  display: block !important;
  flex: 1 1 380px !important;
  min-width: 0 !important;
  margin: 0 !important;
  text-align: left !important;
  color: var(--tac-ink) !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
}

/* Set by the banner copy in the cookie_consent translation files. */
#tarteaucitronRoot .smp-cc-title {
  display: block !important;
  margin-bottom: 6px !important;
  font-family: var(--tac-serif) !important;
  font-size: 22px !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  color: var(--tac-navy) !important;
}

#tarteaucitronRoot .smp-cc-body { display: block !important; }

#tarteaucitronRoot #tarteaucitronAlertBig .smp-cc-actions {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  flex: 0 1 auto !important;
}

#tarteaucitronRoot #tarteaucitronAlertBig br { display: none !important; }

#tarteaucitronRoot #tarteaucitronAlertBig button {
  padding: 13px 24px !important;
}

/* Accept — brand fill. */
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2 {
  background: var(--tac-coral) !important;
  color: var(--tac-navy-2) !important;
  border-color: var(--tac-coral) !important;
}
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2:hover {
  background: var(--tac-coral-2) !important;
  border-color: var(--tac-coral-2) !important;
}

/* Refuse — a fill of its own, same size and weight as accept. */
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2 {
  background: var(--tac-navy) !important;
  color: #fff !important;
  border-color: var(--tac-navy) !important;
}
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2:hover {
  background: var(--tac-navy-2) !important;
  border-color: var(--tac-navy-2) !important;
}

/* Customise + privacy policy — tertiary. */
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrl {
  background: transparent !important;
  color: var(--tac-navy) !important;
  border-color: rgba(22, 61, 108, .30) !important;
  padding: 13px 20px !important;
}
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert:hover,
#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrl:hover {
  background: rgba(22, 61, 108, .07) !important;
  border-color: rgba(22, 61, 108, .45) !important;
}

#tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrl {
  border-color: transparent !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

@media (max-width: 720px) {
  #tarteaucitronRoot #tarteaucitronAlertBig {
    left: 10px !important;
    right: 10px !important;
    bottom: 10px !important;
    max-height: 82vh !important;
    overflow-y: auto !important;
  }
  #tarteaucitronRoot #tarteaucitronAlertBig .smp-cc-inner {
    padding: 20px !important;
    gap: 16px !important;
  }
  #tarteaucitronRoot #tarteaucitronAlertBig .smp-cc-actions {
    width: 100% !important;
  }
  #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPersonalize2,
  #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronAllDenied2 {
    flex: 1 1 calc(50% - 5px) !important;
    text-align: center !important;
    justify-content: center !important;
  }
  #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronCloseAlert {
    flex: 1 1 100% !important;
  }
}

/* ============================================================
   2. The panel
   The vendor gives #tarteaucitron a max-height but no scroll container,
   so anything past the fold was unreachable. Turn it into a flex column:
   fixed header, scrolling body.
   ============================================================ */

#tarteaucitronRoot #tarteaucitron,
#tarteaucitronRoot div#tarteaucitron {
  box-sizing: border-box !important;
  top: 50% !important;
  left: 0 !important;
  right: 0 !important;
  bottom: auto !important;
  transform: translateY(-50%) !important;
  width: min(900px, calc(100% - 32px)) !important;
  max-width: none !important;
  margin: 0 auto !important;
  /* the vendor pins a height on small screens, which left a dead strip
     below the footer once the body became a scroll container */
  height: auto !important;
  max-height: min(88vh, 820px) !important;
  padding: 0 !important;
  background: var(--tac-paper) !important;
  border: 0 !important;
  border-radius: 20px !important;
  overflow: hidden !important;
  box-shadow: 0 50px 110px -35px rgba(15, 44, 80, .75) !important;
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronServices,
#tarteaucitronRoot #tarteaucitron div#tarteaucitronServices {
  display: flex !important;
  flex-direction: column !important;
  max-height: inherit !important;
  min-height: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: hidden !important;
  background: var(--tac-paper) !important;
}

#tarteaucitronRoot #tarteaucitron .tarteaucitronMainLine {
  flex: 0 0 auto !important;
}

/* The scrolling half. */
#tarteaucitronRoot #tarteaucitron .tarteaucitronBorder {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
  background: var(--tac-paper) !important;
  border: 0 !important;
  padding: 4px 0 14px !important;
}

#tarteaucitronRoot #tarteaucitron .tarteaucitronBorder::-webkit-scrollbar { width: 10px; }
#tarteaucitronRoot #tarteaucitron .tarteaucitronBorder::-webkit-scrollbar-thumb {
  background: rgba(22, 61, 108, .22);
  border: 3px solid var(--tac-paper);
  border-radius: 999px;
}

/* ---- Panel header ---- */
#tarteaucitronRoot #tarteaucitron .tarteaucitronMainLine,
#tarteaucitronRoot #tarteaucitron div#tarteaucitronMainLineOffset {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  position: relative !important;
  background: var(--tac-navy) !important;
  color: #fff !important;
  padding: 26px 32px 20px !important;
  margin: 0 !important;
  border: 0 !important;
}

#tarteaucitronRoot #tarteaucitron .tarteaucitronH1 {
  align-self: stretch !important;
  display: block !important;
  margin: 0 0 12px !important;
  padding-right: 90px !important; /* clears the close button */
  color: #fff !important;
  font-family: var(--tac-serif) !important;
  font-size: 24px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  text-align: center !important;
}

#tarteaucitronRoot #tarteaucitron div#tarteaucitronInfo {
  align-self: stretch !important;
  max-width: 620px !important;
  margin: 0 auto 18px !important;
  padding: 15px 0 !important;
  color: rgba(255, 255, 255, .84) !important;
  background: none !important;
  font-size: 14.5px !important;
  font-weight: 400 !important;
  line-height: 1.6 !important;
  text-align: center !important;
  border-top: 1px solid rgba(255, 255, 255, .16) !important;
  border-bottom: 1px solid rgba(255, 255, 255, .16) !important;
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronInfo br { display: none !important; }

#tarteaucitronRoot #tarteaucitron #tarteaucitronPrivacyUrlDialog {
  display: block !important;
  width: -moz-fit-content !important;
  width: fit-content !important;
  margin: 14px auto 0 !important;
  padding: 10px 20px !important;
  background: transparent !important;
  color: #fff !important;
  border-color: rgba(255, 255, 255, .45) !important;
}
#tarteaucitronRoot #tarteaucitron #tarteaucitronPrivacyUrlDialog:hover {
  background: rgba(255, 255, 255, .12) !important;
}

#tarteaucitronRoot #tarteaucitron .tarteaucitronMainLine .tarteaucitronName {
  width: auto !important;
  margin: 0 0 8px !important;
  padding: 0 !important;
  float: none !important;
  text-align: center !important;
}

#tarteaucitronRoot #tarteaucitron .tarteaucitronMainLine .tarteaucitronH2 {
  color: rgba(255, 255, 255, .70) !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
}

#tarteaucitronRoot #tarteaucitron .tarteaucitronMainLine .tarteaucitronAsk {
  display: flex !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}

#tarteaucitronRoot #tarteaucitron .tarteaucitronMainLine .tarteaucitronAsk button {
  padding: 12px 22px !important;
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronAllAllowed {
  background: var(--tac-coral) !important;
  color: var(--tac-navy-2) !important;
  border-color: var(--tac-coral) !important;
}
#tarteaucitronRoot #tarteaucitron #tarteaucitronAllAllowed:hover {
  background: var(--tac-coral-2) !important;
  border-color: var(--tac-coral-2) !important;
}

#tarteaucitronRoot #tarteaucitron .tarteaucitronMainLine #tarteaucitronAllDenied {
  background: #fff !important;
  color: var(--tac-navy) !important;
  border-color: #fff !important;
}
#tarteaucitronRoot #tarteaucitron .tarteaucitronMainLine #tarteaucitronAllDenied:hover {
  background: rgba(255, 255, 255, .82) !important;
}

/* Close — inside the header, not floating above the dialog. */
#tarteaucitronRoot #tarteaucitron #tarteaucitronClosePanel {
  position: absolute !important;
  top: 16px !important;
  right: 18px !important;
  left: auto !important;
  bottom: auto !important;
  width: auto !important;
  z-index: 3 !important;
  padding: 9px 18px !important;
  background: rgba(255, 255, 255, .14) !important;
  color: #fff !important;
  border-color: rgba(255, 255, 255, .30) !important;
  font-size: 13px !important;
}
#tarteaucitronRoot #tarteaucitron #tarteaucitronClosePanel:hover {
  background: rgba(255, 255, 255, .26) !important;
}

/* ---- Panel body ---- */
#tarteaucitronRoot #tarteaucitron .tarteaucitronTitle {
  margin: 0 !important;
  padding: 22px 30px 8px !important;
  background: transparent !important;
}

#tarteaucitronRoot #tarteaucitron .tarteaucitronTitle button,
#tarteaucitronRoot #tarteaucitron .asCatToggleBtn {
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  color: var(--tac-ink-soft) !important;
  font-size: 11.5px !important;
  font-weight: 700 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
}

#tarteaucitronRoot #tarteaucitron .tarteaucitronPlus::before {
  color: var(--tac-coral) !important;
}

#tarteaucitronRoot #tarteaucitron ul .tarteaucitronLine {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: wrap !important;
  gap: 14px 20px !important;
  margin: 0 !important;
  padding: 18px 30px !important;
  background: transparent !important;
  border: 0 !important;
  border-top: 1px solid var(--tac-rule) !important;
}

#tarteaucitronRoot #tarteaucitron ul li:first-child .tarteaucitronLine {
  border-top: 0 !important;
}

#tarteaucitronRoot #tarteaucitron ul .tarteaucitronLine .tarteaucitronName {
  flex: 1 1 260px !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  text-align: left !important;
}

#tarteaucitronRoot #tarteaucitron .tarteaucitronH3 {
  display: block !important;
  color: var(--tac-navy) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
}

#tarteaucitronRoot #tarteaucitron .tarteaucitronListCookies,
#tarteaucitronRoot #tarteaucitron ul .tarteaucitronLine .tarteaucitronName a {
  font-size: 12.5px !important;
  line-height: 1.5 !important;
}

#tarteaucitronRoot #tarteaucitron .tarteaucitronListCookies {
  color: var(--tac-ink-soft) !important;
}

#tarteaucitronRoot #tarteaucitron a {
  color: var(--tac-coral-2) !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}

/* Mandatory row: plain copy, no controls. */
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices_mandatory .tarteaucitronLine {
  color: var(--tac-ink) !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
}
#tarteaucitronRoot #tarteaucitron #tarteaucitronServices_mandatory .tarteaucitronH3 {
  font-size: 14px !important;
  font-weight: 400 !important;
  color: var(--tac-ink) !important;
}

/* Per-service allow / deny: an outlined pair that fills in on the choice. */
#tarteaucitronRoot #tarteaucitron ul .tarteaucitronLine .tarteaucitronAsk {
  display: flex !important;
  gap: 8px !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}

#tarteaucitronRoot #tarteaucitron ul .tarteaucitronLine .tarteaucitronAllow,
#tarteaucitronRoot #tarteaucitron ul .tarteaucitronLine .tarteaucitronDeny {
  padding: 9px 20px !important;
  font-size: 13px !important;
  background: transparent !important;
  color: var(--tac-navy) !important;
  border-color: rgba(22, 61, 108, .28) !important;
}

#tarteaucitronRoot #tarteaucitron ul .tarteaucitronLine .tarteaucitronAllow:hover,
#tarteaucitronRoot #tarteaucitron ul .tarteaucitronLine .tarteaucitronDeny:hover {
  background: rgba(22, 61, 108, .06) !important;
  border-color: rgba(22, 61, 108, .5) !important;
}

#tarteaucitronRoot #tarteaucitron ul .tarteaucitronLine.tarteaucitronIsAllowed .tarteaucitronAllow {
  background: var(--tac-green) !important;
  color: var(--tac-navy-2) !important;
  border-color: var(--tac-green) !important;
}

#tarteaucitronRoot #tarteaucitron ul .tarteaucitronLine.tarteaucitronIsDenied .tarteaucitronDeny {
  background: var(--tac-navy) !important;
  color: #fff !important;
  border-color: var(--tac-navy) !important;
}

/* ---- Panel footer ---- */
#tarteaucitronRoot #tarteaucitron #tarteaucitronSave {
  flex: 0 0 auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  margin: 0 !important;
  padding: 14px 30px !important;
  background: var(--tac-cream) !important;
  border-top: 1px solid var(--tac-rule) !important;
  /* hints that the list above keeps going */
  box-shadow: 0 -12px 16px -14px rgba(15, 44, 80, .55) !important;
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronSaveButton {
  margin: 0 !important;
  padding: 12px 28px !important;
  background: var(--tac-navy) !important;
  color: #fff !important;
  border: 1px solid var(--tac-navy) !important;
  border-radius: 999px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  transition: background-color .18s ease !important;
}
#tarteaucitronRoot #tarteaucitron #tarteaucitronSaveButton:hover {
  background: var(--tac-navy-2) !important;
  border-color: var(--tac-navy-2) !important;
}

#tarteaucitronRoot #tarteaucitron #tarteaucitronNoServicesTitle { display: none !important; }

@media (max-width: 720px) {
  #tarteaucitronRoot #tarteaucitron,
  #tarteaucitronRoot div#tarteaucitron {
    width: calc(100% - 20px) !important;
    max-height: 90vh !important;
  }
  #tarteaucitronRoot #tarteaucitron .tarteaucitronMainLine,
  #tarteaucitronRoot #tarteaucitron div#tarteaucitronMainLineOffset {
    padding: 26px 20px 22px !important;
  }
  #tarteaucitronRoot #tarteaucitron .tarteaucitronH1 {
    font-size: 22px !important;
    padding-right: 78px !important;
  }
  #tarteaucitronRoot #tarteaucitron ul .tarteaucitronLine,
  #tarteaucitronRoot #tarteaucitron .tarteaucitronTitle {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  #tarteaucitronRoot #tarteaucitron #tarteaucitronSave { padding: 14px 20px !important; }
  #tarteaucitronRoot #tarteaucitron #tarteaucitronSaveButton { width: 100% !important; }
  #tarteaucitronRoot #tarteaucitron ul .tarteaucitronLine .tarteaucitronAsk { width: 100% !important; }
  #tarteaucitronRoot #tarteaucitron ul .tarteaucitronLine .tarteaucitronAllow,
  #tarteaucitronRoot #tarteaucitron ul .tarteaucitronLine .tarteaucitronDeny {
    flex: 1 1 0 !important;
  }
}

/* ============================================================
   3. Floating re-open control
   ============================================================ */

#tarteaucitronRoot #tarteaucitronIcon {
  bottom: 16px !important;
  left: 16px !important;
  right: auto !important;
  width: auto !important;
  padding: 0 !important;
}

#tarteaucitronRoot #tarteaucitronIcon.tarteaucitronIconBottomRight {
  left: auto !important;
  right: 16px !important;
}

#tarteaucitronRoot #tarteaucitronIcon #tarteaucitronManager {
  background: var(--tac-cream) !important;
  color: var(--tac-navy) !important;
  border: 1px solid rgba(22, 61, 108, .14) !important;
  border-radius: 999px !important;
  width: 46px !important;
  height: 46px !important;
  padding: 8px !important;
  opacity: .8 !important;
  box-shadow: 0 8px 22px -12px rgba(15, 44, 80, .7) !important;
  transition: opacity .18s ease, transform .18s ease !important;
}
#tarteaucitronRoot #tarteaucitronIcon #tarteaucitronManager:hover { opacity: 1 !important; }

#tarteaucitronRoot #tarteaucitronIcon #tarteaucitronManager img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}

/* Footer / in-copy trigger */
[data-cookie-settings] { cursor: pointer; }
