/* ------------------------------------- 
COLOR VARIABLES
------------------------------------- */
:root {
    /* Color Variables */
    --dark-navy: hsl(211, 53%, 9%);
    --dark-navy-shadow: hsl(211, 53%, 11%);
    --dark-navy-highlight: hsl(211, 53%, 16%);

    --navy: hsl(219, 37%, 17%);
    --navy-shadow: hsl(219, 37%, 12%);
    --navy-highlight: hsl(219, 37%, 22%);

    --blue: hsl(218, 60%, 53%);
    --blue-shadow: hsl(218, 60%, 40%);
    --blue-highlight: hsl(218, 60%, 60%);

    --ivory: hsl(45, 6%, 87%);
    --ivory-shadow: hsl(45, 6%, 77%);
    --ivory-highlight: hsl(45, 6%, 97%);

    --off-white: hsl(218, 18%, 94%);
    --off-white-shadow: hsl(218, 18%, 84%);
    --off-white-highlight: hsl(218, 18%, 100%);

    --gold: hsl(56, 100%, 50%);
    --gold-highlight: hsl(56, 100%, 70%);
    --btn-gold-highlight: hsl(56, 100%, 47%);
    --gold-shadow: hsl(56, 100%, 45%);
    --gold-dark: hsl(55, 100%, 10%);
    --text-gold-dark: hsl(55, 100%, 25%);

    --neon-blue: hsl(198, 100%, 60%);
    --neon-blue-highlight: hsl(198, 100%, 70%);
    --neon-blue-shadow: hsl(198, 100%, 50%);
    --neon-blue-shadowest: hsl(198, 100%, 40%);

    --light-grey: #999;

    /* Animation Variables */
    --animation-fade: .15s ease-in-out;
}

/* ------------------------------------- 
GENERAL ELEMENTS
------------------------------------- */

html,
body {
    font-family: 'Inter', 'Arial', sans-serif;
    background-color: var(--dark-navy);
    color: black;
    font-weight: 400;
    line-height: 2.5rem;
    height: 100%;
    scroll-behavior: smooth;
    z-index: 1;
    scroll-padding-top: 1rem;
}

#what-i-can-help-you-with,
#nice-things-people-have-said-about-my-work {    
    scroll-margin-top: 2rem;
}

h3 {
    line-height: 3rem;
    margin-bottom: 1rem;
    scroll-padding-top: 1rem;
}

h4 {
    line-height: 1.5rem;
    font-weight: 100;
}

h5 {
    line-height: 1.5rem;
    font-size: 1.1rem;
    font-weight: bold;
}

hr {
    color: var(--blue);
}

a {
    color: var(--neon-blue);
    text-decoration: underline solid 1px;
    text-underline-offset: 5px;
    transition: var(--animation-fade);
}

u {
    text-decoration: underline solid 2px;
    text-underline-offset: 5px;
}

a:visited {
    color: var(--neon-blue-shadow);
    transition: var(--animation-fade);
}

a:hover {
    color: var(--neon-blue-highlight);
    text-underline-offset: 6px;
    transition: var(--animation-fade);
}
/* ------------------------------------- 
BACKGROUND CLASSES
------------------------------------- */
.dark-bg {
    background-color: var(--dark-navy);
}

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

.light-bg {
    background-color: var(--off-white);
}

.white-bg {
    background-color: #F9F9F9;
}

.true-white-bg {
    background-color: white;
}

.navy-bg-border {
    border: 1px var(--navy-highlight) solid;
}

.blog-bg-offset {
    display: inline-block;
    line-height: 0;

    background-image: linear-gradient(
        to bottom,
        var(--dark-navy) 65%,
        transparent 65%
    );

    background-repeat: no-repeat;
}

.blog-bg-blue {
    display: inline-block;
    line-height: 0;
    background-color: var(--dark-navy);
}

.drop-shadow-small {
    box-shadow:
        0 4px 7px 0 rgba(0, 32, 81, .1);
}

/* ------------------------------------- 
TEXT STYLES
------------------------------------- */
.header-text {
    font-size: 1.1rem;
}

.text-blue {
    color: var(--blue);
}

.text-gold {
    color: var(--gold);
}

.text-gold-dark {
    color: var(--text-gold-dark);
}

.text-grey {
    color: #a3a3a3;
}

.text-darker-grey {
    color: #808080;
}

.text-ivory {
    color: var(--ivory);
}

.text-white {
    color: white;
}

.text-small {
    font-size: 0.8rem;
    line-height: 1.75rem;
}

a.link-white,
a.link-white:visited {
    color: #fff;
    text-decoration: underline solid 2px;
    text-underline-offset: 5px;
    transition: var(--animation-fade);
}

a.link-white:hover {
    color: var(--gold);
    text-decoration: underline solid 2px;
    text-underline-offset: 6.5px;
    transition: var(--animation-fade);
}

