/* EPFL theme for Indico -- typefaces.
   Source of truth: https://epfl-si.github.io/elements/ (live stylesheet
   https://web2018.epfl.ch/8.7.0/css/elements.min.css). EPFL ships exactly
   four SuisseIntl faces -- 400/700, normal/italic -- verified by probing
   the CDN (Light/Medium/Bold all 404), so those are the four we declare.

   Indico hardcodes `font-family` on ~60 selectors (.page-title, h1-h4,
   .side-menu, .i-box-title, nav.main-breadcrumb, ...) rather than
   inheriting from body, so overriding `body` alone loses on specificity
   -- verified live: .page-title still computed "Roboto, sans-serif".
   Instead of chasing every selector, we re-point the @font-face rules
   for the families Indico asks for at the SuisseIntl files. Our CSS is
   injected after Indico's bundles (/static/custom/css/* comes last in
   <head>), and a later @font-face with the same family+weight+style wins,
   so every Roboto/Muli/Maven Pro/Liberation request resolves to SuisseIntl
   with no specificity fight and no per-selector maintenance.

   Deliberately NOT remapped:
     - icomoon-ultimate / Icons / outline-icons / brand-icons: glyph fonts.
       Remapping them would replace every icon with a letter.
     - Liberation Mono: monospace is semantic (code, diffs, log output). */

@font-face {
  font-family: 'SuisseIntl';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-Regular-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-Regular-WebS.woff') format('woff');
}

@font-face {
  font-family: 'SuisseIntl';
  font-weight: 400;
  font-style: italic;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-RegularItalic-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-RegularItalic-WebS.woff') format('woff');
}

@font-face {
  font-family: 'SuisseIntl';
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBold-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBold-WebS.woff') format('woff');
}

@font-face {
  font-family: 'SuisseIntl';
  font-weight: 700;
  font-style: italic;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBoldItalic-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBoldItalic-WebS.woff') format('woff');
}

/* Aliases: every text family Indico references, re-pointed at SuisseIntl.
   "Roboto Light" is mapped to Regular because EPFL ships no light cut. */

@font-face {
  font-family: 'Roboto';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-Regular-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-Regular-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Roboto';
  font-weight: 400;
  font-style: italic;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-RegularItalic-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-RegularItalic-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Roboto';
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBold-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBold-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Roboto';
  font-weight: 700;
  font-style: italic;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBoldItalic-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBoldItalic-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Roboto Light';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-Regular-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-Regular-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Roboto Light';
  font-weight: 400;
  font-style: italic;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-RegularItalic-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-RegularItalic-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Roboto Light';
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBold-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBold-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Roboto Light';
  font-weight: 700;
  font-style: italic;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBoldItalic-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBoldItalic-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Muli';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-Regular-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-Regular-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Muli';
  font-weight: 400;
  font-style: italic;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-RegularItalic-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-RegularItalic-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Muli';
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBold-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBold-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Muli';
  font-weight: 700;
  font-style: italic;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBoldItalic-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBoldItalic-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Mulish';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-Regular-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-Regular-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Mulish';
  font-weight: 400;
  font-style: italic;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-RegularItalic-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-RegularItalic-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Mulish';
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBold-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBold-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Mulish';
  font-weight: 700;
  font-style: italic;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBoldItalic-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBoldItalic-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Maven Pro';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-Regular-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-Regular-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Maven Pro';
  font-weight: 400;
  font-style: italic;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-RegularItalic-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-RegularItalic-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Maven Pro';
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBold-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBold-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Maven Pro';
  font-weight: 700;
  font-style: italic;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBoldItalic-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBoldItalic-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Liberation Sans';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-Regular-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-Regular-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Liberation Sans';
  font-weight: 400;
  font-style: italic;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-RegularItalic-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-RegularItalic-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Liberation Sans';
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBold-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBold-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Liberation Sans';
  font-weight: 700;
  font-style: italic;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBoldItalic-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBoldItalic-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Liberation Serif';
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-Regular-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-Regular-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Liberation Serif';
  font-weight: 400;
  font-style: italic;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-RegularItalic-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-RegularItalic-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Liberation Serif';
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBold-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBold-WebS.woff') format('woff');
}

@font-face {
  font-family: 'Liberation Serif';
  font-weight: 700;
  font-style: italic;
  font-display: swap;
  src: url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBoldItalic-WebS.woff2') format('woff2'),
       url('https://web2018.epfl.ch/2.0.0/fonts/SuisseIntl-SemiBoldItalic-WebS.woff') format('woff');
}
