@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,200..800&display=swap');

:root {
    --primary-font: "Bricolage Grotesque", sans-serif;
    --alt-font: "Bricolage Grotesque", sans-serif;
    --base-color:#FF6036;
    --dark-gray: #121212;
    --dark-gray02: #2e2e2e;
    --medium-gray:#626262;
    --white:#d9d9d9;
}

body {
    font-size: 16px;
    line-height: 24px;
    letter-spacing: 0;
    font-weight: 300;
    color: var(--white);
}
a {
    color: var(--white);
}

.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
    letter-spacing: 0;
}
h1, .h1 {
    font-size: 4.75rem;
    line-height: 5rem;
}
.h2, h2 {
    font-size: 3.875rem;
    line-height: 4rem;
}
.h3, h3 {
    font-size: 3.25rem;
    line-height: 3.5rem;
}
.h4, h4 {
    font-size: 2.75rem;
    line-height: 2.75rem;
}
.h5, h5 {
    font-size: 2.25rem;
    line-height: 2.5rem;
}
.h6, h6 {
    font-size: 1.75rem;
    line-height: 2rem;
}

.fs-325 {
    font-size: 20.313rem;
    line-height: 20.313rem;
}
.fs-500 {
    font-size: 31.25rem;
    line-height: 22.25rem;
}

section.big-section {
    padding-top: 150px;
    padding-bottom: 150px;
}

header .navbar-brand {
    padding-top: 18px;
    padding-bottom: 18px;
}
header .navbar-brand img {
    height: 45px;
    max-height: none;
}
header .navbar-brand:focus-visible,
.hamburger-logo:focus-visible {
    outline: var(--bx-focus-outline);
    outline-offset: var(--bx-focus-offset);
}
.header-push-button .push-button {
    border-radius: 2px;
}
.header-push-button .push-button:hover {
    opacity: 1;
}
.header-push-button .push-button:hover span,
.header-push-button .push-button:focus-visible span {
    background: var(--bx-mint);
}
.header-push-button .push-button:hover .push-button-text,
.header-push-button .push-button:focus-visible .push-button-text {
    color: var(--bx-mint);
}
.header-push-button .push-button:focus-visible {
    outline: var(--bx-focus-outline);
    outline-offset: 10px;
}
.push-menu.hamburger-menu-simple {
    background-color: var(--bx-graphite);
    background-image: radial-gradient(ellipse 70% 60% at 85% 100%, var(--bx-surface-green-glow), transparent 70%);
}
.push-menu .close-menu:hover,
.push-menu .close-menu:focus-visible {
    background-color: var(--bx-mint) !important;
    color: var(--bx-on-mint) !important;
}
.push-menu .close-menu:focus-visible {
    outline: var(--bx-focus-outline);
    outline-offset: 3px;
}
.push-menu .menu-text a {
    transition: color var(--bx-duration) var(--bx-ease);
}
.push-menu .menu-text a:hover,
.push-menu .menu-text a:focus-visible {
    color: var(--bx-mint);
}
.push-menu .menu-text a:focus-visible {
    outline: var(--bx-focus-outline);
    outline-offset: 3px;
}
.menu-list-wrapper {
    height: calc(55vh - 150px);
    /* 6 menu items x 56px + 2 x 30px padding: keeps the last items clickable on short viewports. */
    min-height: 396px;
}
.hamburger-logo img {
    height: 56px;
    max-height: none;
}
.hamburger-menu-simple .menu-item-list .nav-link {
    font-size: 44px;
    padding-right: 0;
    transition: color var(--bx-duration) var(--bx-ease);
}
.hamburger-menu-simple .menu-item-list .nav-link:hover,
.hamburger-menu-simple .menu-item-list .nav-link:focus-visible,
.menu-item-list .active .nav-link {
    opacity: 1;
    color: var(--bx-mint);
}
.menu-item-list .active .nav-link {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 10px;
    text-decoration-color: var(--bx-border-mint);
}
.hamburger-menu-simple .menu-item-list .nav-link:focus-visible {
    outline: var(--bx-focus-outline);
    outline-offset: var(--bx-focus-offset);
    border-radius: 2px;
}
.header-push-button .push-button {
    height: 8px;
}
.header-push-button .push-button span:first-child {
    width: 15px;
    margin-right: 0;
}
.show-menu .header-push-button .push-button span:nth-child(1) {
    width: 15px;
    top: 0;
}
.show-menu .header-push-button .push-button span:nth-child(2) {
    top: 6px;
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
}
header .container-fluid {
    padding-left: 65px;
    padding-right: 65px;
}

.btn {
    font-family: var(--primary-font);
}
[class*=" btn-transparent"], [class*=btn-transparent] {
    font-weight: 500;
}
.btn.btn-large {
    font-size: 15px;
}
.btn.btn-medium {
    font-size: 14px;
}
.btn.btn-small {
    font-size: 13px;
}
.btn.btn-very-small {
    font-size: 12px;
}

