@import url("https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&display=swap");
@import url('https://fonts.googleapis.com/css?family=Open+Sans:400,600,300');

/* ==========================================================================
   1. Design System & CSS Variables
   ========================================================================== */
:root {
  /* Primary & Brand Colors */
  --primary-blue: #72aee0;
  --accent-blue: #5b94e1;
  --secondary-blue: #013d5b;
  --dark-blue: #052147;

  /* Neutral Colors */
  --text-light: #ffffff;
  --text-dark: var(--dark-blue);
  --light-grey: #f7f7f7;
  --muted-grey: #bbbbbb;
  --subtitles-grey: #aaaaaa;
  --code-bg-blue: #e8f1fc;

  /* Overlay Colors */
  --banner-overlay: rgba(10, 45, 93, 0.7);
  --dark-mode-overlay: rgba(255, 255, 255, 0.1);

  /* Interactive States */
  --hover-border-color: var(--dark-blue);
  --active-link-color: var(--primary-blue);

  /* overrides of paragon colors */
  --pgn-color-btn-bg-primary: var(--secondary-blue);
  --pgn-color-primary-base: var(--secondary-blue);
}

/* ==========================================================================
   2. Global Typography & General Resets
   ========================================================================== */
@layer app {
.text-monospace, body {
  font-family: "Roboto", sans-serif !important;
  font-optical-sizing: auto !important;
}
}
@layer paragon {
/* fix for instructor-dashboard */
span.badge.bg-primary.fs-6 {
  background-color: #ffffff !important;
}
span.badge.bg-secondary.me-2 {
  background-color: #ffffff !important;
}
}
/* Hide registration link */
a.btn.mr-2.btn-outline-primary {
  display: none;
}

.masquerade-bar {
  justify-content: center;
}
.masquerade-bar .btn-brand {
  opacity: 1;
}

/* ==========================================================================
   3. Header & Main Navigation
   ========================================================================== */
#root header.site-header-desktop .logo img,
#root header nav .logo img,
body.indigo-dark-theme #root header.site-header-desktop .logo img,
body.indigo-dark-theme #root header.border-bottom .logo img, {
  height: 30px;
}

#root header.site-header-desktop .main-nav a.nav-link.active,
#root header nav a.nav-link.active {
  color: var(--active-link-color) !important;
  border-bottom: 2px solid var(--active-link-color) !important;
  background: var(--secondary-blue);
}

#root header.site-header-desktop .main-nav a.nav-link:hover,
#root header nav a.nav-link:hover {
  border-bottom: 2px solid var(--hover-border-color);
  color: var(--text-light);
  background: var(--secondary-blue);
}
@layer paragon {
.bg-primary {
    background-color: var(--secondary-blue) !important;
}
}
/* ==========================================================================
   4. Banners & Structural Containers
   ========================================================================== */
.banner {
  background: url("https://edx.evolo.calculquebec.cloud/asset-v1:CQ+Assets101+2026+type@asset+block@image_bandeau.png")
    no-repeat center 40% !important;
  background-size: cover !important;
  height: 170px;
  position: relative;
}

.banner .cover-filter {
  background-size: cover;
  height: 170px;
}

.banner img {
  max-width: 527px;
  max-height: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.page-title {
  font-size: 30px;
  color: var(--dark-blue);
  font-weight: 400;
  line-height: 30px;
  margin: 0;
  display: none;
}

.page-back {
  display: flex;
  gap: 16px;
  align-items: center;
  padding: 24px 48px;
}

/* Unused/Hidden back icon styling preserved for structural compatibility */
.back-icon {
  display: none;
  padding: 8px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  border-radius: 20px;
  border: 2px solid var(--primary-blue);
}

.back-icon svg path {
  fill: var(--primary-blue);
}

.back-icon:hover {
  background-color: var(--primary-blue);
}

.back-icon:hover svg {
  fill: var(--text-light);
}

/* ==========================================================================
   5. Buttons & Controls
   ========================================================================== */
.secondary-menu-container .btn-link {
  font-weight: var(--pgn-typography-font-weight-normal);
  text-decoration: var(--pgn-typography-link-decoration-base);
  background-color: var(--dark-blue);
  color: var(--text-light);
}

.secondary-menu-container .btn-link:hover {
  color: var(--dark-blue);
  background-color: var(--text-light);
  border: 1px solid var(--dark-blue);
  text-decoration: none !important;
}

.theme-toggle-button {
  display: none;
  gap: 0.5rem;
}

.theme-toggle-button .toggle-switch .switch .slider {
  background-color: var(--primary-blue) !important;
}

body.indigo-dark-theme .theme-toggle-button .toggle-switch .switch .slider:before {
  background-color: var(--dark-blue) !important;
}

.pgn-transition-replace-group,
.form-group {
  border-color: var(--primary-blue) !important;
}

/* ==========================================================================
   6. Dark Theme Overrides (body.indigo-dark-theme)
   ========================================================================== */
body.indigo-dark-theme #root,
body.indigo-dark-theme main,
body.indigo-dark-theme .page-back,
body.indigo-dark-theme .footer,
body.indigo-dark-theme #no-courses-content-view,
body.indigo-dark-theme .pgn__card {
  background-color: var(--dark-blue) !important;
  color: var(--text-light);
}

body.indigo-dark-theme #root header.site-header-desktop,
body.indigo-dark-theme #root header.border-bottom {
  background-color: var(--dark-blue) !important;
  box-shadow: 0 1px 2px 0 #0000000f, 0 1px 3px 0 #0000001a;
}

