/**
 * Admonition-based toggles
 */

/* Visibility of the target */
.admonition.toggle .admonition-title ~ * {
    transition: opacity .3s, height .3s;
}

/* Toggle buttons inside admonitions so we see the title */
.admonition.toggle {
    position: relative;
}

/* Titles should cut off earlier to avoid overlapping w/ button */
.admonition.toggle .admonition-title {
    padding-right: 25%;
    cursor: pointer;
}

/* Hovering will cause a slight shift in color to make it feel interactive */
.admonition.toggle .admonition-title:hover {
    box-shadow: inset 0 0 0px 20px rgb(0 0 0 / 1%);
}

/* Hovering will cause a slight shift in color to make it feel interactive */
.admonition.toggle .admonition-title:active {
    box-shadow: inset 0 0 0px 20px rgb(0 0 0 / 3%);
}

/* Remove extra whitespace below the admonition title when hidden */
.admonition.toggle-hidden {
    padding-bottom: 0;
}

.admonition.toggle-hidden .admonition-title {
    margin-bottom: 0;
}

/* hides all the content of a page until de-toggled */
.admonition.toggle-hidden .admonition-title ~ * {
    height: 0;
    margin: 0;
    opacity: 0;
    visibility: hidden;
}

/* General button style and position*/
button.toggle-button {
    /**
     * Background and shape. By default there's no background
     * but users can style as they wish
     */
    background: none;
    border: none;
    outline: none;

    /* Positioning just inside the admonition title */
    position: absolute;
    right: 0.5em;
    padding: 0px;
    border: none;
    outline: none;
}

/* Display the toggle hint on wide screens */
@media (min-width: 768px) {
    button.toggle-button.toggle-button-hidden:before {
        content: attr(data-toggle-hint);  /* This will be filled in by JS */
        font-size: .8em;
        align-self: center;
    }
}

/* Icon behavior */
.tb-icon {
    transition: transform .2s ease-out;
    height: 1.5em;
    width: 1.5em;
    stroke: currentColor;  /* So that we inherit the color of other text */
}

/* The icon should point right when closed, down when open. */
/* Open */
.admonition.toggle button .tb-icon {
    transform: rotate(90deg);
}

/* Closed */
.admonition.toggle button.toggle-button-hidden .tb-icon {
    transform: rotate(0deg);
}

/* With details toggles, we don't rotate the icon so it points right */
details.toggle-details .tb-icon {
    height: 1.4em;
    width: 1.4em;
    margin-top: 0.1em;  /* To center the button vertically */
}


/**
 * Details-based toggles.
 * In this case, we wrap elements with `.toggle` in a details block.
 */

/* Details blocks */
details.toggle-details {
    margin: 1em 0;
}


details.toggle-details summary {
    display: flex;
    align-items: center;
    cursor: pointer;
    list-style: none;
    border-radius: .2em;
    border-left: 3px solid #1976d2;
    background-color: rgb(204 204 204 / 10%);
    padding: 0.2em 0.7em 0.3em 0.5em; /* Less padding on left because the SVG has left margin */
    font-size: 0.9em;
}

details.toggle-details summary:hover {
    background-color: rgb(204 204 204 / 20%);
}

details.toggle-details summary:active {
    background: rgb(204 204 204 / 28%);
}

.toggle-details__summary-text {
    margin-left: 0.2em;
}

details.toggle-details[open] summary {
    margin-bottom: .5em;
}

details.toggle-details[open] summary .tb-icon {
    transform: rotate(90deg);
}

details.toggle-details[open] summary ~ * {
    animation: toggle-fade-in .3s ease-out;
}

@keyframes toggle-fade-in {
  from {opacity: 0%;}
  to {opacity: 100%;}
}

/* Print rules - we hide all toggle button elements at print */
@media print {
    /* Always hide the summary so the button doesn't show up */
    details.toggle-details summary {
        display: none;
    }
}
