/*!

 =========================================================
 * CodeMeta css customizations
 =========================================================

 */

/*! 
 * dark mode support for unstyled elements
 */
 
:root {
  color-scheme: light dark;
}

/*!
 *  Make the header colour change on-scroll smoother
 */
 
#sectionsNav {
  transition: all 0.25s;
}

/*!
 * overide black border on responsive nav toggler
 */

.navbar {
  --bs-navbar-toggler-focus-width: none;
}

/*!
 * Dark mode toggler button
 */

li.dark-light-toggler {
  height: 50px;
}

.dark-light-toggler .form-check-label {
  padding: 0px;
  margin-top: 10px;
  margin-left: 25px;
  font-size: 1.25em;
}

/*!
 * These are the base colours which are using the Bootstrap
 * variables which will work with dark/light mode switching
 * 
 * The definitions here are overriding material-kit.css
 */

body {
  color: var(--bs-body-color);
  background-color: var(--bs-body-bg);
}

.main{
  background-color: var(--bs-body-bg);
}

[data-bs-theme=dark] .main{
  background-color: var(--bs-secondary-bg);
}

.navbar {
  background-color: var(--bs-body-bg) !important;
}

div.highlight {
  border: 1px solid var(--bs-dark-border-subtle);
  padding: 10px 10px 0px 10px;
}

.highlight {
  background-color: var(--bs-tertiary-bg);
}

.highlight pre {
  text-wrap-mode: wrap;
}

[data-bs-theme=dark] div.highlight {
  border: 1px solid var(--bs-body-bg);
  padding: 10px 10px 0px 10px;
  margin: 25px 0px;
}

[data-bs-theme=dark] .highlight {
  background-color: var(--bs-body-bg) !important;
  color: var(--bs-body-color);
}

[data-bs-theme=dark] pre code {
  color: var(--bs-body-color);
}

[data-bs-theme=dark] .navbar {
  color: var(--bs-body-color) !important;
}

@media only screen and (max-width: 992px) {
  .navbar-collapse, .navbar-collapse::after {
    background-color: var(--bs-body-bg) !important;
  }
  .nav-open .nav-item a{
    color: var(--bs-body-color) !important;
  }
}

/*!
 * Card theming
 */

.card {
  background-color: var(--bs-secondary-bg);
  aspect-ratio: 1 / 1;
}

[data-bs-theme=dark] .card {
  background-color: var(--bs-border-color) !important;
  color: var(--bs-body-color);
}

.supporter-card a {
 display:flex;
 flex-direction:column;
 justify-content:center;
}

/*!
 * Carousel theming
 */

.slide, .carousel-item {
  background-color: var(--bs-secondary-bg);
}

[data-bs-theme=dark] .slide, [data-bs-theme=dark] .carousel-item {
  background-color: var(--bs-border-color) !important;
  color: var(--bs-body-color);
}

.carousel .carousel-indicators .active {
  transform: none;
  box-shadow: none;
  height: 7px;
}

.carousel .carousel-indicators [data-bs-target] {
  margin: 5px;
  background-color: var(--bs-body-color);
}

.carousel .carousel-indicator:hover {
  height: 7px;
}

.carousel .carousel-control-prev-icon {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E");
  fill: var(--bs-body-color);
}

.carousel .carousel-control-next-icon {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E");
  fill: var(--bs-body-color);
}

/*!
 * ToC theming
 */

h1,h2,h3,h4,h5,h6,h7,th,tr {
	scroll-margin: 70px;
}

@media only screen and (min-width: 992px) {

    #toc {
      border-right: 2px solid var(--bs-dark-border-subtle);
    }
    
	.toc-level {
	  border-right: 5px solid var(--bs-body-bg);
	}

	.toc-level:hover {
	  background-color: var(--bs-secondary-bg);
	  border-right: 5px solid var(--bs-dark-border-subtle);
	}

    [data-bs-theme=dark] #toc {
      border-right: 2px solid var(--bs-border-color);
    }

	[data-bs-theme=dark] .toc-level {
	  border-right: 5px solid var(--bs-secondary-bg);
	}

	[data-bs-theme=dark] .toc-level:hover {
	  background-color: var(--bs-tertiary-bg);
	  border-right: 5px solid var(--bs-border-color);
	}
}

.toc-1 {
  padding-left: -1rem;
}