.bg-black-transparent-light {
    background-color: rgba(0, 0, 0, 0.2);
}
.bg-black {
    background-color: #101010;
}
.bg-golden {
    background-color: #e9b706;
}
.bg-jade {
    background-color: #00B775;
}
.bg-orange {
    background-color: #f8572b;
}
.bg-nero-grey {
    background-color: #1F1F1F;
}
.bg-heliotrope {
    background-color: #EA83EC;
}

.w-6px {
    width: 8px;
}
.h-6px {
    height: 8px;
}
.border-color-dark-gray-02 {
  border-color: var(--dark-gray02) !important;
}

.opacity-05 {
    opacity: 0.05;
}

.blur-box {
    backdrop-filter: blur(21px);
    -webkit-backdrop-filter: blur(21px);
}

.portfolio-transform .portfolio-box .caption {
    padding: 16px 34px 16px;
    border-radius: 65px;
    color: var(--white);
}

.testimonials-style-13 .swiper-slide,
.testimonials-style-13 .swiper-slide.swiper-slide-active,
.testimonials-style-13 .swiper-slide.swiper-slide-next {
    opacity: 1;
}

.social-icon-style-10 li {
    position: relative;
}
.social-icon-style-10 li:before {
    content: "\2726";
    color: var(--white);
    display: block;
    position: absolute;
    top: 50%;
    right: -35px;
    transform: translateY(-50%);
    font-size: 18px;
}
.social-icon-style-10 li:last-child:before {
    display: none;
}
.border-drawing .bottom-line {
    display: inline-block;
    position: absolute;
    transition: all 0.3s linear;
    z-index: 2;
    width: 100%;
    height: 1px;
    bottom: 0;
    left: 0;
    transform: scale(0,1);
    transform-origin: center;
}
.border-drawing:hover .bottom-line {
    transform: scale(1,1);
}

.portfolio-pagination .btn-slide-icon-left, .portfolio-pagination .btn-slide-icon-right {
    -webkit-transition: 0.5s;
    transition: 0.5s;
}
.portfolio-pagination:hover .btn-slide-icon-left {
    padding-left: 50px;
}
.portfolio-pagination:hover .btn-slide-icon-right {
    padding-right: 50px;
}

.blog-metro figure .blog-image .blog-overlay {
    background: #1f232c;
    background: linear-gradient(0deg, rgba(4, 3, 2, .8) 0, rgba(1, 1, 1, 0) 70%);
}
.blog-comment li .btn-reply {
    color: var(--dark-gray);
    font-weight: 500;
}

footer .footer-logo img {
    height: 56px;
    max-height: none;
}
.footer-dark, .footer-dark a, .footer-dark p {
    color: var(--white);
    font-weight: 300;
}
.footer-dark a:hover,
.footer-light a:hover,
.footer-navbar li a:hover {
    color: var(--bx-mint);
}
footer ul li {
    margin-bottom: 2px;
}
footer sub, footer sup {
    font-size: .60em;
}
@media (max-width: 1600px) {
    header .container-fluid {
        padding-left: 45px;
        padding-right: 45px;
    }

    .fs-325 {
        font-size: 15.625rem;
        line-height: 15.625rem;
    }
}
@media (max-width: 1399px) {

    .fs-325 {
        font-size: 11.625rem;
        line-height: 11.625rem;
    }
}
@media (max-width: 1199px) {
    .navbar>.container-fluid {
        padding-left: 15px;
        padding-right: 15px;
    }
    .menu-list-wrapper {
        height: calc(65vh - 100px);
    }
    .fs-325 {
        font-size: 9.625rem;
        line-height: 9.625rem;
    }
    .fs-500 {
        font-size: 18.625rem;
        line-height: 13.25rem;
    }
}
@media (max-width: 991px) {
    .menu-list-wrapper {
        height: calc(85vh - 150px);
    }
    .navbar>.container-fluid {
        padding-left: 0;
        padding-right: 0;
    }
    .portfolio-pagination:hover .btn-slide-icon-left {
        padding-left: 20px;
    }
    .portfolio-pagination:hover .btn-slide-icon-right {
        padding-right: 20px;
    }
    .md-border-start {
        border-style: solid !important;
        border-left-width: 1px !important;
    }
}
@media (max-width: 767px) {
    .menu-list-wrapper {
        height: calc(90vh - 120px);
    }
    .hamburger-menu-simple .menu-item-list .nav-link {
        font-size: 38px;
    }
    .hamburger-logo img {
        height: 44px;
        max-height: none;
    }
    .portfolio-pagination:hover .btn-slide-icon-left {
        padding-left: 0;
    }
    .portfolio-pagination:hover .btn-slide-icon-right {
        padding-right: 0;
    }
    .fs-500 {
        font-size: 15.625rem;
        line-height: 12.25rem;
    }
}
@media (max-width: 575px) {
    .fs-325 {
        font-size: 6.625rem;
        line-height: 6.625rem;
    }
    .xs-border-start {
        border-style: solid !important;
        border-left-width: 1px !important;
    }
}
.contact-field-error {
    margin-top: 8px;
    color: #ff8a80;
    font-size: 14px;
    line-height: 20px;
}
.contact-field-error:empty {
    display: none;
}
.contact-form-style-07 .form-control.is-invalid {
    border-color: #ff8a80 !important;
}

