/*
Theme Name: Powering Communities
Theme URI: https://poweringcommunities.com
Description: Minimal child theme for the Powering Communities Elementor website.
Author: Bold
Template: hello-elementor
Version: 0.6.52
Text Domain: powering-communities
*/

@font-face {
    font-family: "Funnel Display";
    src: url("assets/fonts/FunnelDisplay-Variable.ttf") format("truetype");
    font-style: normal;
    font-weight: 300 800;
    font-display: swap;
}

:root {
    --pc-green: var(--e-global-color-primary, #54b898);
    --pc-yellow: var(--e-global-color-secondary, #ffed00);
    --pc-lilac: var(--e-global-color-accent, #cf95c2);
    --pc-off-white: var(--e-global-color-offwhite, #f6faf4);
    --pc-ink: var(--e-global-color-black, #000000);
    --pc-body: var(--e-global-color-text, #535862);
    --pc-content: 1290px;
    --pc-canvas: 1920px;
    --pc-section-inline: max(32px, calc((100% - var(--pc-content)) / 2));
}

body:has(.pc-holding),
body:has(.pc-holding) > .elementor {
    background: #54b898;
}

body:has(.pc-holding) > .elementor {
    width: 100%;
    max-width: none;
}

.elementor .pc-holding {
    display: flex;
    min-height: 100vh;
    min-height: 100svh;
    padding: 48px 24px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 32px;
    background: linear-gradient(135deg, #3b9278, #54b898 40%, #d4b750 75%, #ad78a1);
    background-size: 240% 240%;
    animation: pc-holding-colours 36s ease-in-out infinite alternate;
}

@keyframes pc-holding-colours {
    0% { background-position: 0% 50%; }
    100% { background-position: 100% 50%; }
}

.elementor .pc-holding-intro,
.elementor .pc-holding-link {
    color: #111;
    font-family: "Funnel Display", sans-serif;
    text-align: center;
}

.elementor .pc-holding-intro { font-size: clamp(18px, 2vw, 24px); }

.elementor .pc-holding-contact,
.elementor .pc-holding-social {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px 24px;
}

.elementor .pc-holding-link { font-size: 16px; }
.elementor .pc-holding-link a { color: inherit; text-decoration: underline; text-underline-offset: 4px; }
.elementor .pc-holding-link a:hover { opacity: .78; }

@media (prefers-reduced-motion: reduce) {
    .elementor .pc-holding { animation: none; }
}

.elementor img.pc-holding-logo {
    display: block;
    width: min(320px, 75vw);
    height: auto;
}

.elementor .pc-holding-title {
    margin: 0;
    color: #111;
    font-family: "Funnel Display", sans-serif;
    font-size: clamp(34px, 5vw, 64px);
    font-weight: 600;
    line-height: 1.1;
    text-align: center;
}

.pc-privacy-main,
.elementor .pc-privacy-main {
    padding-top: 78px;
    padding-bottom: 88px;
}

.pc-privacy-content,
.elementor .pc-privacy-content {
    align-items: stretch !important;
    max-width: 840px;
    gap: 18px;
    text-align: left !important;
}

.pc-privacy-content > .pc-h1 {
    margin-bottom: 8px;
}

.pc-privacy-updated {
    margin: 0 0 18px;
    color: var(--pc-body);
}

.pc-privacy-section-heading {
    margin: 18px 0 0;
    font-size: 24px;
    font-weight: 600;
    line-height: 1.25;
}

.pc-privacy-copy {
    margin: 0;
    max-width: none;
    color: var(--pc-body);
    line-height: 1.55;
}

@media (max-width: 600px) {
    .pc-privacy-main,
    .elementor .pc-privacy-main {
        padding-top: 48px !important;
        padding-bottom: 58px !important;
    }

    .pc-privacy-content,
    .elementor .pc-privacy-content {
        gap: 16px;
    }

    .pc-privacy-section-heading {
        margin-top: 14px;
        font-size: 22px;
    }
}

html {
    scroll-behavior: smooth;
}

html,
body {
    overflow-x: clip;
}

body {
    margin: 0;
    background: var(--e-global-color-canvas, #e6e9e6);
}

body > .elementor {
    width: min(100%, var(--pc-canvas));
    margin-inline: auto;
    background: var(--pc-off-white);
}

body > .elementor-location-header {
    position: sticky;
    z-index: 9999;
    top: 0;
    min-height: 99px;
    background: var(--pc-yellow);
}

body.admin-bar > .elementor-location-header {
    top: 32px;
}

@media (min-width: 601px) and (max-width: 782px) {
    body.admin-bar > .elementor-location-header {
        top: 46px;
    }
}

@media (max-width: 600px) {
    body.admin-bar > .elementor-location-header {
        top: 0;
    }
}

body:not(.logged-in) .pc-pending {
    display: none !important;
}

body.logged-in .pc-pending {
    position: relative;
}

body.logged-in .pc-pending::before {
    position: absolute;
    z-index: 20;
    top: 12px;
    left: 12px;
    content: "Hidden until client content is ready";
    padding: 6px 10px;
    border-radius: 20px;
    background: #000;
    color: #fff;
    font-size: 12px;
}

.pc-shell {
    width: min(calc(100% - 48px), var(--pc-content));
    margin-inline: auto;
}

.pc-header {
    z-index: 1;
    top: 0;
    left: 50%;
    width: min(calc(100% - 150px), var(--pc-content));
    transform: translateX(-50%);
    background: var(--pc-yellow);
    overflow: visible !important;
}

.pc-header-logo {
    flex: 0 0 180px;
}

.pc-header-logo img {
    display: block;
    width: 100%;
    height: 50px;
    object-fit: fill;
    object-position: left center;
}

body.admin-bar .pc-header {
    top: 0;
}

@media (max-width: 782px) {
    body.admin-bar .pc-header {
        top: 0;
    }
}

.pc-nav .elementor-nav-menu--main .elementor-nav-menu {
    display: flex;
    align-items: center;
    gap: 36px;
}

.pc-nav {
    width: auto !important;
}

.pc-nav .elementor-nav-menu--main .elementor-item {
    padding: 0 !important;
    text-decoration: none;
}

.pc-nav .elementor-nav-menu--main .current-menu-item > .elementor-item,
.pc-nav .elementor-nav-menu--main .elementor-item.elementor-item-active {
    color: var(--pc-ink) !important;
    text-decoration: underline !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 8px !important;
}

.pc-nav .elementor-nav-menu--main .elementor-item {
    color: var(--pc-ink) !important;
    font-family: "Funnel Display", sans-serif !important;
    font-size: 18px !important;
    font-weight: 500 !important;
    line-height: 23px !important;
}

.pc-nav .elementor-nav-menu--main .elementor-nav-menu::after {
    display: none;
}

.pc-hero {
}

.pc-hero::before,
.pc-hero::after {
    position: absolute;
    z-index: 1;
    content: "";
    background-repeat: no-repeat;
    background-size: 100% 100%;
}

.pc-hero::before {
    top: -6px;
    right: -18px;
    left: auto !important;
    bottom: auto !important;
    inset-inline-start: auto !important;
    width: 41.74%;
    height: 705px;
    background-image: url("assets/svg/hero-yellow-panel.svg");
}

.pc-hero::after {
    top: -112px;
    right: auto !important;
    left: 33.26%;
    bottom: auto !important;
    inset-inline-end: auto !important;
    width: 51.69%;
    height: 811.105px;
    background-image: url("assets/svg/hero-yellow-chevron.svg");
}

.pc-hero-media {
    top: -30px;
    left: -15.42%;
}

.pc-hero-media > img,
.pc-hero-media .elementor-widget-image,
.pc-hero-media .elementor-widget-container,
.pc-hero-media img {
    width: 100%;
    height: 100%;
}

.pc-hero-media img {
    display: block;
    height: 100%;
}

/* Hero crop defaults stay deliberately low-specificity so an Elementor local
   class can override Object fit and Object position at any breakpoint. */
:where(.pc-hero-media) img {
    object-fit: cover;
    object-position: center;
}

.pc-hero-copy {
    top: 166px;
    right: max(75px, calc((100% - var(--pc-content)) / 2));
}

.pc-hero-copy > p,
.pc-hero-copy .elementor-widget-text-editor p {
    margin: 0;
}

.pc-newsletter {
}

.pc-newsletter::after {
    position: absolute;
    top: 0;
    right: -1px;
    bottom: 0;
    width: 245px;
    height: 100%;
    content: "";
    background: var(--pc-yellow);
    clip-path: polygon(100% 0, 100% 100%, 35% 100%, 52% 51%, 0 0);
}

.pc-newsletter > p,
.pc-newsletter .elementor-widget-text-editor {
    z-index: 1;
}

.elementor .pc-newsletter h2,
.elementor .pc-newsletter > p,
.elementor .pc-newsletter > .e-paragraph-base {
    color: var(--pc-ink);
}

.pc-signup {
    display: flex;
    z-index: 1;
    width: min(100%, 470px);
    overflow: hidden;
    margin-top: 28px;
    padding: 3px;
    border-radius: 28px;
    background: var(--pc-off-white);
}

.pc-signup-widget {
    z-index: 1;
    width: min(100%, 470px);
}

.elementor .e-flexbox-base.pc-template-embed {
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: 0;
    gap: 0;
}

.elementor .pc-template-widget {
    width: 100%;
    margin: 0;
}

.pc-signup [role="group"] {
    display: flex;
    width: 100%;
    overflow: hidden;
    padding: 3px;
    border-radius: 28px;
    background: var(--pc-off-white);
}

.pc-signup input {
    min-width: 0;
    flex: 1;
    padding: 0 18px;
    appearance: none;
    border: 0 !important;
    outline: 0;
    box-shadow: none !important;
    background: transparent;
    color: var(--pc-ink);
    font: inherit;
}

.pc-signup input:focus,
.pc-signup input:focus-visible {
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}

.pc-signup button {
    order: -1;
    min-width: 135px;
    padding: 9px 24px;
    border: 0;
    border-radius: 24px;
    background: var(--pc-ink);
    color: var(--pc-off-white);
    font: inherit;
    cursor: pointer;
}

.pc-audience {
}

/* Elementor's Atomic editor canvas does not consistently apply width and
   max-width properties to widget roots. Mirror the same class-level measures
   here so editing view and frontend render with the same geometry. */
.elementor .pc-section-copy {
    width: 100% !important;
    max-width: 520px !important;
    margin-inline: auto !important;
}

.elementor .pc-newsletter-copy {
    width: 100% !important;
    max-width: 430px !important;
    margin-inline: auto !important;
}

.elementor .pc-audience-copy {
    width: 100% !important;
    max-width: 460px !important;
}

.pc-audience-image img {
    display: block;
    width: 100%;
    max-height: 430px !important;
    object-fit: contain !important;
    transform: none;
    transform-origin: center;
}

.pc-metrics {
    background: linear-gradient(rgba(0, 0, 0, .14), rgba(0, 0, 0, .14)), url("assets/images/solar-panels.jpg") center/cover !important;
}

/* Footer width constraint. Metrics spacing is controlled entirely in Elementor. */
.elementor .pc-footer {
    padding-inline: max(var(--pc-space-section-inline, 32px), calc((100% - var(--pc-content)) / 2));
}

@media (min-width: 1025px) {
    /* Elementor's template editor can omit the global spacing variable and
       emit a later 32px rule. Keep its desktop canvas aligned with frontend. */
    .elementor .pc-footer {
        padding-inline: max(32px, calc((100% - var(--pc-content)) / 2)) !important;
    }
}

.pc-metric-icon {
}

.pc-metric-icon,
.pc-metric-icon svg,
.pc-metric-icon img {
    display: block;
    width: 100%;
    height: 100%;
}

.pc-metric-icon svg {
    fill: none;
    stroke: currentColor;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.pc-logo-row,
.pc-logo-row .elementor-widget-container {
    width: min(100%, 1140px);
    margin-top: 34px;
}

.pc-partners,
.elementor .pc-partners {
    min-height: 456px;
    padding: 90px max(32px, calc((100% - var(--pc-content)) / 2)) 72px !important;
    background: var(--pc-off-white);
    text-align: center;
    align-items: center !important;
}

.pc-partners h2,
.elementor .pc-partners h2 {
    margin: 0 !important;
    color: var(--pc-ink) !important;
    font-size: 24px !important;
    line-height: 30px !important;
}

.pc-partner-carousel {
    position: relative;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) 38px;
    align-items: center;
    gap: 14px;
}

.pc-partner-viewport {
    overflow-x: auto;
    scroll-behavior: smooth;
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
}

.pc-partner-viewport::-webkit-scrollbar {
    display: none;
}

.pc-partner-track {
    display: grid;
    grid-auto-columns: calc((100% - 180px) / 6);
    grid-auto-flow: column;
    gap: 36px;
}

.pc-partner-slide {
    min-height: 84px;
    background: var(--e-global-color-placeholder, #d9d9d9);
    scroll-snap-align: start;
}

.pc-partner-arrow {
    display: grid;
    width: 38px;
    height: 38px;
    padding: 0;
    place-items: center;
    border: 1px solid var(--pc-ink);
    border-radius: 50%;
    background: var(--pc-off-white);
    color: var(--pc-ink);
    font: inherit;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
}

.pc-partner-carousel:not(.is-scrollable) .pc-partner-arrow {
    visibility: hidden;
}

.elementor .pc-footer-logo {
    width: 165px !important;
    max-width: 165px !important;
    justify-self: start;
}

.elementor .pc-footer-logo .elementor-widget-container,
.elementor .pc-footer-logo img,
.elementor img.e-image-base.pc-footer-logo {
    display: block;
    width: 165px !important;
    max-width: 165px !important;
    height: auto !important;
}

.elementor .pc-footer-navigation,
.elementor .pc-footer-contact,
.elementor .pc-footer-social {
    width: 100% !important;
    max-width: 290px;
    justify-self: start;
}

.pc-footer a,
.pc-footer p {
    color: var(--e-global-color-black, #000);
    font-family: var(--e-global-typography-text-font-family, "Funnel Display");
    font-size: var(--e-global-typography-text-font-size, 16px);
    font-weight: var(--e-global-typography-text-font-weight, 400);
    line-height: var(--e-global-typography-text-line-height, 1.25);
    text-decoration: none;
}

@media (max-width: 1100px) {
    .elementor .pc-footer-main {
        display: grid !important;
        width: 100% !important;
        align-items: start !important;
    }

    .elementor .pc-footer-navigation,
    .elementor .pc-footer-contact,
    .elementor .pc-footer-social {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
    }

    .pc-footer-contact a {
        overflow-wrap: anywhere;
    }

    .elementor .pc-footer-contact > .e-div-block-base {
        display: flex !important;
        width: 100% !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        gap: 14px !important;
    }

    .elementor .pc-footer-contact > .e-div-block-base > .elementor-widget-icon {
        width: 24px !important;
        flex: 0 0 24px !important;
    }
}

@media (min-width: 768px) and (max-width: 1100px) {
    .elementor .pc-footer-main {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        column-gap: 48px !important;
        row-gap: 30px !important;
    }
}

@media (max-width: 767px) {
    .elementor .pc-footer {
        padding: 44px 24px 32px !important;
    }

    .elementor .pc-footer-main {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 28px !important;
    }
}

/* About page: structural composition. Type and colours inherit Elementor globals. */
.pc-about-hero {
}

.pc-about-hero-image {
    inset: 0 0 0 32%;
}

.pc-about-hero-panel {
    background: transparent url("assets/svg/about-header-shape.svg?v=2") no-repeat left center / 100% 100%;
}

.pc-breadcrumb {
    top: 120px;
    left: max(76px, calc(74.6269% - 645px));
}

.pc-breadcrumb a {
    color: inherit;
    text-decoration: none;
}

.pc-about-setup {
    background: var(--e-global-color-sectiongrey, #D1D5DB);
}

body.page-id-159 .pc-header {
    background: var(--pc-yellow);
    box-shadow: 0 0 0 100vmax var(--pc-yellow);
    clip-path: inset(0 -100vmax);
}

/* Team page. The hero reuses the About composition and its original shape mask. */
.pc-team-hero-panel {
    -webkit-mask: url("assets/svg/about-header-shape.svg?v=2") no-repeat left center / 100% 100%;
    mask: url("assets/svg/about-header-shape.svg?v=2") no-repeat left center / 100% 100%;
    background-image: none !important;
}

/* Page motion sits on rendered elements, so Elementor controls stay editable. */
body:not(.elementor-editor-active) .pc-reveal-text.pc-is-visible,
body:not(.elementor-editor-active) .pc-reveal-card.pc-is-visible {
    animation: pc-content-appear 420ms ease-out both;
}

body:not(.elementor-editor-active) .pc-reveal-media.pc-is-visible {
    animation: pc-image-appear 480ms ease-out both;
}

body:not(.elementor-editor-active) .pc-board-member__content.pc-is-visible {
    animation-delay: 70ms;
}

@keyframes pc-content-appear {
    from { opacity: .7; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes pc-image-appear {
    from { opacity: .8; }
    to { opacity: 1; }
}

.elementor a.e-button-base.pc-button,
.pc-signup button,
.pc-contact-form .elementor-button,
.pc-partner-arrow {
    transition: transform 200ms ease, box-shadow 200ms ease, background-color 200ms ease, color 200ms ease, border-color 200ms ease;
}

.elementor a.e-button-base.pc-button:hover,
.elementor a.e-button-base.pc-button:focus-visible,
.pc-signup button:hover,
.pc-signup button:focus-visible,
.pc-contact-form .elementor-button:hover,
.pc-contact-form .elementor-button:focus-visible,
.pc-partner-arrow:hover,
.pc-partner-arrow:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, .14);
}

@media (prefers-reduced-motion: reduce) {
    body .pc-reveal.pc-is-visible {
        animation: none !important;
    }

    .elementor a.e-button-base.pc-button,
    .pc-signup button,
    .pc-contact-form .elementor-button,
    .pc-partner-arrow {
        transition: none;
    }

    .elementor a.e-button-base.pc-button:hover,
    .elementor a.e-button-base.pc-button:focus-visible,
    .pc-signup button:hover,
    .pc-signup button:focus-visible,
    .pc-contact-form .elementor-button:hover,
    .pc-contact-form .elementor-button:focus-visible,
    .pc-partner-arrow:hover,
    .pc-partner-arrow:focus-visible {
        transform: none;
        box-shadow: none;
    }
}

@media (min-width: 1101px) {
    .pc-about-hero-panel,
    .elementor .e-flexbox-base.pc-about-hero-panel {
        padding-inline-start: max(76px, calc((100% - var(--pc-content)) / 2)) !important;
    }

    .pc-about-belief,
    .elementor .pc-about-belief {
        padding-inline-start: max(76px, calc((100% - var(--pc-content)) / 2)) !important;
    }

    .pc-about-belief-copy,
    .elementor .pc-about-belief-copy {
        padding-inline-start: 0 !important;
    }

    .pc-about-setup,
    .elementor .pc-about-setup {
        padding-inline: max(76px, calc((100% - var(--pc-content)) / 2)) !important;
    }
}

@media (min-width: 901px) and (max-width: 1100px) {
    .elementor .pc-board-section {
        padding-inline: 32px !important;
    }

    .elementor .pc-board-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    #wpadminbar {
        overflow: hidden;
    }

    #wpadminbar .quicklinks > ul {
        white-space: nowrap;
    }

    #wpadminbar .ab-top-secondary {
        position: absolute;
        top: 0;
        right: 0;
    }

    #wpadminbar #wp-admin-bar-customize,
    #wpadminbar #wp-admin-bar-updates,
    #wpadminbar #wp-admin-bar-comments,
    #wpadminbar #wp-admin-bar-new-content,
    #wpadminbar #wp-admin-bar-duplicate-post,
    #wpadminbar #wp-admin-bar-notes,
    #wpadminbar #wp-admin-bar-elementor_inspector,
    #wpadminbar li[id*="elementor_debug"] {
        display: none !important;
    }
}

.pc-board-member-widget,
.pc-board-member-widget .elementor-widget-container {
    width: 100%;
}

/* Atomic Elements ship opinionated base layout styles after theme styles. */
.elementor a.e-button-base.pc-button {
    display: inline-flex !important;
}

@media (max-width: 900px) {
    .pc-header {
        min-height: 74px;
    }

    .pc-nav .elementor-widget-container {
        gap: 16px;
    }

    .pc-hero {
        grid-template-columns: 1fr;
    }

    .pc-hero::after {
        top: 470px;
        right: -120px;
        width: 120%;
        height: 520px;
    }

    .pc-hero-media,
    .pc-hero-media img {
        min-height: 520px;
    }

    .pc-hero-copy {
        padding: 70px 48px 90px;
    }

    .pc-audience {
        grid-template-columns: 1fr !important;
        padding: 58px 48px 72px !important;
        gap: 28px !important;
    }

    .pc-audience-image img {
        max-height: 420px;
        transform: scale(1.08);
    }

    .pc-metrics-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    .pc-logo-row .elementor-widget-container {
        grid-template-columns: repeat(3, 1fr);
    }

    .pc-about-hero {
        grid-template-columns: 1fr;
        min-height: 720px;
    }

    .elementor .e-flexbox-base.pc-about-hero {
        grid-template-columns: 1fr !important;
    }

    .elementor .e-flexbox-base.pc-about-hero {
        display: grid !important;
    }

    .pc-about-hero-image {
        inset: auto 0 0;
        width: 100%;
        height: 52%;
    }

    .pc-about-hero-panel {
        min-height: 390px;
        padding: 74px 40px 52px;
        clip-path: polygon(0 0, 100% 0, 100% 76%, 50% 100%, 0 76%);
    }

    .elementor .e-flexbox-base.pc-about-hero-panel {
        padding: 74px 40px 52px !important;
        width: 100% !important;
    }

    .pc-breadcrumb {
        top: 32px;
        left: 40px;
    }

}

/* Elementor collapses the primary navigation at its tablet breakpoint. Keep the
   designed overlay in step with that breakpoint rather than only small phones. */
@media (max-width: 1024px) {
    .pc-nav,
    .pc-nav .elementor-widget-container {
        position: static !important;
        overflow: visible !important;
    }

    .pc-nav .elementor-menu-toggle {
        position: relative;
        z-index: 3;
        padding: 0;
        border: 0;
        background: transparent;
        color: var(--pc-ink);
    }

    .pc-header-logo {
        position: relative;
        z-index: 3;
    }

    .pc-nav .elementor-nav-menu--dropdown {
        position: fixed !important;
        z-index: 2 !important;
        inset: 0 !important;
        display: block !important;
        width: 100vw !important;
        height: 100dvh !important;
        max-height: none !important;
        margin: 0 !important;
        padding: 145px 20px 35vh !important;
        overflow: hidden !important;
        background: var(--pc-yellow) !important;
        box-shadow: none !important;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity 180ms ease, visibility 0s linear 180ms;
    }

    .pc-nav .elementor-menu-toggle.elementor-active + .elementor-nav-menu--dropdown,
    .pc-nav .elementor-nav-menu--dropdown[aria-hidden="false"] {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transition-delay: 0s;
    }

    .pc-nav .elementor-nav-menu--dropdown::after {
        position: absolute;
        z-index: 0;
        right: 0;
        bottom: 0;
        left: 0;
        height: 27vh;
        content: "";
        background: var(--pc-lilac);
        clip-path: polygon(30% 0, 100% 18%, 100% 100%, 0 100%, 0 18%);
        pointer-events: none;
    }

    .pc-nav .elementor-nav-menu--dropdown .elementor-nav-menu {
        position: relative;
        z-index: 1;
    }

    .pc-nav .elementor-nav-menu--dropdown .elementor-item {
        min-height: 0;
        padding: 9px 0 !important;
        border: 0 !important;
        background: transparent !important;
        color: var(--pc-ink) !important;
        font-family: var(--e-global-typography-primary-font-family, "Funnel Display");
        font-size: 25px !important;
        font-weight: 500 !important;
        line-height: 1.12 !important;
    }

    .pc-nav .elementor-nav-menu--dropdown .elementor-item.elementor-item-active {
        text-decoration: underline;
        text-decoration-thickness: 2px;
        text-underline-offset: 7px;
    }

    body:has(.pc-nav .elementor-menu-toggle.elementor-active) {
        overflow-y: clip;
    }

    body:has(.pc-nav .elementor-menu-toggle.elementor-active) .pc-header {
        clip-path: none !important;
        box-shadow: none !important;
    }
}

@media (min-width: 601px) and (max-width: 1024px) {
    body > .elementor-location-header {
        min-height: 82px;
    }

    .pc-header {
        left: 0;
        transform: none;
    }

    .pc-header-logo,
    .elementor img.e-image-base.pc-header-logo {
        width: 150px !important;
        height: 42px !important;
        flex-basis: 150px !important;
    }

    .pc-header-logo img {
        height: 42px;
    }

    .pc-nav .elementor-nav-menu--main .elementor-nav-menu {
        gap: clamp(16px, 2.8vw, 28px);
    }
}

/* Narrow desktop and tablet hero composition. */
@media (min-width: 601px) and (max-width: 1100px) {

    .pc-hero,
    .elementor .pc-hero {
        height: 620px;
    }

    .pc-hero::before {
        right: -10px;
        width: 46%;
        height: 626px;
    }

    .pc-hero::after {
        top: -70px;
        left: 35%;
        width: 52%;
        height: 690px;
    }

    .pc-hero-media,
    .elementor .pc-hero-media {
        top: -18px;
        left: -20%;
        width: 82%;
        height: 638px;
    }

    .pc-hero-copy,
    .elementor .pc-hero-copy {
        top: 178px;
        right: 32px;
        width: 47%;
    }

    .pc-hero-copy h1,
    .elementor .e-flexbox-base.pc-hero-copy h1,
    .elementor .pc-hero-title {
        width: 100% !important;
        font-size: clamp(30px, 4vw, 40px) !important;
        line-height: 1.12 !important;
    }

    .pc-hero-copy > p,
    .pc-hero-copy .elementor-widget-text-editor,
    .elementor .e-flexbox-base.pc-hero-copy > p,
    .elementor .pc-hero-intro {
        width: 100% !important;
    }

    .pc-about-hero,
    .elementor .e-flexbox-base.pc-about-hero {
        display: block !important;
        min-height: 540px;
    }

    .pc-about-hero-image,
    .elementor img.e-image-base.pc-about-hero-image {
        inset: 0 0 0 38%;
        width: 62%;
        height: 100%;
        min-height: 540px;
        max-height: none;
    }

    .pc-about-hero-panel,
    .elementor .e-flexbox-base.pc-about-hero-panel {
        width: 72% !important;
        min-height: 540px;
        padding: 108px 48px 52px 48px !important;
        clip-path: none;
        background-image: url("assets/svg/about-header-shape.svg?v=2");
        background-position: left center;
        background-size: 100% 100%;
    }

    .pc-breadcrumb {
        top: 150px;
        left: 48px;
    }

    .pc-about-hero-panel h1,
    .pc-about-hero-panel .pc-about-intro {
        width: min(100%, 390px);
        max-width: 390px;
    }

    .pc-about-hero-panel h1 {
        font-size: clamp(30px, 4vw, 40px);
        line-height: 1.12;
    }
}

/* Keep the responsive image frame structural. Crop and focal-point values live
   in Elementor classes so editors can override them locally. */
@media (min-width: 601px) and (max-width: 1919px) {
    .pc-about-hero-image,
    .elementor img.e-image-base.pc-about-hero-image {
        --pc-hero-width-extra: clamp(0px, calc(338px - 17.5vw), 160px);
        inset: 0 auto 0 45% !important;
        width: calc(55% + var(--pc-hero-width-extra)) !important;
    }

    .pc-team-hero-image,
    .elementor img.e-image-base.pc-team-hero-image {
        --pc-team-width-extra: clamp(0px, calc(338px - 17.5vw), 160px);
        inset: 0 auto 0 45% !important;
        width: calc(55% + var(--pc-team-width-extra)) !important;
        transform: none;
    }
}

@media (min-width: 1920px) {
    .pc-about-hero-image,
    .elementor img.e-image-base.pc-about-hero-image {
        inset: 0 auto 0 45.3% !important;
        width: 54.7% !important;
    }
}

.pc-contact-form-shell,
.elementor .pc-contact-form-shell {
    margin-top: 24px;
}

@media (max-width: 600px) {
    body > .elementor-location-header {
        min-height: 79px;
    }

    .pc-header {
        left: 0;
        transform: none;
        background: var(--pc-yellow);
    }

    .pc-header-logo {
        width: 152px;
        flex-basis: 152px;
    }

    .pc-header-logo img {
        height: 42px;
    }

    .pc-hero,
    .elementor .pc-hero {
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        padding: 468px 0 34px !important;
    }

    .pc-hero::before {
        display: none;
    }

    .pc-hero::after {
        top: 400.5px;
        bottom: 0 !important;
        left: 0;
        width: 100.13%;
        height: auto;
        background-image: url("assets/svg/hero-yellow-mobile.svg");
    }

    .pc-hero-media,
    .elementor .pc-hero-media {
        top: 0 !important;
        right: auto !important;
        left: -34.1% !important;
        width: 199.74% !important;
        max-width: none !important;
        height: 522px !important;
        min-height: 0 !important;
    }

    .pc-hero-media > img,
    .pc-hero-media .elementor-widget-image,
    .pc-hero-media .elementor-widget-container,
    .pc-hero-media img {
        width: 100% !important;
        max-width: none !important;
        height: 100% !important;
        min-height: 0 !important;
    }

    :where(.pc-hero-media) img {
        object-position: center bottom;
    }

    .pc-hero-copy,
    .elementor .pc-hero-copy {
        position: relative !important;
        top: auto !important;
        right: auto !important;
        left: 21px !important;
        align-items: flex-start !important;
        width: 335px !important;
        max-width: calc(100% - 42px) !important;
        padding: 0 !important;
        text-align: left !important;
    }

    .pc-hero-copy h1 {
        width: 315px;
        font-size: 28px;
        line-height: 1.08;
    }

    .pc-hero-copy > p,
    .pc-hero-copy .elementor-widget-text-editor {
        width: 335px;
        margin-top: 13px;
    }

    .elementor .e-flexbox-base.pc-hero-copy h1 {
        width: 315px !important;
        font-size: 28px !important;
        line-height: 1.08 !important;
    }

    .elementor .pc-hero-title {
        width: 315px !important;
        max-width: 100% !important;
        font-size: 28px !important;
        line-height: 1.08 !important;
    }

    .elementor .e-flexbox-base.pc-hero-copy > p {
        width: 335px !important;
    }

    .elementor .pc-hero-intro {
        width: 335px !important;
        max-width: 100% !important;
    }

    .pc-why {
        padding: 62px 24px 68px !important;
    }

    .pc-newsletter {
        align-items: center !important;
        min-height: 280px;
        padding: 48px 24px 54px;
        text-align: center !important;
    }

    .elementor .e-flexbox-base.pc-newsletter {
        min-height: 280px;
        padding: 48px 24px 54px !important;
        align-items: center !important;
        text-align: center !important;
    }

    .pc-newsletter::after {
        z-index: 0;
        width: 24%;
        height: 100%;
    }

    .elementor .pc-newsletter h2 {
        position: relative;
        z-index: 1;
        width: min(100%, 320px) !important;
        margin-inline: auto !important;
        font-size: 22px !important;
        line-height: 1.15 !important;
    }

    .elementor .pc-newsletter-copy {
        position: relative;
        z-index: 1;
        width: min(100%, 300px) !important;
        margin-inline: auto !important;
        font-size: 14px !important;
        line-height: 1.25 !important;
    }

    .pc-signup,
    .pc-signup-widget {
        position: relative;
        z-index: 1;
        width: min(100%, 340px) !important;
        margin: 24px auto 0 !important;
    }

    .pc-signup button {
        min-width: 118px;
        padding-inline: 18px;
        font-size: 14px;
    }

    .pc-signup input {
        font-size: 14px;
    }

    .pc-signup [role="group"] {
        display: grid;
        grid-template-columns: 118px minmax(0, 1fr);
        padding: 4px;
        gap: 4px;
        background: transparent;
    }

    .pc-signup input {
        min-height: 44px;
        padding: 0 18px;
        border: 0 !important;
        border-radius: 24px;
        box-shadow: none !important;
        background: var(--pc-off-white);
    }

    .pc-audience {
        padding: 42px 24px 58px !important;
    }

    .pc-audience-card {
        min-height: 0;
        padding: 38px 28px !important;
    }

    .pc-audience-image img {
        transform: scale(1.04);
    }

    .pc-metrics-grid {
        grid-template-columns: 1fr !important;
    }

    .pc-logo-row,
    .pc-logo-row .elementor-widget-container {
        width: 100%;
    }

    .pc-partner-carousel {
        grid-template-columns: 32px minmax(0, 1fr) 32px;
        gap: 8px;
    }

    .pc-partner-track {
        grid-auto-columns: 72%;
        gap: 16px;
    }

    .pc-about-hero,
    .elementor .pc-about-hero {
        display: flex !important;
        min-height: 0 !important;
        height: auto !important;
        flex-direction: column;
    }

    .pc-about-hero-image {
        position: relative;
        inset: auto;
        width: 100%;
        height: 400px;
    }

    .elementor img.e-image-base.pc-about-hero-image {
        position: relative !important;
        inset: auto !important;
        width: 100% !important;
        height: 400px !important;
        min-height: 400px !important;
        max-height: 400px !important;
    }

    .pc-about-hero-panel,
    .elementor .pc-about-hero-panel {
        position: relative;
        z-index: 2;
        top: auto;
        left: auto;
        justify-content: flex-start;
        width: 100%;
        min-height: 0;
        margin-top: -43px;
        padding: 88px 24px 54px;
        clip-path: polygon(0 43px, 50% 0, 100% 43px, 100% 100%, 0 100%);
    }

    .elementor .e-flexbox-base.pc-about-hero-panel {
        position: relative !important;
        top: auto !important;
        left: auto !important;
        width: 100% !important;
        min-height: 0 !important;
        margin-top: -43px !important;
        padding: 88px 24px 54px !important;
    }

    .pc-breadcrumb {
        display: none !important;
    }

    .pc-about-hero-panel h1 {
        font-size: 30px;
        line-height: 1.08;
    }

    .pc-team-hero-panel,
    .elementor .pc-team-hero-panel {
        -webkit-mask: none;
        mask: none;
        clip-path: polygon(0 43px, 50% 0, 100% 43px, 100% 100%, 0 100%);
    }

}
