/* Bandeau cookies et Préférences cookies (Figma) : bandeau carte blanche en bas d'écran, dialogue 640 sur voile ; mobile pleine largeur. */
.cmp { position: fixed; inset: auto 0 0 0; z-index: var(--z-cookies); padding: 0; pointer-events: none; }
.cmp__banner { pointer-events: auto; }
.cmp[hidden] { display: none; }
.cmp__banner { background: var(--brandt-white); border-radius: 0; box-shadow: var(--shadow-float-up); padding: var(--space-20) var(--gutter); gap: var(--space-16); }
.cmp__text { display: flex; flex-direction: column; gap: var(--space-8); align-items: flex-start; }
.cmp__actions { display: flex; flex-direction: column; align-items: center; gap: var(--space-8); }
.cmp__buttons { display: flex; gap: var(--space-8); width: 100%; }
.cmp__buttons .cta { flex: 1 1 0; }
.cmp__custom { order: 2; }
.cmp-prefs { position: fixed; inset: 0; z-index: var(--z-overlay); display: flex; align-items: flex-end; justify-content: center; }
.cmp-prefs[hidden] { display: none; }
.cmp-prefs__veil { position: absolute; inset: 0; background: var(--brandt-carbon-muted); }
.cmp-prefs__dialog { position: relative; width: 100%; max-height: var(--size-dialog-max-height); overflow: auto; background: var(--brandt-white); border-radius: var(--radius-20) var(--radius-20) 0 0; padding: var(--space-20) var(--gutter); gap: var(--space-16); box-shadow: none; }
.cmp-prefs__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-16); }
.cmp-prefs__close { width: var(--size-target-44); height: var(--size-target-44); background: var(--brandt-light); box-shadow: none; }
.cmp-prefs__list { display: flex; flex-direction: column; }
.cmp-prefs__cat { display: flex; align-items: center; justify-content: space-between; gap: var(--space-16); padding: var(--space-16) 0; border-bottom: var(--border-1) solid var(--brandt-light); }
.cmp-prefs__cat-text { display: flex; flex-direction: column; gap: var(--space-4); }
.cmp-prefs__actions { display: flex; flex-direction: column; gap: var(--space-8); }
.cmp-prefs__buttons { display: flex; gap: var(--space-8); }
.cmp-prefs__buttons .cta { flex: 1 1 0; }
.cmp-prefs__cat .switch { flex: 0 0 auto; }
.switch--locked input + .switch__track, .switch--locked input:checked + .switch__track { background: var(--brandt-carbon); cursor: default; opacity: 1; }
.switch:not(.switch--locked) input:not(:checked) + .switch__track { background: var(--brandt-white); box-shadow: inset 0 0 0 var(--border-1) var(--brandt-carbon); }
.switch:not(.switch--locked) input:not(:checked) + .switch__track::after { background: var(--brandt-carbon); left: var(--switch-inset); }
@media (min-width: 1024px) {
  .cmp { padding: 0 var(--gutter) var(--space-24); }
  .cmp__banner { max-width: var(--size-container-1100); margin: 0 auto; flex-direction: row; align-items: center; gap: var(--space-40); padding: var(--space-32) var(--space-40); border-radius: var(--radius-20); box-shadow: var(--shadow-float), inset 0 0 0 var(--border-1) var(--brandt-line); }
  .cmp__text { flex: 1 1 auto; }
  .cmp__actions { flex: 0 0 auto; flex-direction: row; gap: var(--space-12); }
  .cmp__buttons { width: auto; gap: var(--space-12); }
  .cmp__buttons .cta { flex: 0 0 auto; }
  .cmp__custom { order: 0; }
  .cmp-prefs { align-items: center; }
  .cmp-prefs__dialog { width: var(--size-dialog); border-radius: var(--radius-20); padding: var(--space-40); gap: var(--space-24); }
  .cmp-prefs__actions { gap: var(--space-12); }
  .cmp-prefs__buttons { gap: var(--space-12); }
}