.contact-consent {
    margin-top: 10px;
}
.contact-consent label {
    position: relative;
    margin: 0;
}
.contact-consent input[type="checkbox"] {
    visibility: visible;
    width: 20px;
    height: 20px;
    margin: 0;
    top: 5px;
    left: 0;
    cursor: pointer;
    z-index: 1;
}
.contact-consent input[type="checkbox"]:checked + .box::before {
    background-color: var(--white);
}
.contact-consent input[type="checkbox"]:focus-visible + .box::before {
    outline: 2px solid var(--base-color);
    outline-offset: 2px;
}
.contact-consent input[type="checkbox"][aria-invalid="true"] + .box::before {
    border-color: #ff8a80;
}

.contact-hp {
    position: absolute;
    left: -10000px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.contact-status {
    margin: 0;
    font-size: 16px;
    line-height: 24px;
}
.contact-status:empty {
    display: none;
}
.contact-status[data-state="success"] {
    color: #8fe3ae;
}
.contact-status[data-state="error"] {
    color: #ff8a80;
}
.contact-status[data-state="sending"],
.contact-status[data-state="info"] {
    color: var(--white);
}
#contact-submit[aria-disabled="true"] {
    opacity: 0.6;
    pointer-events: none;
}

.grecaptcha-badge {
    visibility: hidden;
}

.policy-draft {
    padding: 24px 28px;
    border: 1px solid var(--base-color);
    border-radius: 4px;
}
.policy-pending {
    padding: 0 4px;
    border-radius: 3px;
    background-color: rgba(255, 96, 54, 0.18);
    color: var(--base-color);
}
.policy-list,
.policy-draft ul {
    padding-left: 22px;
    list-style: disc;
}
.policy-list li,
.policy-draft li {
    margin-bottom: 8px;
}

.hero-wordmark,
.bx-wordmark {
    display: block;
    font-size: clamp(4rem, 22.5vw, 20.3rem);
    line-height: 1;
    font-weight: 800;
    letter-spacing: -0.045em;
    white-space: nowrap;
    color: var(--bx-warm-white);
}
.hero-wordmark__x,
.bx-wordmark__x {
    color: var(--bx-mint);
}

.btn.bx-cta.btn-transparent-white:hover,
.btn.bx-cta.btn-transparent-white:active,
.btn.bx-cta.btn-transparent-white:focus-visible {
    background-color: var(--bx-hover-soft);
    border-color: var(--bx-mint) !important;
    color: var(--bx-mint);
}
.bx-cta:focus-visible {
    outline: var(--bx-focus-outline);
    outline-offset: var(--bx-focus-offset);
}
.bx-cta .feather {
    display: inline-block;
    transition: transform var(--bx-duration) var(--bx-ease);
}
.bx-cta:hover .feather,
.bx-cta:focus-visible .feather {
    transform: translate(3px, -3px);
}
@media (prefers-reduced-motion: reduce) {
    .bx-cta .feather,
    .bx-cta .btn-double-text,
    .bx-cta .btn-double-text::before {
        transition: none;
    }
    .bx-cta:hover .feather,
    .bx-cta:focus-visible .feather {
        transform: none;
    }
}

.bx-accent {
    color: var(--bx-mint);
}
.bx-divider-accent {
    position: relative;
}
.bx-divider-accent::after {
    content: "";
    position: absolute;
    left: 0;
    top: -1px;
    width: 48px;
    height: 2px;
    background-color: var(--bx-mint);
}

.text-reveal-animation .bx-reveal-accent-line {
    --reveal-color: var(--bx-mint) !important;
}
.text-reveal-animation .bx-reveal-accent-word {
    background-image: linear-gradient(90deg, var(--bx-mint) 0, var(--bx-mint) var(--highlight-offset), var(--highlight-color) var(--highlight-offset), var(--highlight-color) 100%);
    background-size: var(--bx-line-w) 100%;
    background-position: calc(var(--bx-word-x) * -1) 0;
    background-repeat: no-repeat;
    -webkit-background-clip: text;
    background-clip: text;
}
@media (max-width: 1199px) {
    .bx-reveal-accent {
        color: var(--bx-mint);
    }
}
@media (prefers-reduced-motion: reduce) {
    .text-reveal-animation .heading-line-wrap {
        --highlight-offset: 100% !important;
    }
}

.portfolio-transform .portfolio-box .portfolio-image {
    position: relative;
}
.portfolio-transform .portfolio-box .portfolio-image::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background-color: var(--bx-overlay-petrol);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.4s var(--bx-ease);
}
.portfolio-transform .portfolio-box:hover .portfolio-image::after {
    opacity: 1;
}
.portfolio-transform .portfolio-box .portfolio-image img {
    transition: transform 0.4s var(--bx-ease);
}
.portfolio-transform .portfolio-box:hover .portfolio-image img {
    transform: scale(1.035);
}
.portfolio-transform .portfolio-box a[aria-disabled="true"] {
    cursor: default;
}

