/* ==========================================================================
   theme.css — consolidated from the inline <style> blocks that were
   duplicated across all 8 pages.

   These rules cannot be expressed in the Webflow Designer (tag selectors,
   descendant hover chains, mix-blend-mode, transforms, keyframes).
   Comments marked [LOCKED] came from the export — keep them.

   MUST load AFTER main.css: it overrides Designer output and depends on
   cascade order.

   Assembled from the project-page variants, which are supersets of the
   export-page variants — the two differed only in whitespace inside
   rgba() values, verified rule-by-rule. Project-only additions are
   marked below.
   ========================================================================== */

/* --- Webflow badge ----------------------------------------------------- */
.w-webflow-badge { display: none !important; }

/* --- Font smoothing ----------------------------------------------------- */
* {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -o-font-smoothing: antialiased;
}
    

/* ==========================================================================
   Runtime-generated-class CSS + full [data-theme] palette
   ========================================================================== */
/* [LOCKED] Runtime-generated-class CSS — JS-built elements (char-split, word-split); XSCP never sees these, this is the ONLY place they can live */
.button_split-text {
    display: inline-flex;
    align-items: center;
    line-height: 1;
}

.button_letter {
    display: inline-block;
    overflow: hidden;
    height: 1em;
    line-height: 1em;
    vertical-align: bottom;
}

.button_letter-stack {
    display: flex;
    flex-direction: column;
    will-change: transform;
    transform: translateY(0);
}

.button_letter-stack>span {
    display: block;
    line-height: 1em;
    flex-shrink: 0;
}

.button_space {
    display: inline-block;
    width: .28em;
}

.js-word-split_mask {
    display: inline-block;
    overflow: hidden;
    vertical-align: bottom;
    line-height: inherit;
}

.js-word-split_word {
    display: inline-block;
    transform: translateY(108%);
    will-change: transform;
}

/* Reset safety net for custom-code-injected markup (#cur, mobile menu, etc.) */
*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

ul,
ol,
li {
    list-style: none;
    padding: 0;
    margin: 0;
}

/* [LOCKED] Navbar frosted glass — blur on ::before so children aren't composited; Designer combo holds bg+border only */
.navbar_component.is-scrolled::before {
    content: '';
    position: absolute;
    inset: 0;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    z-index: -1;
    pointer-events: none;
}

/* Dark scrolled navbar — overrides light-mode rgba white set on the combo in Designer */
[data-theme="dark"] .navbar_component.is-scrolled {
    background: rgba(17, 17, 17, .94);
    border-color: var(--_theme---border--default);
}

/* [LOCKED] is-hidden — JS-toggled navbar slide-off; transform is STRIP_PROPS so it can't compile from XSCP */
.navbar_component.is-hidden {
    transform: translateY(-100%);
}

/* SVG tag descendant selectors — Designer can't express tag selectors; without these SVGs are invisible */
.theme-toggle_icon svg {
    stroke: currentColor;
}

.faq_icon-state svg {
    stroke: currentColor;
}

/* Theme toggle icons — both absolute-centered on same point so JS opacity-swap works in place */
.theme-toggle_component {
    position: relative;
}

.theme-toggle_icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

/* [LOCKED] Burger colors — lines always white; box color per theme + open state */
.navbar_burger-line {
    background-color: #ffffff;
}

[data-theme="light"] .navbar_burger {
    background-color: #0a0a0a;
}

[data-theme="dark"] .navbar_burger {
    background-color: #1a1d1e;
    border: 1px solid rgba(255, 255, 255, .12);
}

body.menu-open [data-theme="light"] .navbar_burger {
    background-color: #1a1d1e;
}

body.menu-open [data-theme="dark"] .navbar_burger {
    background-color: #2a2d2e;
    border-color: rgba(255, 255, 255, .2);
}

