:root {
    --cgm-text-color: #3D3938;
    --cgm-orange: #E37456;
    --cgm-orange-rgb: 227, 116, 86;
    --cgm-orange-hover: #D64924;
    --cgm-orange-hover-rgb: 214, 73, 36;
    --cgm-text-orange: #E88B5D;
    --cgm-light-green: #EFF3F1;
    --cgm-beige: #DCD0C4;
    --cgm-light-beige: #F4F1ED;
    --cgm-light-gray: #F3F3F3;
    --cgm-light-blue: #E0E5E6;
    --cgm-font-sans-serif: Outfit, Avenir, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --cgm-font-serif: "DM Serif Display", Garamond, Didot, "Times New Roman", serif;

    --bs-body-color: #3D3938;
    --bs-body-color-rgb: 61,57,56;
    --bs-heading-color: #3D3938;
    --bs-body-bg: #F4F1ED;
    --bs-font-sans-serif: var(--cgm-font-sans-serif);

    --bs-body-font-size: 1.25rem;

    --bs-body-line-height: 1.4;

    --bs-border-radius: 1rem;

    /*--bs-link-color: var(--bs-body-color);*/
    --bs-link-color: var(--cgm-orange);
    /*--bs-link-color-rgb: var(--bs-body-color-rgb);*/
    --bs-link-color-rgb: var(--cgm-orange-rgb);
    --bs-link-hover-color: var(--cgm-orange-hover);
    --bs-link-hover-color-rgb: var(--cgm-orange-hover-rgb);
}

html {
    font-size: 16px;
}

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

.navbar-toggler {
    border: none;
}

.offcanvas {
    --bs-offcanvas-width: 100%;
}

.navbar-nav {
    --bs-nav-link-font-weight: 300;
}

header a.nav-link {
    text-transform: uppercase;
    font-weight: 400;
    font-size: .875rem;
}

a {
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

a.nav-link:hover {
    text-decoration: underline;
}

a.btn:hover {
    text-decoration: none;
}

p {
    font-weight: 300;
}

p strong {
    font-weight: 500;
}

.container {
    --bs-gutter-x: 5rem;
}

img[src=""] {
    font-size: 1.5rem;
    color: white;
    background-color: #666;
}

h1, .h1, h3, .h3 {
    font-family: var(--cgm-font-serif);
    font-weight: normal;
}

h4, .h4 {
    font-weight: normal;
}

h1, .h1 {
    font-size: 2.25rem;
    margin: 1rem auto;
}

h1.title {
    font-size: 3rem;
}

h2.subtitle {
    /*font-size: 1.125rem;*/
}

h2, .h2 {
    font-family: var(--cgm-font-sans-serif);
    font-size: 1.125rem;

    text-transform: uppercase;
    font-weight: 500;
    line-height: 1.4;
}

h3, .h3 {
    font-size: 1.75rem;
}

.lead {
    font-size: 1.5rem;
}

#lead-in {
    text-align: center;
}

#hero-image-container {
    background-image: url("../img/home/caitlin-homepage-hero-image-crop.jpg");
    background-size: cover;
}

.specialist-in-items {
    display: flex;
    flex-wrap: wrap;
    row-gap: 0.375rem;
    column-gap: 0.25rem;
    justify-content: center;
}

.specialist-in-items .badge {
    --bs-badge-padding-y: 1em;
    --bs-badge-padding-x: 1.5em;
    --bs-badge-font-weight: 400;
    font-size: .875rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.specialist-in-items .break {
    flex-basis: 100%;
    width: 0;
}

.specialist-in-items .badge:nth-child(1) {
    transform: rotate(-12.5deg);
    background-color: #FCBF49;
    color: var(--bs-heading-color);
}

.specialist-in-items .badge:nth-child(2) {
    background-color: #8ECAE6;
    color: var(--bs-heading-color)
}

.specialist-in-items .badge:nth-child(3) {
    background-color: #D87316;
}

.specialist-in-items .badge:nth-child(4) {
    background-color: #00796E;
}

.btn {
    text-transform: uppercase;
    --bs-btn-padding-x: 1.0rem;
    --bs-btn-padding-y: 0.5rem;
    --bs-btn-border-width: 3px;
    --bs-btn-border-radius: 8px;
    --bs-btn-font-size: 1rem;
}

.btn-cgm {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--cgm-orange);
    --bs-btn-border-color: var(--cgm-orange);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--cgm-orange-hover);
    --bs-btn-hover-border-color: var(--cgm-orange-hover);
    --bs-btn-focus-shadow-rgb: 49,132,253;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--cgm-orange-hover);
    --bs-btn-active-border-color: var(--cgm-orange-hover);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--cgm-orange);
    --bs-btn-disabled-border-color: var(--cgm-orange);
}