a.link-black,
a.link-black:visited {
    color: #000;
    text-decoration: underline solid 2px;
    text-underline-offset: 5px;
    transition: var(--animation-fade);
}

a.link-black:hover {
    color: var(--gold-shadow);
    transition: var(--animation-fade);
}

.marker {
    position: relative;
    display: inline;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
    padding: 0 8px;
    background: linear-gradient(to right, rgba(63, 116, 207, 0.7) 0%, rgba(63, 116, 207, 0.7) 100%);
    background-size: calc(100% + 32px) 8px;
    background-repeat: no-repeat;
    background-position: center 90%;
}

.marker-small {
    position: relative;
    display: inline;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
    padding: 4px 2px;
    background: linear-gradient(to right, rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0.7) 100%);
    background-size: calc(100% + 16px) 2px;
    background-repeat: no-repeat;
    background-position: center 90%;
}

/* Controls the highlighted text on Interview blog pages */
blockquote {
    background-color: var(--off-white-highlight);
    border-left: var(--blue) 4px solid;
    padding: 2rem 4rem;
    padding-bottom: 1rem;
    margin: 3rem 0;
    box-shadow: 0px 2px 6px 0px rgba(0,0,0,0.15);
}

.img-quote {
    font-size: 0.75rem;
    font-style: italic;
    color:#666;
    margin-left: 1.5rem;
    transform: translateY(-1.5rem);
    display: block;
    text-align: center;
    line-height: 1.25rem !important;
}
  


/* ------------------------------------- 
LAYOUT & POSITIONING
------------------------------------- */

nav,
#navbarNav,
#navbarDropdown,
.navbar,
.navbar-collapse,
.collapse,
.nav-item,
.dropdown,
.dropdown-item,
.dropdown-item :disabled,
.dropdown-divider,
.nav-link,
.dropdown-toggle,
.dropdown-menu-end,
.dropdown-divider,
.text-light-grey,
img,
picture,
svg {
    position: relative;
    z-index: 22;
}

.badge-neon {
    position: relative;
    z-index: 19;
}

h1,
img {
    position: relative;
    z-index: 19;
}

h4.small-heading {
    font-size: 1.3rem;
}

ul.arrows li {
    list-style-type: "→  ";
    list-style-position: outside;
    list-style-image: none;
    margin-left: -5px;
    transition: var(--animation-fade);
}

.min-vh-65 {
    min-height: 65vh !important;
}

/* ------------------------------------- 
IMAGES & MEDIA
------------------------------------- */
.logo-img {
    max-height: 300px;
}

.testimonial-img {
    max-width: 200px;
    max-height: 200px;
}

/* ------------------------------------- 
NAVBAR
------------------------------------- */
.navbar {
    background: var(--dark-navy-shadow);
    border-bottom: var(--dark-navy-highlight) 1px solid;
}

.navbar a {
    color: white;
    text-decoration: underline;
    text-decoration-color: transparent;
    text-decoration-thickness: 0px;
    transition: var(--animation-fade);
    --bs-dropdown-link-disabled-color: var(--light-grey) !important;
}

.navbar a:hover {
    color: var(--gold-highlight);
    text-decoration-color: var(--gold-highlight);
    text-decoration-thickness: 2px;
    transition: var(--animation-fade);
}

.dropdown-menu {
    background-color: hsl(211, 53%, 9%);
    border: 1px solid var(--dark-navy-highlight);
}

.dropdown-divider {
    border: 1px solid var(--dark-navy-highlight);
}

.dropdown-menu:hover {
    --bs-dropdown-link-hover-bg: none;
    transition: var(--animation-fade);
}

.navbar-toggler-icon {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255,255,255, 1)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E");
}

/* ------------------------------------- 
FOOTER
------------------------------------- */
.footer {
    background: var(--dark-navy-shadow);
    border-top: #222 1px solid;
    color: white;
    font-size: 0.85rem;
}

/* ------------------------------------- 
BUTTONS
------------------------------------- */
.btn {
    padding: 0.75rem 1.75rem;
    transition: var(--animation-fade);
}

.btn:active {
    transform: translateY(1px);
    background-color: none;
    border-color: none;
    color: none;
}

.dropdown-item:active,
.dropdown-item:focus {
    background-color: transparent;
    text-decoration: underline solid 1px;
    text-underline-offset: 6px;
}

.btn-wide {
    width: 100%;
}

/* Gold Button */
.btn-gold,
.btn-gold:visited,
.btn-gold:active {
    color: var(--gold-dark) !important;
    border-width: 2px !important;
    background-color: var(--gold);
    border-color: var(--gold);
    transition: var(--animation-fade);
}