body.indigo-dark-theme .banner img {
  background-color: transparent !important;
}

body.indigo-dark-theme #root header.site-header-desktop .menu button,
body.indigo-dark-theme #root header.border-bottom .menu button {
  background-color: var(--primary-blue) !important;
}

body.indigo-dark-theme #root header.site-header-desktop .menu .menu-content a,
body.indigo-dark-theme #root header.border-bottom .menu .menu-content a {
  background-color: var(--dark-blue) !important;
  color: var(--text-light) !important;
}

body.indigo-dark-theme #root header.site-header-desktop .menu .menu-content,
body.indigo-dark-theme #root header.border-bottom .menu .menu-content {
  background-color: var(--dark-blue) !important;
  box-shadow: none !important;
}

body.indigo-dark-theme .text-muted:not(svg),
body.indigo-dark-theme .page__account-settings .row .col-md-2 .jump-nav ul li a:hover,
body.indigo-dark-theme #root header.site-header-desktop .menu .menu-content a:hover,
body.indigo-dark-theme #root header.border-bottom .menu .menu-content a:hover {
  background-color: var(--dark-mode-overlay) !important;
}

body.indigo-dark-theme .dropdown-divider {
  border-color: var(--light-grey) !important;
  opacity: 0.2;
}

body.indigo-dark-theme .page__account-settings .pgn-transition-replace-group .form-group .d-flex.align-items-start button,
body.indigo-dark-theme .page__account-settings .pgn-transition-replace-group form > p button {
  background-color: var(--primary-blue) !important;
  color: var(--dark-blue) !important;
  border-color: var(--primary-blue) !important;
}

body.indigo-dark-theme .page__account-settings .pgn-transition-replace-group .form-group .d-flex.align-items-start button:hover,
body.indigo-dark-theme .page__account-settings .pgn-transition-replace-group form > p button:hover {
  border-color: var(--dark-blue) !important;
}

body.indigo-dark-theme .page__account-settings .pgn-transition-replace-group form > p button.btn-outline-primary {
  color: var(--primary-blue) !important;
  border-color: var(--primary-blue) !important;
}

body.indigo-dark-theme .course-card-banners > div:first-of-type,
body.indigo-dark-theme div[data-testid=instructor-toolbar] .bg-primary,
body.indigo-dark-theme .bg-primary,
body.indigo-dark-theme .course-tabs-navigation + .container-xl > .row > .col-12.col-md-4.p-0.px-md-4 section.mb-4.x-small {
  background-color: var(--dark-blue) !important;
}
@layer app {
a.course-card-title {
    color: var(--pgn-color-black) !important;
}
}
body.indigo-dark-theme .course-tabs-navigation + .container-xl .donut-ring.incomplete-stroke {
  background-color: var(--dark-mode-overlay) !important;
}

body.indigo-dark-theme * {
  accent-color: var(--primary-blue) !important;
}

/* ==========================================================================
   7. Cards & Data Tables
   ========================================================================== */
.raised-card .rounded-bottom,
.raised-card .pgn__data-table-footer {
  background-color: var(--primary-blue) !important;
  border-radius: 0 0 8px 0 !important;
}

#weighted-grade-summary,
#weighted-grade-summary text {
  color: var(--text-light) !important;
}

/* ==========================================================================
   8. Specific Element Hiding & Layout Overrides
   ========================================================================== */
/* Issue https://github.com/calculquebec/edx/issues/56 */
section.course-info.about.container {
  padding-top: 25px !important;
}