.bx-link {
    transition: color var(--bx-duration) var(--bx-ease);
}
.bx-link:hover,
.bx-link:focus-visible {
    color: var(--bx-mint);
}
.bx-link:focus-visible {
    outline: var(--bx-focus-outline);
    outline-offset: var(--bx-focus-offset);
}
.bx-link .icon-wrap .icon {
    color: var(--bx-mint);
}
.bx-link .icon-wrap .first {
    transition: transform var(--bx-duration) var(--bx-ease);
}
.bx-link:hover .icon-wrap.bottom-to-top .first,
.bx-link:focus-visible .icon-wrap.bottom-to-top .first {
    transform: translate(4px, -4px);
}
.bx-link:hover .icon-wrap.bottom-to-top .second,
.bx-link:focus-visible .icon-wrap.bottom-to-top .second {
    transform: translate(-100%, 100%);
}
@media (prefers-reduced-motion: reduce) {
    .portfolio-transform .portfolio-box .portfolio-image img,
    .portfolio-transform .portfolio-box .portfolio-image::after,
    .bx-link .icon-wrap .first {
        transition: none;
    }
    .portfolio-transform .portfolio-box:hover .portfolio-image img {
        transform: none;
    }
    .bx-link:hover .icon-wrap.bottom-to-top .first,
    .bx-link:focus-visible .icon-wrap.bottom-to-top .first {
        transform: none;
    }
}

.bx-card {
    position: relative;
    transition: background-color var(--bx-duration) var(--bx-ease);
}
.bx-card h4,
.bx-card .bx-card__title {
    transition: color var(--bx-duration) var(--bx-ease);
}
.bx-card img {
    transition: transform var(--bx-duration) var(--bx-ease);
}
.bx-card a[href="#"] {
    cursor: default;
}
.bx-card::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2px;
    background-color: var(--bx-mint);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform var(--bx-duration) var(--bx-ease);
}
@media (hover: hover) and (pointer: fine) {
    .bx-card:hover,
    .bx-card:focus-within {
        background-color: var(--bx-card-hover-bg);
    }
    .bx-card:hover h4,
    .bx-card:focus-within h4,
    .bx-card:hover .bx-card__title,
    .bx-card:focus-within .bx-card__title {
        color: var(--bx-mint);
    }
    .bx-card:hover img,
    .bx-card:focus-within img {
        transform: scale(1.03);
    }
    .bx-card:hover::after,
    .bx-card:focus-within::after {
        transform: scaleX(1);
    }
}
@media (prefers-reduced-motion: reduce) {
    .bx-card,
    .bx-card h4,
    .bx-card .bx-card__title,
    .bx-card img,
    .bx-card::after {
        transition: none;
    }
    .bx-card:hover img,
    .bx-card:focus-within img {
        transform: none;
    }
}

.bx-label {
    font-size: 14px;
    line-height: 20px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--bx-mint);
}

.slider-navigation-style-04 {
    transition: border-color var(--bx-duration) var(--bx-ease), background-color var(--bx-duration) var(--bx-ease);
}
.slider-navigation-style-04:hover,
.slider-navigation-style-04:focus-visible {
    border-color: var(--bx-mint) !important;
    background-color: var(--bx-hover-soft);
}
.slider-navigation-style-04:hover i,
.slider-navigation-style-04:focus-visible i {
    opacity: 1;
    color: var(--bx-mint) !important;
}
.slider-navigation-style-04:focus-visible {
    outline: var(--bx-focus-outline);
    outline-offset: var(--bx-focus-offset);
}

.bx-pillar,
.clients-style-04 .bx-pillar:hover {
    opacity: 1;
}
.bx-pillar {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    cursor: default;
}
.bx-pillar__number {
    font-size: 12px;
    line-height: 16px;
    font-weight: 500;
    letter-spacing: 0.18em;
    color: var(--bx-mint);
}
.bx-pillar__name {
    font-size: clamp(14px, 1.5vw, 22px);
    line-height: 1.1;
    font-weight: 500;
    letter-spacing: 0.1em;
    color: var(--bx-warm-white);
    transition: color var(--bx-duration) var(--bx-ease);
}
@media (hover: hover) and (pointer: fine) {
    .clients-style-04 .col:hover .bx-pillar__name {
        color: var(--bx-mint);
    }
}
@media (prefers-reduced-motion: reduce) {
    .slider-navigation-style-04,
    .bx-pillar__name {
        transition: none;
    }
}

.bx-underline {
    display: inline-block;
    padding-bottom: 4px;
    background-image: linear-gradient(var(--bx-mint), var(--bx-mint));
    background-repeat: no-repeat;
    background-position: 0 100%;
    background-size: 0 1px;
    transition: background-size var(--bx-duration) var(--bx-ease), color var(--bx-duration) var(--bx-ease);
}
.bx-underline:hover,
.bx-underline:focus-visible,
.bx-link:hover .bx-underline,
.bx-link:focus-visible .bx-underline {
    background-size: 100% 1px;
}
@media (prefers-reduced-motion: reduce) {
    .bx-underline {
        transition: none;
    }
}