/* [LOCKED] Burger X-morph — top/bottom lines cross, middle fades, on body.menu-open */
body.menu-open .navbar_burger-lines {
    justify-content: center;
}

body.menu-open .navbar_burger-line:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
}

body.menu-open .navbar_burger-line:nth-child(2) {
    opacity: 0;
}

body.menu-open .navbar_burger-line:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
}

/* [LOCKED] Mobile menu open state — display:flex overrides Designer base display:none; z-index 201 sits above navbar (200) */
body.menu-open .mobile-menu_component {
    display: flex;
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
    z-index: 201;
}

/* Mobile menu links stagger in */
body.menu-open .mobile-menu_link {
    opacity: 1;
    transform: translateY(0);
}

body.menu-open .mobile-menu_link:nth-child(1) {
    transition-delay: 150ms, 150ms, 0ms, 0ms;
}

body.menu-open .mobile-menu_link:nth-child(2) {
    transition-delay: 220ms, 220ms, 0ms, 0ms;
}

body.menu-open .mobile-menu_link:nth-child(3) {
    transition-delay: 290ms, 290ms, 0ms, 0ms;
}

body.menu-open .mobile-menu_link:nth-child(4) {
    transition-delay: 360ms, 360ms, 0ms, 0ms;
}

/* Mobile menu CTA button — parent-scoped rule beats button.is-nav display:none at 991px */
@media (max-width: 991px) {
    .mobile-menu_nav .button {
        display: flex;
    }
}

/* Navbar link flip — descendant hover chain, doesn't survive XSCP compile */
.navbar_link:hover .navbar_link-inner {
    transform: translateY(-50%);
}

/* Footer sibling-dim hover chain */
.footer_links:hover .footer_link,
.footer_links:focus-within .footer_link {
    opacity: 0.35;
}

.footer_links .footer_link:hover,
.footer_links .footer_link:focus-visible {
    opacity: 1;
    color: #ffffff;
}

/* [LOCKED] Custom cursor — mix-blend-mode/will-change/state chains can't compile; do not split this block */
.cursor_component {
    position: fixed;
    width: 10px;
    height: 10px;
    background: #ffffff;
    border-radius: 50%;
    pointer-events: none;
    z-index: 9999;
    transform: translate(-50%, -50%) scale(0);
    transition:
        transform 300ms cubic-bezier(.16, 1, .3, 1),
        width 300ms cubic-bezier(.16, 1, .3, 1),
        height 300ms cubic-bezier(.16, 1, .3, 1);
    will-change: transform;
    mix-blend-mode: difference;
}

.cursor_component.is-visible {
    transform: translate(-50%, -50%) scale(1);
}

.cursor_component.is-hovering {
    width: 38px;
    height: 38px;
}

body {
    cursor: none;
}

@media (pointer: coarse) {
    body {
        cursor: auto;
    }

    .cursor_component {
        display: none;
    }
}

/* [LOCKED] Dark mode variable swap — Designer can't express [data-theme] selectors; this block IS dark mode */
[data-theme="dark"] {
    --_theme---background--section: #010405;
    --_theme---background--card: #1a1d1e;
    --_theme---background--subtle: #1f2122;
    --_theme---background--inverse: #0a0a0a;
    --_theme---text--heading: #ffffff;
    --_theme---text--body: #b2b3b4;
    --_theme---text--muted: #999999;
    --_theme---text--accent: #3b82f6;
    --_theme---border--default: #2a2d2e;
    --_theme---border--strong: #4d4f50;
    --_theme---primary-button--background: #f0f0f0;
    --_theme---primary-button--text: #111111;
    --_theme---primary-button--border: #f0f0f0;
    --_theme---primary-button--hover-background: #d4d4d4;
    --_theme---primary-button--hover-text: #111111;
    --_theme---primary-button--hover-border: #d4d4d4;
    --_theme---badge--background: rgba(34, 197, 94, 0.10);
    --_theme---badge--border: rgba(34, 197, 94, 0.22);
    --_theme---badge--text: #4ade80;
    --_theme---badge--dot: #4ade80;
}

