/* Project responsive overrides belong here. */
@media (max-width: 1025px) {
    .elementor .crf-home-arts,
    .elementor .crf-responsible-tech {
        --e-global-typography-primary-font-size: 42px;
        --e-global-typography-c2f0105-font-size: 22px;
        --e-global-typography-c2f0104-font-size: 24px;
        --e-global-typography-text-font-size: 17px;
    }
    .elementor .e-con.crf-home-arts,
    .elementor .e-con.crf-responsible-tech { padding: 96px 24px; }
    .crf-home-arts .crf-arts-grid > .e-con-inner,
    .crf-responsible-tech .crf-tech-grid > .e-con-inner { gap: 40px; }
    .crf-responsible-tech .crf-tech-intro .elementor-widget-text-editor {
        margin-bottom: -22px;
    }
    .crf-responsible-tech .crf-tech-intro .elementor-widget-text-editor p {
        margin-block-end: 22px;
    }
    .crf-responsible-tech .e-con.crf-tech-intro { width: 100%; }
    /* Global-bound widgets use token sizes even with native responsive values. */
    .elementor .crf-philosophy-values {
        --e-global-typography-primary-font-size: 42px;
        --e-global-typography-c2f0106-font-size: 20px;
    }
    .elementor .e-con.crf-philosophy-values { padding: 96px 24px; }
    .crf-philosophy-values .e-con.crf-values-row,
    .crf-philosophy-values .crf-value .elementor-widget-text-editor { width: 100%; }
    .elementor .crf-home-hero {
        --e-global-typography-secondary-font-size: 38px;
        --e-global-typography-accent-font-size: 18px;
    }
    /* Bridge the one-pixel difference from Elementor's 1024px breakpoint. */
    .elementor .e-con.crf-home-hero {
        padding: 96px 24px;
    }
    .crf-home-hero .e-con.crf-hero-copy { gap: 32px; }
    .crf-site-footer {
        --e-global-typography-c2f0108-font-size: 18px;
        --e-global-typography-accent-font-size: 18px;
    }
    .crf-site-footer .e-con.crf-footer-main {
        padding-inline: 0;
        --min-height: 220px;
    }
    .crf-site-footer .crf-footer-main > .e-con-inner {
        padding: 38px 24px 24px;
        min-height: 220px;
    }
    .crf-footer-main > .e-con-inner > :first-child { width: 23%; }
    .crf-footer-main > .e-con-inner > :nth-child(2) { width: 44%; }
    .crf-footer-menu .elementor-nav-menu--main > .elementor-nav-menu {
        gap: 4px 20px;
    }
    /* Apply the native font size immediately when crossing a breakpoint. */
    .crf-footer-menu .elementor-nav-menu--main .elementor-nav-menu a {
        transition-property: color, background-color, border-color;
    }
    .crf-footer-menu .elementor-nav-menu--main a,
    .crf-footer-contact a {
        display: inline-flex;
        align-items: center;
        min-height: 44px;
        min-width: 44px;
    }

    header.elementor-location-header .e-con.crf-site-header {
        --padding-top: 12px;
        --padding-bottom: 12px;
    }

    .crf-header-nav {
        --e-global-typography-text-font-size: 17px;
    }

    .elementor-location-header .crf-header-nav .elementor-nav-menu--main {
        display: none;
    }

    .elementor-location-header .crf-header-nav .elementor-menu-toggle {
        display: flex;
        min-width: 44px;
        min-height: 44px;
    }

    .elementor-location-header .crf-header-nav nav.elementor-nav-menu--dropdown {
        display: block;
        position: absolute;
        right: 0;
        /* Elementor writes a left offset for its stretched menu. Anchor it to the toggle's right edge. */
        left: auto !important;
    }
}

@media (max-width: 768px) {
    .elementor .crf-home-arts,
    .elementor .crf-responsible-tech {
        --e-global-typography-primary-font-size: 34px;
        --e-global-typography-c2f0105-font-size: 20px;
        --e-global-typography-c2f0104-font-size: 22px;
        --e-global-typography-text-font-size: 16px;
    }
    .elementor .e-con.crf-home-arts,
    .elementor .e-con.crf-responsible-tech { padding: 56px 16px; }
    .crf-home-arts .crf-arts-grid > .e-con-inner,
    .crf-responsible-tech .crf-tech-grid > .e-con-inner { gap: 32px; }
    .crf-responsible-tech .crf-tech-intro .elementor-widget-text-editor {
        margin-bottom: -20px;
    }
    .crf-responsible-tech .crf-tech-intro .elementor-widget-text-editor p {
        margin-block-end: 20px;
    }
    .crf-home-arts .e-con.crf-arts-columns,
    .crf-responsible-tech .e-con.crf-tech-columns { flex-direction: column; gap: 24px; }
    .crf-arts-columns > .elementor-widget.crf-arts-list,
    .crf-tech-columns > .elementor-widget.crf-tech-list { width: 100%; }
    .elementor .crf-philosophy-values {
        --e-global-typography-primary-font-size: 34px;
        --e-global-typography-c2f0106-font-size: 18px;
    }
    .elementor .e-con.crf-philosophy-values { padding: 56px 16px; }
    .crf-philosophy-values .e-con.crf-values-row { flex-direction: column; gap: 32px; }
    .crf-values-row > .e-con.crf-values-title,
    .crf-values-row > .e-con.crf-values-list { width: 100%; }
    .crf-philosophy-values .e-con.crf-values-list { gap: 24px; }
    .crf-values-list .e-con.crf-value:not(:last-child) { padding-bottom: 24px; }
    .elementor .crf-home-hero {
        --e-global-typography-secondary-font-size: 30px;
        --e-global-typography-accent-font-size: 16px;
    }
    .elementor .e-con.crf-home-hero { padding: 56px 16px; }
    .crf-home-hero .e-con.crf-hero-copy { gap: 24px; }
    .crf-site-footer {
        --e-global-typography-c2f0108-font-size: 16px;
        --e-global-typography-accent-font-size: 16px;
    }
    .crf-site-footer .crf-footer-main > .e-con-inner {
        flex-direction: column;
        gap: 22px;
        padding: 28px 16px 24px;
    }
    .crf-footer-main > .e-con-inner > .e-con { width: 100%; }
    .crf-footer-menu .elementor-nav-menu--main > .elementor-nav-menu {
        flex-direction: column;
        align-items: flex-start;
        gap: 0;
    }

    header.elementor-location-header .e-con.crf-site-header {
        --padding-top: 10px;
        --padding-bottom: 10px;
    }

    .crf-header-nav {
        --e-global-typography-text-font-size: 16px;
    }
}