.bx-footer {
    background-color: var(--bx-graphite);
    background-image: radial-gradient(ellipse 75% 85% at 85% 105%, var(--bx-footer-glow), transparent 70%);
}
.bx-footer a:focus-visible {
    outline: var(--bx-focus-outline);
    outline-offset: var(--bx-focus-offset);
}
.bx-footer__heading {
    font-size: clamp(2.5rem, 5.6vw, 5.5rem);
    line-height: 1.05;
    font-weight: 400;
    letter-spacing: -0.01em;
    color: var(--bx-warm-white);
}
.bx-footer__cta {
    font-size: 15px;
    line-height: 24px;
    font-weight: 500;
    letter-spacing: 0.14em;
    color: var(--bx-warm-white);
}
.bx-footer__title {
    display: block;
    margin-bottom: 16px;
    font-size: 13px;
    line-height: 18px;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--bx-text-muted);
}
.bx-footer__nav li {
    margin-bottom: 10px;
}
.bx-footer__nav a,
.bx-footer__pending,
.bx-footer__legal a {
    color: var(--bx-text-secondary);
}
.bx-footer__nav a {
    font-size: 17px;
}
.bx-footer__legal-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 32px;
}
.bx-footer__social {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 24px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.bx-footer__wordmark-row {
    margin-top: clamp(48px, 8vw, 110px);
}
.bx-footer__wordmark {
    font-size: clamp(3.5rem, 20vw, 20rem);
    line-height: 0.82;
    text-align: center;
    user-select: none;
}
.bx-footer__legal {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px 24px;
    margin-top: clamp(24px, 3vw, 40px);
    padding: 24px 0 30px;
    border-top: 1px solid var(--bx-border);
    font-size: 14px;
    line-height: 22px;
    color: var(--bx-text-muted);
}

.crafto-progressive-blur > div {
    opacity: var(--bx-blur-fade, 1);
}

.bx-surface-light {
    background-color: var(--bx-warm-white);
    color: var(--bx-graphite);
}
.bx-surface-light h3,
.bx-surface-light p {
    color: var(--bx-graphite);
}
.bx-surface-light .bx-surface-light__accent {
    color: var(--bx-deep-green);
}

.bx-hero-media {
    position: relative;
}
.bx-hero-media::after {
    content: "";
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.2);
    pointer-events: none;
}

/* About and Services: ~25% less space around the banner photo (Crafto section padding: 110 / 90 / 75 / 50px by breakpoint). */
.bx-about-gap {
    padding-bottom: 82px;
}
@media (max-width: 1600px) {
    .bx-about-gap {
        padding-bottom: 68px;
    }
}
@media (max-width: 991px) {
    .bx-about-gap {
        padding-bottom: 56px;
    }
}
@media (max-width: 767px) {
    .bx-about-gap {
        padding-bottom: 38px;
    }
}

.bx-solution__header,
.bx-solution__number {
    transition: border-color var(--bx-duration) var(--bx-ease), color var(--bx-duration) var(--bx-ease);
}
.bx-solution__image {
    overflow: hidden;
}
.bx-solution__image img {
    transition: transform 0.6s var(--bx-ease);
}
@media (hover: hover) and (pointer: fine) {
    .bx-solution:hover .bx-solution__number {
        color: var(--bx-mint);
    }
    .bx-solution:hover .bx-solution__header {
        border-bottom-color: var(--bx-border-mint) !important;
    }
    .bx-solution:hover .bx-solution__image img {
        transform: scale(1.03);
    }
}
@media (prefers-reduced-motion: reduce) {
    .bx-solution__header,
    .bx-solution__number,
    .bx-solution__image img {
        transition: none;
    }
    .bx-solution:hover .bx-solution__image img {
        transform: none;
    }
}

.bx-outline-title {
    -webkit-text-stroke-color: var(--bx-warm-white);
    opacity: 0.5;
}

.blog-metro figure .blog-image {
    position: relative;
}
.blog-metro figure .blog-image::after {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--bx-overlay-petrol);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.4s var(--bx-ease);
}
.blog-metro figure:hover .blog-image::after,
.blog-metro figure:focus-within .blog-image::after {
    opacity: 1;
}
.blog-metro figure:hover img,
.blog-metro figure:focus-within img {
    transform: scale(1.035);
    opacity: 1;
}
.blog-metro figure .categories-btn.bx-category {
    background: transparent;
    color: var(--bx-mint);
    border-color: var(--bx-border-mint);
    letter-spacing: 0.12em;
}
.blog-metro figure:hover .categories-btn.bx-category,
.blog-metro figure:focus-within .categories-btn.bx-category {
    background: var(--bx-hover-soft) !important;
    color: var(--bx-mint);
    border-color: var(--bx-mint);
}
.bx-project-title:focus-visible {
    outline: var(--bx-focus-outline);
    outline-offset: var(--bx-focus-offset);
}
@media (prefers-reduced-motion: reduce) {
    .blog-metro figure img,
    .blog-metro figure .blog-image::after {
        transition: none;
    }
    .blog-metro figure:hover img,
    .blog-metro figure:focus-within img {
        transform: none;
    }
}

