.reveal .slides {
    margin-top: 2% !important;
}

/* Title slide logo - use background image approach */
#title-slide .title-slide-logo {
    display: none;
}

/* Position logo in top-right of slide viewport using background on title-slide */
#title-slide::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    /* Position relative to the full slide area, not the section */
    width: 100%;
    height: 100%;
    background-image: url("att/lmu-logo.png");
    background-position: top -25px right 20px;
    background-size: 240px auto;
    background-repeat: no-repeat;
    pointer-events: none;
    z-index: 1;
}

.reveal .slides .subtitle {
    font-style: normal !important;
}

/* CQL Block - code block appearance with run button */
.cql-block {
    position: relative;
    margin: 1rem 0;
}

.cql-block pre.cql {
    background-color: #f8f9fa;
    border: 1px solid #e9ecef;
    border-radius: 4px;
    padding: 0.75rem 1rem;
    padding-right: 3rem;
    /* Space for button */
    margin: 0;
    overflow-x: auto;
}

.cql-block pre.cql code {
    font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: 0.875em;
    background: none;
    padding: 0;
}

.cql-block .cql-run-btn {
    position: absolute;
    top: 0;
    right: 0;
    padding: 0.5rem;
    color: #6c757d;
    background: transparent;
    border: none;
    cursor: pointer;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cql-block .cql-run-btn:hover {
    color: #0d6efd;
}

/* CQL Inline - clickable inline code */
a.cql-inline {
    font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: 0.875em;
    background-color: #e7f1ff;
    padding: 0.2em 0.4em;
    border-radius: 3px;
    color: #0d6efd;
    text-decoration: none;
    border-bottom: 1px dashed #0d6efd;
}

a.cql-inline:hover {
    background-color: #cfe2ff;
    border-bottom-style: solid;
}

a.cql-inline::after {
    content: " \2197";
    /* ↗ arrow */
    font-size: 0.75em;
    opacity: 0.7;
}

/* Force figure captions above images in RevealJS */
.reveal figure,
.reveal .quarto-figure,
.reveal .figure {
    display: flex !important;
    flex-direction: column-reverse !important;
}

.reveal figure figcaption,
.reveal .quarto-figure figcaption,
.reveal .figure-caption,
.reveal .quarto-figure-center figcaption {
    margin-bottom: 0.5em;
    order: 1;
    text-align: center;
}

/* Font size utility classes */
.reveal .small {
    font-size: 0.85em;  /* Between normal (1em) and .smaller (0.7em) */
}

/* Color utility classes */
.red {
    color: red;
}

.green {
    color: green;
}

.blue {
    color: blue;
}

.orange {
    color: orange;
}

.purple {
    color: purple;
}

.gray {
    color: gray;
}

.yellow {
    color: yellow;
}

.cyan {
    color: cyan;
}

.magenta {
    color: magenta;
}

.white {
    color: white;
}

.black {
    color: black;
}