.btn-gold:hover {
    color: var(--text-gold-dark) !important;
    border-width: 2px !important;
    background-color: var(--gold-highlight) !important;
    border-color: var(--gold-highlight) !important;
    transition: var(--animation-fade);
}

.btn-gold:disabled {
    background-color: var(--light-grey);
    color: #333 !important;
    border-width: 2px !important;
    border-color: #999 !important;
    transition: var(--animation-fade);
}

/* Gold Hollow Button */
.btn-outline-gold,
.btn-outline-gold:visited,
.btn-outline-gold:active {
    color: var(--gold);
    border-width: 2px;
    background-color: transparent;
    border-color: var(--gold);
    transition: var(--animation-fade);
}

.btn-outline-gold:hover {
    color: var(--gold-highlight);
    border-width: 2px;
    background-color: transparent;
    border-color: var(--gold-highlight);
    transition: var(--animation-fade);
}

/* Navy Button */
.btn-navy,
.btn-navy:visited,
.btn-navy:active {
    color: var(--off-white) !important;
    border-width: 2px !important;
    background-color: var(--navy);
    border-color: var(--navy);
    transition: var(--animation-fade);
}

.btn-navy:hover {
    color: white;
    border-width: 2px !important;
    background-color: var(--navy-highlight) !important;
    border-color: var(--navy-highlight) !important;
    transition: var(--animation-fade);
}

/* White Hollow Button */
.btn-outline-white,
.btn-outline-white:visited,
.btn-outline-white:active {
    color: white;
    border-width: 2px;
    background-color: transparent;
    border-color: white;
    transition: var(--animation-fade);
}

.btn-outline-white:hover {
    color: var(--gold);
    border-width: 2px;
    background-color: transparent;
    border-color: var(--gold);
    transition: var(--animation-fade);
}

/* Black button */
.btn-black,
.btn-black:visited,
.btn-black:active {
    color: var(--ivory);
    border-width: 2px !important;
    background-color: black;
    border-color: black;
    transition: var(--animation-fade);
}

.btn-black:hover {
    color: white;
    border-width: 2px !important;
    background-color: #333;
    border-color: #333;
    transition: var(--animation-fade);
}

/* Black Hollow Button */
.btn-outline-black,
.btn-outline-black:visited,
.btn-outline-black:active {
    color: black;
    border-width: 2px;
    background-color: transparent;
    border-color: black;
    transition: var(--animation-fade);
    align-items: center;
    justify-items: center;
}

.btn-outline-black:hover {
    color: var(--gold-shadow);
    border-width: 2px;
    background-color: transparent;
    border-color: var(--gold-shadow);
    transition: var(--animation-fade);
}

/* FontAwesome Icon Button */
.btn-img,
.btn-img:visited {
    font-size: 2rem;
    text-decoration: none;
    color: rgba(255, 255, 255, 30%);
}

.btn-img:hover {
    color: var(--gold-highlight);
}

.btn-img:active,
.btn-img:focus {
    color: var(--gold);
}

.btn .bi-github {
    vertical-align: -3.5px;
}

/* Bages (for tags) */
.badge-neon,
.badge-neon:visited {
    background-color: var(--neon-blue);
    color: white;
    text-decoration: none;
}

a.badge-neon:hover {
    background-color: var(--neon-blue-highlight);
    color: white;
}

a.badge-neon:active {
    transform: translateY(1px);
}


/* ------------------------------------- 
YOUTUBE EMBED
------------------------------------- */
.video-container {
    position: relative;
    padding-bottom: 56.25%;
    /* 16:9 aspect ratio */
    height: 0;
    overflow: hidden;
    max-width: 100%;
    margin: 1em 0 0.5em 0;
}

.video-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}



.modal-xl {
    --bs-modal-bg: none;
    --bs-modal-border-color: none;
}

.modal-backdrop.show {
    --bs-backdrop-opacity: 0.975;
    background-color: hsl(211, 53%, 5%);
    opacity: var(--bs-backdrop-opacity);
}

.modal .btn-close {
    position: absolute;
    top: -20px;
    right: 0px;
    opacity: .8;
    z-index: 20000;
}

.modal .btn-close:hover {
    opacity: 1;
}

/* ------------------------------------- 
ANIMATION
------------------------------------- */

/* Progress scroll bar */
@keyframes scaleProgress {
    0% {
        transform: scaleX(0);
    }

    100% {
        transform: scaleX(1);
    }
}

@keyframes colorChange {
    85% {
        background-color: var(--neon-blue-highlight);
    }

    100% {
        background-color: lime;
    }
}

/* Progress scroll bar */
.progress {
    height: 2px;
    background: var(--neon-blue-highlight);
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    transform-origin: 0 50%;
    animation:
        scaleProgress auto linear,
        colorChange auto linear;
    animation-timeline: scroll(root);
    z-index: 10000;
}