/* Dark navbar + mobile menu (non-tokenised exceptions) */
[data-theme="dark"] .navbar_brand-icon,
[data-theme="dark"] .navbar_brand-wordmark {
    filter: invert(1) opacity(.9);
}

[data-theme="dark"] .mobile-menu_component {
    background: #1a1d1e;
}

[data-theme="dark"] .mobile-menu_nav {
    background-color: transparent;
}

[data-theme="light"] .mobile-menu_nav {
    background-color: transparent;
}

[data-theme="dark"] .navbar_link:hover {
    color: #ffffff;
}

[data-theme="light"] .mobile-menu_component {
    background: #0a0a0a;
}

[data-theme="light"] .mobile-menu_link {
    color: rgba(255, 255, 255, 0.85);
}

[data-theme="light"] .mobile-menu_link:hover {
    color: #ffffff;
}

/* Dark buttons */
[data-theme="dark"] .button.is-link::after {
    background: #ffffff;
}

[data-theme="dark"] .button.is-primary,
[data-theme="dark"] .button.is-nav {
    background-color: #f0f0f0;
    color: #111111;
}

[data-theme="dark"] .button.is-primary:hover,
[data-theme="dark"] .button.is-nav:hover {
    background-color: #d4d4d4;
    color: #111111;
    box-shadow: 0 8px 24px rgba(255, 255, 255, .12);
}

/* Dark footer border */
[data-theme="dark"] .footer_component {
    background: #0a0a0a;
    border-top-color: #1f1f1f;
}
    

/* ==========================================================================
   Keyframes (was index.html only; every page needs them once JS is shared)
   ========================================================================== */
