{"version":3,"sources":["<no source>","file:///Users/ket/Documents/work/dsfr/src/module/media-query/mixin/_respond-from.scss","file:///Users/ket/Documents/work/dsfr/src/module/shame/media-query/mixin/_order.scss","%3Cinput%20css%20q9nSfK%3E","file:///Users/ket/Documents/work/dsfr/src/module/legacy/mixin/_legacy.scss","file:///Users/ket/Documents/work/dsfr/src/dsfr/core/style/action/legacy/_hover.scss","file:///Users/ket/Documents/work/dsfr/src/module/color/mixin/_element.scss","file:///Users/ket/Documents/work/dsfr/src/dsfr/core/style/action/tool/_link.scss","file:///Users/ket/Documents/work/dsfr/src/dsfr/core/style/selector/tool/_pseudo.scss","file:///Users/ket/Documents/work/dsfr/src/dsfr/core/style/action/legacy/_link.scss","file:///Users/ket/Documents/work/dsfr/src/dsfr/core/style/icon/tool/_legacy.scss","file:///Users/ket/Documents/work/dsfr/src/dsfr/core/style/spacing/tool/_size.scss","file:///Users/ket/Documents/work/dsfr/src/dsfr/core/style/media/_tool.scss","file:///Users/ket/Documents/work/dsfr/src/dsfr/core/style/typography/tool/_list.scss","file:///Users/ket/Documents/work/dsfr/src/dsfr/core/style/spacing/tool/_space.scss","file:///Users/ket/Documents/work/dsfr/src/dsfr/core/style/typography/_legacy.scss","file:///Users/ket/Documents/work/dsfr/src/dsfr/core/style/reset/scheme/_body.scss","file:///Users/ket/Documents/work/dsfr/src/dsfr/core/style/action/tool/_disabled.scss","file:///Users/ket/Documents/work/dsfr/src/dsfr/core/style/artwork/_scheme.scss","file:///Users/ket/Documents/work/dsfr/src/dsfr/core/style/typography/tool/_build-typography.scss","file:///Users/ket/Documents/work/dsfr/src/dsfr/core/style/display/scheme/_hr.scss","file:///Users/ket/Documents/work/dsfr/src/dsfr/core/style/tool/_utility.scss"],"names":[],"mappings":"AAAA;;GAAA;ACeI;ECRI,cAAA;ACLR;AFaI;ECRI,cAAA;ACFR;AFUI;ECRI,cAAA;ACCR;AFOI;ECRI,cAAA;ACIR;ACFI;ECAF;;IC+GI,6BAAA;EHxGJ;;EG2GM;;IACE,qCAAA;EHxGR;;EG2GM;;IACE,oCAAA;EHxGR;AACF;AChBI;EG4BF;;IACE,qBAAA;EJRF;;EKdA;;IAGI,aCPe;ENwBnB;;EKpBA;IEME,6BAAA;IACA,qBAAA;IACA,4BAAA;IARA,+DAFI;IC4CF,WAAA;IAGA,YAAA;IF3CA,WAAA;IACA,mBAAA;ENsBJ;;EKzBA;IAGI,WIEY;IJEZ,cAAA;IIAF,sBADK;ETqCP;;EUfE;IACE,qBAAA;EVmBJ;;EUhBE;IACE,wBAAA;EVkBJ;;EUfE;;ICvBE,kBAXA;IAOA,kBAPA;IAQA,qBARA;EXuDJ;;EY/DA;;;;;;IDuBE,kBAfE;IRuBF,cAAA;EHwCF;;EY9DA;IDcE,gBAfE;EXkEJ;;EKpEA;;;;IEME,6BAAA;IACA,qBAAA;IACA,4BAAA;ICkCE,aAAA;IAGA,cAAA;ER8BJ;;EK3EA;IG0CI,cAAA;IAGA,eAAA;ERsCJ;;EKnFA;IG0CI,WAAA;IAGA,YAAA;ER0CJ;;EKvFA;IG0CI,aAAA;IAGA,cAAA;ER8CJ;;EK3FA;IG0CI,WAAA;IAGA,YAAA;ERkDJ;;EatGE;IVgCA,sBAAA;IAAA,cAAA;EH2EF;;EcrGA;;;;;;;;;;;IX0BE,cAAA;EHsFF;;EerHE;IZ+BA,aAAA;EH4FF;;EevHE;IZ2BA,aAAA;EHiGF;;EexHE;IZuBA,aAAA;EHsGF;;EezHE;IZmBA,aAAA;EH2GF;;Ee1HE;IZeA,aAAA;EHgHF;;Ee1HI;IZUF,aAAA;EHqHF;;Ee/HI;IZUF,aAAA;EH2HF;;EerII;IZUF,aAAA;EHiIF;;Ee3II;IZUF,aAAA;EHuIF;;EejJI;IZUF,aAAA;EH6IF;;EevJI;IZUF,aAAA;EHmJF;;Ee7JI;IZUF,aAAA;EHyJF;;EenKI;IZUF,aAAA;EH+JF;;EezKI;IZUF,aAAA;EHqKF;;Ee/KI;IZUF,aAAA;EH2KF;;EerLI;IZUF,aAAA;EHiLF;;Ee3LI;IZUF,aAAA;EHuLF;;EejMI;IZUF,aAAA;EH6LF;;EevMI;IZUF,aAAA;EHmMF;;Ee7MI;IZUF,aAAA;EHyMF;;EenNI;IZUF,aAAA;EH+MF;;EezNI;IZUF,aAAA;EHqNF;;EexNE;IZGA,aAAA;EH2NF;;EgBrMA;;;;;;;;;;;IbtBE,cAAA;EHiOF;;EiBlQA;IdiCE,mDAAA;EH6OF;;EKtQA;;IFyBE,sBAAA;EHmPF;;EkB/PQ;IfYN,mDAAA;EHyPF;AAnQF","file":"core.legacy.css","sourcesContent":[null,"@use '../variable/breakpoints';\n\n/// Set media query styles\n///\n/// @param {String} $media [md] - Layout size `['xs', 'sm', 'md', 'lg', 'xl']`\n///\n/// @example scss -\n///   .foo {\n///     @include respond-from(md) {\n///     }\n///   }\n@mixin respond-from($media) {\n  $limits: map_get(breakpoints.$values, $media);\n\n  @if $limits != null {\n    @media (min-width: nth($limits, 1)) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n","@use 'src/module/media-query/variable/breakpoints';\n@use 'src/module/media-query';\n\n@mixin order () {\n  @each $bp, $limits in breakpoints.$values {\n    @if $bp != xs {\n      @include media-query.respond-from($bp) {\n        /*! media #{$bp} */\n      }\n    }\n  }\n}\n","@media (min-width: 36em) {\n  /*! media sm */\n}\n@media (min-width: 48em) {\n  /*! media md */\n}\n@media (min-width: 62em) {\n  /*! media lg */\n}\n@media (min-width: 78em) {\n  /*! media xl */\n}\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-enlarge-link,\n  .fr-enlarge-button {\n    background-color: transparent;\n  }\n  .fr-enlarge-link:hover,\n  .fr-enlarge-button:hover {\n    background-color: rgba(0, 0, 0, 0.05);\n  }\n  .fr-enlarge-link:active,\n  .fr-enlarge-button:active {\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n}\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-enlarge-link [href],\n  .fr-enlarge-button [href] {\n    text-decoration: none;\n  }\n}\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-raw-link[href]::after,\n  .fr-raw-link [href]::after {\n    content: none;\n  }\n  [target=_blank]::after {\n    background-color: transparent;\n    background-size: 100%;\n    background-repeat: no-repeat;\n  }\n  [target=_blank]::after {\n    background-image: url(\"../icons/system/external-link-line.svg\");\n  }\n  [target=_blank]::after {\n    width: 1rem;\n    height: 1rem;\n  }\n  [target=_blank]::after {\n    content: \"\";\n    vertical-align: sub;\n  }\n}\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-responsive-vid::before {\n    content: \"\";\n    display: block;\n    padding-bottom: 56.25%;\n  }\n}\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  ul {\n    list-style-type: disc;\n  }\n  ol {\n    list-style-type: decimal;\n  }\n  ul,\n  ol {\n    padding-left: 1rem;\n    margin-top: 0.5rem;\n    margin-bottom: 0.5rem;\n  }\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin: 0 0 1.5rem;\n  }\n  p {\n    margin: 0 0 1rem;\n  }\n}\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  [class^=fr-icon-]::before, [class*=\" fr-icon-\"]::before, [class^=fr-fi-]::before, [class*=\" fr-fi-\"]::before {\n    background-color: transparent;\n    background-size: 100%;\n    background-repeat: no-repeat;\n  }\n  [class^=fr-icon-]::before, [class*=\" fr-icon-\"]::before, [class^=fr-fi-]::before, [class*=\" fr-fi-\"]::before {\n    width: 1.5rem;\n    height: 1.5rem;\n  }\n  .fr-icon--xs::before {\n    width: 0.75rem;\n    height: 0.75rem;\n  }\n  .fr-icon--sm::before {\n    width: 1rem;\n    height: 1rem;\n  }\n  .fr-icon--md::before {\n    width: 1.5rem;\n    height: 1.5rem;\n  }\n  .fr-icon--lg::before {\n    width: 2rem;\n    height: 2rem;\n  }\n}\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  body {\n    background-color: #fff;\n  }\n}\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  body {\n    color: #3a3a3a;\n  }\n}\n\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  a:not([href]), button:disabled, input:disabled, input[type=checkbox]:disabled, input[type=checkbox]:disabled + label, input[type=radio]:disabled, input[type=radio]:disabled + label, select:disabled, textarea:disabled, video:not([href]), audio:not([href]) {\n    color: #929292;\n  }\n}\n\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-artwork-decorative {\n    fill: #ececfe;\n  }\n}\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-artwork-minor {\n    fill: #e1000f;\n  }\n}\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-artwork-major {\n    fill: #000091;\n  }\n}\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-artwork-background {\n    fill: #f6f6f6;\n  }\n}\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-artwork-motif {\n    fill: #e5e5e5;\n  }\n}\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-artwork--green-tilleul-verveine .fr-artwork-minor {\n    fill: #b7a73f;\n  }\n}\n\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-artwork--green-bourgeon .fr-artwork-minor {\n    fill: #68a532;\n  }\n}\n\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-artwork--green-emeraude .fr-artwork-minor {\n    fill: #00a95f;\n  }\n}\n\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-artwork--green-menthe .fr-artwork-minor {\n    fill: #009081;\n  }\n}\n\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-artwork--green-archipel .fr-artwork-minor {\n    fill: #009099;\n  }\n}\n\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-artwork--blue-ecume .fr-artwork-minor {\n    fill: #465f9d;\n  }\n}\n\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-artwork--blue-cumulus .fr-artwork-minor {\n    fill: #417dc4;\n  }\n}\n\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-artwork--purple-glycine .fr-artwork-minor {\n    fill: #a558a0;\n  }\n}\n\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-artwork--pink-macaron .fr-artwork-minor {\n    fill: #e18b76;\n  }\n}\n\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-artwork--pink-tuile .fr-artwork-minor {\n    fill: #ce614a;\n  }\n}\n\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-artwork--yellow-tournesol .fr-artwork-minor {\n    fill: #c8aa39;\n  }\n}\n\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-artwork--yellow-moutarde .fr-artwork-minor {\n    fill: #c3992a;\n  }\n}\n\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-artwork--orange-terre-battue .fr-artwork-minor {\n    fill: #e4794a;\n  }\n}\n\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-artwork--brown-cafe-creme .fr-artwork-minor {\n    fill: #d1b781;\n  }\n}\n\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-artwork--brown-caramel .fr-artwork-minor {\n    fill: #c08c65;\n  }\n}\n\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-artwork--brown-opera .fr-artwork-minor {\n    fill: #bd987a;\n  }\n}\n\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-artwork--beige-gris-galet .fr-artwork-minor {\n    fill: #aea397;\n  }\n}\n\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  [disabled] .fr-artwork * {\n    fill: #929292;\n  }\n}\n\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-h6, .fr-h5, .fr-h4, .fr-h3, .fr-h2, .fr-h1, .fr-display-xs, .fr-display-sm, .fr-display-md, .fr-display-lg, .fr-display-xl {\n    color: #161616;\n  }\n}\n\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  h6, h5, h4, h3, h2, h1 {\n    color: #161616;\n  }\n}\n\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  hr {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n  }\n}\n\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-hr-or::before, .fr-hr-or::after {\n    background-color: #ddd;\n  }\n}\n\n@media screen and (min-width: 0\\0 ) and (min-resolution: 72dpi) {\n  .fr-hr {\n    background-image: linear-gradient(0deg, #ddd, #ddd);\n  }\n}","/// Styles spécifiques pour les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is($target) {\n  @if $target == ie10 or $target == ie11 {\n    @media screen and (min-width: 0\\0) and (min-resolution: +72dpi) {\n      @content;\n    }\n  }\n  @else {\n    @content;\n  }\n}\n\n/// Styles spécifiques pour les plateformes modernes, excluant les plateformes antérieures\n///\n/// @example scss -\n///   .foo {\n///     @include ie-hack() {\n///     }\n///   }\n@mixin is-not($target) {\n  @if $target == ie10 or $target == ie11 {\n    @supports not (-ms-high-contrast: none) {\n      @content;\n    }\n  }\n}\n","////\n/// Core Legacy : Action hover\n/// @group core\n////\n\n@use 'src/module/color';\n@use 'src/module/legacy';\n\n@include legacy.is(ie11) {\n  #{ns(enlarge-link)},\n  #{ns(enlarge-button)} {\n    @include color.transparent-background((legacy: true, hover: true));\n\n    @include disable-underline-legacy;\n  }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'src/module/legacy';\n@use 'src/module/media-query';\n@use 'src/module/spacing';\n@use 'src/module/specificity';\n@use 'src/module/string';\n@use 'src/module/utilities';\n@use '../variable/constant';\n@use '../function/box-shadow' as bs;\n@use '../function/colors';\n@use '../function/result';\n@use '../function/token';\n\n$COLOR: constant.$value;\n\n@mixin element($prop, $context, $tokens, $options: (), $value: $COLOR) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $standalone: map.get($options, standalone);\n\n  $legacy-target: null;\n  @if $legacy == true {\n    $legacy-target: ie11;\n  }\n\n  $tokens: token.normalise($tokens, $context);\n  $type: decision;\n  $options: (var: true);\n\n  @if $legacy or $standalone {\n    $type: hex;\n    $option: (theme: light);\n  }\n\n  $colors: colors.from-list($tokens, $type, $options);\n  $result: result.get($colors, $value);\n  $result: specificity.important($result, $important);\n\n  @include legacy.is($legacy-target) {\n    #{$prop}: #{string.unstringify($result)};\n  }\n\n  @if ($hover == true or ($hover == inherit and $legacy == false)) and ($context == background and list.length($tokens) == 1) {\n\n    $token: nth($tokens, 1);\n    @if $legacy or $standalone {\n      @include _apply-pseudos($token, false, true, $legacy-target, $prop, $value, $important);\n    }\n    @else {\n      @if $prop == background-color {\n        --idle: transparent; // #{$result};\n        @include _apply-pseudos($token, true, false, null, $prop, $value, $important);\n      }\n      @else {\n        @include _apply-pseudos($token, true, true, null, $prop, $value, $important);\n      }\n    }\n  }\n}\n\n@mixin _apply-pseudos($token, $decision: true, $pseudo: false, $target: null, $prop: background-color, $value: constant.$value, $important: false) {\n  @include legacy.is($target) {\n    @include _apply-pseudo($token, hover, $decision, $pseudo, $prop, $value, $important);\n    @include _apply-pseudo($token, active, $decision, $pseudo, $prop, $value, $important);\n  }\n}\n\n@mixin _apply-pseudo($token, $type, $decision: true, $pseudo: false, $prop: background-color, $value: constant.$value, $important: false) {\n  $nest: null;\n  $p: --#{$type};\n  @if $pseudo {\n    $nest: '&:#{$type}';\n    $p: $prop;\n  }\n\n  $t: hex;\n  $options: (#{$type}: true);\n  @if $decision {\n    $t: decision;\n    $options: (var: true, #{$type}: true);\n  }\n\n  $color: colors.from($token, $t, $options);\n  $result: result.get($color, $value);\n  $result: specificity.important($result, $important);\n\n  @include utilities.nest($nest) {\n    #{$p}: #{string.unstringify($result)};\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background($tokens, $options:()) {\n  @if not map.has-key($options, hover) {\n    $options: map.merge($options, (hover: inherit));\n  }\n  @include element(background-color, background, $tokens, $options);\n}\n\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - hover {boolean}: si true, surcharge la valeur de blend pour être héritée\n@mixin transparent-background($options) {\n  $legacy: map.get($options, legacy);\n  $important: map.get($options, important);\n  $hover: map.get($options, hover);\n  $tokens: token.normalise(default grey, background);\n  $value: specificity.important(transparent, $important);\n\n  @if $legacy {\n    @include legacy.is(ie11) {\n      background-color: transparent;\n\n      @if $hover {\n        &:hover {\n          background-color: rgba(0, 0, 0, 0.05);\n        }\n\n        &:active {\n          background-color: rgba(0, 0, 0, 0.1);\n        }\n      }\n    }\n  }\n  @else {\n    background-color: #{$value};\n    @if $hover {\n      --hover: inherit;\n      --active: inherit;\n    }\n  }\n}\n\n/// Ajout d'une couleur de background sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin background-image($tokens, $options, $value: linear-gradient(0deg, $COLOR, $COLOR)) {\n  $d: token.length($tokens);\n  @if $d > 1 and $value == linear-gradient(0deg, $COLOR, $COLOR) {\n    $transformed: ();\n    @for $i from 1 through $d {\n      $c: string.unquote('$color##{$i}');\n      $transformed: list.append($transformed, linear-gradient(0deg, $c, $c), comma);\n    }\n    $value: $transformed;\n  }\n  @include element(background-image, background, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text($tokens, $options) {\n  @include element(color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de texte sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin text-fill($tokens, $options) {\n  @include element(-webkit-text-fill-color, text, $tokens, $options);\n}\n\n/// Ajout d'une couleur de fill sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n@mixin fill($tokens, $options) {\n  @include element(fill, background , $tokens, $options);\n}\n\n/// Ajout d'une couleur de border sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n///   - side {String}: le côté affecté. valeurs: top, right, bottom, left\n/// @param {List} $value - définition des propriétés de border\n@mixin border($tokens, $options, $value:1px solid $COLOR) {\n  $prop:border;\n  @if map.has-key($options, side) {\n    $prop:border-#{map.get($options, side)};\n  }\n  @include element($prop, border, $tokens, $options, $value);\n}\n\n@mixin no-border($options: ()) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        border: 0;\n      }\n    }\n    @else {\n      border: 0;\n    }\n  }\n}\n\n/// Ajout d'une couleur d'outline sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés d'outline\n@mixin outline($tokens, $options, $value:1px solid $COLOR) {\n  @include element(outline, border, $tokens, $options, $value);\n}\n\n/// Ajout d'une couleur de box-shadow sur un élément\n/// @access public\n/// @param {list} $tokens - liste des tokens de décision\n/// @param {map} $options - map des options :\n///   - legacy {boolean}: version pour navigateurs modernes ou anciens.\n///   - important {boolean}: si true, applique !important à la règle css\n/// @param {List} $value - définition des propriétés de box-shadow\n@mixin box-shadow($tokens, $options, $value: all-1-in) {\n  $has-keys: true;\n  $transformed: ();\n  $d: token.length($tokens);\n  $i: 1;\n  @each $v in $value {\n    @if bs.has($v) {\n      $transformed: append($transformed, bs.get($v, $i), comma);\n      @if $i < $d {\n        $i: $i + 1;\n      }\n    }\n    @else {\n      $has-keys: false;\n    }\n  }\n  @if $has-keys {\n    $value: $transformed;\n  }\n  @include element(box-shadow, border, $tokens, $options, spacing.space($value));\n}\n\n/// Supprime la shadow-box sur l'élément\n/// @access public\n/// @param {string} $breakpoint - la shadow-box est retiré à partir d'un breakpoint si celui-ci est défini\n@mixin no-box-shadow($options) {\n  $breakpoint: map.get($options, breakpoint);\n  $legacy: map.get($options, legacy);\n  @include media-query.respond-from($breakpoint) {\n    @if $legacy {\n      @include legacy.is(ie11) {\n        box-shadow: none;\n      }\n    }\n    @else {\n      box-shadow: none;\n    }\n  }\n}\n","////\n/// Core Tool : Reset\n/// @group core\n////\n\n$underline-thickness: 0.0625em;\n\n@mixin a-reset ($minimal: false) {\n  text-decoration: var(--text-decoration);\n  @if not $minimal {\n    color: inherit;\n  }\n}\n\n@mixin init-underline() {\n  --underline-max-width: 100%;\n  --underline-hover-width: 0;\n  --underline-idle-width: var(--underline-max-width);\n  --underline-x: calc(var(--underline-max-width) * 0);\n  --underline-thickness: #{$underline-thickness};\n}\n\n@mixin enable-underline() {\n  --underline-img: linear-gradient(0deg, currentColor, currentColor);\n}\n\n@mixin enable-underline-legacy() {\n  [href] {\n    text-decoration: underline;\n  }\n}\n\n@mixin disable-underline() {\n  --underline-img: none;\n}\n\n@mixin disable-underline-legacy() {\n  [href] {\n    text-decoration: none;\n  }\n}\n\n@mixin link-underline() {\n  background-image: var(--underline-img), var(--underline-img);\n  background-position: var(--underline-x) 100%, var(--underline-x) calc(100% - var(--underline-thickness));\n  background-repeat: no-repeat, no-repeat;\n  transition: background-size 0s;\n  background-size: var(--underline-hover-width) calc(var(--underline-thickness) * 2), var(--underline-idle-width) var(--underline-thickness);\n}\n\n@mixin link-underline-hover-only() {\n  --underline-idle-width: 0;\n}\n\n@mixin hover-underline () {\n  &:hover,\n  &:active {\n    --underline-hover-width: var(--underline-max-width);\n  }\n}\n\n@mixin external-link() {\n  @include icon-style(after);\n  @include icon-size(sm, after);\n  @include icon-image(external-link-line, after);\n  @include icon-forced-color(linktext, true, after);\n  @include after(var(--external-link-content)) {\n    @include margin-left(1v);\n  }\n}\n\n@mixin enable-external() {\n  --external-link-content: '';\n}\n\n@mixin disable-external() {\n  --external-link-content: none;\n}\n\n@mixin target-blank ($unify: false) {\n  @if $unify and & {\n    &[target=\"_blank\"] {\n      @content;\n    }\n  }\n  @else {\n    [target=\"_blank\"] {\n      @content;\n    }\n  }\n}\n","////\n/// Core Tool : Selector pseudo\n/// @group core\n////\n\n@mixin _pseudo($type:before, $content:null, $display:null) {\n  @if $type != after and $type != before and $type != marker and $type != (before after) {\n    @error '$type must be before or after element';\n  }\n\n  $selector: ();\n\n  @each $pseudo in $type {\n    $selector: append($selector, '&::#{$pseudo}', 'comma');\n  }\n\n  #{$selector} {\n\n    @if $content != null {\n      content: $content;\n    }\n\n    @if $display != null {\n      display: #{$display};\n    }\n\n    @content;\n  }\n}\n\n@mixin before($content: null, $display: null) {\n  @include _pseudo(before, $content, $display) {\n    @content;\n  }\n}\n\n@mixin after($content: null, $display: null) {\n  @include _pseudo(after, $content, $display) {\n    @content;\n  }\n}\n\n@mixin marker($content: null, $display: null) {\n  @include _pseudo(marker, $content, $display) {\n    @content;\n  }\n}\n","////\n/// Core Legacy : Action link\n/// @group core\n////\n\n@use 'src/module/legacy';\n@use 'src/module/spacing';\n\n@include legacy.is(ie11) {\n  #{ns(raw-link)} {\n    &[href],\n    [href] {\n      @include after(none);\n    }\n  }\n\n  [target=\"_blank\"] {\n    @include icon-legacy(external-link-line, sm, after) {\n      content: \"\";\n      vertical-align: sub;\n    }\n  }\n}\n","////\n/// Core Tool : Icon legacy\n/// @group core\n////\n\n@mixin icon-size-legacy($size:md, $restrain: null) {\n  @include _icon-pseudo($restrain) {\n    $size: icon-size($size);\n    @include size($size, $size);\n    @content;\n  }\n}\n\n@mixin icon-image-legacy($icon, $restrain: null, $important: false) {\n  $url: get-icon-url($icon, $important);\n  @include _icon-pseudo($restrain) {\n    background-image: $url;\n  }\n}\n\n@mixin icon-style-legacy($restrain: null) {\n  @include _icon-pseudo($restrain) {\n    background-color: transparent;\n    background-size: 100%;\n    background-repeat: no-repeat;\n    @content;\n  }\n}\n\n@mixin icon-legacy($icon: null, $size: md, $restrain: null, $styling: true) {\n  @if $styling {\n    @include icon-style-legacy($restrain);\n  }\n\n  @if $icon != null {\n    @include icon-image-legacy($icon, $restrain);\n  }\n\n  @if $size != null {\n    @include icon-size-legacy($size, $restrain);\n  }\n\n  @include _icon-pseudo($restrain) {\n    @content;\n  }\n}\n\n@mixin generate-icons-legacy($config: $icons-config) {\n  @each $icon, $setting in $config {\n    #{ns(icon-#{$icon})} {\n      @include icon-image-legacy($icon);\n    }\n  }\n}\n","////\n/// Core Tool : Spacing size\n/// @group core\n////\n\n@use '../../../../../module/spacing';\n\n@mixin width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin min-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      min-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin max-width($width:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      max-width: #{spacing.space($width)};\n    }\n  }\n}\n\n@mixin height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      min-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin max-height($height:null, $from: null) {\n  @include respond-from($from) {\n    @if $height != null {\n      max-height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin size($width:null, $height:null, $from: null) {\n  @include respond-from($from) {\n    @if $width != null {\n      width: #{spacing.space($width)};\n    }\n    @if $height != null {\n      height: #{spacing.space($height)};\n    }\n  }\n}\n\n@mixin min-size($min-width:null, $min-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $min-width != null {\n      min-width: #{spacing.space($min-width)};\n    }\n    @if $min-height != null {\n      min-height: #{spacing.space($min-height)};\n    }\n  }\n}\n\n@mixin max-size($max-width:null, $max-height:null, $from: null) {\n  @include respond-from($from) {\n    @if $max-width != null {\n      max-width: #{spacing.space($max-width)};\n    }\n    @if $max-height != null {\n      max-height: #{spacing.space($max-height)};\n    }\n  }\n}\n","////\n/// Core Tool : Medias\n/// @group core\n////\n\n@use 'sass:math';\n@use 'src/module/specificity';\n\n/// Force un ratio d'aspect sur le block par l'ajout d'un pseudo-element en before\n/// @param {String} $ratio - key du ratio attendu selon la map $ratio-scale\n/// @param {Size | Bool} $block - détermine si le block est créé et sa taille correspondante\n@mixin aspect-ratio($ratio: 16x9, $important: false) {\n  aspect-ratio: specificity.important(map_get($ratio-scale, $ratio), $important);\n}\n\n@mixin media-overlay-cover {\n  @include fit-cover-center;\n  @include absolute(0, 0, 0, 0, 100%, 100%);\n}\n\n@mixin aspect-ratio-legacy($ratio: 16x9, $important: false) {\n  @include before('', block) {\n    $pb: specificity.important(math.div(100%, map_get($ratio-scale, $ratio)), $important);\n    padding-bottom: $pb;\n  }\n}\n","////\n/// Core Tool : Reset list\n/// @group core\n////\n\n@mixin enable-list-style() {\n  $selector: null;\n\n  @if & == null {\n    $selector: ':root';\n  }\n\n  @include nest($selector) {\n    --ul-type: disc;\n    --ol-type: decimal;\n    --ul-start: #{space(4v)};\n    --ol-start: #{space(6v)};\n    --xl-block: #{space(2v)};\n    --li-bottom: #{space(1v)};\n    --xl-base: 1em;\n    --ol-content: counters(li-counter, \".\") \".\\00a0\\00a0\";\n  }\n}\n\n@mixin disable-list-style() {\n  --ul-type: none;\n  --ol-type: none;\n  --ul-start: 0;\n  --ol-start: 0;\n  --xl-block: 0;\n  --li-bottom: 0;\n  --ol-content: none;\n}\n\n@mixin enable-list-style-legacy($unify: false) {\n  $ul: ul;\n  $ol: ol;\n\n  @if $unify {\n    $ul: selector-associate('&', 'ul');\n    $ol: selector-associate('&', 'ol');\n  }\n\n  @at-root {\n    #{$ul} {\n      list-style-type: disc;\n    }\n\n    #{$ol} {\n      list-style-type: decimal;\n    }\n\n    #{$ul},\n    #{$ol} {\n      @include padding-left(4v);\n      @include margin-y(2v);\n    }\n  }\n}\n\n@mixin disable-list-style-legacy($unify: false) {\n  $ul: '#{&} ul';\n  $ol: '#{&} ol';\n\n  @if $unify {\n    $ul: selector-associate('#{&}', 'ul');\n    $ol: selector-associate('#{&}', 'ol');\n  }\n\n  @at-root {\n    #{$ul} {\n      list-style-type: none;\n    }\n\n    #{$ol} {\n      list-style-type: none;\n    }\n\n    #{$ul},\n    #{$ol} {\n      @include padding-left(0);\n      @include margin-y(0);\n    }\n  }\n}\n","////\n/// Core Tool : Spacing space\n/// @group core\n////\n\n@use 'src/module/spacing';\n\n/// Set space property\n///\n/// @param {String} $property ['margin'] - propriété à appliquer à l'espacement `['margin', 'padding']`\n/// @param {Number | list} $value [2] - valeur de l'espacement en v ou w. peut être une liste si la direction n'est pas renseignée\n/// @param {String} $direction - direction de l'espacement `['x', 'y', 'top', 'right', 'bottom', 'left']`\n///\n/// @example scss - Set margin-bottom to 24px\n///   .foo {\n///     @include _spacing('margin', 6v, 'bottom');\n///   }\n@mixin _spacing($property: margin, $value: 0, $direction: null) {\n  $v: spacing.space($value);\n  @if $direction != null {\n    @if $direction == 'x' {\n      #{$property}-left: $v;\n      #{$property}-right: $v;\n    }\n    @else if $direction == 'y' {\n      #{$property}-top: $v;\n      #{$property}-bottom: $v;\n    }\n    @else {\n      #{$property}-#{$direction}: $v;\n    }\n  }\n  @else {\n    #{$property}: $v;\n  }\n}\n\n@mixin _spacing-from($property: margin, $value: 0, $direction: null, $from: null) {\n  @include respond-from($from) {\n    @include _spacing($property, $value, $direction);\n  }\n}\n\n@mixin padding($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(padding, $values, null, $from);\n}\n\n@mixin padding-x($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'x', $from);\n}\n\n@mixin padding-y($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'y', $from);\n}\n\n@mixin padding-top($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'top', $from);\n}\n\n@mixin padding-right($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'right', $from);\n}\n\n@mixin padding-bottom($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'bottom', $from);\n}\n\n@mixin padding-left($value: 0, $from: null) {\n  @include _spacing-from(padding, $value, 'left', $from);\n}\n\n@mixin margin($values: 0 0 0 0, $from: null) {\n  @include _spacing-from(margin, $values, null, $from);\n}\n\n@mixin margin-x($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'x', $from);\n}\n\n@mixin margin-y($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'y', $from);\n}\n\n@mixin margin-top($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'top', $from);\n}\n\n@mixin margin-right($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'right', $from);\n}\n\n@mixin margin-bottom($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'bottom', $from);\n}\n\n@mixin margin-left($value: 0, $from: null) {\n  @include _spacing-from(margin, $value, 'left', $from);\n}\n","////\n/// Core Legacy : Typography\n/// @group core\n////\n\n@use 'src/module/legacy';\n\n@include legacy.is(ie11) {\n  @include enable-list-style-legacy;\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    @include margin(0 0 6v);\n  }\n\n  p {\n    @include margin(0 0 4v);\n  }\n}\n","////\n/// Core Scheme : Reset body\n/// @group core\n////\n\n@use 'src/module/color';\n\n@mixin _core-reset-body-scheme($legacy: false) {\n  @if (map-get($reset-settings, body)) {\n    body {\n      @include color.background(default grey, (legacy:$legacy));\n      @include color.text(default grey, (legacy:$legacy));\n    }\n  }\n}\n","////\n/// Core Tool : Action disabled\n/// @group core\n////\n\n@mixin disabled-selector($elements: $action-elements) {\n  $selectors: ();\n  @each $element, $setting in $elements {\n    $disabled: map-get($setting, disabled);\n    $selector: map-get($setting, selector);\n    @if $disabled {\n      $selectors: append($selectors, nest($selector, map-get($disabled, selector)), 'comma');\n    }\n  }\n\n  #{$selectors} {\n    @content;\n  }\n}\n","////\n/// Core Scheme : Artwork\n/// @group core\n////\n\n@use 'src/module/color';\n@use 'src/module/selector';\n\n@mixin _core-artwork-scheme($legacy: false) {\n  #{selector.ns(artwork)} {\n    &-decorative {\n      @include color.fill(artwork decorative blue-france, (legacy: $legacy));\n    }\n\n    &-minor {\n      @include color.fill(artwork minor red-marianne, (legacy: $legacy));\n    }\n\n    &-major {\n      @include color.fill(artwork major blue-france, (legacy: $legacy));\n    }\n\n    &-background {\n      @include color.fill(artwork background grey, (legacy: $legacy));\n    }\n\n    &-motif {\n      @include color.fill(artwork motif grey, (legacy: $legacy));\n    }\n\n    @include color.accentuate {\n      #{selector.ns(artwork-minor)} {\n        @include color.fill(artwork minor accent, (legacy: $legacy));\n      }\n    }\n  }\n\n  [disabled] {\n    #{selector.ns(artwork)} * {\n      @include color.fill(text disabled grey, (legacy: $legacy));\n    }\n  }\n}\n","////\n/// Core Tool : Typography build\n/// @group core\n////\n\n@function typography-selector($type, $name, $is-modifier: false, $alt: null) {\n  $base: '';\n  $separator: '-';\n\n  @if $is-modifier {\n    $separator: '--';\n  }\n\n  @if $type != heading {\n    $base: '#{$type + $separator}';\n  }\n\n  $selectors: (ns('#{$base + $name}'));\n\n  @if $alt != null {\n    $selectors: append($selectors, ns('#{$base + $alt}'), 'comma');\n  }\n\n  @return $selectors;\n}\n\n@mixin build-utillity-typography() {\n  @if $text-utilities {\n    @each $name, $variation in $title-settings {\n      $type: display;\n      @if is-heading($name) {\n        $type: heading;\n      }\n\n      #{typography-selector($type, $name, true, map-get($variation, alt))} {\n        @include title-style($name, true, true, null, true);\n      }\n    }\n\n    #{ns(text--alt)} {\n      @include font-family(alt, true);\n    }\n  }\n\n  @if $title-utilities {\n    @each $name, $variation in $text-settings {\n      #{typography-selector(text, $name, true, map-get($variation, alt))} {\n        @include text-style($name, true, true, null, true);\n      }\n    }\n  }\n}\n\n@mixin title-selector() {\n  $titles: ();\n  @each $name, $variation in $title-settings {\n    $type: display;\n    @if is-heading($name) {\n      $type: heading;\n    }\n\n    $titles: append($titles, typography-selector($type, $name, false, map-get($variation, alt)), comma);\n  }\n  #{$titles} {\n    @content;\n  }\n}\n\n@mixin generate-margin-vars() {\n  :root {\n    @each $name, $margin in $text-spacing {\n      --#{$name}-spacing: #{space($margin)};\n    }\n  }\n}\n","////\n/// Core scheme : Display hr\n/// @group core\n////\n\n@use '../../../../../module/color';\n\n@mixin _core-display-hr-scheme($legacy: false) {\n  hr {\n    @include build-hr-scheme($legacy);\n  }\n\n  #{ns(hr)} {\n    &-or {\n      @include _pseudo(before after) {\n        @include color.background(border default grey, (legacy:$legacy));\n      }\n    }\n  }\n\n  @include build-utility(display, hr) {\n    @include build-hr-scheme($legacy);\n  }\n}\n","////\n/// Core Tool\n/// @group core\n////\n\n@mixin build-utility($category, $name, $modifier: null) {\n  // Récupération des variables depuis src/dsfr/variables.scss\n  $utilityVars: map-get($variables, $category);\n\n  @if map-get($variables, $category) != null {\n    $utilityVars: to-map(map-get($utilityVars, $name));\n    $breakpointsVars: map-get($utilityVars, 'breakpoints');\n\n    // breakpoints: all = xs, sm, md, lg, xl\n    $breakpointsList: if($breakpointsVars == all, map-keys($breakpoints), $breakpointsVars);\n    @if ($breakpointsList == null) { $breakpointsList: first; } // default: first\n\n    // si l'utilitaire n'est pas désactivé\n    @if (map-get($utilityVars, 1) != false and map-get($utilityVars, active) != false) {\n      @each $bp in $breakpointsList {\n        $mod: '-#{$bp}';\n        @if ($bp == xs or $bp == first) {\n          $bp: first;\n          $mod: '';\n        }\n        @if $modifier {\n          $mod: #{$mod + '-' + $modifier};\n        }\n        @include respond-from($bp) {\n          #{ns($name)}#{$mod} {\n            @content;\n          }\n        }\n      }\n    }\n  }\n}\n"]}