.toc-2 {
  padding-left: 0rem;
}

.toc-3 {
  padding-left: 1rem;
}

.toc-4 {
  padding-left: 2rem;
}

.toc-5 {
  padding-left: 3rem;
}

.toc-6 {
  padding-left: 3.5rem;
}

.toc-7 {
  padding-left: 4rem;
}

/*!
 * right-side panel
 */

@media only screen and (min-width: 992px) {

    .landing-right {
      border-left: 2px solid var(--bs-dark-border-subtle);
    }

    [data-bs-theme=dark] .landing-right {
      border-left: 2px solid var(--bs-border-color);
    }
}

/*!
 * Accessibility tweaks
 */

:focus-visible, .dark-light-toggler:focus-within {
  outline: 2px dashed var(--bs-info) !important;
  border-radius: 2px;
}

.main a {
  color: var(--bs-primary);
}

.main a, #sectionsNav a:hover, #footer-nav a:hover {
  text-decoration: underline !important;
  text-underline-offset: 3px;
}

[data-bs-theme=dark] .main a {
  color: var(--bs-primary-text-emphasis);
}

.main a:hover {
  text-decoration: none !important;
}

code{
  color: var(--bs-code-color);
}

#skip-to-content{
  color: var(--bs-body-color);
  position: absolute;
  top: 0px;
  right: 0px;
  padding-right: 5px;
  transform: translateY(-100%);
  background: var(--bs-secondary-bg-subtle);
  border-radius: 0 0 0 1em;
}

@media only screen and (min-width: 992px) {

	#skip-to-content:focus{
		transform: translateY(0%);
	}

}

@media only screen and (max-width: 991px) {

	#skip-to-content{
		transform: translateY(-177%);
		padding-right: 0px;
	}

}
@media only screen and (max-width: 991px) {

	#skip-to-content:focus{
		transform: translateY(-77%);
		margin-right: -15px;
	}

}

/*!
 * Errata
 */

dl, li {
  font-size: 14px;
}

p img {
  margin: 25px 0px;
}

/*!
 * infobox paragraphs and blockquotes
 */

p.tip, p.warning, p.danger, blockquote{
  background-repeat: no-repeat;
  background-size: 30px;
  background-position: 10px 50%; 
  padding: 10px 10px 10px 60px;
  min-height: 30px;
}

p.tip, p.warning, p.danger, blockquote {
  background-color: var(--bs-secondary-bg);
  border-left: 3px;
  fill: currentcolor;
}

[data-bs-theme=dark] blockquote, [data-bs-theme=dark] p.tip, [data-bs-theme=dark] p.warning, [data-bs-theme=dark] p.danger{
  background-color: var(--bs-border-color) !important;
  color: var(--bs-body-color);
  border-radius: 5px;
}

blockquote {
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" class="bi bi-quote" viewBox="0 0 16 16"><path d="M12 12a1 1 0 0 0 1-1V8.558a1 1 0 0 0-1-1h-1.388q0-.527.062-1.054.093-.558.31-.992t.559-.683q.34-.279.868-.279V3q-.868 0-1.52.372a3.3 3.3 0 0 0-1.085.992 4.9 4.9 0 0 0-.62 1.458A7.7 7.7 0 0 0 9 7.558V11a1 1 0 0 0 1 1zm-6 0a1 1 0 0 0 1-1V8.558a1 1 0 0 0-1-1H4.612q0-.527.062-1.054.094-.558.31-.992.217-.434.559-.683.34-.279.868-.279V3q-.868 0-1.52.372a3.3 3.3 0 0 0-1.085.992 4.9 4.9 0 0 0-.62 1.458A7.7 7.7 0 0 0 3 7.558V11a1 1 0 0 0 1 1z"/></svg>')
}

p.tip, blockquote.tip {
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="green" class="bi bi-info-circle" viewBox="0 0 16 16"><path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/><path d="m8.93 6.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533zM9 4.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0"/></svg>');
}

p.warning, blockquote.warning {
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="yellow" class="bi bi-exclamation-circle" viewBox="0 0 16 16"><path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/><path d="M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0M7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0z"/></svg>');
}

p.danger, blockquote.danger {
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="red" class="bi bi-x-circle" viewBox="0 0 16 16"><path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14m0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16"/><path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708"/></svg>');
}
