@charset "UTF-8";
:root {
  	--colour-poly-red-m:   hsla( 12,  80%,  62%, 1.00);
  	--font-polygon: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
	--spacing-base: 1rem;
	--spacing-large: 2rem;
	--spacing-small: 0.75rem;
	--spacing-tiny: 0.5rem;
	--border-radius: 0.25rem;
    --font-weight-light: 300;
    --font-weight-regular: 400;
    --font-weight-semibold: 600;
    --font-weight-bold: 800;
	--transition-base: all 0.3s ease-in-out;
}
.theme-main {
    --font-primary: 'Libre Baskerville', sans-serif;
    --font-heading: 'Fjalla One', sans-serif;
    --colour-nav: rgb(42, 46, 47);
    --colour-heading: rgb(42, 46, 47);
    --colour-text: rgb(42, 46, 47);
    --colour-background:  rgb(220, 221, 215);
    --colour-background-d: rgb(183, 184, 179);
    background-color: var(--colour-background);
    color:  var(--colour-text);
}
body {
    font-family: var(--font-primary);
    font-weight: var(--font-weight-light);
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
.preload * {
    animation: none !important;
    transition: none !important;
}
h1, .h1 {
    font-family: var(--font-heading);
    color: var(--colour-heading);
    font-size: 3.0rem;
    font-weight: var(--font-weight-bold);
    margin-bottom: var(--spacing-base);
    text-transform: uppercase;
}
h2, .h2 {
    font-family: var(--font-heading);
    color: var(---colour-heading);
    font-size: 1.5rem;
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--spacing-small);
}
h3, .h3 {
    font-family: var(--font-primary);
    color: var(--colour-heading);
    font-size: 1.0rem;
    font-weight: var(--font-weight-semibold);
    margin-top: var(--spacing-tiny);
    margin-bottom: var(--spacing-tiny);
}
/*********************/
/* Nav Bar           */
/*********************/
.navbar {
    padding-top: 1rem;
    padding-bottom: 1rem;
    transition: all 0.3s ease-in-out;
}
.navbar.scrolled {
    background-color: var(--colour-nav) !important;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
.navbar-brand {
    font-family: var(--font-polygon);
    font-size: 1.25rem;
    color: var(--colour-poly-red-m);
}
.navbar-brand img {
    width: auto;
    height: 32px;
}
.nav-link {
    font-family: var(--font-heading);
    font-weight: var(--font-weight-semibold);
    color: var(--colour-background);
    text-transform: none;
    font-size: 0.95rem;
    transition: color 0.3s ease;
}
.nav-link:hover {
    color: var(--colour-poly-red-m) !important;
}
.nav-link:focus {
    outline: 2px solid #fff;
    outline-offset: 2px;
}
.navbar-toggler:focus {
    box-shadow: none;
}
@media (max-width: 991.98px) {
    .navbar-collapse {
        background-color: var(--colour-nav);
        backdrop-filter: blur(10px);
        padding: 1rem;
        border-radius: 0.5rem;
        margin-top: 0.5rem;
    }
    .navbar-nav .nav-link {
        padding-top: 0.75rem !important;
        padding-bottom: 0.75rem !important;
    }
    .nav-item {
        padding: 0.5rem 0;
    }
}
/*********************/
/* Masthead          */
/*********************/
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
.masthead {
    position: relative;
    height: 100vh;
    min-height: 600px;
    background-image: url('./images/bg_numbers.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding-top: 12rem;
    padding-bottom: 8rem;
    overflow: hidden;
    display: flex;
}
.masthead::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(
        to bottom,
        rgba(0, 0, 0, 0.7) 0%,
        rgba(0, 0, 0, 0.5) 100%
    );
}
.masthead .container {
    position: relative;
    z-index: 1;
}
.animate-load {
    opacity: 0;
    animation: fadeInUp 1s ease forwards;
}
.animate-load.delay-1 {
    animation-delay: 0.5s;
}
.animate-load.delay-2 {
    animation-delay: 1.25s;
}
.masthead-content {
    position: relative;
    z-index: 1;
    color: #fff;
}
.headline {
    font-family: var(--font-heading);
    font-size: calc(1.8rem + 3.0vw);
    line-height: 1.2;
    margin-bottom: 1.5rem;
    text-transform: uppercase;
}
.headline .keywords {
    color: var(--colour-background);
}
.headline .main {
    color: var(--colour-background-d);
}
.lead-text {
    font-size: calc(1.1rem + 0.3vw);
    margin-bottom: 2rem;
}
.scroll-arrow {
    position: absolute;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%);
    color: white;
    font-size: 2rem;
    animation: bounce 2s infinite;
    cursor: pointer;
    z-index: 1;
}
@keyframes bounce {
    0%, 20%, 50%, 80%, 100% {
        transform: translateY(0) translateX(-50%);
    }
    40% {
        transform: translateY(-30px) translateX(-50%);
    }
    60% {
        transform: translateY(-15px) translateX(-50%);
    }
}
/*********************/
/* Other Elements    */
/*********************/
.casestudy {
    position: relative;
    background-image: url('./images/bg_numbers_blur.jpg');
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    padding-top: 6rem;
    padding-bottom: 6rem;
    overflow: hidden;
}
.btn-poly {
    background-color: var(--colour-background) !important;
    color: var(--colour-text) !important;
}
.btn-poly:hover {
    background-color: var(--colour-text) !important;
    color: var(--colour-background) !important;
}
.card {
    position: relative;
    background: white;
    border-radius: 1rem;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
}
.card:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.1);
}
.card-footer .btn:hover {
    border: 1px solid #f4511e;
    background-color: #fff !important;
    color: #f4511e;
}
.card-header {
    color: #fff !important;
    background-color: #f4511e !important;
    padding: 25px;
    border-bottom: 1px solid transparent;
    border-radius: 0 !important;
}
.card-footer {
    background-color: white !important;
}
.card-footer h3 {
    font-size: 32px;
}
.card-footer h4 {
    color: #aaa;
    font-size: 14px;
}
.card-footer .btn {
    margin: 15px 0;
    background-color: #f4511e;
    color: #fff;
}
Smooth Section Transitions
section {
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}
section.visible {
    opacity: 1;
    transform: translateY(0);
}