:root {
    --bs-body-bg: #f7f5ee;
    --bs-body-color: #1f1f1f;
    --bs-body-font-family: var(--bs-font-sans-serif);
    --bs-body-font-size: 1.08rem;
    --bs-body-line-height: 1.6;
    --bs-link-color: #1f1f1f;
    --bs-link-hover-color: #5a1abc;
    --site-accent: #5a1abc;
}

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

.home-shell {
    min-height: 100vh;
    padding-top: clamp(1.8rem, 4vw, 3rem);
    padding-bottom: clamp(1.8rem, 4vw, 3rem);
}

.home-content {
    max-width: 650px;
}

.home-wide {
    max-width: 1200px;
}

.brand-link,
.brand-link:hover,
.brand-link:focus {
    color: inherit;
    text-decoration: none;
}

.section-title,
.accent {
    color: var(--site-accent);
}

.home-content > * + * {
    margin-top: 1.5rem;
}

.home-content h1,
.home-content h2,
.home-content h3,
.home-content h4,
.home-content h5,
.home-content h6 {
    font-weight: 400;
    line-height: 1.4;
}

.home-content h1 {
    font-size: clamp(2.032rem, 5vw, 3.625rem);
    line-height: 1.2;
}

.home-content h2 {
    font-size: clamp(2.625rem, 6vw, 3.25rem);
    line-height: 1.2;
}

.home-content h3 {
    font-size: 2.25rem;
}

.home-content h4 {
    font-size: clamp(1.75rem, 3vw, 1.875rem);
}

.home-content figure {
    margin-bottom: 0;
}

.home-content img {
    height: auto;
    max-width: 100%;
}

.image-portrait {
    width: min(540px, 100%);
}

.image-profile {
    width: min(207px, 100%);
}

.image-medium {
    width: min(390px, 100%);
}

.image-small {
    width: min(185px, 100%);
}

.image-map {
    width: min(440px, 100%);
}

.quote {
    border-left: 1px solid currentColor;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}
