p, h1, h2, h3, h4, h5, h6, button {
    font-family: "Roboto", serif;
}

body {
    background-color: #f5f5f9;
    background-size: cover;
    width: auto; 
    overflow-x: hidden;
    font-family: "Roboto", serif;
    margin: 0px;
}

.nav-bar {
    width: 100%;
    display: inline-block;
    background-color: #1C539F;
    font-family: "Roboto", serif;
    font-weight: 700 !important;
    padding-top: 10px;
}

.nav-content .logo-touch-target {
    display: inline-flex;
    height: 60%;
    width: 350px;
}

.nav-content .nav-logo {
    height: 60px;
    margin: auto;
}

.nav-logo {
    display: flex;
    align-items: center;
    justify-content: center;
}

.nav-logo img {
    width: 200px;
}

.nav-content nav {
    display: block;
    width: 100%;
    text-align: right;
    padding-top: 0px;
    padding-right: 0px;
}

.profile {
    background-color: #1d539f !important;
    text-align: center;
    height: 320px;
    margin-bottom: 50px;
}

.profile h1 {
        font-size: 50px;
        font-weight: 700;
        color: white;
}

.profile img {
        border-radius: 50%;
        max-width: 100%;
        max-height: 100%;
        margin-left: auto;
        margin-right: auto;
        display: block;        
        padding: 20px;
}

.profile .profile-picture {
    margin-bottom: 30px;
    height: 200px;
}

.banner {
    padding: 20px 0px 50px 0px;
    height: 150px;
    background-color: #1d539f;
}

.banner .logo {
    max-width:180px;
    max-height:60px;
    width: auto;
    height: auto;
}

.banner .title {
    color: white;
    font-size: 50px;
    font-weight: 700;
}

/* Portrait carousel sizing: center and limit to ~30% of page width on large screens */
.carousel-portrait {
    width: 30%;
    margin-left: auto;
    margin-right: auto;
}

.carousel-portrait .carousel-item img {
    width: 100%;
    height: auto; /* preserve portrait aspect ratio */
    object-fit: cover;
}

@media (max-width: 992px) {
    .carousel-portrait { width: 45%; }
}

@media (max-width: 576px) {
    .carousel-portrait { width: 90%; }
}

/* Make carousel captions readable on light/bright images */
.carousel-portrait .carousel-caption,
.carousel-portrait .carousel-caption h5,
.carousel-portrait .carousel-caption p {
    color: #B0B0B0 !important;
    /* no outline */
}

/* Slightly larger caption text for readability */
.carousel-portrait .carousel-caption {
    font-size: 1.05rem;
}
.carousel-portrait .carousel-caption h5 {
    font-size: 1.25rem;
}
.carousel-portrait .carousel-caption p {
    font-size: 1rem;
}

/* Accordion work header styles */
.accordion .work-role {
    font-size: 1.05rem;
    font-weight: 700;
}
.accordion .work-company {
    font-size: 0.95rem;
}
.accordion .work-dates {
    font-size: 0.95rem;
}

@media (max-width: 576px) {
    .accordion .work-role { font-size: 1rem; }
    .accordion .work-dates { font-size: 0.9rem; }
}

/* Per-caption color classes (no outline) */
.caption-white { color: #FFFFFF !important; -webkit-text-stroke: 0; text-stroke: 0; text-shadow: none; }
.caption-black { color: #000000 !important; -webkit-text-stroke: 0; text-stroke: 0; text-shadow: none; }
.caption-green { color: #00FF00 !important; -webkit-text-stroke: 0; text-stroke: 0; text-shadow: none; }
.caption-cyan { color: #00FFFF !important; -webkit-text-stroke: 0; text-stroke: 0; text-shadow: none; }
.caption-red { color: #FF0000 !important; -webkit-text-stroke: 0; text-stroke: 0; text-shadow: none; }
.caption-cream { color: #FFFFE0 !important; -webkit-text-stroke: 0; text-stroke: 0; text-shadow: none; }
.caption-blue { color: #000080 !important; -webkit-text-stroke: 0; text-stroke: 0; text-shadow: none; }
.caption-gold { color: #FFD700 !important; -webkit-text-stroke: 0; text-stroke: 0; text-shadow: none; }
.caption-brown { color: #513714 !important; -webkit-text-stroke: 0; text-stroke: 0; text-shadow: none; }

/* Stronger specificity so these classes override the generic .carousel-portrait caption color */
.carousel-portrait .carousel-caption.caption-white,
.carousel-portrait .carousel-caption.caption-white h5,
.carousel-portrait .carousel-caption.caption-white p {
    color: #FFFFFF !important;
    -webkit-text-stroke: 0;
    text-shadow: none;
}
.carousel-portrait .carousel-caption.caption-black,
.carousel-portrait .carousel-caption.caption-black h5,
.carousel-portrait .carousel-caption.caption-black p {
    color: #000000 !important;
    -webkit-text-stroke: 0;
    text-shadow: none;
}
.carousel-portrait .carousel-caption.caption-green,
.carousel-portrait .carousel-caption.caption-green h5,
.carousel-portrait .carousel-caption.caption-green p {
    color: #00FF00 !important;
    -webkit-text-stroke: 0;
    text-shadow: none;
}
.carousel-portrait .carousel-caption.caption-cyan,
.carousel-portrait .carousel-caption.caption-cyan h5,
.carousel-portrait .carousel-caption.caption-cyan p {
    color: #00FFFF !important;
    -webkit-text-stroke: 0;
    text-shadow: none;
}
.carousel-portrait .carousel-caption.caption-red,
.carousel-portrait .carousel-caption.caption-red h5,
.carousel-portrait .carousel-caption.caption-red p {
    color: #FF0000 !important;
    -webkit-text-stroke: 0;
    text-shadow: none;
}
.carousel-portrait .carousel-caption.caption-cream,
.carousel-portrait .carousel-caption.caption-cream h5,
.carousel-portrait .carousel-caption.caption-cream p {
    color: #FFFFE0 !important;
    -webkit-text-stroke: 0;
    text-shadow: none;
}
.carousel-portrait .carousel-caption.caption-blue,
.carousel-portrait .carousel-caption.caption-blue h5,
.carousel-portrait .carousel-caption.caption-blue p {
    color: #000080 !important;
    -webkit-text-stroke: 0;
    text-shadow: none;
}
.carousel-portrait .carousel-caption.caption-gold,
.carousel-portrait .carousel-caption.caption-gold h5,
.carousel-portrait .carousel-caption.caption-gold p {
    color: #FFD700 !important;
    -webkit-text-stroke: 0;
    text-shadow: none;
}
.carousel-portrait .carousel-caption.caption-brown,
.carousel-portrait .carousel-caption.caption-brown h5,
.carousel-portrait .carousel-caption.caption-brown p {
    color: #513714 !important;
    -webkit-text-stroke: 0;
    text-shadow: none;
}