/* Hide "Types de cours / Audit" */
.pgn__data-table-filters-dropdown-item:nth-child(2) {
  visibility: hidden;
  height: 0;
  padding: 0;
}

.pgn__data-table-side-filters-item:nth-child(4) {
  visibility: hidden;
  height: 0;
  padding: 0;
}


/* ==========================================================================
   9. Unit Headers & XBlock Content Typography
   ========================================================================== */
.unit .h2 {
  color: var(--dark-blue);
  font-size: 2.1rem;
  font-weight: 700;
}

.xblock h1,
.xblock h2,
.xblock h6 {
  color: var(--muted-grey) !important;
  font-size: 0.7rem !important;
}

.xblock h3,
.xblock h5,
.xblock p,
.xblock li,
.xblock a,
.xblock code {
  color: var(--dark-blue) !important;
}

.xblock h4 {
  color: var(--accent-blue) !important;
}

.xblock h3,
.xblock h4,
.xblock h5 {
  margin-left: 0.5rem !important;
  margin-bottom: 1.4rem !important;
}

.xblock h3 {
  font-size: 1.8rem !important;
  font-weight: 600 !important;
}

.xblock h4 {
  font-size: 1.6rem !important;
  font-weight: 500 !important;
}

.xblock h5 {
  font-size: 1.4rem !important;
  font-weight: 400 !important;
}

.xblock p {
  margin-left: 0.5rem !important;
}

.xblock li {
  margin-left: 2rem;
}

.xblock p,
.xblock li,
.xblock a,
.xblock code {
  font-size: 1.2rem !important;
  line-height: 1.7rem !important;
}

.xblock code {
  background-color: var(--code-bg-blue) !important;
}

.xblock a {
  border-bottom: 3px solid var(--accent-blue);
}

.xblock a:hover {
  color: var(--accent-blue) !important;
  text-decoration: none !important;
}

/* ==========================================================================
   10. Component Specific Overrides
   ========================================================================== */
/* Video subtitle readability in fullscreen */
.xmodule_display.xmodule_VideoBlock .video.video-fullscreen .subtitles li {
  color: var(--subtitles-grey) !important;
}

/* Popup text readability */
.popup-content p {
  color: inherit !important;
}

/* Align LTI external window button to the right */
div#jupytermc3 button.btn.btn-pl-primary.btn-base.btn-lti-new-window {
  margin-top: 1em;
  margin-right: 0;
  display: block;
  margin-left: auto;
}


.wrapper-footer {
  display: none !important;
}

.top {
  display: flex;
  justify-content: space-between;
  margin-bottom: 24px;
  background-color: var(--dark-blue);
}

.top-links {
  display: flex;
  flex-direction: row;
  gap: 40px;
  margin-right: 50px;
  margin-top: 0;
}

.top-links li,
.bottom-links li,
.logo-list li {
  list-style: none;
}

.top-links a {
  text-decoration: none;
  color: #FFFFFF;
  font-size: 14px;
  font-weight: 500;
}

.top-links a:hover,
.bottom-links a:hover {
  text-decoration: underline;
}

.line {
  width: 100%;
  height: 1px;
  background-color: var(--secondary-blue);
  opacity: 0.16;
}

.middle {
  display: flex;
  justify-content: space-between;
  align-items: center;
  text-align: center;
  padding: 20px 0;
  background: #FFFFFF;
}

.middle a {
  width: 50%;
}

.middle img {
  max-width: 500px;
  height: auto;
  max-height: 80px;
}

.bottom {
  display: flex;
  justify-content: space-between;
  margin-top: 24px;
  font-size: 12px;
  font-weight: 400;
}

.bottom-links {
  display: flex;
  flex-direction: row;
  gap: 40px;
  height: 100%;
}

.bottom-links a {
  text-decoration: none;
  color: var(--dark-blue);
}

.logo-list {
  display: flex;
  flex-direction: row;
  gap: 8px;
  align-items: center;
}

.logo-list .powered {
  transform: translateY(-2px);
}

.logo-list .vertical-line {
  width: 1px;
  height: 12px;
  background-color: var(--dark-blue);
  opacity: 0.8;
  transform: translateY(-2px);
  }

.logo-list .openedx {
  margin-left: -16px;
}

.mobile {
  display: none;
}

@media (max-width: 1000px) {
  .top {
      flex-direction: column;
      align-items: center;
  }

  .top-links {
      margin: 16px 0 0;
      padding: 0;
  }

  .bottom {
      flex-direction: column;
      align-items: center;
      text-align: center;
  }

  .mobile {
      display: block;
  }

  .desktop {
      display: none;
  }
}