.btn-outline-cgm {
    --bs-btn-color: var(--cgm-text-orange);
    --bs-btn-border-color: var(--cgm-orange);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--cgm-orange);
    --bs-btn-hover-border-color: var(--cgm-orange);
    --bs-btn-focus-shadow-rgb: 13,110,253;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--cgm-orange);
    --bs-btn-active-border-color: var(--cgm-orange);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--cgm-orange);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--cgm-orange);
    --bs-gradient: none;
    --bs-btn-font-size: 1.15rem;

}

#featured-in {
    background-color: #E9EDEF;
}

.double-underline {
    background: url(underline.svg) bottom center/100% 0.25em no-repeat;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
    padding-bottom: 0.1em;
    text-decoration: none;
}

#work-together {
    padding-bottom: 3rem;
}

#work-together > h2 {
    margin: 2rem auto;
}

#work-together > div > div {
}

#work-together > div > div > img {
    width: 100%;
    max-width: 100%;
    height: auto;
}

#work-together h3 {
    text-align: left;
    font-size: 1.45rem;
    margin-top: 2rem;
    margin-bottom: 2rem;
    min-height: 60px;
}

#work-together p {
    text-align: left;
}

#about h1, #about h2, #about p {
}

.lead strong {
    font-weight: 500;
}

.callout {
    text-align: center;
    padding: var(--bs-gutter-x);
    border-radius: var(--bs-border-radius);
    background-color: #fff;
}

.callout-left {
    text-align: left;
}

.callout-left-p p {
    text-align: left;
}

.bg-light-green {
    background-color: var(--cgm-light-green);
}

.bg-beige {
    background-color: var(--cgm-beige);
}

.bg-light-beige {
    background-color: var(--cgm-light-beige);
}

.bg-light-gray {
    background-color: var(--cgm-light-gray);
}

.bg-light-blue {
    background-color: var(--cgm-light-blue);
}

.bg-frosted {
    background: rgba(255, 255, 255, 0.65);
}

.callout h1 {
    text-align: center!important;
}

.callout.callout-centered p {
    text-align: center;
}

.press-logos {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    row-gap: 1rem;
}

.press-logos img {
    height: 24px;
    width: auto;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

#recent-appearances {
    text-align: left;
}

#recent-appearances ul {
    list-style: none;
    padding-left: 0;
}

#recent-appearances ul li {
    margin-top: 1.5rem;
    margin-bottom: 2rem;
}

#recent-appearances ul li h3 {
    font-size: 1.5rem;
}

#recent-appearances .event-info {
    margin-bottom: 1.5rem;
}

#recent-appearances .event-info p {
    margin-bottom: 0.25rem;
}

#recent-appearances .event-info p:nth-of-type(1) {
    margin-left: 1rem;
    font-size: 1rem;
    color: #666;
}

#recent-appearances .event-info p:nth-of-type(1) > span {
    margin-left: 0.5rem;
    font-size: .75rem;
    text-transform: uppercase;
}
#recent-appearances .event-info p:nth-of-type(2) {
    margin-left: 1rem;
    font-size: 1.125rem;
    /*font-style: italic;*/
    font-weight: 500;
}

#we-do-things-differently h3 {
    font-size: 1.5rem;
    margin-top: 0.75rem;
    margin-bottom: 1.5rem;
}

#we-do-things-differently > div > div > div > img {
    width: 100%;
    max-width: 100%;
    height: auto;
}

#testimonials {
    background-image: linear-gradient(rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.75)),
    url('../img/home/moly-mod-testimonials-background.jpg');
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    text-align: center;
}

#testimonials #testimonial-nav span:before {
    content: '⬤'; /* u+2b24 */
}

#testimonials #testimonial-nav span {
    color: var(--cgm-orange);
    padding: 0 0.25rem;
}

