/* --- Global --- */
body {
    background-color: #f4f4f4;
    color: #2c2c2c;
}

.navbar {
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
}

/* Slightly warm content area */
#quarto-content {
    background-color: #ffffff;
}

main.content {
    max-width: 960px;
}

/* Title block banners */
.quarto-title-banner {
    background-color: #2c3e50 !important;
}

/* --- Typography --- */
h1, h2, h3, h4, h5, h6 {
    color: #2c3e50;
    font-weight: 600;
}

/* Horizontal rules */
hr {
    border-top: 1px solid #d0d0d0;
    margin: 2.5rem 0;
}

/* --- Carousel images --- */
.carousel-inner img,
.carousel-inner video {
    height: 500px;
    object-fit: contain;
    width: 100%;
    background-color: #ffffff;
}

@media (max-width: 768px) {
    .carousel-inner img,
    .carousel-inner video {
        height: 300px;
    }
}

@media (max-width: 480px) {
    .carousel-inner img,
    .carousel-inner video {
        height: 200px;
    }
}

/* Captions below the image */
.carousel-caption {
    position: relative;
    bottom: 0;
    left: 0;
    width: 100%;
    text-align: center;
    min-height: 50px;
    padding: 10px 16px;
    background: #2c3e50;
    color: #e0e0e0;
    font-size: 0.9rem;
    display: flex;
    justify-content: center;
    align-items: center;
}

@media (max-width: 768px) {
    .carousel-caption {
        font-size: 0.85rem;
        padding: 8px 12px;
    }
}

@media (max-width: 480px) {
    .carousel-caption {
        font-size: 0.8rem;
        padding: 6px 10px;
    }
}

/* Carousel arrows */
.carousel-control-prev,
.carousel-control-next {
    width: auto;
    top: 88%;
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
    background-color: rgba(0, 0, 0, 0.5);
    border-radius: 4px;
    padding: 12px;
}

/* Carousel container */
.carousel {
    margin-bottom: 1rem;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

/* --- Booking page --- */
.booking-frame {
    background: #ffffff;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.booking-frame iframe {
    display: block;
    min-height: 600px;
}

@media (max-width: 768px) {
    .booking-frame iframe {
        min-height: 720px;
    }
}

/* --- Software page --- */
.software-preview {
    display: block;
    width: 100%;
    max-width: 860px;
    margin: 1rem auto 1.5rem auto;
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

/* --- Blog posts --- */
.quarto-post .quarto-figure,
.quarto-post p > img {
    display: table;
    margin-left: auto;
    margin-right: auto;
}

/* --- Footer --- */
.nav-footer {
    background-color: #2c3e50;
    color: #aaa;
}