body.indigo-dark-theme .top img {
  filter: brightness(0) invert(1);
  background-color: transparent !important;
}

body.indigo-dark-theme a {
  color: white !important;
}

body.indigo-dark-theme .footer a:hover{
  text-decoration: underline !important;
  color: #6095C1 !important;
}

body.indigo-dark-theme .footer .line, body.indigo-dark-theme .footer .vertical-line {
  background-color: #fff !important;
}

.footer {
    overflow: hidden;
    margin-top: 0;
    height: 94px;
    line-height: 94px;
    background: var(--dark-blue);
    padding: 0 19px;
    color: #fff;
}
.footer .social-nav__link {
    color: #000;
}
.footer .container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: center;
}
.footer .container:after {
    display: none;
}
.footer__nav {
    list-style: none;
    font-size: 1rem;
}
.footer__list-item {
    display: inline-block;
}
.footer__list-item .footer__link {
    display: inline-block;
    height: 24px;
    line-height: 22px;
    border-right: 1px solid rgba(255, 255, 255, 0.5);
}
.footer__list-item:first-child .footer__link {
    padding-left: 0;
}
.footer__list-item:last-child .footer__link {
    border-right: 0;
    padding-right: 0;
}
.footer__link {
    font-weight: 700;
    padding: 0 19px;
    text-decoration: none;
    color: #fff;
    opacity: 1;
    -webkit-transition: all 0.25s;
    transition: all 0.25s;
}
.footer__link:hover {
    color: #fff;
    opacity: 1;
}
.footer__copy {
    font-weight: 900;
    opacity: 0.5;
}
@media (max-width: 1200px) {
    .footer .container {
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
    }
    .footer .container > * {
	text-align: center;
	flex-basis: 100%;
    }
    .footer .footer__list-item {
	text-align: center;
	display: block;
	margin: 0;
	line-height: 1em;
	border: none;
    }
    .footer .footer__list-item .footer__link {
	border: none;
	padding: 5px;
    }
    .footer .footer__copy {
	line-height: 1em;
	margin: 19px 0 38px;
    }
    .footer .social-nav {
	margin: 38px 0 19px;
    }
    .footer {
	height: auto;
	line-height: 1em;
	margin-top: 0;
    }
}
@media (min-width: 1000px) {
    .container, .container-fluid, .container-lg, .container-md, .container-sm, .container-xl {
	max-width: 1600px;
    }
}

.post-footer {
    background: #FFFFFF;
}
.post-footer-wrapper {
    display: flex;
    justify-content: space-between;
    align-items: center;
    text-align: center;
    padding: 20px 0;
}
.post-footer-wrapper a {
    width: 50%;
}
.post-footer-wrapper img {
    max-width: 500px;
    height: auto;
    max-height: 80px;
}

@media (max-width: 937px) {
    .post-footer-wrapper {
	display: block;
    }
}

.social-nav__item,
.social-nav__link {
    display: inline-block;
}
.social-nav {
    list-style: none;
    padding: 0;
    margin: 0;
}
.social-nav__item:first-child .social-nav__link {
    margin-left: 0;
}
.social-nav__item:last-child .social-nav__link {
    margin-right: 0;
}
.social-nav__link {
    position: relative;
    text-decoration: none;
    box-sizing: border-box;
    margin: 0 5px;
    color: #fff;
    vertical-align: middle;
    border: 2px solid var(--accent-blue);
    border-radius: 50%;
    width: 45px;
    height: 45px;
    line-height: 41px;
    text-align: center;
    -webkit-transition: 0.25s;
    transition: 0.25s;
}
.social-nav__link .icon {
    color: #fff;
}
.social-nav__link:hover {
    background-color: var(--accent-blue);
    color: #fff;
}
.social-nav__descriptor {
    font-weight: 900;
    position: absolute;
    top: 130px;
    display: none;
    left: 50%;
    font-size: 0.588em;
    transform: translateX(-50%);
}
.social-nav__descriptor:before {
    content: "";
    height: 65px;
    width: 1px;
    right: 50%;
    position: absolute;
    background: #fff;
    bottom: 50px;
}
.icon-facebook:before {
    content: "\f09a";
}
.icon-linkedin:before {
    content: "\f0e1";
}
footer[role=contentinfo]
{
    display: none !important;
}