/* [LOCKED] Keyframes — animation shorthand is Phase 1 STRIP_PROPS, so these must live here or they never fire */
@keyframes blink-ring {
  0%   { transform: scale(1);   opacity: .7; }
  70%  { transform: scale(2.2); opacity: 0; }
  100% { transform: scale(2.2); opacity: 0; }
}
@keyframes caret-blink { 50% { opacity: 0; } }
@keyframes marquee-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@keyframes vmarquee {
  from { transform: translateY(0); }
  to   { transform: translateY(-50%); }
}
.marquee_track { animation: marquee-scroll 38000ms linear infinite; }
.marquee_component:hover .marquee_track { animation-play-state: paused; }
.collab-marquee_track { animation: vmarquee 14000ms linear infinite; }
.collab-marquee_component:hover .collab-marquee_track { animation-play-state: paused; }
/* Blink-ring invocations — availability badge + collab eyebrow dot */
.availability-badge_dot-ring { animation: blink-ring 2000ms ease-out infinite; }
.collab_eyebrow-dot { animation: blink-ring 2400ms ease-out infinite; }
/* Testimonial card hover — lift + border + quote-icon color */
.testimonial-card_component:hover {
  border-color: var(--_theme---border--strong);
  box-shadow: 0 12px 48px rgba(0,0,0,.07);
  transform: translateY(-4px);
}
.testimonial-card_component:hover .testimonial-card_quote-icon {
  color: var(--_theme---text--heading);
}
/* [LOCKED] FAQ accordion is-open chains — grid-template-rows 0fr→1fr is the open/close mechanism */
.faq_item.is-open .faq_answer-wrapper { grid-template-rows: 1fr; }
.faq_item.is-open .faq_number { color: var(--_theme---text--accent); }
.faq_item.is-open .faq_icon { color: var(--_theme---text--accent); }
.faq_item.is-open .faq_icon-state.is-closed { opacity: 0; }
.faq_item.is-open .faq_icon-state.is-open { opacity: 1; }
/* Project card hover — image scale (clipped by wrapper overflow) + arrow nudge */
.project-card_image-wrapper { overflow: hidden; }
.project-card_component:hover .project-card_image { transform: scale(1.05); }
.project-card_component:hover .project-card_arrow { transform: translateX(5px); }
/* Dark hero grid */
[data-theme="dark"] .hero_bg-grid {
  background-image:
    linear-gradient(rgba(59,130,246,.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(59,130,246,.07) 1px, transparent 1px);
}
/* Dark client-card icon filter — accent shifts #2563eb → #3b82f6 */
[data-theme="dark"] .client-card_icon-img {
  filter: invert(44%) sepia(72%) saturate(600%) hue-rotate(200deg) brightness(105%) contrast(95%);
}
/* Dark service-card hover tint */
[data-theme="dark"] .service-card_component:hover {
  background: rgba(59,130,246,.13);
  border-color: rgba(59,130,246,.25);
}
/* Dark project-card image wrapper bg */
[data-theme="dark"] .project-card_image-wrapper { background: #1a1a1a; }
/* Dark about portrait stripes */
[data-theme="dark"] .about_portrait-bg {
  background: repeating-linear-gradient(
    135deg,
    transparent, transparent 22px,
    rgba(255,255,255,.015) 22px, rgba(255,255,255,.015) 23px
  );
}
/* Dark FAQ hover — nuclear override (Designer compiled #f5f5f5, not token) */
[data-theme="dark"] .faq_question-trigger:hover { background: #1f2122; }
/* Dark card/section backgrounds — nuclear overrides (compiled as #f5f5f5, not tokens) */
[data-theme="dark"] .client-card_component { background: #010405; }
[data-theme="dark"] .project-card_component { background: #010405; }
[data-theme="dark"] .project-card_image-wrapper { background: #1a1d1e; }
[data-theme="dark"] .service-card_component { background: #1a1d1e; }
[data-theme="dark"] .testimonial-card_component { background: #1a1d1e; }
[data-theme="dark"] .stats_item { background: #010405; border-right-color: #2a2d2e; }
[data-theme="dark"] .stats_item:hover { background: #1a1d1e !important; }
@media (max-width: 991px) { [data-theme="dark"] .stats_item { border-bottom-color: #2a2d2e; } }
/* Dark process section */
[data-theme="dark"] .process_grid { border-color: #2a2d2e; }
[data-theme="dark"] .process-step_component {
  border-right-color: #2a2d2e;
  border-bottom-color: #2a2d2e;
}
[data-theme="dark"] .process-step_component:hover { background: #1a1d1e; }
[data-theme="dark"] .process-step_number-text { color: #3b82f6; }
[data-theme="dark"] .process-step_line { background-color: #2a2d2e; }
/* Dark collab section */
[data-theme="dark"] .collab_component {
  background-color: #1a1d1e;
  border-color: #2a2d2e;
}
[data-theme="dark"] .collab_heading    { color: #ffffff; }
[data-theme="dark"] .collab_subheading { color: #b2b3b4; }
[data-theme="dark"] .collab_eyebrow-dot  { background-color: #3b82f6; }
[data-theme="dark"] .collab_eyebrow-text { color: #3b82f6; }
[data-theme="dark"] .collab-marquee_dot  { background-color: #3b82f6; }
[data-theme="dark"] .collab-marquee_item {
  background-color: #010405;
  border-color: #2a2d2e;
  color: #ffffff;
}
/* Dark hero glow — intensity bumped .1→.15; gradients can't use var() in Designer */
[data-theme="dark"] .hero_bg-glow {
  background: radial-gradient(ellipse 100% 60% at 50% -5%, rgba(59,130,246,.15) 0%, transparent 65%);
}
/* SECTION REVEAL CSS — parity with RB Portfolio (standalone). Deploy: paste into embed-head/page-home-head ONLY — never compile through XSCP. */
/* Card/block reveal — JS adds .rv (+.d1–.d4), IntersectionObserver adds .vis */
.rv { opacity: 0; transform: translateY(22px); }
.rv.vis {
  opacity: 1;
  transform: translateY(0);
  transition: opacity .65s cubic-bezier(.25, .46, .45, .94), transform .65s cubic-bezier(.25, .46, .45, .94);
}
.rv.d1 { transition-delay: .1s; }
.rv.d2 { transition-delay: .2s; }
.rv.d3 { transition-delay: .3s; }
.rv.d4 { transition-delay: .38s; }
/* Paragraph fade-up — JS auto-applies .para-rv, IO adds .up */
.para-rv {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .7s ease, transform .7s cubic-bezier(.25, .46, .45, .94);
}
.para-rv.up { opacity: 1; transform: translateY(0); }
.para-rv.d1 { transition-delay: .12s; }
.para-rv.d2 { transition-delay: .22s; }
/* Reduced motion — content always visible, no movement */
@media (prefers-reduced-motion: reduce) {
  .rv, .para-rv { opacity: 1; transform: none; transition: none; }
}

/* ==========================================================================
   Gallery / hover / testimonials
   (project variant — includes 2 testimonial-card hover rules the export lacks)
   ========================================================================== */
/* Gallery image scale on hover — image only, container clipped (mirrors home work section) */
.project-gallery_item:hover .project-gallery_image {
    transform: scale(1.04);
}

/* Testimonial card hover — lift + border + quote-icon color */
.testimonial-card_component:hover {
    border-color: var(--_theme---border--strong);
    box-shadow: 0 12px 48px rgba(0, 0, 0, .07);
    transform: translateY(-4px);
}

.testimonial-card_component:hover .testimonial-card_quote-icon {
    color: var(--_theme---text--heading);
}

/* Next-project name accent on link hover — descendant chain */
.project-next_link:hover .project-next_name {
    color: var(--_theme---text--accent);
}

/* Arrow nudge — mirrors home project-card_link behavior */
.project-meta_link .project-card_arrow {
    display: inline-block;
    transition: transform 200ms cubic-bezier(0, 0, .2, 1);
}

.project-meta_link:hover .project-card_arrow {
    transform: translateX(5px);
}

/* next/prev: arrows are inline text, so the label nudges directionally instead */
.project-next_label {
    transition: transform 200ms cubic-bezier(0, 0, .2, 1);
}

.project-next_link.is-prev:hover .project-next_label {
    transform: translateX(-5px);
}

.project-next_link.is-next:hover .project-next_label {
    transform: translateX(5px);
}

/* Rich-text paragraphs — classless <p> children, tag selectors can't compile */
.project_rich-text p {
    font-size: 18px;
    line-height: 1.8;
    color: var(--_theme---text--body);
    margin-bottom: 24px;
}

.project_rich-text p:first-child {
    font-size: 21px;
    color: var(--_theme---text--heading);
    letter-spacing: -.01em;
}

.project_rich-text p:last-child {
    margin-bottom: 0;
}

/* Native select chevron suppression — appearance not settable in Designer */
.form_select {
    -webkit-appearance: none;
    appearance: none;
}

/* Meta-grid cell borders per breakpoint — nth-child logic can't compile or be set via API */
.project-meta_item:last-child {
    border-right: none;
}

@media (max-width: 991px) {
    .project-meta_item {
        border-bottom: 1px solid var(--_theme---border--default);
    }

    .project-meta_item:nth-child(2n) {
        border-right: none;
    }

    .project-meta_item:nth-child(n+3) {
        border-bottom: none;
    }
}

@media (max-width: 479px) {
    .project-meta_item {
        border-right: none;
        border-bottom: 1px solid var(--_theme---border--default);
    }

    .project-meta_item:nth-child(n+3) {
        border-bottom: 1px solid var(--_theme---border--default);
    }

    .project-meta_item:last-child {
        border-bottom: none;
    }
}
    

/* ==========================================================================
   Rich text, containers, responsive utilities
   ========================================================================== */
                /* Get rid of top margin on first element in any rich text element */
                .w-richtext> :not(div):first-child,
                .w-richtext>div:first-child> :first-child {
                    margin-top: 0 !important;
                }

                /* Get rid of bottom margin on last element in any rich text element */
                .w-richtext>:last-child,
                .w-richtext ol li:last-child,
                .w-richtext ul li:last-child {
                    margin-bottom: 0 !important;
                }

                /* 
Make the following elements inherit typography styles from the parent and not have hardcoded values. 
Important: You will not be able to style for example "All Links" in Designer with this CSS applied.
Uncomment this CSS to use it in the project. Leave this message for future hand-off.
*/
                /*
a,
.w-input,
.w-select,
.w-tab-link,
.w-nav-link,
.w-dropdown-btn,
.w-dropdown-toggle,
.w-dropdown-link {
  color: inherit;
  text-decoration: inherit;
  font-size: inherit;
}
*/

                /* Prevent all click and hover interaction with an element */
                .pointer-events-off {
                    pointer-events: none;
                }

                /* Prefers Reduced Motion */
                @keyframes myrotate {
                    from {
                        transform: rotate(0deg);
                    }

                    to {
                        transform: rotate(-360deg);
                    }
                }

                scroll-behavior: smooth;
                }

                .cta_svg {
                    animation-name: myrotate;
                    animation-duration: 10s;
                    animation-iteration-count: infinite;
                    animation-timing-function: linear;
                }

                /* Prefers Reduced Motion */
                @keyframes myrotate {
                    from {
                        transform: rotate(0deg);
                    }

                    to {
                        transform: rotate(360deg);
                    }
                }

                .hero_svg {
                    animation-name: myrotate;
                    animation-duration: 10s;
                    animation-iteration-count: infinite;
                    animation-timing-function: linear;
                }

                /* Enables all click and hover interaction with an element */
                .pointer-events-on {
                    pointer-events: auto;
                }

                /* Snippet enables you to add class of div-square which creates and maintains a 1:1 dimension of a div.*/
                .div-square::after {
                    content: "";
                    display: block;
                    padding-bottom: 100%;
                }

                /*Hide focus outline for main content element*/
                main:focus-visible {
                    outline: -webkit-focus-ring-color auto 0px;
                }

                /* Make sure containers never lose their center alignment*/
                .container-medium,
                .container-small,
                .container-large {
                    margin-right: auto !important;
                    margin-left: auto !important;
                }

                /*Reset selects, buttons, and links styles*/
                .w-input,
                .w-select,
                a {
                    color: inherit;
                    text-decoration: inherit;
                    font-size: inherit;
                }

                /*Apply "..." after 3 lines of text */
                .text-style-3lines {
                    display: -webkit-box;
                    overflow: hidden;
                    -webkit-line-clamp: 3;
                    -webkit-box-orient: vertical;
                }

                /* Apply "..." after 2 lines of text */
                .text-style-2lines {
                    display: -webkit-box;
                    overflow: hidden;
                    -webkit-line-clamp: 2;
                    -webkit-box-orient: vertical;
                }

                /* Apply "..." at 100% width */
                .truncate-width {
                    width: 100%;
                    white-space: nowrap;
                    overflow: hidden;
                    text-overflow: ellipsis;
                }

                /* Removes native scrollbar */
                .no-scrollbar {
                    -ms-overflow-style: none; // IE 10+
                    overflow: -moz-scrollbars-none; // Firefox
                }

                .no-scrollbar::-webkit-scrollbar {
                    display: none; // Safari and Chrome
                }

                /* Adds inline flex display */
                .display-inlineflex {
                    display: inline-flex;
                }

                /* These classes are never overwritten */
                .hide {
                    display: none !important;
                }

                @media screen and (max-width: 991px),
                @media screen and (max-width: 767px),
                @media screen and (max-width: 479px) {
                    .hide,
                    .hide-tablet {
                        display: none !important;
                    }
                }

                @media screen and (max-width: 767px) .hide-mobile-landscape {
                    display: none !important;
                }
                }

                @media screen and (max-width: 479px) .hide-mobile {
                    display: none !important;
                }
                }

                .margin-0 {
                    margin: 0rem !important;
                }

                .padding-0 {
                    padding: 0rem !important;
                }

                .spacing-clean {
                    padding: 0rem !important;
                    margin: 0rem !important;
                }

                .margin-top {
                    margin-right: 0rem !important;
                    margin-bottom: 0rem !important;
                    margin-left: 0rem !important;
                }

                .padding-top {
                    padding-right: 0rem !important;
                    padding-bottom: 0rem !important;
                    padding-left: 0rem !important;
                }

                .margin-right {
                    margin-top: 0rem !important;
                    margin-bottom: 0rem !important;
                    margin-left: 0rem !important;
                }

                .padding-right {
                    padding-top: 0rem !important;
                    padding-bottom: 0rem !important;
                    padding-left: 0rem !important;
                }

                .margin-bottom {
                    margin-top: 0rem !important;
                    margin-right: 0rem !important;
                    margin-left: 0rem !important;
                }

                .padding-bottom {
                    padding-top: 0rem !important;
                    padding-right: 0rem !important;
                    padding-left: 0rem !important;
                }

                .margin-left {
                    margin-top: 0rem !important;
                    margin-right: 0rem !important;
                    margin-bottom: 0rem !important;
                }

                .padding-left {
                    padding-top: 0rem !important;
                    padding-right: 0rem !important;
                    padding-bottom: 0rem !important;
                }

                .margin-horizontal {
                    margin-top: 0rem !important;
                    margin-bottom: 0rem !important;
                }

                .padding-horizontal {
                    padding-top: 0rem !important;
                    padding-bottom: 0rem !important;
                }

                .margin-vertical {
                    margin-right: 0rem !important;
                    margin-left: 0rem !important;
                }

                .padding-vertical {
                    padding-right: 0rem !important;
                    padding-left: 0rem !important;
                }

                html {
                    font-size: calc(0.625rem + 0.41666666666666663vw);
                }

                @media screen and (max-width:1920px) {
                    html {
                        font-size: calc(0.625rem + 0.41666666666666674vw);
                    }
                }

                @media screen and (max-width:1440px) {
                    html {
                        font-size: calc(0.8126951092611863rem + 0.20811654526534862vw);
                    }
                }

                @media screen and (max-width:479px) {
                    html {
                        font-size: calc(0.7494769874476988rem + 0.8368200836820083vw);
                    }
                }
            

/* --- Contact form status ------------------------------------------------
   Replaces Webflow's .w-form-done / .w-form-fail, which were driven by
   webflow.js and no longer fire. [hidden] is honoured by the base reset. */
.contact-form_status {
  margin-top: 16px;
  padding: 12px 16px;
  border: 1px solid var(--_theme---border--default);
  border-radius: 8px;
  font-size: var(--_typography---size--text-small);
  line-height: 1.5;
}

.contact-form_status.is-success {
  color: #16794a;
  background: rgba(22, 163, 74, .08);
  border-color: rgba(22, 163, 74, .35);
}

.contact-form_status.is-error {
  color: #b42318;
  background: rgba(220, 38, 38, .08);
  border-color: rgba(220, 38, 38, .35);
}

[data-theme="dark"] .contact-form_status.is-success {
  color: #6ee7a8;
  background: rgba(22, 163, 74, .14);
}

[data-theme="dark"] .contact-form_status.is-error {
  color: #fda29b;
  background: rgba(220, 38, 38, .14);
}

.button.is-form-submit[disabled] {
  opacity: .6;
  cursor: not-allowed;
}