#testimonials #testimonial-nav span.active {
    color: #fff;
}

.testimonial div, .testimonial p {
    color: #fff !important;
}


.form-control, .form-select {
    background-color: #fff;
    padding: 1rem;
    margin-top: 1rem;
    margin-bottom: 1rem;
    border-radius: 1rem;
}

#footer {
    text-align: center;
}

#footer nav h3 {
    font-size: 1.5rem;
}

#footer nav ul {
    list-style: none;
    padding-left: 0;
}

#footer nav ul li {
    margin-top: 1rem;
    margin-bottom: 1rem;
    font-weight: 300;
}

#footer nav ul li a {
    color: var(--bs-body-color);
}

#footer .footnote {
    font-size: .875rem;
}

#speaking-topics h4 {
    font-size: 1.25rem;
}

#topics-to-explore > div {
    display: flex;
}

#topics-to-explore .callout {
    display: flex;
    align-items: center;
    border: 2px solid #F0E5D3;
}

#past-speaking-events ul {
    list-style: none;
    padding-left: 0;
}

#past-speaking-events ul li {
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
    background: url(underline.svg) bottom center/100% 0.25em no-repeat;
    padding-bottom: 0.5rem;
}

#past-speaking-events ul li:last-child {
    background: none;
}

#past-speaking-events ul li h3 {
    font-size: 2rem;
}

#past-speaking-events ul li p {
    font-size: 1.75rem;
}


#get-in-touch-form > div {
    margin-bottom: 2rem;
}

#get-in-touch-form .form-label {
    text-transform: uppercase;
    font-size: 1.25rem;
    font-weight: 300;
    margin-top: 1rem;
    margin-bottom: 0;
}

#get-in-touch-form .form-label:has(+ .form-control[required])::after,
#get-in-touch-form .form-label:has(+ .form-select[required])::after{
    content: '\00a0*';
    letter-spacing: -0.3rem;
    color: red;
}

#get-in-touch-form .form-control, #get-in-touch-form .form-select {
    margin-top: 0;
    border-radius: 0;
    border-top: none;
    border-right: none;
    border-left: none;
    border-bottom: 2px solid var(--cgm-text-color);
    padding: 0.25rem 0.5rem;
    min-height: inherit;
}

#get-in-touch-form .form-select:invalid {
    color: rgb(127,127,127);
}

.form-control, .form-select {
    font-weight: 300;
}

.form-control:focus, .form-select:focus {
    border-color: var(--bs-border-color);
}

.form-floating > label {
    font-weight: 300;
    font-size: 1.25rem;
    color: rgba(var(--bs-body-color-rgb),.65);
}


.form-floating > .form-control-plaintext ~ label,
.form-floating > .form-control:focus ~ label,
.form-floating > .form-control:not(:placeholder-shown) ~ label,
.form-floating > .form-select ~ label {
    transform: scale(.75) translateY(-0.5rem) translateX(0.15rem);
    line-height: 1;
}

.form-floating > .form-control-plaintext ~ label::after,
.form-floating > .form-control:focus ~ label::after,
.form-floating > .form-control:not(:placeholder-shown) ~ label::after,
.form-floating > .form-select ~ label::after {
    background-color: #fff;
    height: auto;
}


.form-control:focus, .form-select:focus {
    background-color: #fff;
    box-shadow: 0 0 0 0.25rem rgba(227,116,86,.25);
}

#get-in-touch-form .form-control:not(:required).is-valid,
#get-in-touch-form.was-validated .form-control:not(:required):valid {
    background-image: none;
}

.invalid-feedback {
    font-size: 1.25rem;
}

.was-validated:invalid~.invalid-feedback {
    display: block;
    background-color: var(--bs-danger-bg-subtle);
    padding: 0.5rem;
    border-radius: 0.5rem;
}

#top-speaking {
    background: linear-gradient(0deg, transparent, rgba(255, 255, 255, 0) 75%, rgba(255, 255, 255, 0.85) 90%),
                linear-gradient(-45deg, transparent, rgba(255, 255, 255, 0) 65%, rgba(255, 255, 255, 0.85)),
                url('../img/speaking-opportunities/speaking-background-66_Meister_2024_rev-crop.jpg') no-repeat top center;
    background-size: cover;
}