.fade-item-onload {
  opacity: 0;
  animation: fadeIn-onload 0.3s ease-in-out forwards;
  animation-delay: calc(var(--order) * 0.075s);
}

@keyframes fadeIn-onload {
  to { opacity: 1; }
}



/* Mouse scroll animated icon */
.compact-mouse {
    width: 24px;
    height: 40px;
    border: 2px solid rgba(255, 255, 255, 30%);
    border-radius: 12px;
    position: relative;
    background: transparent;
}

.compact-mouse::before {
    content: '';
    position: absolute;
    top: 6px;
    left: 50%;
    transform: translateX(-50%);
    width: 2px;
    height: 8px;
    background: rgba(255, 255, 255, 30%);
    border-radius: 1px;
    animation: scrollCompact 1.5s infinite;
}

@keyframes scrollCompact {
    0% {
        opacity: 1;
        top: 6px;
    }
    100% {
        opacity: 0;
        top: 26px;
    }
}

/* ------------------------------------- 
SEARCH BAR STYLES (Stork / pelican-search)
------------------------------------- */

.stork-wrapper {        
    position: relative;
    width: 90%;
    margin: 0 auto;
    transition: var(--animation-fade);
}

.stork-input {  
    display: flex;
    box-sizing: border-box;
    margin: auto;
    width: 35%;
    padding: 0.75rem;
    text-align: center;
    background-color: var(--dark-navy);
    border: var(--dark-navy-highlight) 2px solid;
    color: var(--off-white);
    outline: none;
    transition: var(--animation-fade);
}

/* Center placeholder text */
.stork-input::placeholder {
    text-align: center;
    color: var(--neon-blue);
    opacity: 0.4;
}

.stork-input:focus, .stork-input:active {
    width: 90%;
    padding: 0.75rem;  /* Maintain padding during expansion */
    background-color: var(--off-white);
    color: black;
    transition: var(--animation-fade);
}

.stork-input:focus::placeholder, .stork-input:active::placeholder {
    opacity: .1;
    transition: var(--animation-fade);
}

.stork-close-button {   
    position: absolute;
    width: 8%;
    min-width: 50px;
    max-width: 65px;
    height: 48%;
    right: 5%;
    margin-top: 2px;
    margin-right: 2px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--gold-dark);
    border: 2px solid var(--gold);
    background-color: var(--gold);
    transition: var(--animation-fade);    
    z-index: 22;
}

.stork-output {    
    position: absolute;
    width: 90%;
    left: 5%;
    /* margin-top: 2px; */
    box-sizing: border-box;
    background-color: var(--off-white);
    border-top: none;
    z-index: 20;
    flex-direction: column;
    transition: var(--animation-fade);
}

.stork-output-visible {
    display: flex !important;    
    border: var(--dark-navy-highlight) 2px solid;
}

@media only screen and (max-width: 768px) {
  .stork-input {
    width: 90%;
  }
}

.stork-message {
    text-align: center;
    font-size: 0.75rem;
    color: var(--navy);
    padding: 0.5rem; 
    border-bottom: 1px solid var(--navy-highlight);
    transition: var(--animation-fade);
    /* display: none; */
}

.stork-results {
    list-style-type: none;
    max-height: 25em;
    overflow-y: scroll;
    padding: 0;
    margin: 0;
    width: 100%;
    transition: var(--animation-fade);
}

.stork-results a {
    text-decoration: none;
    padding: 1em;
    display: block;
    color: var(--dark-navy);
    transition: var(--animation-fade);
    transition: var(--animation-fade);
}

.stork-results a:hover {
    color: var(--neon-blue);
    transition: var(--animation-fade);
}

.stork-result {
    list-style-type: none;
    line-height: 1rem;
    max-height: 25em;
    padding: 1.5rem;
    padding-bottom: 0.75rem;  
    border-bottom: 1px solid var(--navy-highlight);
    transition: var(--animation-fade);
}

.stork-result:hover, 
.stork-wrapper .stork-result.selected {
    background-color: var(--ivory-highlight);
    transition: var(--animation-fade);
}

.stork-title {  
    color: black;
    text-decoration: underline solid 1px;
    text-underline-offset: 5px;
    display: flex;
    font-weight: bold;
    font-size: 0.95em;
    line-height: 2rem;
    margin: 0;
    justify-content: space-between;
    transition: var(--animation-fade);
}

.stork-excerpt {
    font-size: 0.8em;
    line-height: 1.5;
    margin: 0.75em 0 0 0;
    color: var(--dark-navy);
    transition: var(--animation-fade);
}

.stork-highlight {
    background-color: var(--gold);
    padding: 0 0.1em;
    transition: var(--animation-fade);
}

.stork-attribution {
    display: none;
    transition: var(--animation-fade);
}