.cq-banner {
  display: block;
  background-color: #E4E9EB;
  color: #000000;
  text-align: center;
  padding: 1.2em;
  font-size: 1.0em;
}
@media (max-width: 937px) {
  .cq-banner {
    display: none;
  }
}
.cq-title {
  font-size: 1.5em;
}

@layer paragon {
#root .layout {
    background: var(--dark-blue) !important;
}

#root .layout:before {
    display: none !important;
}

#root .layout .bg-primary-400 h1 .text-accent-a {
    color: var(--text-light) !important;
    font-family: 'Open Sans' !important;
}
#root .layout .bg-primary-400 h1 img {
    width: 95%;
}

#root .layout .content .div-logo-cq {
    position: relative;
    width: 100%;
    text-align: center;
    margin-top: 2vh;
}
#root .layout .content .div-logo-cq img {
    width: 50%;
    max-width: 300px;
    min-width: 100px;
}

.btn-social {
    width: 100% !important;
}
#root .layout .bg-primary-400 h1 {
    color: var(--pgn-color-primary-base) !important;
    font-size: 32px;
    font-weight: 400;
    line-height: 40px;
    margin: 0 auto !important;
    max-width: 564px !important;
    padding: 50px 0;
    position: relative;
    width: 100%;
    z-index: 1;
}
#root .layout .bg-primary-400 {
    background: none !important;
    display: block;
    flex: 0 0 100%;
    max-width: 100%;
}
}

/* certificate page */
.layout-accomplishment .accomplishment-orgs .organization-logo {
    max-width: 200% !important;
    max-height: none !important;
    width: auto;
    height: auto;
    padding-top: 6rem;
    min-width: 10rem;
    min-height: 7rem;
    padding-bottom: 0 !important;
}
.accomplishment-signatories {
  display: none;
}
.certificate .accomplishment-rendering .deco-corner {
  display: none;
}
.accomplishment-rendering {
  border-top: 0 !important;
}
.accomplishment-rendering .accomplishment-statement-lead {
  margin-top: -4rem !important;
}
.accomplishment-rendering .accomplishment-type-label {
  font-weight: 400 !important;
  color: #000000 !important;
}
.accomplishment-rendering .accomplishment-summary,
.accomplishment-rendering .accomplishment-recipient,
.accomplishment-rendering .accomplishment-statement-lead,
.accomplishment-rendering .accomplishment-course,
.accomplishment-rendering .accomplishment-statement-detail {
  font-family: "Roboto" !important;
}
.accomplishment-rendering .accomplishment-summary,
.accomplishment-rendering .accomplishment-statement-detail {
  font-size: 1.5rem !important;
}
.accomplishment-rendering .accomplishment-summary,
.accomplishment-rendering .accomplishment-type {
  margin-bottom: 2rem !important;
}
.accomplishment-rendering .accomplishment-recipient,
.accomplishment-rendering .accomplishment-course {
  letter-spacing: 0 !important;
  font-weight: 700 !important;
}
.inline-certificate-metadata {
  display: flex;
  justify-content: space-between;
  width: 95%;
  bottom: 0;
  position: absolute;
}
.inline-certificate-accomplishment-date,
.inline-certificate-accomplishment-id {
  display: inline-block;
}
.inline-certificate-metadata div dl {
  display: grid;
  grid-template-columns: max-content auto;
}
.inline-certificate-metadata div dt {
  grid-column-start: 1;
}
.inline-certificate-metadata div dd {
  grid-column-start: 2;
}
@media screen {
  body.layout-accomplishment section.banner.banner-user {
    background: black !important;
  }
  .layout-accomplishment .accomplishment-rendering {
    height: 50rem;
  }
}
.layout-accomplishment .accomplishment-rendering {
    background: url(https://edx.evolo.calculquebec.cloud/asset-v1:CQ+Assets101+2026+type@asset+block@evolo-certificat-fond.png);
    background-size: cover;
}
@media print {
	.accomplishment-rendering .accomplishment-statement {
		max-width: 90% !important;
	}
	.accomplishment-rendering .hd-1 {
		font-size: 2.375rem;
	}
	.accomplishment-rendering .hd-3 {
		font-size: 1.5rem;
	}
	.accomplishment-rendering {
		height:7.5in;
		width:11in;
	}
	.wrapper-accomplishment-metadata {
		display: none;
	}
	.cky-btn-revisit-wrapper.cky-revisit-bottom-left {
	    display: none;
	}
}

/* fix display bug in registration page */
.username__form-group-wrapper > div:first-of-type {
    margin-bottom: 20px;
}