.contact-form-style-07 .form-control::placeholder {
    color: var(--bx-text-muted);
    opacity: 1;
}
.contact-form-style-07 .form-label {
    transition: color var(--bx-duration) var(--bx-ease);
}
.contact-form-style-07 .form-group:focus-within .form-label {
    color: var(--bx-mint);
}
.contact-form-style-07 .form-control {
    transition: border-color var(--bx-duration) var(--bx-ease), box-shadow var(--bx-duration) var(--bx-ease);
}
.contact-form-style-07 .form-control:focus:not(.is-invalid) {
    border-bottom-color: var(--bx-mint) !important;
    box-shadow: 0 1px 0 0 var(--bx-mint);
}
@media (prefers-reduced-motion: reduce) {
    .contact-form-style-07 .form-label,
    .contact-form-style-07 .form-control {
        transition: none;
    }
}

.bx-team__photo {
    position: relative;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    border-bottom: 1px solid var(--bx-border);
    background-color: var(--bx-surface-raised);
    background-image: radial-gradient(ellipse 90% 70% at 20% 100%, var(--bx-surface-green-glow), transparent 70%);
}
.bx-team__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.bx-team__photo::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: linear-gradient(to top, rgba(7, 60, 54, 0.92) 0%, rgba(7, 60, 54, 0.5) 32%, transparent 60%);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.4s var(--bx-ease);
}
.bx-team__initials {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: clamp(3.5rem, 8vw, 6.5rem);
    font-weight: 500;
    letter-spacing: -0.04em;
    color: var(--bx-warm-white);
    opacity: 0.55;
}
.bx-team__body {
    padding: 24px;
}
@media (hover: hover) and (pointer: fine) {
    .bx-team:hover .bx-team__photo::after,
    .bx-team:focus-within .bx-team__photo::after {
        opacity: 1;
    }
}
@media (prefers-reduced-motion: reduce) {
    .bx-team__photo::after {
        transition: none;
    }
}

[data-team-list]:not([data-bx-team-ready]) .bx-team__trigger {
    display: none;
}
.bx-team__trigger {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: none;
    color: var(--bx-warm-white);
    text-align: left;
    cursor: pointer;
}
.bx-team__trigger:focus-visible {
    outline: var(--bx-focus-outline);
    outline-offset: -4px;
}
.bx-team__label {
    position: absolute;
    left: 20px;
    bottom: 20px;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.18em;
    opacity: 0;
    transform: translateY(6px);
    transition: opacity 0.3s var(--bx-ease), transform 0.3s var(--bx-ease);
}
.bx-team__trigger:focus-visible .bx-team__label {
    opacity: 1;
    transform: none;
}
.bx-team__photo:has(.bx-team__trigger:focus-visible)::after {
    opacity: 1;
}
@media (hover: hover) and (pointer: fine) {
    .bx-team:hover .bx-team__label {
        opacity: 1;
        transform: none;
    }
}
@media (hover: none) {
    .bx-team__label {
        opacity: 1;
        transform: none;
    }
    .bx-team__photo:has(.bx-team__trigger)::after {
        opacity: 1;
    }
}
@media (prefers-reduced-motion: reduce) {
    .bx-team__label {
        transition: none;
    }
}

.bx-team-modal {
    width: min(960px, calc(100vw - 32px));
    max-height: calc(100dvh - 32px);
    padding: 0;
    overflow: auto;
    overscroll-behavior: contain;
    border: 1px solid var(--bx-border);
    border-top: 1px solid var(--bx-border-mint);
    background-color: var(--bx-surface-raised);
    color: var(--bx-text);
}
/* Enter/exit is driven by .is-open / .is-closing (team-profiles.ts), which keeps <dialog> open until the exit ends. */
.bx-team-modal {
    opacity: 0;
    transform: translateY(12px) scale(0.985);
    transition: opacity 0.42s cubic-bezier(0.22, 1, 0.36, 1), transform 0.42s cubic-bezier(0.22, 1, 0.36, 1);
}
.bx-team-modal.is-open {
    opacity: 1;
    transform: none;
}
.bx-team-modal.is-closing {
    transform: translateY(6px) scale(0.99);
    transition-duration: 0.25s;
}
.bx-team-modal::backdrop {
    background-color: rgba(0, 0, 0, 0);
    transition: background-color 0.28s linear;
}
.bx-team-modal.is-open::backdrop {
    background-color: rgba(0, 0, 0, 0.72);
}
.bx-team-modal.is-closing::backdrop {
    transition-duration: 0.25s;
}
.bx-team-modal__inner {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
}
.bx-team-modal__photo {
    aspect-ratio: 4 / 5;
    background-color: var(--bx-surface);
}
.bx-team-modal__photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.bx-team-modal__content {
    align-self: center;
    padding: clamp(28px, 4vw, 56px);
}
.bx-team-modal__name {
    margin: 0 0 12px;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.1;
    font-weight: 500;
    color: var(--bx-warm-white);
}
.bx-team-modal__rule {
    margin: 24px 0;
    border: 0;
    border-top: 1px solid var(--bx-border);
    opacity: 1;
}
.bx-team-modal__bio {
    font-size: clamp(16px, 1.2vw, 18px);
    line-height: 1.6;
    color: var(--bx-text);
}
.bx-team-modal__close {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 1;
    padding: 8px 14px;
    border: 1px solid var(--bx-border-strong);
    background-color: rgba(16, 19, 19, 0.85);
    color: var(--bx-warm-white);
    font-size: 13px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    cursor: pointer;
    transition: color var(--bx-duration) var(--bx-ease), border-color var(--bx-duration) var(--bx-ease);
}
.bx-team-modal__close:hover,
.bx-team-modal__close:focus-visible {
    color: var(--bx-mint);
    border-color: var(--bx-mint);
}
.bx-team-modal__close:focus-visible {
    outline: var(--bx-focus-outline);
    outline-offset: var(--bx-focus-offset);
}
@media (max-width: 767px) {
    .bx-team-modal__inner {
        grid-template-columns: minmax(0, 1fr);
    }
    .bx-team-modal__photo {
        max-height: 50dvh;
    }
}
@media (prefers-reduced-motion: reduce) {
    .bx-team-modal,
    .bx-team-modal::backdrop,
    .bx-team-modal__close {
        transition: none;
    }
}

/* Team modal on phones: centered with equal margins, photo at full width, one left axis for the text. */
@media (max-width: 767px) {
    .bx-team-modal {
        box-sizing: border-box;
        width: calc(100% - 32px);
        max-width: none;
        max-height: calc(100dvh - 32px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
        margin: auto;
        overflow-x: hidden;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }
    .bx-team-modal__inner {
        min-width: 0;
    }
    .bx-team-modal__photo {
        max-height: none;
    }
    .bx-team-modal__photo img {
        object-position: center 20%;
    }
    .bx-team-modal__close {
        top: 12px;
        right: 12px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 44px;
        min-height: 44px;
        padding: 0 12px;
        border-color: rgba(247, 248, 245, 0.35);
        font-size: 11px;
        letter-spacing: 0.14em;
    }
    .bx-team-modal__close:focus-visible {
        outline: none;
    }
    .bx-team-modal__content {
        align-self: stretch;
        padding: 24px 24px 28px;
        text-align: left;
    }
    .bx-team-modal__name {
        font-size: clamp(1.75rem, 8vw, 2.25rem);
        overflow-wrap: break-word;
    }
    .bx-team-modal__bio {
        max-width: none;
    }
}

/* Monumental titles driven by brand-x.js below 1200px: one line, as wide as the text, so they can travel across. */
.bx-scroll-title {
    width: max-content;
    max-width: none;
    white-space: nowrap !important;
    will-change: translate;
}

/* The official X replaces the rotating asterisk; its natural ratio is 27.63 : 37.65. */
.bx-mark {
    display: block;
    width: 70.4px;
    height: 96px;
    color: var(--bx-mint);
}
/* Entrance (once): hidden only when scripting is on; brand-x.js adds .is-visible when the X enters the viewport. */
@media (scripting: enabled) {
    .bx-mark {
        opacity: 0;
        transform: translateY(15px);
    }
    .bx-mark.is-visible {
        opacity: 1;
        transform: none;
        transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1), transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
    }
}
@media (prefers-reduced-motion: reduce) {
    .bx-mark,
    .bx-mark.is-visible {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* Error pages (404 / 500): number and message form one two-column block. */
.bx-error {
    display: flex;
    align-items: center;
    min-height: min(78vh, 760px);
    padding-top: 40px;
    padding-bottom: clamp(48px, 7vw, 96px);
}
.bx-error .container-fluid {
    width: 100%;
}
.bx-error__visual {
    padding-bottom: clamp(24px, 5vw, 40px);
}
.bx-error__code {
    font-size: clamp(6rem, 40vw, 14rem);
    line-height: 0.85;
}
.bx-error .bx-error__mark {
    width: 41px;
    height: 56px;
    margin-top: clamp(20px, 3vw, 36px);
}
.bx-error__headline {
    font-size: clamp(1.9rem, 4vw, 3.25rem);
    line-height: 1.12;
    letter-spacing: -0.02em;
    color: var(--bx-warm-white);
}
.bx-error__actions {
    gap: 20px 32px;
}
@media (min-width: 992px) {
    .bx-error__code {
        font-size: clamp(6rem, 22vw, 24rem);
    }
    .bx-error__content {
        padding-left: clamp(32px, 4vw, 72px);
        border-left: 1px solid var(--bx-border);
    }
}
.bx-error__item {
    animation: bx-error-in 0.7s var(--bx-ease) both;
}
.bx-error__headline.bx-error__item {
    animation-delay: 0.1s;
}
.bx-error p.bx-error__item {
    animation-delay: 0.2s;
}
.bx-error__actions.bx-error__item {
    animation-delay: 0.3s;
}
@keyframes bx-error-in {
    from {
        opacity: 0;
        transform: translateY(16px);
    }
}
@media (prefers-reduced-motion: reduce) {
    .bx-error__item {
        animation: none;
    }
}

/* Circular badge (Home > Selected Work): only the text ring turns; the X stays still. */
.bx-badge {
    display: block;
    width: 150px;
    height: 150px;
}
.bx-badge__text {
    fill: var(--bx-warm-white);
    font-size: 12px;
    font-weight: 600;
}
.bx-badge__ring {
    transform-origin: 100px 100px;
    animation: bx-badge-spin 18s linear infinite;
}
@keyframes bx-badge-spin {
    to {
        transform: rotate(360deg);
    }
}
@media (prefers-reduced-motion: reduce) {
    .bx-badge__ring {
        animation: none;
    }
}

/* Capabilities cards: photographs share one 4:5 frame; the link clips the hover zoom. */
.bx-card__photo-link {
    overflow: hidden;
}
.bx-card__photo {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
}

/* Anchor target of the Capabilities cards: keep the fixed header from covering the block. */
.bx-solution {
    scroll-margin-top: 120px;
}

/* Outline X behind the Services CTA: decorative, very low opacity, scrolls/rotates with skrollr on desktop. */
.bx-cta-mark {
    width: 366px;
    height: 500px;
    max-width: none;
    opacity: 0.13;
    pointer-events: none;
}
@media (max-width: 991px) {
    .bx-cta-mark {
        width: 264px;
        height: 360px;
    }
}
@media (max-width: 575px) {
    .bx-cta-mark {
        width: 190px;
        height: 260px;
    }
}
@media (prefers-reduced-motion: reduce) {
    .bx-cta-mark {
        transform: none !important;
    }
}

/* About gallery: same image size as Crafto (520px tall, columns sized by image
   width) and Crafto's default column gutters. With 4 unique photos the band
   simply ends earlier on very wide screens. */
.bx-gallery img {
    display: block;
    width: auto;
    max-width: none;
    height: 520px;
}

/* Projects: 3D flip cards. The front face is the original figure; the back sits on top of it. */
.bx-flip {
    perspective: 1400px;
}
.bx-flip__inner {
    position: relative;
    transform-style: preserve-3d;
    transition: transform 650ms cubic-bezier(0.22, 1, 0.36, 1);
}
.bx-flip.is-flipped .bx-flip__inner {
    transform: rotateY(180deg);
}
.bx-flip__face {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}
.bx-flip__back {
    position: absolute;
    inset: 0;
    transform: rotateY(180deg);
    container-type: size;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 12px;
    padding: clamp(14px, 7cqw, 32px);
    overflow: hidden;
    background: linear-gradient(160deg, #0b2f2b 0%, var(--bx-graphite) 78%);
    border: 1px solid var(--bx-border-mint);
    color: var(--bx-warm-white);
}
.bx-flip__open {
    background: none;
    border: 0;
    padding: 0;
    text-align: left;
    font-family: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
    cursor: pointer;
}
.bx-flip__close {
    align-self: flex-start;
    background: none;
    border: 0;
    padding: 0;
    color: var(--bx-mint);
    font-family: inherit;
    font-size: 12px;
    letter-spacing: 0.12em;
    cursor: pointer;
}
.bx-flip__content {
    display: flex;
    flex-direction: column;
    gap: clamp(6px, 3cqh, 14px);
}
.bx-flip__eyebrow {
    color: var(--bx-mint);
    font-size: 11px;
    letter-spacing: 0.14em;
}
.bx-flip__title {
    margin: 0;
    color: #fff;
    font-size: clamp(17px, 7cqw, 26px);
    line-height: 1.15;
    font-weight: 500;
}
.bx-flip__text {
    margin: 0;
    color: rgba(247, 248, 245, 0.78);
    font-size: clamp(12.5px, 4.6cqw, 16px);
    line-height: 1.45;
}
.bx-flip__link {
    align-self: flex-start;
    color: var(--bx-mint);
    font-size: 12px;
    letter-spacing: 0.12em;
    text-decoration: none;
    border-bottom: 1px solid var(--bx-border-mint);
    padding-bottom: 2px;
}
.bx-flip__link:hover {
    border-bottom-color: var(--bx-mint);
}
.bx-flip__open:focus-visible,
.bx-flip__close:focus-visible,
.bx-flip__link:focus-visible {
    outline: var(--bx-focus-outline);
    outline-offset: var(--bx-focus-offset);
}
@media (prefers-reduced-motion: reduce) {
    .bx-flip__inner {
        transition: none;
    }
}

/* Flip cards: Crafto's absolute figcaption only shrink-wraps its content, and the
   button's stretched-link ::after fills it, so the clickable area stopped short.
   Pinning the figcaption to all four edges makes it, and the click area, cover the card. */
.bx-flip__front figcaption {
    right: 0;
    bottom: 0;
}
