/* =========================================================
   STUDIO WEBER GUIDED INTELLIGENCE
   ========================================================= */

body.page-id-56 {
    overflow-x: hidden;
}

body.page-id-56 .wp-site-blocks {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

body.page-id-56 .wp-site-blocks > main,
body.page-id-56 main,
body.page-id-56 .entry-content,
body.page-id-56 .wp-block-post-content {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

body.page-id-56 .entry-title,
body.page-id-56 .wp-block-post-title,
body.page-id-56 .page-title,
body.page-id-56 h1.entry-title {
    display: none !important;
}


/* =========================================================
   MAIN LAYOUT
   ========================================================= */

.swi-guided-layout {
    --swi-guided-header-space: 205px;

    display: flex;

    width: calc(100vw - 48px);
    max-width: none !important;

    margin-left: calc(50% - 50vw + 24px);
    margin-right: 24px;

    gap: 32px;

    padding:
        8px
        0
        28px;

    box-sizing: border-box;

    height:
        calc(
            100dvh -
            var(--swi-guided-header-space)
        );

    min-height: 0;
}


/* =========================================================
   LEFT COLUMN
   ========================================================= */

.swi-guided-navigation {
    flex: 0 0 36%;

    width: 36%;
    min-width: 0;

    height: 100%;

    padding-bottom: 22px;

    box-sizing: border-box;
}

.swi-guided-cards {
    display: flex;
    flex-direction: column;

    width: 100%;

    height:
        calc(
            100% -
            22px
        );

    min-height: 0;

    gap: 10px;
}


/* =========================================================
   IMAGE CARDS
   ========================================================= */

.swi-guided-card {
    position: relative;

    flex: 1 1 0;

    display: block;

    width: 100%;
    min-width: 0;
    min-height: 0;

    margin: 0;
    padding: 0;

    border: 0;

    background: transparent;

    overflow: hidden;

    cursor: pointer;

    text-align: left;

    appearance: none;
    -webkit-appearance: none;
}

.swi-guided-card-image {
    position: absolute;

    inset: 0;

    width: 100%;
    height: 100%;

    overflow: hidden;
}

.swi-guided-card-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    filter:
        grayscale(25%)
        brightness(68%);

    transform: scale(1.002);

    transition:
        transform 450ms ease,
        filter 450ms ease;
}

.swi-guided-card::after {
    content: "";

    position: absolute;

    inset: 0;

    z-index: 1;

    background:
        linear-gradient(
            90deg,
            rgba(0, 0, 0, 0.36) 0%,
            rgba(0, 0, 0, 0.14) 60%,
            rgba(0, 0, 0, 0.03) 100%
        );

    pointer-events: none;
}

.swi-guided-card-overlay {
    position: relative;

    z-index: 2;

    display: flex;
    align-items: flex-end;

    width: 100%;
    height: 100%;

    padding:
        18px
        22px;

    box-sizing: border-box;
}

.swi-guided-card-overlay h2 {
    margin: 0;

    color: #fff;

    font-size:
        clamp(
            28px,
            3vw,
            50px
        );

    line-height: 0.98;

    font-weight: 300;

    letter-spacing: -0.05em;

    text-transform: lowercase;
}

.swi-guided-card:hover .swi-guided-card-image img,
.swi-guided-card:focus-visible .swi-guided-card-image img {
    transform: scale(1.02);

    filter:
        grayscale(10%)
        brightness(77%);
}


/* =========================================================
   RIGHT INTELLIGENCE COLUMN
   ========================================================= */

.swi-guided-intelligence {
    flex: 1 1 0;

    display: flex !important;
    flex-direction: column !important;

    width: 0 !important;
    max-width: 100% !important;
    min-width: 0 !important;

    height: 100%;
    min-height: 0;

    padding-left: 32px;
    padding-bottom: 22px;

    border-left:
        1px solid
        rgba(0, 0, 0, 0.10);

    box-sizing: border-box;

    overflow: hidden;
}


/* =========================================================
   SCROLLABLE CONVERSATION CANVAS
   ========================================================= */

.swi-guided-conversation {
    flex: 1 1 auto;

    width: 100%;
    min-width: 0;
    min-height: 0;

    padding:
        8px
        8px
        24px
        0;

    overflow-y: auto;
    overflow-x: hidden;

    box-sizing: border-box;

    scrollbar-width: thin;
    scrollbar-color:
        rgba(0, 0, 0, 0.18)
        transparent;
}

.swi-guided-conversation::-webkit-scrollbar {
    width: 6px;
}

.swi-guided-conversation::-webkit-scrollbar-track {
    background: transparent;
}

.swi-guided-conversation::-webkit-scrollbar-thumb {
    background:
        rgba(0, 0, 0, 0.16);

    border-radius: 10px;
}


/* =========================================================
   RESPONSE
   ========================================================= */

.swi-guided-response-area {
    width: 100%;

    min-width: 0;

    margin: 0;

    padding:
        0
        0
        20px;

    box-sizing: border-box;

    font-size: 18px;
    line-height: 1.5;

    font-weight: 300;

    white-space: pre-wrap;
}

.swi-guided-response-area:empty::before {
    content: "weber\A intelligence";

    display: block;

    white-space: pre;

    color:
        rgba(0, 0, 0, 0.20);

    font-size:
        clamp(
            52px,
            5vw,
            82px
        );

    line-height: 0.88;

    font-weight: 300;

    letter-spacing: -0.055em;

    text-transform: lowercase;
}


/* =========================================================
   VISUAL RESULTS
   ========================================================= */

#swi-guided-visual-results {
    width: 100%;

    margin:
        0
        0
        24px;

    box-sizing: border-box;
}

#swi-guided-visual-results
.swi-visual-results-grid {
    display: grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    gap: 10px;
}

#swi-guided-visual-results
.swi-visual-result {
    margin: 0;
}

#swi-guided-visual-results
.swi-visual-result img {
    display: block;

    width: 100%;
    height: auto;
}


/* =========================================================
   FOLLOW-UP QUESTIONS
   ========================================================= */

#swi-guided-follow-up-results {
    width: 100%;

    margin:
        8px
        0
        28px;
}

.swi-follow-up-label {
    margin:
        0
        0
        10px;

    font-size: 14px;

    font-weight: 300;

    opacity: 0.48;

    text-transform: lowercase;
}

.swi-follow-up-list {
    display: flex;

    flex-direction: column;

    align-items: flex-start;

    gap: 6px;
}

.swi-follow-up-question {
    display: inline-block;

    padding: 0;

    border: 0;

    background: transparent;

    color: #111;

    font: inherit;

    font-size: 16px;

    line-height: 1.4;

    font-weight: 300;

    text-align: left;

    cursor: pointer;
}

.swi-follow-up-question::after {
    content: " →";

    opacity: 0.38;
}

.swi-follow-up-question:hover {
    opacity: 0.55;
}


/* =========================================================
   CONVERSATION INVITATION
   ========================================================= */

#swi-guided-conversation-invite {
    width: 100%;

    margin:
        22px
        0
        12px;

    padding:
        22px
        0
        0;

    border-top:
        1px solid
        rgba(0, 0, 0, 0.12);
}

.swi-conversation-invite-text {
    max-width: 560px;

    margin: 0;

    font-size: 17px;

    line-height: 1.5;

    font-weight: 300;
}

.swi-conversation-invite-link {
    color: inherit;

    text-decoration: underline;

    text-underline-offset: 3px;
}


/* =========================================================
   ANCHORED COMPOSER
   ========================================================= */

.swi-guided-composer {
    flex: 0 0 auto;

    width: 100%;
    min-width: 0;

    margin: 0;

    padding:
        12px
        0
        0;

    background: #fff;

    box-sizing: border-box;
}

.swi-guided-prompt {
    width: 100%;

    margin:
        0
        0
        8px;

    font-size: 18px;

    line-height: 1.25;

    font-weight: 300;

    letter-spacing: -0.015em;
}


/* =========================================================
   QUERY FORM
   ========================================================= */

form#swi-guided-chat-form {
    display: flex !important;

    width: 100% !important;

    min-width: 0 !important;

    gap: 10px;

    margin: 0 !important;
    padding: 0 !important;

    box-sizing: border-box;

    overflow: hidden;
}

textarea#swi-guided-question {
    flex: 1 1 0 !important;

    width: 0 !important;

    min-width: 0 !important;

    height: 78px !important;
    min-height: 78px !important;

    padding:
        14px
        18px !important;

    box-sizing: border-box !important;

    border:
        1px solid
        rgba(0, 0, 0, 0.26);

    border-radius: 0;

    background: #fff;

    resize: none;

    outline: none;

    font: inherit;

    font-size: 18px;

    line-height: 1.4;

    font-weight: 300;
}

textarea#swi-guided-question:focus {
    border-color:
        rgba(0, 0, 0, 0.75);
}

button#swi-guided-submit {
    flex:
        0
        0
        86px !important;

    width: 86px !important;
    min-width: 86px !important;

    height: 78px !important;
    min-height: 78px !important;

    margin: 0 !important;
    padding: 0 !important;

    box-sizing: border-box;

    border:
        1px solid
        rgba(0, 0, 0, 0.26);

    border-radius: 0;

    background: #f4f4f4;

    font: inherit;

    font-size: 15px;

    font-weight: 300;

    cursor: pointer;
}

button#swi-guided-submit:hover {
    background: #ececec;
}


/* =========================================================
   TABLET
   Keep existing stacked behavior for now.
   We'll refine tablet separately after phone.
   ========================================================= */

@media (max-width: 1000px) {

    .swi-guided-layout {
        display: block;

        width: calc(100vw - 24px);

        height: auto;

        margin-left:
            calc(
                50% -
                50vw +
                12px
            );

        padding:
            8px
            12px
            30px;
    }

    .swi-guided-navigation {
        width: 100%;

        height: auto;

        padding-bottom: 24px;
    }

    .swi-guided-cards {
        height: auto;
    }

    .swi-guided-card {
        min-height: 210px;

        margin-bottom: 10px;
    }

    .swi-guided-intelligence {
        width: 100% !important;

        height: 70vh;

        min-height: 540px;

        padding-left: 0;
        padding-top: 28px;

        border-left: 0;

        border-top:
            1px solid
            rgba(0, 0, 0, 0.10);
    }
}


/* =========================================================
   PHONE
   Purpose-built mobile experience.
   Desktop rules above remain untouched.
   ========================================================= */

@media (max-width: 640px) {

    body.page-id-56 {
        overflow-x: hidden;
    }

    .swi-guided-layout {
        display: flex;
        flex-direction: column;

        width: 100%;
        height: auto;
        min-height: 0;

        margin: 0;

        padding:
            8px
            12px
            20px;

        gap: 0;

        box-sizing: border-box;
    }


    /* =====================================================
       MOBILE GUIDED CARDS
       ===================================================== */

    .swi-guided-navigation {
        flex: 0 0 auto;

        width: 100%;
        height: auto;

        margin: 0;

        padding:
            0
            0
            18px;

        box-sizing: border-box;
    }

    .swi-guided-cards {
        display: grid;

        grid-template-columns: 1fr;

        width: 100%;
        height: auto;

        gap: 8px;
    }

    .swi-guided-card {
        flex: none;

        width: 100%;

        height: 112px;
        min-height: 112px;

        margin: 0;
    }

    .swi-guided-card-image img {
        object-position: center;

        filter:
            grayscale(25%)
            brightness(64%);
    }

    .swi-guided-card-overlay {
        align-items: center;

        padding:
            14px
            18px;
    }

    .swi-guided-card-overlay h2 {
        max-width: 100%;

        font-size: 28px;

        line-height: 1;

        letter-spacing: -0.045em;
    }


    /* =====================================================
       MOBILE INTELLIGENCE
       ===================================================== */

    .swi-guided-intelligence {
        flex: 0 0 auto;

        display: flex !important;
        flex-direction: column !important;

        width: 100% !important;
        height: auto;
        min-height: 0;

        margin: 0;

        padding:
            18px
            0
            0;

        border-left: 0;

        border-top:
            1px solid
            rgba(0, 0, 0, 0.10);

        overflow: visible;
    }


    /* =====================================================
       MOBILE CONVERSATION CANVAS
       ===================================================== */

    .swi-guided-conversation {
        flex: 0 0 auto;

        width: 100%;

        min-height: 160px;
        max-height: none;

        padding:
            4px
            2px
            20px
            0;

        overflow-y: visible;
        overflow-x: hidden;
    }


    /* =====================================================
       MOBILE EMPTY STATE
       ===================================================== */

    .swi-guided-response-area:empty::before {
        content: "weber intelligence";

        white-space: normal;

        font-size: 42px;

        line-height: 0.95;

        letter-spacing: -0.05em;
    }


    /* =====================================================
       MOBILE ANSWER TYPOGRAPHY
       ===================================================== */

    .swi-guided-response-area {
        font-size: 17px;

        line-height: 1.5;

        padding-bottom: 18px;
    }


    /* =====================================================
       MOBILE RETURNED IMAGES
       ===================================================== */

    #swi-guided-visual-results
    .swi-visual-results-grid {
        grid-template-columns: 1fr;

        gap: 8px;
    }

    #swi-guided-visual-results {
        margin-bottom: 20px;
    }


    /* =====================================================
       MOBILE FOLLOW-UP QUESTIONS
       ===================================================== */

    #swi-guided-follow-up-results {
        margin:
            6px
            0
            24px;
    }

    .swi-follow-up-label {
        margin-bottom: 12px;

        font-size: 13px;
    }

    .swi-follow-up-list {
        gap: 10px;
    }

    .swi-follow-up-question {
        width: 100%;

        padding:
            2px
            0;

        font-size: 16px;

        line-height: 1.35;
    }


    /* =====================================================
       MOBILE CONTACT INVITATION
       ===================================================== */

    #swi-guided-conversation-invite {
        margin-top: 20px;

        padding-top: 18px;
    }

    .swi-conversation-invite-text {
        font-size: 16px;

        line-height: 1.5;
    }


    /* =====================================================
       MOBILE COMPOSER
       ===================================================== */

    .swi-guided-composer {
        flex: 0 0 auto;

        position: relative;

        z-index: 10;

        width: 100%;

        margin: 0;

        padding:
            10px
            0
            max(
                12px,
                env(safe-area-inset-bottom)
            );

        background: #fff;

        border-top:
            1px solid
            rgba(0, 0, 0, 0.08);

        box-sizing: border-box;
    }

    .swi-guided-prompt {
        margin-bottom: 8px;

        font-size: 15px;

        line-height: 1.3;
    }


    /* =====================================================
       MOBILE QUERY FORM
       ===================================================== */

    form#swi-guided-chat-form {
        display: flex !important;

        align-items: stretch;

        width: 100% !important;

        gap: 8px;

        overflow: visible;
    }

    textarea#swi-guided-question {
        flex: 1 1 0 !important;

        width: 0 !important;
        min-width: 0 !important;

        height: 70px !important;
        min-height: 70px !important;

        padding:
            12px
            14px !important;

        font-size: 16px;

        line-height: 1.35;
    }

    button#swi-guided-submit {
        flex:
            0
            0
            64px !important;

        width: 64px !important;
        min-width: 64px !important;

        height: 70px !important;
        min-height: 70px !important;

        font-size: 14px;
    }
}

/* =========================================================
   HOMEPAGE BROWSE INDEX
   WHO / WHAT / WHY + STORIES
   ========================================================= */

/*
 * The left side is now a browseable editorial index.
 * The right Weber Intelligence column remains unchanged.
 */

.swi-home-browse {
    display: flex;
    flex-direction: column;

    min-height: 0;

    padding-bottom: 22px;
}

.swi-home-browse-scroll {
    flex: 1 1 auto;

    min-height: 0;

    padding-right: 8px;

    overflow-y: auto;
    overflow-x: hidden;

    scrollbar-width: thin;

    scrollbar-color:
        rgba(33, 29, 27, 0.16)
        transparent;
}

.swi-home-browse-scroll::-webkit-scrollbar {
    width: 5px;
}

.swi-home-browse-scroll::-webkit-scrollbar-track {
    background: transparent;
}

.swi-home-browse-scroll::-webkit-scrollbar-thumb {
    background:
        rgba(33, 29, 27, 0.14);

    border-radius: 99px;
}


/* ---------------------------------------------------------
   WHO / WHAT / WHY
   Quiet, typographic, no photography.
   --------------------------------------------------------- */

.swi-home-orientation {
    display: grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );

    gap: 8px;

    margin-bottom: 24px;
}

.swi-home-orientation-card {
    position: relative;

    display: flex;

    flex-direction: column;

    justify-content: space-between;

    aspect-ratio: 1 / 0.92;

    min-height: 0;

    padding:
        16px
        14px
        14px;

    border:
        1px solid
        var(--swi-rule);

    background: #fff;

    color:
        var(--swi-ink);

    overflow: hidden;
}

.swi-home-orientation-card::after {
    content: none;
}

.swi-home-orientation-card:hover,
.swi-home-orientation-card:focus-visible {
    border-color:
        rgba(241, 90, 36, 0.72);

    background:
        rgba(241, 90, 36, 0.035);
}

.swi-home-orientation-card:focus-visible,
.swi-home-story-card:focus-visible,
.swi-home-all-stories:focus-visible {
    outline:
        1px solid
        var(--swi-orange);

    outline-offset: 3px;
}

.swi-home-orientation-eyebrow {
    display: block;

    color:
        var(--swi-orange);

    font-size:
        clamp(
            28px,
            2.8vw,
            42px
        );

    line-height: 0.95;

    font-weight: 300;

    letter-spacing:
        -0.05em;

    text-transform:
        lowercase;
}

.swi-home-orientation-title {
    display: block;

    max-width: 95px;

    color:
        var(--swi-warm-gray);

    font-size:
        12px;

    line-height: 1.15;

    font-weight: 400;

    letter-spacing:
        0.015em;

    text-transform:
        lowercase;
}

.swi-home-card-arrow {
    position: absolute;

    right: 13px;
    bottom: 11px;

    color:
        var(--swi-orange);

    font-size: 17px;

    font-weight: 300;

    line-height: 1;

    transition:
        transform
        180ms
        ease;
}

.swi-home-orientation-card:hover
.swi-home-card-arrow,
.swi-home-story-card:hover
.swi-home-card-arrow,
.swi-home-all-stories:hover span {
    transform:
        translateX(
            3px
        );
}


/* ---------------------------------------------------------
   STORIES INDEX
   --------------------------------------------------------- */

.swi-home-stories-heading {
    display: flex;

    justify-content: space-between;

    align-items: baseline;

    gap: 16px;

    margin-bottom: 9px;

    padding-bottom: 9px;

    border-bottom:
        1px solid
        var(--swi-rule);
}

.swi-home-stories-heading span:first-child {
    color:
        var(--swi-ink);

    font-size: 18px;

    line-height: 1;

    font-weight: 300;

    letter-spacing:
        -0.025em;

    text-transform:
        lowercase;
}

.swi-home-stories-heading span:last-child {
    color:
        var(--swi-warm-gray);

    font-size: 11px;

    line-height: 1;

    letter-spacing:
        0.035em;

    text-transform:
        lowercase;
}

.swi-home-story-grid {
    display: grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    gap: 8px;
}

.swi-home-story-card {
    position: relative;

    aspect-ratio: 1.42 / 1;

    min-height: 0;

    border: 0;

    background:
        #ece9e6;

    overflow: hidden;
}

.swi-home-story-card::after {
    content: none;
}

.swi-home-story-card
.swi-guided-card-image {
    position: absolute;

    inset: 0;
}

.swi-home-story-card
.swi-guided-card-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    filter:
        grayscale(25%)
        brightness(118%)
        contrast(74%)
        saturate(58%);

    opacity: 0.62;

    transform:
        scale(1.002);

    transition:
        transform 360ms ease,
        filter 360ms ease,
        opacity 360ms ease;
}

.swi-home-story-shade {
    position: absolute;

    inset: 0;

    z-index: 1;

    background:
        linear-gradient(
            180deg,
            rgba(255, 255, 255, 0.16) 0%,
            rgba(36, 31, 29, 0.05) 48%,
            rgba(36, 31, 29, 0.44) 100%
        );

    pointer-events: none;
}

.swi-home-story-copy {
    position: relative;

    z-index: 2;

    display: grid;

    grid-template-columns:
        27px
        minmax(0, 1fr);

    align-content: end;

    gap: 7px;

    width: 100%;
    height: 100%;

    padding:
        12px
        14px;

    box-sizing:
        border-box;
}

.swi-home-story-number {
    padding-bottom: 2px;

    color:
        rgba(
            255,
            255,
            255,
            0.72
        );

    font-size: 9px;

    line-height: 1;

    letter-spacing:
        0.08em;
}

.swi-home-story-title {
    /*
     * Story headlines must wrap inside the card instead of being clipped.
     * Leave a little room for the arrow in the lower-right corner.
     */
    display: block;

    width: calc(100% - 18px);
    max-width: none;
    min-width: 0;

    padding-right: 6px;

    color: #fff;

    font-size:
        clamp(
            16px,
            1.65vw,
            24px
        );

    line-height: 0.98;

    font-weight: 300;

    letter-spacing:
        -0.035em;

    text-transform:
        lowercase;

    white-space: normal;
    overflow: visible;

    overflow-wrap: anywhere;
    word-break: normal;

    hyphens: auto;
}

.swi-home-story-card
.swi-home-card-arrow {
    right: 12px;
    bottom: 11px;

    color: #fff;

    opacity: 0.86;
}

.swi-home-story-card:hover
.swi-guided-card-image img,
.swi-home-story-card:focus-visible
.swi-guided-card-image img {
    filter:
        grayscale(4%)
        brightness(100%)
        contrast(100%)
        saturate(100%);

    opacity: 1;

    transform:
        scale(1.025);
}


/* ---------------------------------------------------------
   ALL STORIES
   --------------------------------------------------------- */

.swi-home-all-stories {
    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 14px;

    margin-top: 10px;

    padding:
        15px
        1px
        4px;

    border-top:
        1px solid
        var(--swi-rule);

    color:
        var(--swi-ink);

    font-size: 15px;

    line-height: 1.2;

    font-weight: 300;

    text-decoration: none;

    text-transform:
        lowercase;
}

.swi-home-all-stories span {
    color:
        var(--swi-orange);

    transition:
        transform
        180ms
        ease;
}


/* ---------------------------------------------------------
   TABLET
   --------------------------------------------------------- */

@media (max-width: 1000px) {

    .swi-home-browse {
        width: 100%;
        height: auto;

        padding-bottom: 28px;
    }

    .swi-home-browse-scroll {
        overflow: visible;

        padding-right: 0;
    }

    .swi-home-orientation-card {
        aspect-ratio: auto;

        min-height: 150px;
    }

    .swi-home-story-grid {
        grid-template-columns:
            repeat(
                3,
                minmax(0, 1fr)
            );
    }
}


/* ---------------------------------------------------------
   PHONE
   --------------------------------------------------------- */

@media (max-width: 640px) {

    .swi-home-orientation {
        grid-template-columns:
            repeat(
                3,
                minmax(0, 1fr)
            );

        gap: 6px;

        margin-bottom: 20px;
    }

    .swi-home-orientation-card {
        min-height: 118px;

        padding:
            13px
            11px
            11px;
    }

    .swi-home-orientation-eyebrow {
        font-size:
            clamp(
                25px,
                8vw,
                34px
            );
    }

    .swi-home-orientation-title {
        display: none;
    }

    .swi-home-card-arrow {
        right: 10px;
        bottom: 9px;

        font-size: 15px;
    }

    .swi-home-story-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );

        gap: 6px;
    }

    .swi-home-story-card {
        aspect-ratio: 1.24 / 1;
    }

    .swi-home-story-copy {
        grid-template-columns:
            22px
            1fr;

        gap: 5px;

        padding:
            10px
            11px;
    }

    .swi-home-story-title {
        font-size: 18px;
    }
}

/* =========================================================
   HOMEPAGE BROWSE — UNIFIED CARD PASS 02
   ========================================================= */

/* WHO / WHAT / WHY now belong to the same visual family as Stories. */

.swi-home-orientation {
    gap: 8px;
    margin-bottom: 24px;
}

.swi-home-orientation-card {
    position: relative;
    display: block;

    aspect-ratio: 1.42 / 1;
    min-height: 0;

    padding: 0;

    border: 0;

    background: #f4f2ef;

    overflow: hidden;
}

.swi-home-orientation-card
.swi-guided-card-image {
    position: absolute;
    inset: 0;
}

.swi-home-orientation-card
.swi-guided-card-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    filter:
        grayscale(18%)
        brightness(121%)
        contrast(72%)
        saturate(62%);

    opacity: 0.66;

    transform: scale(1.002);

    transition:
        transform 360ms ease,
        filter 360ms ease,
        opacity 360ms ease;
}

.swi-home-orientation-card
.swi-home-story-shade {
    display: block;
}

.swi-home-orientation-copy {
    position: relative;
    z-index: 2;

    display: flex;
    align-items: flex-end;

    width: 100%;
    height: 100%;

    padding:
        12px
        34px
        12px
        13px;

    box-sizing: border-box;
}

.swi-home-orientation-title {
    display: block;

    max-width: none;

    color: #fff;

    font-size:
        clamp(
            15px,
            1.45vw,
            20px
        );

    line-height: 1;

    font-weight: 300;

    letter-spacing:
        -0.03em;

    text-transform: lowercase;
}

.swi-home-orientation-card
.swi-home-card-arrow {
    z-index: 3;

    right: 12px;
    bottom: 11px;

    color: #fff;

    opacity: 0.86;
}

.swi-home-orientation-card:hover,
.swi-home-orientation-card:focus-visible {
    border-color: transparent;
    background: #f4f2ef;
}

.swi-home-orientation-card:hover
.swi-guided-card-image img,
.swi-home-orientation-card:focus-visible
.swi-guided-card-image img {
    filter:
        grayscale(0%)
        brightness(100%)
        contrast(100%)
        saturate(100%);

    opacity: 1;

    transform: scale(1.025);
}

/* Hide the stray/legacy mark behind the right-side orange invitation. */
.swi-guided-intelligence > .swi-guided-brand,
.swi-guided-intelligence > .swi-guided-logo,
.swi-guided-intelligence > .swi-intelligence-logo,
.swi-guided-intelligence::before {
    display: none !important;
    content: none !important;
}

/* Keep first-row cards compact rather than hero-sized. */
@media (min-width: 1001px) {
    .swi-home-orientation-card {
        min-height: 0;
    }
}

@media (max-width: 640px) {
    .swi-home-orientation-card {
        min-height: 0;
        padding: 0;
    }

    .swi-home-orientation-title {
        display: block;
        font-size: 15px;
    }
}

/* =========================================================
   HOMEPAGE BROWSE — 12 CARD GRID 03
   ========================================================= */

/* Section label above the first three cards. */
.swi-home-start-heading {
    margin:
        0
        0
        9px;

    padding-bottom:
        9px;

    border-bottom:
        1px solid
        var(--swi-rule);

    color:
        var(--swi-ink);

    font-size: 18px;

    line-height: 1;

    font-weight: 300;

    letter-spacing:
        -0.025em;

    text-transform:
        lowercase;
}


/* ---------------------------------------------------------
   START HERE + STORIES = ONE CARD SYSTEM
   --------------------------------------------------------- */

.swi-home-orientation,
.swi-home-story-grid {
    display: grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );

    gap: 7px;
}

.swi-home-orientation {
    margin-bottom: 24px;
}

.swi-home-story-grid {
    margin: 0;
}


/*
 * Every card is the same size.
 * This makes WHO / WHAT / WHY feel like the opening row
 * of the same visual index rather than a separate navigation.
 */
.swi-home-orientation-card,
.swi-home-story-card {
    aspect-ratio:
        1.42 / 1;

    min-height: 0;

    width: 100%;
}


/* Keep the first row's title scale aligned with Stories. */
.swi-home-orientation-title,
.swi-home-story-title {
    font-size:
        clamp(
            14px,
            1.28vw,
            18px
        );

    line-height: 1;

    font-weight: 300;

    letter-spacing:
        -0.03em;
}


/* ---------------------------------------------------------
   STORIES HEADING
   --------------------------------------------------------- */

.swi-home-stories-heading {
    margin-top: 0;
    margin-bottom: 9px;
}


/* ---------------------------------------------------------
   DESKTOP: maintain independent left-side scroll
   --------------------------------------------------------- */

@media (min-width: 1001px) {

    .swi-home-browse {
        min-height: 0;
    }

    .swi-home-browse-scroll {
        min-height: 0;

        overflow-y: auto;
        overflow-x: hidden;
    }
}


/* ---------------------------------------------------------
   TABLET
   Keep the same 3-across rhythm as long as it remains usable.
   --------------------------------------------------------- */

@media (max-width: 1000px) {

    .swi-home-orientation,
    .swi-home-story-grid {
        grid-template-columns:
            repeat(
                3,
                minmax(0, 1fr)
            );
    }
}


/* ---------------------------------------------------------
   PHONE
   Two across is more usable on narrow screens.
   --------------------------------------------------------- */

@media (max-width: 640px) {

    .swi-home-start-heading {
        font-size: 16px;
    }

    .swi-home-orientation,
    .swi-home-story-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );

        gap: 6px;
    }

    .swi-home-orientation {
        margin-bottom: 20px;
    }

    .swi-home-orientation-title,
    .swi-home-story-title {
        font-size: 15px;
    }
}

/* =========================================================
   HOMEPAGE DEMO — 12 UNIQUE VISUAL LIBRARY IMAGES 04
   ========================================================= */

.swi-home-orientation-card
.swi-guided-card-image,
.swi-home-story-card
.swi-guided-card-image {
    background: #f7f6f4;
}

.swi-home-orientation-card
.swi-guided-card-image img,
.swi-home-story-card
.swi-guided-card-image img {
    filter:
        saturate(84%)
        contrast(94%)
        brightness(106%);

    opacity: 0.90;
}

.swi-home-orientation-card:hover
.swi-guided-card-image img,
.swi-home-orientation-card:focus-visible
.swi-guided-card-image img,
.swi-home-story-card:hover
.swi-guided-card-image img,
.swi-home-story-card:focus-visible
.swi-guided-card-image img {
    filter: none;
    opacity: 1;
}

/* =========================================================
   HOMEPAGE DEMO — FINAL LAYOUT CLEANUP 05
   Match the approved mockup:
   clean browse grid + clean intelligence panel
   ========================================================= */

/*
 * The intro film is now the identity moment.
 * Remove the older posture/logo identity block completely
 * so no fragment can peek behind the orange statement.
 */
.swi-guided-identity,
#swi-guided-identity {
    display: none !important;
}


/*
 * Let the intelligence side accommodate the taller post-film
 * experience without clipping the composer.
 */
.swi-guided-intelligence {
    position: relative;

    overflow-y: auto !important;
    overflow-x: hidden !important;

    padding-bottom: 0 !important;
}


/*
 * The old conversation canvas no longer needs to consume the
 * full flex height before the intro + composer are laid out.
 */
.swi-guided-conversation {
    flex:
        0
        0
        auto !important;

    min-height: 0 !important;

    padding-bottom: 0 !important;

    overflow: visible !important;
}


/*
 * Keep Ask Anything visible at the bottom of the right panel,
 * exactly like the approved layout.
 */
.swi-guided-composer {
    position: sticky;

    right: 0;
    bottom: 0;
    left: 0;

    z-index: 60;

    width: 100% !important;

    margin: 0 !important;

    padding:
        12px
        0
        16px !important;

    background:
        rgba(
            255,
            255,
            255,
            0.98
        );

    box-sizing:
        border-box;
}


/*
 * Clean compact form proportions.
 */
form#swi-guided-chat-form {
    display: grid !important;

    grid-template-columns:
        minmax(0, 1fr)
        86px;

    gap: 10px;

    width: 100% !important;

    min-width: 0 !important;
}

#swi-guided-question {
    display: block !important;

    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;

    min-height: 62px !important;

    margin: 0 !important;

    padding:
        14px
        16px !important;

    border:
        1px solid
        rgba(
            241,
            90,
            36,
            0.78
        ) !important;

    border-radius: 0 !important;

    background: #fff !important;

    box-sizing: border-box !important;

    resize: none;
}

#swi-guided-chat-form button,
#swi-guided-submit {
    width: 86px !important;
    min-width: 86px !important;

    min-height: 62px !important;

    margin: 0 !important;

    border-radius: 0 !important;

    align-self: stretch;
}


/*
 * Make the 12-card image treatment closer to the approved
 * mockup: product images can breathe on white backgrounds,
 * while photographic/process shots remain full-bleed.
 */
.swi-home-orientation-card
.swi-guided-card-image,
.swi-home-story-card
.swi-guided-card-image {
    background: #f7f6f4;
}

.swi-home-orientation-card
.swi-guided-card-image img,
.swi-home-story-card
.swi-guided-card-image img {
    object-position: center;

    filter:
        saturate(92%)
        contrast(96%)
        brightness(103%);

    opacity: 0.96;
}


/*
 * Preserve clean light product shots instead of artificially
 * darkening every image.
 */
.swi-home-orientation-card::before,
.swi-home-story-card::before {
    content: "";

    position: absolute;

    inset: 0;

    z-index: 1;

    pointer-events: none;

    background:
        linear-gradient(
            180deg,
            rgba(0,0,0,0) 48%,
            rgba(0,0,0,0.34) 100%
        );
}

.swi-home-orientation-copy,
.swi-home-story-copy {
    z-index: 2;
}


/*
 * Keep all twelve boxes visually identical, 3 across.
 */
.swi-home-orientation,
.swi-home-story-grid {
    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        ) !important;

    gap: 7px !important;
}

.swi-home-orientation-card,
.swi-home-story-card {
    aspect-ratio:
        1.42 / 1 !important;
}


/*
 * Inquiry remains usable on smaller screens.
 */
@media (max-width: 640px) {

    form#swi-guided-chat-form {
        grid-template-columns:
            minmax(0, 1fr)
            72px;
    }

    #swi-guided-chat-form button,
    #swi-guided-submit {
        width: 72px !important;
        min-width: 72px !important;
    }
}

/* =========================================================
   HOMEPAGE RIGHT PANEL — CLEANUP 06
   Remove legacy identity + restore full composer + keep
   sample questions visible.
   ========================================================= */

/* Kill every legacy Weber Intelligence identity treatment. */
.swi-guided-identity,
#swi-guided-identity,
.swi-guided-brand,
.swi-guided-logo,
.swi-intelligence-logo,
.swi-guided-intelligence > h1,
.swi-guided-intelligence > h2,
.swi-guided-intelligence > .swi-guided-title {
    display: none !important;
}

/* Remove the blank identity space above the orange invitation. */
.swi-guided-intelligence {
    display: flex !important;
    flex-direction: column !important;

    min-height: 0 !important;

    padding-top: 0 !important;

    overflow-y: auto !important;
    overflow-x: hidden !important;
}

/* Post-film invitation should sit at the top of the intelligence panel. */
.swi-home-intro {
    order: 1;

    margin-top: 0 !important;
}

/* Conversation/results live between the intro block and composer. */
.swi-guided-conversation {
    order: 2;

    flex: 0 0 auto !important;

    min-height: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: visible !important;
}

/* Composer follows naturally after the sample questions; no clipping. */
.swi-guided-composer {
    order: 3;

    position: relative !important;

    width: 100% !important;

    margin:
        14px
        0
        0 !important;

    padding:
        0
        0
        18px !important;

    background: #fff !important;

    box-sizing: border-box !important;
}

/*
 * Actual form is a flex row in the plugin markup.
 * Force a reliable two-column layout so the textarea cannot collapse.
 */
#swi-guided-chat-form {
    display: grid !important;

    grid-template-columns:
        minmax(0, 1fr)
        78px !important;

    grid-template-rows:
        auto !important;

    gap: 10px !important;

    align-items: stretch !important;

    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    box-sizing: border-box !important;
}

#swi-guided-question {
    grid-column: 1 !important;

    display: block !important;

    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;

    height: 68px !important;
    min-height: 68px !important;
    max-height: 160px !important;

    margin: 0 !important;

    padding:
        14px
        16px !important;

    border:
        1px solid
        rgba(241, 90, 36, 0.78) !important;

    border-radius: 0 !important;

    background: #fff !important;

    color:
        var(--swi-ink) !important;

    font: inherit !important;

    line-height: 1.35 !important;

    box-sizing: border-box !important;

    resize: vertical !important;

    opacity: 1 !important;

    visibility: visible !important;
}

#swi-guided-submit,
#swi-guided-chat-form button[type="submit"] {
    grid-column: 2 !important;

    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    width: 78px !important;
    min-width: 78px !important;

    height: 68px !important;
    min-height: 68px !important;

    margin: 0 !important;
    padding: 0 !important;

    border-radius: 0 !important;

    box-sizing: border-box !important;
}

/* Keep the field label clean and fully visible. */
.swi-guided-composer label,
.swi-guided-composer .swi-guided-question-label {
    display: block !important;

    margin:
        0
        0
        8px !important;

    color:
        var(--swi-ink) !important;

    font-size: 15px !important;
    line-height: 1.25 !important;
}

/* Sample-question section stays visible above the composer. */
.swi-home-intro-question-area {
    display: block !important;

    margin-bottom: 0 !important;
}

/* Only hide the sample questions after JS intentionally hides the area. */
.swi-home-intro-question-area[style*="display: none"] {
    display: none !important;
}

/* Right-side orange invitation starts near the top after post-film collapse. */
.swi-home-intro:not(.is-expanded)
.swi-home-intro-compact {
    padding-top: 8px !important;
}

/* Remove any legacy pseudo-logo behind the post-film state. */
.swi-guided-intelligence::before,
.swi-guided-intelligence::after {
    content: none !important;
    display: none !important;
}

@media (max-width: 640px) {

    #swi-guided-chat-form {
        grid-template-columns:
            minmax(0, 1fr)
            70px !important;
    }

    #swi-guided-submit,
    #swi-guided-chat-form button[type="submit"] {
        width: 70px !important;
        min-width: 70px !important;
    }
}

/* =========================================================
   HOMEPAGE — REDUCE HEADER GAP 09
   Bring the complete browse/intelligence interface upward so
   the query field remains visible above the fold.
   ========================================================= */

@media (min-width: 1001px) {

    .swi-guided-layout {
        /*
         * The WordPress page template leaves a large visual band
         * beneath the site header. Pull the application upward
         * without changing the header itself.
         */
        margin-top:
            -82px !important;

        /*
         * Recover the vertical room created by the upward shift,
         * so the left browse column and right intelligence panel
         * can still use the full visible viewport.
         */
        --swi-guided-header-space:
            123px !important;

        height:
            calc(
                100dvh -
                var(--swi-guided-header-space)
            ) !important;
    }
}


/*
 * Slightly reduce the post-film statement spacing so the query
 * composer appears sooner, while preserving the current type size.
 */
.swi-home-intro:not(.is-expanded)
.swi-home-intro-compact {
    padding-top:
        2px !important;

    padding-bottom:
        14px !important;
}


/*
 * Tighten the vertical rhythm beneath the video and questions.
 */
.swi-home-intro:not(.is-expanded)
.swi-home-intro-video-wrap {
    margin-top:
        12px !important;
}

.swi-home-intro:not(.is-expanded)
.swi-home-intro-question-area {
    padding-top:
        12px !important;
}

.swi-guided-composer {
    margin-top:
        8px !important;
}


/*
 * Do not apply the negative desktop offset when the interface
 * stacks vertically on tablet or phone.
 */
@media (max-width: 1000px) {

    .swi-guided-layout {
        margin-top:
            0 !important;
    }
}

/* =========================================================
   HOMEPAGE — THUMBNAIL REPLAY + COMPOSER LIFT 10
   ========================================================= */

/*
 * Replay now lives on the video thumbnail, so remove the old
 * standalone replay row completely.
 */
.swi-home-intro-replay-inline {
    display: none !important;
}


/*
 * Keep exactly three questions. Remove the extra divider after
 * the third question so the composer can follow immediately.
 */
.swi-home-intro-question-actions
.swi-home-intro-prompt:last-of-type {
    border-bottom:
        0 !important;
}

.swi-home-intro:not(.is-expanded)
.swi-home-intro-question-area {
    padding-bottom:
        0 !important;

    margin-bottom:
        0 !important;

    border-bottom:
        0 !important;
}


/*
 * Eliminate the two empty gray rules between questions and the
 * query field.
 */
.swi-guided-composer,
.swi-guided-composer::before,
.swi-guided-composer::after {
    border-top:
        0 !important;

    content:
        none !important;
}


/*
 * Pull the query field directly beneath the third question.
 */
.swi-guided-composer {
    margin-top:
        0 !important;

    padding-top:
        4px !important;
}

.swi-guided-prompt,
.swi-guided-composer label,
.swi-guided-composer
.swi-guided-question-label {
    margin-top:
        0 !important;

    margin-bottom:
        7px !important;
}


/*
 * Ensure the video wrapper is the positioning context for the
 * clickable play/replay overlay.
 */
.swi-home-intro-video-wrap {
    position:
        relative !important;
}

/* =========================================================
   HOMEPAGE — PINNED QUERY COMPOSER 11
   Keep the Ask Anything field visible at the bottom of the
   right-side viewport while answers, images, video evidence,
   and suggested questions scroll above it.
   ========================================================= */

@media (min-width: 1001px) {

    /*
     * The right panel becomes its own viewport.
     */
    .swi-guided-layout
    .swi-guided-intelligence {
        position: relative !important;

        height: 100% !important;
        min-height: 0 !important;

        overflow-y: auto !important;
        overflow-x: hidden !important;

        /*
         * Prevent the scrolling content from disappearing
         * underneath the pinned composer.
         */
        padding-bottom: 0 !important;

        scroll-padding-bottom: 104px;
    }


    /*
     * The composer stays locked to the bottom edge of the
     * visible right panel at every desktop window height.
     *
     * This selector is intentionally more specific than the
     * earlier inline homepage safeguard.
     */
    .swi-guided-layout
    .swi-guided-intelligence
    .swi-guided-composer {
        position: sticky !important;

        right: 0 !important;
        bottom: 0 !important;
        left: 0 !important;

        z-index: 100 !important;

        flex:
            0
            0
            auto !important;

        width: 100% !important;

        margin:
            0 !important;

        padding:
            10px
            0
            14px !important;

        border-top:
            1px solid
            rgba(33, 29, 27, 0.10) !important;

        background:
            rgba(
                255,
                255,
                255,
                0.985
            ) !important;

        box-shadow:
            0
            -12px
            22px
            rgba(
                255,
                255,
                255,
                0.94
            );

        box-sizing:
            border-box !important;
    }


    /*
     * Keep enough breathing room after the final content item
     * so it can scroll fully above the pinned query field.
     */
    .swi-guided-layout
    .swi-guided-intelligence
    .swi-guided-conversation {
        padding-bottom:
            18px !important;
    }


    /*
     * The three starter questions and video remain part of the
     * scrollable content above the persistent query composer.
     */
    .swi-guided-layout
    .swi-guided-intelligence
    .swi-home-intro {
        flex:
            0
            0
            auto !important;
    }
}


/*
 * On tablet and phone, use sticky positioning too, but allow
 * the page to stack naturally.
 */
@media (max-width: 1000px) {

    .swi-guided-layout
    .swi-guided-intelligence
    .swi-guided-composer {
        position: sticky !important;

        bottom: 0 !important;

        z-index: 100 !important;

        margin: 0 !important;

        padding:
            10px
            0
            14px !important;

        background:
            rgba(
                255,
                255,
                255,
                0.985
            ) !important;

        border-top:
            1px solid
            rgba(33, 29, 27, 0.10) !important;
    }
}

/* =========================================================
   HOMEPAGE — CLEAN CONVERSATION TAKEOVER 17
   Built on the last working visual layout.
   ========================================================= */

/*
 * Before a question, retain the current movie-first launch
 * experience and pinned query composer exactly as designed.
 */


/*
 * After ANY valid query is submitted, remove the entire launch
 * experience from the right column.
 */
.swi-guided-layout.swi-conversation-active
.swi-home-intro,
.swi-home-intro.is-conversation-hidden {
    display:
        none !important;

    width:
        0 !important;

    height:
        0 !important;

    max-height:
        0 !important;

    margin:
        0 !important;

    padding:
        0 !important;

    overflow:
        hidden !important;

    opacity:
        0 !important;
}


/*
 * The answer area becomes a clean white canvas beginning at the
 * top of the right column.
 */
.swi-guided-layout.swi-conversation-active
.swi-guided-conversation {
    width:
        100% !important;

    min-height:
        0 !important;

    margin:
        0 !important;

    padding-top:
        0 !important;

    background:
        #fff !important;

    overflow-y:
        auto !important;

    overflow-x:
        hidden !important;

    scroll-padding-top:
        0 !important;
}


/*
 * Keep the known-good pinned query composer. The answer, images,
 * and videos scroll behind/above it only when they exceed the
 * available space.
 */
.swi-guided-layout.swi-conversation-active
.swi-guided-composer {
    position:
        sticky !important;

    bottom:
        0 !important;

    z-index:
        100 !important;

    margin:
        0 !important;

    background:
        rgba(
            255,
            255,
            255,
            0.985
        ) !important;
}


/*
 * Fullscreen intro must always override Conversation Mode.
 */
.swi-home-intro.is-expanded {
    display:
        flex !important;

    position:
        fixed !important;

    width:
        100vw !important;

    height:
        auto !important;

    max-height:
        none !important;

    margin:
        0 !important;

    padding:
        0 !important;

    opacity:
        1 !important;

    overflow:
        hidden !important;

    z-index:
        9998 !important;
}

/* =========================================================
   HOMEPAGE — PERMANENT BOTTOM COMPOSER 18
   This changes only Conversation Mode.
   Everything before the first query remains untouched.
   ========================================================= */

@media (min-width: 1001px) {

    /*
     * Once a query begins, the right side becomes a fixed frame:
     *
     * scrollable answer above
     * permanent query composer below
     */
    .swi-guided-layout.swi-conversation-active
    .swi-guided-intelligence {
        position:
            relative !important;

        height:
            100% !important;

        min-height:
            0 !important;

        overflow:
            hidden !important;
    }


    /*
     * The answer owns all available space above the composer.
     * Streaming content scrolls inside this area and therefore
     * cannot push or move the query field.
     */
    .swi-guided-layout.swi-conversation-active
    .swi-guided-conversation {
        position:
            absolute !important;

        top:
            0 !important;

        right:
            0 !important;

        bottom:
            104px !important;

        left:
            32px !important;

        width:
            auto !important;

        height:
            auto !important;

        min-height:
            0 !important;

        margin:
            0 !important;

        padding:
            0
            0
            18px !important;

        overflow-y:
            auto !important;

        overflow-x:
            hidden !important;

        overscroll-behavior:
            contain !important;

        background:
            #fff !important;

        box-sizing:
            border-box !important;
    }


    /*
     * The composer is physically anchored to the bottom of the
     * right panel. It does not participate in answer layout.
     */
    .swi-guided-layout.swi-conversation-active
    .swi-guided-composer {
        position:
            absolute !important;

        top:
            auto !important;

        right:
            0 !important;

        bottom:
            0 !important;

        left:
            32px !important;

        z-index:
            200 !important;

        width:
            auto !important;

        height:
            104px !important;

        min-height:
            104px !important;

        max-height:
            104px !important;

        margin:
            0 !important;

        padding:
            8px
            0
            10px !important;

        overflow:
            hidden !important;

        border-top:
            1px solid
            rgba(
                33,
                29,
                27,
                0.10
            ) !important;

        background:
            #fff !important;

        box-shadow:
            none !important;

        transform:
            none !important;

        box-sizing:
            border-box !important;
    }


    /*
     * Keep the form itself within the fixed composer height.
     */
    .swi-guided-layout.swi-conversation-active
    .swi-guided-prompt {
        margin:
            0
            0
            6px !important;
    }

    .swi-guided-layout.swi-conversation-active
    #swi-guided-question,
    .swi-guided-layout.swi-conversation-active
    #swi-guided-submit {
        height:
            68px !important;

        min-height:
            68px !important;
    }
}

/* =========================================================
   HOMEPAGE — AMBIENT CARD LIFE 19
   ========================================================= */

.swi-home-orientation-card,
.swi-home-story-card {
    transform:
        translateY(0);

    transition:
        transform
        240ms
        cubic-bezier(
            0.22,
            1,
            0.36,
            1
        ),
        box-shadow
        240ms
        ease;
}

.swi-home-orientation-card:hover,
.swi-home-orientation-card:focus-visible,
.swi-home-story-card:hover,
.swi-home-story-card:focus-visible {
    transform:
        translateY(
            -2px
        );

    box-shadow:
        0
        8px
        22px
        rgba(
            33,
            29,
            27,
            0.10
        );
}

.swi-home-card-arrow {
    transition:
        transform
        220ms
        cubic-bezier(
            0.22,
            1,
            0.36,
            1
        );
}

.swi-home-orientation-card:hover
.swi-home-card-arrow,
.swi-home-orientation-card:focus-visible
.swi-home-card-arrow,
.swi-home-story-card:hover
.swi-home-card-arrow,
.swi-home-story-card:focus-visible
.swi-home-card-arrow {
    transform:
        translateX(
            4px
        );
}

.swi-ambient-overlay {
    position:
        absolute;

    inset:
        0;

    z-index:
        2;

    pointer-events:
        none;
}

.is-ambient-posture
.swi-ambient-overlay {
    background-image:
        var(
            --swi-posture-image
        );

    background-repeat:
        no-repeat;

    background-position:
        center;

    background-size:
        82%
        82%;

    filter:
        grayscale(
            100%
        );

    mix-blend-mode:
        multiply;

    animation:
        swiPostureMoment
        2800ms
        cubic-bezier(
            0.22,
            1,
            0.36,
            1
        )
        both;
}

.is-ambient-lens
.swi-ambient-overlay {
    background:
        linear-gradient(
            110deg,
            transparent
            0,
            transparent
            calc(
                var(
                    --swi-lens-x,
                    45%
                )
                -
                28%
            ),
            rgba(
                241,
                90,
                36,
                0.03
            )
            calc(
                var(
                    --swi-lens-x,
                    45%
                )
                -
                14%
            ),
            rgba(
                241,
                90,
                36,
                0.16
            )
            var(
                --swi-lens-x,
                45%
            ),
            rgba(
                126,
                118,
                110,
                0.08
            )
            calc(
                var(
                    --swi-lens-x,
                    45%
                )
                +
                12%
            ),
            transparent
            calc(
                var(
                    --swi-lens-x,
                    45%
                )
                +
                30%
            )
        );

    animation:
        swiLensMoment
        2800ms
        cubic-bezier(
            0.22,
            1,
            0.36,
            1
        )
        both;
}

.is-ambient-posture
.swi-guided-card-image img {
    opacity:
        0.72;

    filter:
        saturate(
            68%
        )
        brightness(
            112%
        )
        contrast(
            86%
        );
}

.swi-home-orientation-card:hover
.swi-guided-card-image img,
.swi-home-orientation-card:focus-visible
.swi-guided-card-image img,
.swi-home-story-card:hover
.swi-guided-card-image img,
.swi-home-story-card:focus-visible
.swi-guided-card-image img {
    opacity:
        1 !important;

    filter:
        none !important;
}

@keyframes swiPostureMoment {

    0% {
        opacity:
            0;

        transform:
            translateX(
                -8px
            )
            scale(
                1.02
            );
    }

    28%,
    72% {
        opacity:
            0.74;
    }

    100% {
        opacity:
            0;

        transform:
            translateX(
                4px
            )
            scale(
                1.055
            );
    }
}

@keyframes swiLensMoment {

    0% {
        opacity:
            0;

        transform:
            translateX(
                -26%
            );
    }

    22%,
    76% {
        opacity:
            1;
    }

    100% {
        opacity:
            0;

        transform:
            translateX(
                26%
            );
    }
}

.swi-guided-layout.swi-conversation-active
.swi-ambient-overlay {
    display:
        none !important;
}

@media (
    prefers-reduced-motion:
        reduce
) {

    .swi-home-orientation-card,
    .swi-home-story-card,
    .swi-home-card-arrow {
        transition:
            none !important;
    }

    .swi-ambient-overlay {
        display:
            none !important;
    }
}

/* =========================================================
   HOMEPAGE — FIVE POSTURE FIGURES 20
   Make the posture moment feel like a human presence,
   not a decorative overlay.
   ========================================================= */

/*
 * During posture moments, the photograph quietly recedes.
 */
.swi-home-orientation-card.is-ambient-posture
.swi-guided-card-image img,
.swi-home-story-card.is-ambient-posture
.swi-guided-card-image img {
    opacity:
        0.40 !important;

    filter:
        grayscale(
            18%
        )
        saturate(
            48%
        )
        brightness(
            118%
        )
        contrast(
            76%
        ) !important;
}


/*
 * The figure becomes the dominant visual for a brief moment.
 */
.swi-home-orientation-card.is-ambient-posture
.swi-ambient-overlay,
.swi-home-story-card.is-ambient-posture
.swi-ambient-overlay {
    background-size:
        92%
        92% !important;

    background-position:
        center
        center !important;

    opacity:
        0;

    filter:
        grayscale(
            100%
        )
        brightness(
            0.82
        )
        contrast(
            0.72
        ) !important;

    mix-blend-mode:
        multiply !important;
}


/*
 * Keep text and arrows readable above the figure.
 */
.swi-home-orientation-card.is-ambient-posture
.swi-home-orientation-copy,
.swi-home-story-card.is-ambient-posture
.swi-home-story-copy,
.swi-home-orientation-card.is-ambient-posture
.swi-home-card-arrow,
.swi-home-story-card.is-ambient-posture
.swi-home-card-arrow {
    z-index:
        4 !important;
}


/*
 * Hover still immediately restores the photograph.
 */
.swi-home-orientation-card.is-ambient-posture:hover
.swi-guided-card-image img,
.swi-home-orientation-card.is-ambient-posture:focus-visible
.swi-guided-card-image img,
.swi-home-story-card.is-ambient-posture:hover
.swi-guided-card-image img,
.swi-home-story-card.is-ambient-posture:focus-visible
.swi-guided-card-image img {
    opacity:
        1 !important;

    filter:
        none !important;
}

/* =========================================================
   HOMEPAGE — AMBIENT VISIBILITY FIX 21
   ========================================================= */

/*
 * SVGs are rendered as masks, so their original fill/stroke
 * color no longer matters. Every posture appears in the same
 * warm-gray Studio Weber treatment.
 */
.swi-home-orientation-card.is-ambient-posture
.swi-ambient-overlay,
.swi-home-story-card.is-ambient-posture
.swi-ambient-overlay {
    background-image:
        none !important;

    background-color:
        rgba(
            102,
            96,
            90,
            0.78
        ) !important;

    -webkit-mask-repeat:
        no-repeat;

    mask-repeat:
        no-repeat;

    -webkit-mask-position:
        center;

    mask-position:
        center;

    -webkit-mask-size:
        78%
        88%;

    mask-size:
        78%
        88%;

    mix-blend-mode:
        normal !important;

    filter:
        none !important;

    z-index:
        3 !important;
}


/*
 * Make the posture event unmistakable during testing.
 */
.swi-home-orientation-card.is-ambient-posture
.swi-guided-card-image img,
.swi-home-story-card.is-ambient-posture
.swi-guided-card-image img {
    opacity:
        0.28 !important;

    filter:
        grayscale(
            30%
        )
        saturate(
            38%
        )
        brightness(
            124%
        )
        contrast(
            72%
        ) !important;
}


/*
 * Lens moment is also made slightly clearer.
 */
.swi-home-orientation-card.is-ambient-lens
.swi-ambient-overlay,
.swi-home-story-card.is-ambient-lens
.swi-ambient-overlay {
    z-index:
        3 !important;

    opacity:
        1;
}


/*
 * Ensure card text stays above ambient artwork.
 */
.swi-home-orientation-copy,
.swi-home-story-copy,
.swi-home-card-arrow {
    position:
        relative;

    z-index:
        5 !important;
}

/* =========================================================
   HOMEPAGE — CLEAR POSTURE APPARITION 23
   ========================================================= */

/*
 * Use only posture moments for now.
 * The prior color-lens moments were reading as a dimming glitch.
 */
.is-ambient-lens
.swi-ambient-overlay {
    display:
        none !important;
}


/*
 * The card becomes a white field first.
 */
.swi-home-orientation-card.is-ambient-posture::after,
.swi-home-story-card.is-ambient-posture::after {
    content:
        "";

    position:
        absolute;

    inset:
        0;

    z-index:
        2;

    pointer-events:
        none;

    background:
        rgba(
            255,
            255,
            255,
            0.94
        );

    animation:
        swiWhiteField
        3600ms
        cubic-bezier(
            0.22,
            1,
            0.36,
            1
        )
        both;
}


/*
 * Original photo nearly disappears into white.
 */
.swi-home-orientation-card.is-ambient-posture
.swi-guided-card-image img,
.swi-home-story-card.is-ambient-posture
.swi-guided-card-image img {
    opacity:
        0.08 !important;

    filter:
        grayscale(
            100%
        )
        brightness(
            145%
        )
        contrast(
            55%
        ) !important;

    transition:
        opacity
        520ms
        ease,
        filter
        520ms
        ease !important;
}


/*
 * Overlay holds a real SVG image, not a mask.
 */
.swi-home-orientation-card.is-ambient-posture
.swi-ambient-overlay,
.swi-home-story-card.is-ambient-posture
.swi-ambient-overlay {
    display:
        flex !important;

    align-items:
        center;

    justify-content:
        center;

    z-index:
        3 !important;

    background:
        transparent !important;

    mask:
        none !important;

    -webkit-mask:
        none !important;

    filter:
        none !important;

    mix-blend-mode:
        normal !important;

    animation:
        swiPostureOverlay
        3600ms
        cubic-bezier(
            0.22,
            1,
            0.36,
            1
        )
        both !important;
}


/*
 * The actual gestural drawing.
 */
.swi-ambient-posture-image {
    display:
        block;

    width:
        82%;

    height:
        86%;

    object-fit:
        contain;

    object-position:
        center;

    opacity:
        0;

    filter:
        grayscale(
            100%
        )
        brightness(
            0.52
        )
        contrast(
            2.25
        );

    transform:
        translateY(
            6px
        )
        scale(
            0.94
        );

    animation:
        swiPostureFigure
        3600ms
        cubic-bezier(
            0.22,
            1,
            0.36,
            1
        )
        both;
}


/*
 * Keep card title and arrow readable but quiet.
 */
.swi-home-orientation-card.is-ambient-posture
.swi-home-orientation-copy,
.swi-home-story-card.is-ambient-posture
.swi-home-story-copy {
    z-index:
        5 !important;

    opacity:
        0.78;

    transition:
        opacity
        260ms
        ease;
}

.swi-home-orientation-card.is-ambient-posture
.swi-home-card-arrow,
.swi-home-story-card.is-ambient-posture
.swi-home-card-arrow {
    z-index:
        5 !important;
}


/*
 * Hover cancels the apparition visually.
 */
.swi-home-orientation-card.is-ambient-posture:hover::after,
.swi-home-story-card.is-ambient-posture:hover::after,
.swi-home-orientation-card.is-ambient-posture:focus-visible::after,
.swi-home-story-card.is-ambient-posture:focus-visible::after,
.swi-home-orientation-card.is-ambient-posture:hover
.swi-ambient-overlay,
.swi-home-story-card.is-ambient-posture:hover
.swi-ambient-overlay,
.swi-home-orientation-card.is-ambient-posture:focus-visible
.swi-ambient-overlay,
.swi-home-story-card.is-ambient-posture:focus-visible
.swi-ambient-overlay {
    opacity:
        0 !important;
}


/*
 * Animation timing:
 * fade to white -> hold figure -> return to photograph.
 */
@keyframes swiWhiteField {

    0%,
    100% {
        opacity:
            0;
    }

    16%,
    82% {
        opacity:
            1;
    }
}

@keyframes swiPostureOverlay {

    0%,
    100% {
        opacity:
            0;
    }

    20%,
    78% {
        opacity:
            1;
    }
}

@keyframes swiPostureFigure {

    0% {
        opacity:
            0;

        transform:
            translateY(
                10px
            )
            scale(
                0.92
            );
    }

    24% {
        opacity:
            0.92;
    }

    72% {
        opacity:
            0.92;

        transform:
            translateY(
                0
            )
            scale(
                1
            );
    }

    100% {
        opacity:
            0;

        transform:
            translateY(
                -5px
            )
            scale(
                1.025
            );
    }
}

/* =========================================================
   STUDIO WEBER — INTELLIGENCE POLISH 24
   Quietly technical, fast, and editorial.
   ========================================================= */

/* ---------------------------------------------------------
   Intelligence status
   --------------------------------------------------------- */

.swi-intelligence-status {
    display:
        none;

    align-items:
        center;

    gap:
        10px;

    min-height:
        24px;

    margin:
        0
        0
        14px;

    color:
        var(--swi-warm-gray);

    font-size:
        12px;

    line-height:
        1;

    letter-spacing:
        0.035em;

    text-transform:
        lowercase;
}

.swi-is-thinking
.swi-intelligence-status,
.swi-is-loading-media
.swi-intelligence-status {
    display:
        flex;

    animation:
        swiStatusIn
        260ms
        ease
        both;
}

.swi-is-thinking
.swi-intelligence-status-copy::before {
    content:
        "searching the studio";
}

.swi-is-thinking
.swi-intelligence-status-copy {
    font-size:
        0;
}

.swi-is-thinking
.swi-intelligence-status-copy::before {
    font-size:
        12px;
}

.swi-is-loading-media
.swi-intelligence-status-copy::before {
    content:
        "gathering visual evidence";
}

.swi-is-loading-media
.swi-intelligence-status-copy {
    font-size:
        0;
}

.swi-is-loading-media
.swi-intelligence-status-copy::before {
    font-size:
        12px;
}


/*
 * A small animated mark—not a generic spinner.
 */
.swi-intelligence-status-mark {
    position:
        relative;

    display:
        block;

    width:
        26px;

    height:
        1px;

    overflow:
        hidden;

    background:
        rgba(
            33,
            29,
            27,
            0.12
        );
}

.swi-intelligence-status-mark::after {
    content:
        "";

    position:
        absolute;

    top:
        0;

    left:
        -45%;

    width:
        45%;

    height:
        1px;

    background:
        var(--swi-orange);

    animation:
        swiSignalScan
        1100ms
        cubic-bezier(
            0.4,
            0,
            0.2,
            1
        )
        infinite;
}


/* ---------------------------------------------------------
   Streaming response
   --------------------------------------------------------- */

.swi-guided-response-area {
    position:
        relative;

    color:
        var(--swi-ink);

    font-variant-ligatures:
        common-ligatures;

    text-rendering:
        optimizeLegibility;
}

.swi-is-streaming
.swi-guided-response-area::after {
    content:
        "";

    display:
        inline-block;

    width:
        7px;

    height:
        1em;

    margin-left:
        5px;

    vertical-align:
        -0.12em;

    background:
        var(--swi-orange);

    animation:
        swiStreamingCursor
        820ms
        steps(
            1,
            end
        )
        infinite;
}


/*
 * The answer canvas arrives cleanly after the launchpad clears.
 */
.swi-conversation-active
.swi-guided-response-area {
    animation:
        swiResponseCanvasIn
        320ms
        cubic-bezier(
            0.22,
            1,
            0.36,
            1
        )
        both;
}


/* ---------------------------------------------------------
   Visual evidence reveal
   --------------------------------------------------------- */

.swi-visual-result {
    opacity:
        0;

    transform:
        translateY(
            12px
        );

    animation:
        swiEvidenceIn
        520ms
        cubic-bezier(
            0.22,
            1,
            0.36,
            1
        )
        forwards;

    animation-delay:
        calc(
            var(
                --swi-result-index,
                0
            )
            *
            85ms
        );
}

.swi-visual-result img,
.swi-visual-result video {
    transition:
        transform
        420ms
        cubic-bezier(
            0.22,
            1,
            0.36,
            1
        ),
        filter
        320ms
        ease;
}

.swi-visual-result:hover img,
.swi-visual-result:hover video {
    transform:
        scale(
            1.012
        );
}


/* ---------------------------------------------------------
   Query composer micro-interactions
   --------------------------------------------------------- */

#swi-guided-question {
    transition:
        border-color
        180ms
        ease,
        box-shadow
        220ms
        ease,
        background
        180ms
        ease;
}

#swi-guided-question:focus {
    border-color:
        var(--swi-orange) !important;

    box-shadow:
        0
        0
        0
        3px
        rgba(
            241,
            90,
            36,
            0.08
        );

    outline:
        0;
}

#swi-guided-submit {
    transition:
        transform
        180ms
        cubic-bezier(
            0.22,
            1,
            0.36,
            1
        ),
        filter
        180ms
        ease;
}

#swi-guided-submit:hover:not(:disabled) {
    transform:
        translateY(
            -1px
        );

    filter:
        brightness(
            0.96
        );
}

#swi-guided-submit:active:not(:disabled) {
    transform:
        translateY(
            0
        )
        scale(
            0.985
        );
}

#swi-guided-submit:disabled {
    cursor:
        wait;

    opacity:
        0.72;
}


/* ---------------------------------------------------------
   Keyframes
   --------------------------------------------------------- */

@keyframes swiSignalScan {

    0% {
        transform:
            translateX(
                0
            );
    }

    100% {
        transform:
            translateX(
                325%
            );
    }
}

@keyframes swiStatusIn {

    from {
        opacity:
            0;

        transform:
            translateY(
                4px
            );
    }

    to {
        opacity:
            1;

        transform:
            translateY(
                0
            );
    }
}

@keyframes swiStreamingCursor {

    0%,
    48% {
        opacity:
            1;
    }

    49%,
    100% {
        opacity:
            0;
    }
}

@keyframes swiResponseCanvasIn {

    from {
        opacity:
            0;

        transform:
            translateY(
                6px
            );
    }

    to {
        opacity:
            1;

        transform:
            translateY(
                0
            );
    }
}

@keyframes swiEvidenceIn {

    to {
        opacity:
            1;

        transform:
            translateY(
                0
            );
    }
}


/* ---------------------------------------------------------
   Accessibility
   --------------------------------------------------------- */

@media (
    prefers-reduced-motion:
        reduce
) {

    .swi-intelligence-status,
    .swi-intelligence-status-mark::after,
    .swi-is-streaming
    .swi-guided-response-area::after,
    .swi-conversation-active
    .swi-guided-response-area,
    .swi-visual-result {
        animation:
            none !important;
    }

    .swi-visual-result {
        opacity:
            1 !important;

        transform:
            none !important;
    }
}

/* =========================================================
   WEBER INTELLIGENCE — MEDIA-FIRST RESPONSE 25
   ========================================================= */

.swi-media-first-results {
    width: 100%;
    margin: 0 0 20px;
    padding: 0;
}

.swi-media-first-results:empty,
.swi-media-first-results[style*="display: none"] {
    margin: 0;
}

.swi-media-first-results .swi-visual-results-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    width: 100%;
}

.swi-media-first-results .swi-visual-result:first-child:last-child {
    grid-column: 1 / -1;
}

.swi-media-first-results .swi-visual-result:first-child:last-child img,
.swi-media-first-results .swi-visual-result:first-child:last-child video {
    width: min(100%, 720px);
    max-height: 46vh;
    object-fit: cover;
}

.swi-media-first-results video {
    display: block;
    width: 100%;
    max-height: 46vh;
    background: #111;
}

@media (max-width: 720px) {
    .swi-media-first-results .swi-visual-results-grid {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   STUDIO WEBER INTELLIGENCE — PRIVATE BETA 27
   ========================================================= */

.swi-beta-badge {
    display:inline-flex;align-items:center;gap:7px;margin:0 0 10px;
    color:var(--swi-orange);font-size:10px;line-height:1;
    letter-spacing:.12em;text-transform:uppercase;
}
.swi-beta-badge-dot {
    width:5px;height:5px;border-radius:50%;background:var(--swi-orange);
    box-shadow:0 0 0 4px rgba(241,90,36,.09);
    animation:swiBetaPulse 2400ms ease-in-out infinite;
}
.swi-beta-note {
    display:grid;gap:5px;margin:0 0 20px;padding:12px 14px;
    border-left:2px solid rgba(241,90,36,.72);
    color:var(--swi-warm-gray);background:rgba(247,246,244,.72);
    font-size:12px;line-height:1.4;
}
.swi-beta-note strong {color:var(--swi-ink);font-size:12px;font-weight:500}

.swi-answer-feedback {
    width:100%;margin:28px 0 18px;padding:18px 0 0;
    border-top:1px solid rgba(33,29,27,.12);color:var(--swi-ink);
    opacity:0;transform:translateY(8px);
}
.swi-answer-feedback.is-visible {
    animation:swiFeedbackIn 320ms cubic-bezier(.22,1,.36,1) forwards;
}
.swi-answer-feedback-question {margin:0 0 10px;font-size:13px;line-height:1.2}
.swi-answer-feedback-actions {display:flex;gap:8px}
.swi-feedback-choice,.swi-answer-feedback-reasons button {
    appearance:none;min-height:32px;padding:7px 11px;
    border:1px solid rgba(33,29,27,.16);border-radius:999px;
    color:var(--swi-ink);background:#fff;font:inherit;font-size:12px;
    line-height:1;cursor:pointer;
    transition:border-color 160ms ease,color 160ms ease,transform 180ms ease,background 160ms ease;
}
.swi-feedback-choice:hover,.swi-feedback-choice:focus-visible,
.swi-answer-feedback-reasons button:hover,.swi-answer-feedback-reasons button:focus-visible {
    border-color:var(--swi-orange);color:var(--swi-orange);
    background:rgba(241,90,36,.035);transform:translateY(-1px);
}
.swi-answer-feedback-reasons {
    display:flex;flex-wrap:wrap;gap:7px;margin:14px 0 0;padding:14px 0 0;
    border-top:1px solid rgba(33,29,27,.08);
}
.swi-answer-feedback-reasons[hidden],.swi-answer-feedback-thanks[hidden] {display:none!important}
.swi-answer-feedback-reasons-label {
    flex:0 0 100%;margin-bottom:2px;color:var(--swi-warm-gray);font-size:11px;
}
.swi-answer-feedback-thanks {margin-top:12px;color:var(--swi-orange);font-size:12px}
.swi-answer-feedback.is-complete .swi-answer-feedback-actions,
.swi-answer-feedback.is-complete .swi-answer-feedback-reasons {display:none}

.swi-home-browse-scroll::after {
    content:"Studio Weber Intelligence  ·  Beta 1  ·  August 2026";
    display:block;margin:24px 0 8px;color:rgba(33,29,27,.42);
    font-size:9px;line-height:1.3;letter-spacing:.08em;text-transform:uppercase;
}
@keyframes swiBetaPulse {
    0%,100%{opacity:.58;transform:scale(.92)}
    50%{opacity:1;transform:scale(1.08)}
}
@keyframes swiFeedbackIn {
    to{opacity:1;transform:translateY(0)}
}
@media(prefers-reduced-motion:reduce){
    .swi-beta-badge-dot,.swi-answer-feedback.is-visible{animation:none!important}
    .swi-answer-feedback{opacity:1;transform:none}
}

/* =========================================================
   HOMEPAGE — STARTER QUESTION DIVIDER FIX
   Normalize the three starter-question rules and remove the
   stray dark line appearing between questions two and three.
   ========================================================= */

.swi-home-intro-question-actions
.swi-home-intro-prompt {
    border-top: 0 !important;
    border-right: 0 !important;
    border-left: 0 !important;

    border-bottom:
        1px solid
        rgba(33, 29, 27, 0.10) !important;

    box-shadow: none !important;
    outline: none;
}

.swi-home-intro-question-actions
.swi-home-intro-prompt:last-child,
.swi-home-intro-question-actions
.swi-home-intro-prompt:last-of-type {
    border-bottom: 0 !important;
}

/* Prevent focus/click state from turning a divider dark. */
.swi-home-intro-question-actions
.swi-home-intro-prompt:focus,
.swi-home-intro-question-actions
.swi-home-intro-prompt:focus-visible,
.swi-home-intro-question-actions
.swi-home-intro-prompt:active {
    border-top: 0 !important;
    border-right: 0 !important;
    border-left: 0 !important;

    box-shadow: none !important;
}

.swi-home-intro-question-actions
.swi-home-intro-prompt:last-child:focus,
.swi-home-intro-question-actions
.swi-home-intro-prompt:last-child:focus-visible,
.swi-home-intro-question-actions
.swi-home-intro-prompt:last-child:active,
.swi-home-intro-question-actions
.swi-home-intro-prompt:last-of-type:focus,
.swi-home-intro-question-actions
.swi-home-intro-prompt:last-of-type:focus-visible,
.swi-home-intro-question-actions
.swi-home-intro-prompt:last-of-type:active {
    border-bottom: 0 !important;
}

/* =========================================================
   HOMEPAGE — TRY A QUESTION CLICK FIX 39

   The starter questions sit below the compact video. Make their
   interaction layer explicit so no replay/video overlay can ever
   intercept their clicks.
   ========================================================= */

.swi-home-intro:not(.is-expanded)
.swi-home-intro-question-area {
    position:
        relative !important;

    z-index:
        30 !important;

    pointer-events:
        auto !important;
}

.swi-home-intro:not(.is-expanded)
.swi-home-intro-question-actions {
    position:
        relative !important;

    z-index:
        31 !important;

    pointer-events:
        auto !important;
}

.swi-home-intro:not(.is-expanded)
.swi-home-intro-prompt {
    position:
        relative !important;

    z-index:
        32 !important;

    pointer-events:
        auto !important;

    cursor:
        pointer !important;

    touch-action:
        manipulation;
}

/*
 * Keep video interaction confined to the video thumbnail.
 */
.swi-home-intro:not(.is-expanded)
.swi-home-intro-video-wrap {
    position:
        relative !important;

    z-index:
        10 !important;
}

.swi-home-intro:not(.is-expanded)
.swi-home-intro-thumbnail-replay {
    z-index:
        12 !important;
}

/*
 * The fullscreen controls overlay should never receive pointer
 * events outside its explicit controls.
 */
.swi-home-intro:not(.is-expanded)
.swi-home-intro-overlay {
    pointer-events:
        none !important;
}


/* =========================================================
   HOMEPAGE TEAM MODE
   WHO ARE WE? → TEAM
   ========================================================= */

.swi-home-story-grid.is-team-mode {
    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );
}

.swi-home-team-card {
    cursor: pointer;
}

.swi-home-team-card
.swi-guided-card-image img {
    object-position: center top;
}

.swi-home-team-placeholder {
    position: absolute;
    inset: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 18px;

    box-sizing: border-box;

    background:
        #ece9e6;

    color:
        rgba(33, 29, 27, 0.42);

    font-size: 12px;
    line-height: 1.25;
    font-weight: 300;

    text-align: center;
    text-transform: lowercase;
}

.swi-home-team-card
.swi-home-story-title {
    text-transform: lowercase;
}

.swi-home-all-stories[hidden] {
    display: none !important;
}

@media (max-width: 640px) {

    .swi-home-story-grid.is-team-mode {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }
}

/* =========================================================
   HOMEPAGE TEAM PROFILE — FIRST PERSON VIEW
   ========================================================= */

.swi-team-profile {
    width:
        100%;

    max-width:
        760px;

    margin:
        0;

    padding:
        0
        8px
        28px
        0;

    box-sizing:
        border-box;
}

.swi-team-profile-toolbar {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        20px;

    margin:
        0
        0
        12px;

    padding:
        0
        0
        9px;

    border-bottom:
        1px solid
        var(--swi-rule);
}

.swi-team-profile-kicker {
    color:
        var(--swi-orange);

    font-size:
        11px;

    line-height:
        1;

    letter-spacing:
        0.08em;

    text-transform:
        uppercase;
}

.swi-team-profile-back {
    appearance:
        none;

    margin:
        0;

    padding:
        0;

    border:
        0;

    background:
        transparent;

    color:
        var(--swi-warm-gray);

    font:
        inherit;

    font-size:
        11px;

    line-height:
        1;

    text-transform:
        lowercase;

    cursor:
        pointer;
}

.swi-team-profile-back:hover,
.swi-team-profile-back:focus-visible {
    color:
        var(--swi-orange);
}

.swi-team-profile-image-wrap {
    width:
        100%;

    max-height:
        49vh;

    margin:
        0
        0
        22px;

    background:
        #f2f0ed;

    overflow:
        hidden;
}

.swi-team-profile-image {
    display:
        block;

    width:
        100%;

    max-height:
        49vh;

    object-fit:
        cover;

    object-position:
        center
        28%;
}

.swi-team-profile-image-placeholder {
    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    min-height:
        340px;

    color:
        var(--swi-warm-gray);

    font-size:
        13px;

    text-transform:
        lowercase;
}

.swi-team-profile-copy {
    max-width:
        680px;
}

.swi-team-profile-copy h2 {
    margin:
        0
        0
        11px;

    color:
        var(--swi-ink);

    font-size:
        clamp(
            32px,
            3vw,
            48px
        );

    line-height:
        0.96;

    font-weight:
        300;

    letter-spacing:
        -0.045em;
}

.swi-team-profile-copy p {
    margin:
        0;

    color:
        var(--swi-ink);

    font-size:
        19px;

    line-height:
        1.48;

    font-weight:
        300;
}


/*
 * Profile mode keeps the existing permanent bottom composer.
 */
.swi-guided-layout.swi-team-profile-active
.swi-guided-conversation {
    background:
        #fff !important;
}


@media (max-width: 640px) {

    .swi-team-profile {
        padding-right:
            0;
    }

    .swi-team-profile-image-wrap,
    .swi-team-profile-image {
        max-height:
            none;
    }

    .swi-team-profile-copy h2 {
        font-size:
            34px;
    }

    .swi-team-profile-copy p {
        font-size:
            17px;
    }
}

/* =========================================================
   HOMEPAGE PRACTICE MODE
   WHY WORK WITH US? → PRACTICE
   ========================================================= */

.swi-home-story-grid.is-practice-mode {
    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );
}

.swi-home-practice-card {
    position:
        relative;

    display:
        flex;

    flex-direction:
        column;

    justify-content:
        space-between;

    aspect-ratio:
        1 / 0.92;

    min-height:
        0;

    padding:
        13px
        13px
        14px;

    border:
        1px solid
        var(--swi-rule);

    background:
        #fff;

    color:
        var(--swi-ink);

    overflow:
        hidden;

    text-align:
        left;

    transition:
        border-color
        180ms
        ease,
        background
        180ms
        ease,
        transform
        220ms
        cubic-bezier(
            0.2,
            0.8,
            0.2,
            1
        );
}

.swi-home-practice-card::after {
    content:
        none !important;
}

.swi-home-practice-card:hover,
.swi-home-practice-card:focus-visible {
    border-color:
        rgba(
            241,
            90,
            36,
            0.72
        );

    background:
        rgba(
            241,
            90,
            36,
            0.035
        );

    transform:
        translateY(
            -1px
        );
}

.swi-practice-card-number {
    position:
        relative;

    z-index:
        2;

    color:
        var(--swi-orange);

    font-size:
        10px;

    line-height:
        1;

    letter-spacing:
        0.08em;
}

.swi-practice-card-body {
    position:
        relative;

    z-index:
        2;

    display:
        grid;

    gap:
        6px;

    max-width:
        calc(
            100% -
            14px
        );
}

.swi-practice-card-title {
    display:
        block;

    color:
        var(--swi-ink);

    font-size:
        clamp(
            16px,
            1.35vw,
            22px
        );

    line-height:
        0.98;

    font-weight:
        300;

    letter-spacing:
        -0.035em;
}

.swi-practice-card-line {
    display:
        block;

    max-width:
        150px;

    color:
        var(--swi-warm-gray);

    font-size:
        10px;

    line-height:
        1.25;

    font-weight:
        400;

    letter-spacing:
        0.01em;
}

.swi-home-practice-card
.swi-home-card-arrow {
    right:
        11px;

    bottom:
        10px;

    font-size:
        14px;
}

.swi-practice-posture-mark {
    position:
        absolute;

    top:
        17%;

    right:
        12%;

    width:
        34%;

    height:
        42%;

    opacity:
        0.18;

    pointer-events:
        none;

    transition:
        opacity
        220ms
        ease,
        transform
        260ms
        ease;
}

.swi-practice-posture-mark img {
    display:
        block;

    width:
        100%;

    height:
        100%;

    object-fit:
        contain;

    filter:
        none !important;

    transform:
        none !important;
}

.swi-home-practice-card:hover
.swi-practice-posture-mark {
    opacity:
        0.42;

    transform:
        translateY(
            -2px
        );
}


/*
 * Practice is intentionally more diagrammatic and typographic
 * than Stories or Team. It should feel like entering the studio's
 * thinking rather than another gallery of photographs.
 */
.swi-home-story-grid.is-practice-mode
.swi-ambient-overlay {
    opacity:
        0.72;
}


@media (max-width: 1000px) {

    .swi-home-story-grid.is-practice-mode {
        grid-template-columns:
            repeat(
                3,
                minmax(0, 1fr)
            );
    }
}


@media (max-width: 640px) {

    .swi-home-story-grid.is-practice-mode {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }

    .swi-home-practice-card {
        aspect-ratio:
            1.08 / 1;
    }

    .swi-practice-card-title {
        font-size:
            18px;
    }
}

/* =========================================================
   INTERACTIVE POSTURE CONTINUUM
   PRACTICE → POSTURE CONTINUUM
   ========================================================= */

.swi-guided-layout.swi-posture-continuum-active
.swi-guided-response-area {
    white-space:
        normal;
}

.swi-posture-continuum {
    width:
        100%;

    max-width:
        820px;

    margin:
        0;

    padding:
        0
        10px
        30px
        0;

    box-sizing:
        border-box;
}

.swi-posture-continuum-toolbar {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        20px;

    margin:
        0
        0
        16px;

    padding:
        0
        0
        9px;

    border-bottom:
        1px solid
        var(--swi-rule);
}

.swi-posture-continuum-kicker {
    color:
        var(--swi-orange);

    font-size:
        11px;

    line-height:
        1;

    letter-spacing:
        0.08em;

    text-transform:
        uppercase;
}

.swi-posture-continuum-back {
    appearance:
        none;

    margin:
        0;

    padding:
        0;

    border:
        0;

    background:
        transparent;

    color:
        var(--swi-warm-gray);

    font:
        inherit;

    font-size:
        11px;

    cursor:
        pointer;

    text-transform:
        lowercase;
}

.swi-posture-continuum-back:hover,
.swi-posture-continuum-back:focus-visible {
    color:
        var(--swi-orange);
}

.swi-posture-continuum-heading {
    display:
        grid;

    gap:
        10px;

    max-width:
        720px;

    margin:
        0
        0
        28px;
}

.swi-posture-continuum-heading h2 {
    margin:
        0;

    color:
        var(--swi-ink);

    font-size:
        clamp(
            38px,
            4.6vw,
            68px
        );

    line-height:
        0.92;

    font-weight:
        300;

    letter-spacing:
        -0.055em;
}

.swi-posture-continuum-heading p {
    max-width:
        650px;

    margin:
        0;

    color:
        var(--swi-warm-gray);

    font-size:
        16px;

    line-height:
        1.42;

    font-weight:
        300;
}


/* ---------------------------------------------------------
   CONTINUUM STRIP
   --------------------------------------------------------- */

.swi-posture-continuum-stage {
    position:
        relative;

    width:
        100%;

    margin:
        0
        0
        26px;

    padding:
        8px
        0
        4px;
}

.swi-posture-continuum-line {
    position:
        absolute;

    left:
        6%;

    right:
        6%;

    top:
        53px;

    height:
        1px;

    background:
        linear-gradient(
            90deg,
            rgba(241, 90, 36, 0.18),
            rgba(33, 29, 27, 0.18),
            rgba(33, 29, 27, 0.18)
        );

    pointer-events:
        none;
}

.swi-posture-continuum-points {
    position:
        relative;

    z-index:
        2;

    display:
        grid;

    grid-template-columns:
        repeat(
            5,
            minmax(0, 1fr)
        );

    gap:
        8px;

    align-items:
        end;
}

.swi-posture-continuum-point {
    appearance:
        none;

    display:
        grid;

    justify-items:
        center;

    gap:
        8px;

    min-width:
        0;

    margin:
        0;

    padding:
        0
        4px;

    border:
        0;

    background:
        transparent;

    color:
        var(--swi-warm-gray);

    font:
        inherit;

    cursor:
        pointer;
}

.swi-posture-continuum-icon {
    position:
        relative;

    display:
        flex;

    align-items:
        flex-end;

    justify-content:
        center;

    width:
        72px;

    height:
        84px;

    padding:
        8px;

    box-sizing:
        border-box;

    border:
        1px solid
        rgba(33, 29, 27, 0.12);

    background:
        #fff;

    transition:
        border-color
        180ms
        ease,
        background
        180ms
        ease,
        transform
        200ms
        ease;
}

.swi-posture-continuum-icon::after {
    content:
        "";

    position:
        absolute;

    left:
        50%;

    bottom:
        -5px;

    width:
        9px;

    height:
        9px;

    border-radius:
        50%;

    background:
        rgba(33, 29, 27, 0.22);

    transform:
        translateX(
            -50%
        );

    transition:
        background
        180ms
        ease,
        transform
        180ms
        ease;
}

.swi-posture-continuum-icon img {
    display:
        block;

    max-width:
        100%;

    max-height:
        100%;

    object-fit:
        contain;

    opacity:
        0.56;

    filter:
        none !important;

    transform:
        none !important;

    transition:
        opacity
        180ms
        ease,
        transform
        220ms
        ease;
}

.swi-posture-continuum-label {
    color:
        inherit;

    font-size:
        10px;

    line-height:
        1.15;

    text-align:
        center;

    text-transform:
        lowercase;
}

.swi-posture-continuum-point:hover
.swi-posture-continuum-icon,
.swi-posture-continuum-point:focus-visible
.swi-posture-continuum-icon {
    border-color:
        rgba(241, 90, 36, 0.58);

    transform:
        translateY(
            -2px
        );
}

.swi-posture-continuum-point.is-active {
    color:
        var(--swi-orange);
}

.swi-posture-continuum-point.is-active
.swi-posture-continuum-icon {
    border-color:
        var(--swi-orange);

    background:
        rgba(241, 90, 36, 0.035);
}

.swi-posture-continuum-point.is-active
.swi-posture-continuum-icon::after {
    background:
        var(--swi-orange);

    transform:
        translateX(
            -50%
        )
        scale(
            1.15
        );
}

.swi-posture-continuum-point.is-active
.swi-posture-continuum-icon img {
    opacity:
        1;

    transform:
        scale(
            1.06
        ) !important;
}


/* ---------------------------------------------------------
   SELECTED POSTURE
   --------------------------------------------------------- */

.swi-posture-continuum-detail {
    display:
        grid;

    grid-template-columns:
        minmax(
            150px,
            0.72fr
        )
        minmax(
            0,
            1.5fr
        );

    gap:
        clamp(
            28px,
            4vw,
            54px
        );

    align-items:
        center;

    margin-top:
        18px;

    padding-top:
        24px;

    border-top:
        1px solid
        var(--swi-rule);
}

.swi-posture-continuum-figure {
    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    min-height:
        230px;

    padding:
        20px;

    box-sizing:
        border-box;

    background:
        #f7f6f4;
}

.swi-posture-continuum-figure img {
    display:
        block;

    max-width:
        82%;

    max-height:
        210px;

    opacity:
        0.86;

    filter:
        none !important;

    transform:
        none !important;

    transition:
        opacity
        110ms
        ease,
        transform
        220ms
        ease;
}

.swi-posture-continuum-figure img.is-changing {
    opacity:
        0;

    transform:
        translateY(
            4px
        ) !important;
}

.swi-posture-continuum-copy {
    min-width:
        0;
}

.swi-posture-continuum-current {
    display:
        block;

    margin:
        0
        0
        10px;

    color:
        var(--swi-orange);

    font-size:
        11px;

    line-height:
        1;

    letter-spacing:
        0.08em;

    text-transform:
        uppercase;
}

.swi-posture-continuum-statement {
    max-width:
        580px;

    margin:
        0
        0
        10px;

    color:
        var(--swi-ink);

    font-size:
        clamp(
            22px,
            2vw,
            31px
        );

    line-height:
        1.06;

    font-weight:
        300;

    letter-spacing:
        -0.035em;
}

.swi-posture-continuum-lens {
    max-width:
        560px;

    margin:
        0
        0
        18px;

    color:
        var(--swi-warm-gray);

    font-size:
        14px;

    line-height:
        1.45;

    font-weight:
        300;
}

.swi-posture-continuum-ask {
    appearance:
        none;

    margin:
        0;

    padding:
        9px
        12px;

    border:
        1px solid
        rgba(241, 90, 36, 0.68);

    background:
        transparent;

    color:
        var(--swi-orange);

    font:
        inherit;

    font-size:
        12px;

    cursor:
        pointer;

    text-transform:
        lowercase;

    transition:
        background
        160ms
        ease,
        color
        160ms
        ease;
}

.swi-posture-continuum-ask:hover,
.swi-posture-continuum-ask:focus-visible {
    background:
        var(--swi-orange);

    color:
        #fff;
}


@media (max-width: 760px) {

    .swi-posture-continuum-points {
        grid-template-columns:
            repeat(
                5,
                minmax(
                    48px,
                    1fr
                )
            );
    }

    .swi-posture-continuum-icon {
        width:
            58px;

        height:
            72px;
    }

    .swi-posture-continuum-detail {
        grid-template-columns:
            1fr;

        gap:
            18px;
    }

    .swi-posture-continuum-figure {
        min-height:
            180px;
    }
}


@media (max-width: 520px) {

    .swi-posture-continuum-points {
        gap:
            3px;
    }

    .swi-posture-continuum-icon {
        width:
            48px;

        height:
            62px;

        padding:
            5px;
    }

    .swi-posture-continuum-label {
        font-size:
            9px;
    }

    .swi-posture-continuum-heading h2 {
        font-size:
            40px;
    }
}

/* =========================================================
   POSTURAL CONTINUUM V2
   reconstructed from Studio Weber / Shawn Prezi source
   ========================================================= */

.swi-guided-layout.swi-posture-continuum-active
.swi-guided-response-area {
    white-space: normal;
}

.swi-pc-v2 {
    width: 100%;
    margin: 0;
    padding: 0 10px 34px 0;
    box-sizing: border-box;
}

.swi-pc-v2-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 0 0 10px;
    margin-bottom: 18px;
    border-bottom: 1px solid var(--swi-rule);
}

.swi-pc-v2-kicker {
    color: var(--swi-orange);
    font-size: 10px;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.swi-pc-v2-heading {
    max-width: 820px;
    margin-bottom: 26px;
}

.swi-pc-v2-heading h2 {
    margin: 0 0 9px;
    color: var(--swi-ink);
    font-size: clamp(42px, 5vw, 76px);
    line-height: 0.9;
    font-weight: 300;
    letter-spacing: -0.06em;
}

.swi-pc-v2-heading p {
    max-width: 690px;
    margin: 0;
    color: var(--swi-warm-gray);
    font-size: 15px;
    line-height: 1.45;
    font-weight: 300;
}


/* Panorama */
.swi-pc-v2-panorama {
    margin-bottom: 28px;
    padding: 14px 0 18px;
    border-top: 1px solid var(--swi-rule);
    border-bottom: 1px solid var(--swi-rule);
}

.swi-pc-v2-states {
    display: grid;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 3px;
    align-items: end;
    min-height: 180px;
    margin-bottom: 10px;
}

.swi-pc-v2-state {
    appearance: none;
    position: relative;
    display: grid;
    grid-template-rows: 1fr auto;
    align-items: end;
    justify-items: center;
    min-width: 0;
    height: 180px;
    margin: 0;
    padding: 8px 3px 7px;
    border: 0;
    border-bottom: 1px solid rgba(33, 29, 27, 0.10);
    background: transparent;
    color: var(--swi-warm-gray);
    font: inherit;
    cursor: pointer;
    transition:
        background 180ms ease,
        color 180ms ease,
        border-color 180ms ease;
}

.swi-pc-v2-state:hover,
.swi-pc-v2-state:focus-visible {
    background: rgba(241, 90, 36, 0.025);
    border-bottom-color: rgba(241, 90, 36, 0.46);
}

.swi-pc-v2-state.is-active {
    color: var(--swi-orange);
    border-bottom-color: var(--swi-orange);
    background: rgba(241, 90, 36, 0.035);
}

.swi-pc-v2-state-figure {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    width: 100%;
    height: 142px;
    overflow: hidden;
}

.swi-pc-v2-state-figure img {
    display: block;
    max-width: 92%;
    max-height: 135px;
    object-fit: contain;
    opacity: 0.62;
    transform: scale(0.94);
    transform-origin: center bottom;
    transition:
        opacity 200ms ease,
        transform 240ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.swi-pc-v2-state:hover
.swi-pc-v2-state-figure img,
.swi-pc-v2-state.is-active
.swi-pc-v2-state-figure img {
    opacity: 1;
    transform: scale(1);
}

.swi-pc-v2-state-name {
    width: 100%;
    padding-top: 6px;
    font-size: 9px;
    line-height: 1.1;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.025em;
}


/* Six source continua */
.swi-pc-v2-metrics {
    display: grid;
    gap: 2px;
}

.swi-pc-v2-metric {
    display: grid;
    grid-template-columns: 145px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    min-height: 38px;
}

.swi-pc-v2-metric-label {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.swi-pc-v2-metric-label > span {
    font-size: 10px;
    line-height: 1;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.swi-pc-v2-metric-label small {
    color: var(--swi-warm-gray);
    font-size: 8px;
    line-height: 1.1;
    text-transform: lowercase;
}

.swi-pc-v2-metric-chart {
    position: relative;
    min-width: 0;
    height: 38px;
    background: rgba(33, 29, 27, 0.018);
}

.swi-pc-v2-metric-chart svg {
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
}

.swi-pc-v2-metric-baseline {
    stroke: rgba(33, 29, 27, 0.08);
    stroke-width: 1;
}

.swi-pc-v2-metric-marker {
    position: absolute;
    top: 3px;
    bottom: 3px;
    left: var(--swi-marker-x);
    width: 1px;
    background: var(--swi-marker-color);
    opacity: 0.55;
    transform: translateX(-50%);
    transition: left 260ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.swi-pc-v2-metric-marker::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 50%;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--swi-marker-color);
    transform: translate(-50%, -50%);
}


/* Selected state / deeper source layers */
.swi-pc-v2-detail {
    display: grid;
    grid-template-columns: minmax(280px, 0.95fr) minmax(0, 1.2fr);
    gap: clamp(30px, 4vw, 58px);
    align-items: start;
}

.swi-pc-v2-selected {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(100px, 0.65fr);
    gap: 14px;
    min-height: 280px;
}

.swi-pc-v2-selected-posture,
.swi-pc-v2-selected-load {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 280px;
    padding: 18px;
    box-sizing: border-box;
    background: #f6f5f3;
}

.swi-pc-v2-selected-posture img {
    display: block;
    max-width: 94%;
    max-height: 250px;
    object-fit: contain;
}

.swi-pc-v2-selected-load {
    position: relative;
    flex-direction: column;
    gap: 9px;
}

.swi-pc-v2-selected-load > span {
    color: var(--swi-warm-gray);
    font-size: 9px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.swi-pc-v2-selected-load img {
    display: block;
    max-width: 100%;
    max-height: 190px;
    object-fit: contain;
}

.swi-pc-v2-intelligence {
    min-width: 0;
}

.swi-pc-v2-current {
    display: block;
    margin-bottom: 22px;
    color: var(--swi-orange);
    font-size: clamp(30px, 3.2vw, 48px);
    line-height: 0.95;
    font-weight: 300;
    letter-spacing: -0.05em;
    text-transform: lowercase;
}

.swi-pc-v2-layer {
    margin-bottom: 20px;
    padding-top: 11px;
    border-top: 1px solid var(--swi-rule);
}

.swi-pc-v2-layer h3 {
    margin: 0 0 9px;
    color: var(--swi-warm-gray);
    font-size: 9px;
    line-height: 1;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.swi-pc-v2-work,
.swi-pc-v2-context {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.swi-pc-v2-work span,
.swi-pc-v2-context span {
    display: inline-flex;
    align-items: center;
    min-height: 25px;
    padding: 5px 8px;
    border: 1px solid rgba(33, 29, 27, 0.13);
    color: var(--swi-ink);
    background: #fff;
    font-size: 10px;
    line-height: 1.15;
    text-transform: lowercase;
}

.swi-pc-v2-work span {
    background: #5c5a58;
    border-color: #5c5a58;
    color: #fff;
}

.swi-posture-continuum-ask {
    appearance: none;
    margin-top: 8px;
    padding: 10px 0;
    border: 0;
    border-bottom: 1px solid rgba(241, 90, 36, 0.52);
    background: transparent;
    color: var(--swi-orange);
    font: inherit;
    font-size: 13px;
    line-height: 1.25;
    text-align: left;
    cursor: pointer;
}

.swi-posture-continuum-ask:hover,
.swi-posture-continuum-ask:focus-visible {
    border-bottom-color: var(--swi-orange);
}


/* Source-model note: keep the reconstruction intellectually honest. */
.swi-pc-v2::after {
    content: "continuum relationships reconstructed from Studio Weber source presentation; positions are relative, not measured values";
    display: block;
    margin-top: 24px;
    color: rgba(33, 29, 27, 0.34);
    font-size: 8px;
    line-height: 1.25;
    letter-spacing: 0.02em;
    text-transform: lowercase;
}


@media (max-width: 1100px) {

    .swi-pc-v2-state {
        height: 150px;
    }

    .swi-pc-v2-state-figure {
        height: 116px;
    }

    .swi-pc-v2-state-figure img {
        max-height: 110px;
    }

    .swi-pc-v2-metric {
        grid-template-columns: 118px minmax(0, 1fr);
    }
}


@media (max-width: 760px) {

    .swi-pc-v2-panorama {
        overflow-x: auto;
        overflow-y: hidden;
    }

    .swi-pc-v2-states,
    .swi-pc-v2-metrics {
        min-width: 760px;
    }

    .swi-pc-v2-detail {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .swi-pc-v2-selected {
        min-height: 220px;
    }

    .swi-pc-v2-selected-posture,
    .swi-pc-v2-selected-load {
        min-height: 220px;
    }
}


@media (max-width: 520px) {

    .swi-pc-v2 {
        padding-right: 0;
    }

    .swi-pc-v2-heading h2 {
        font-size: 42px;
    }

    .swi-pc-v2-selected {
        grid-template-columns: 1fr;
    }

    .swi-pc-v2-selected-load {
        min-height: 180px;
    }
}

/* =========================================================
   DESKTOP NAVIGATION WIDTH
   The left side is the index; the right side is the experience.
   Keep the browse/navigation column compact as the viewport grows
   so extra screen width belongs to Weber Intelligence.
   ========================================================= */

@media (min-width: 1001px) {

    .swi-guided-navigation,
    .swi-home-browse {
        flex:
            0
            0
            430px !important;

        width:
            430px !important;

        max-width:
            430px !important;

        min-width:
            430px !important;
    }

    .swi-guided-intelligence {
        flex:
            1
            1
            auto !important;

        width:
            auto !important;

        min-width:
            0 !important;
    }
}


/*
 * On modest desktop widths, allow the index to get a little narrower
 * rather than stealing space from the right-side experience.
 */
@media (min-width: 1001px) and (max-width: 1220px) {

    .swi-guided-navigation,
    .swi-home-browse {
        flex-basis:
            390px !important;

        width:
            390px !important;

        max-width:
            390px !important;

        min-width:
            390px !important;
    }
}

/* =========================================================
   SCRIPTED NORTH STAR PHILOSOPHY
   WHY WORK WITH US? → PRACTICE + NORTH STAR
   ========================================================= */

.swi-guided-layout.swi-north-star-active
.swi-guided-response-area {
    white-space:
        normal;
}

.swi-north-star {
    width:
        100%;

    max-width:
        920px;

    margin:
        0;

    padding:
        0
        12px
        36px
        0;

    box-sizing:
        border-box;
}

.swi-north-star-toolbar {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        20px;

    margin:
        0
        0
        14px;

    padding:
        0
        0
        9px;

    border-bottom:
        1px solid
        var(--swi-rule);
}

.swi-north-star-kicker {
    color:
        var(--swi-orange);

    font-size:
        10px;

    line-height:
        1;

    letter-spacing:
        0.09em;

    text-transform:
        uppercase;
}

.swi-north-star-back {
    appearance:
        none;

    margin:
        0;

    padding:
        0;

    border:
        0;

    background:
        transparent;

    color:
        var(--swi-warm-gray);

    font:
        inherit;

    font-size:
        10px;

    cursor:
        pointer;

    text-transform:
        lowercase;
}

.swi-north-star-back:hover,
.swi-north-star-back:focus-visible {
    color:
        var(--swi-orange);
}

.swi-north-star-image {
    width:
        100%;

    height:
        clamp(
            220px,
            30vw,
            390px
        );

    margin:
        0
        0
        28px;

    overflow:
        hidden;

    background:
        #eeeae7;
}

.swi-north-star-image img {
    display:
        block;

    width:
        100%;

    height:
        100%;

    object-fit:
        cover;

    object-position:
        center
        48%;

    filter:
        grayscale(
            8%
        );
}

.swi-north-star-heading {
    max-width:
        820px;

    margin:
        0
        0
        30px;
}

.swi-north-star-heading h2 {
    margin:
        0;

    color:
        var(--swi-ink);

    font-size:
        clamp(
            40px,
            4.5vw,
            68px
        );

    line-height:
        0.92;

    font-weight:
        300;

    letter-spacing:
        -0.055em;
}

.swi-north-star-section {
    max-width:
        790px;

    margin:
        0
        0
        30px;

    padding:
        17px
        0
        0;

    border-top:
        1px solid
        var(--swi-rule);
}

.swi-north-star-label {
    display:
        block;

    margin:
        0
        0
        13px;

    color:
        var(--swi-orange);

    font-size:
        10px;

    line-height:
        1;

    letter-spacing:
        0.08em;

    text-transform:
        uppercase;
}

.swi-north-star-section p {
    max-width:
        760px;

    margin:
        0
        0
        12px;

    color:
        var(--swi-ink);

    font-size:
        16px;

    line-height:
        1.52;

    font-weight:
        300;
}

.swi-north-star-lead {
    max-width:
        820px !important;

    font-size:
        clamp(
            23px,
            2.2vw,
            34px
        ) !important;

    line-height:
        1.08 !important;

    letter-spacing:
        -0.035em;
}

.swi-north-star-lead strong,
.swi-north-star-section p strong {
    font-weight:
        450;
}

.swi-north-star-practices {
    display:
        grid;

    grid-template-columns:
        repeat(
            2,
            minmax(
                0,
                1fr
            )
        );

    gap:
        18px
        28px;
}

.swi-north-star-practices > div {
    padding:
        0
        0
        12px;

    border-bottom:
        1px solid
        rgba(
            33,
            29,
            27,
            0.08
        );
}

.swi-north-star-practices h3,
.swi-north-star-subhead {
    margin:
        0
        0
        5px;

    color:
        var(--swi-ink);

    font-size:
        20px;

    line-height:
        1.05;

    font-weight:
        300;

    letter-spacing:
        -0.025em;
}

.swi-north-star-practices p {
    margin:
        0;

    color:
        var(--swi-warm-gray);

    font-size:
        13px;

    line-height:
        1.35;
}

.swi-north-star-subhead {
    margin-bottom:
        14px;

    font-size:
        clamp(
            26px,
            2.5vw,
            38px
        );
}

.swi-north-star-emphasis {
    margin-top:
        18px !important;

    color:
        var(--swi-orange) !important;

    font-size:
        18px !important;
}

.swi-north-star-ask {
    appearance:
        none;

    display:
        inline-block;

    margin:
        0;

    padding:
        10px
        0;

    border:
        0;

    border-bottom:
        1px solid
        rgba(
            241,
            90,
            36,
            0.55
        );

    background:
        transparent;

    color:
        var(--swi-orange);

    font:
        inherit;

    font-size:
        13px;

    line-height:
        1.25;

    cursor:
        pointer;

    text-align:
        left;
}

.swi-north-star-ask:hover,
.swi-north-star-ask:focus-visible {
    border-bottom-color:
        var(--swi-orange);
}


@media (max-width: 640px) {

    .swi-north-star {
        padding-right:
            0;
    }

    .swi-north-star-image {
        height:
            230px;
    }

    .swi-north-star-practices {
        grid-template-columns:
            1fr;
    }

    .swi-north-star-lead {
        font-size:
            24px !important;
    }
}

/* =========================================================
   SCRIPTED WHO WE ARE
   WHO ARE WE? → TEAM + EDITORIAL STUDIO INTRO
   ========================================================= */

.swi-guided-layout.swi-who-editorial-active
.swi-guided-response-area {
    white-space:
        normal;
}

.swi-who-editorial {
    width:
        100%;

    max-width:
        920px;

    margin:
        0;

    padding:
        0
        12px
        36px
        0;

    box-sizing:
        border-box;
}

.swi-who-editorial-toolbar {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        20px;

    margin:
        0
        0
        14px;

    padding:
        0
        0
        9px;

    border-bottom:
        1px solid
        var(--swi-rule);
}

.swi-who-editorial-kicker {
    color:
        var(--swi-orange);

    font-size:
        10px;

    line-height:
        1;

    letter-spacing:
        0.09em;

    text-transform:
        uppercase;
}

.swi-who-editorial-back {
    appearance:
        none;

    margin:
        0;

    padding:
        0;

    border:
        0;

    background:
        transparent;

    color:
        var(--swi-warm-gray);

    font:
        inherit;

    font-size:
        10px;

    cursor:
        pointer;

    text-transform:
        lowercase;
}

.swi-who-editorial-back:hover,
.swi-who-editorial-back:focus-visible {
    color:
        var(--swi-orange);
}


/*
 * IMPORTANT:
 * The group image is shown at its natural aspect ratio.
 * No object-fit cover, no fixed-height crop. This preserves
 * Jeff's full head and the entire team composition.
 */
.swi-who-editorial-image {
    width:
        100%;

    margin:
        0
        0
        28px;

    overflow:
        visible;

    background:
        #f1efed;
}

.swi-who-editorial-image img {
    display:
        block;

    width:
        100%;

    height:
        auto;

    max-height:
        none;

    object-fit:
        contain;

    object-position:
        center
        top;
}

.swi-who-editorial-heading {
    max-width:
        820px;

    margin:
        0
        0
        28px;
}

.swi-who-editorial-heading h2 {
    margin:
        0;

    color:
        var(--swi-ink);

    font-size:
        clamp(
            44px,
            4.8vw,
            72px
        );

    line-height:
        0.92;

    font-weight:
        300;

    letter-spacing:
        -0.055em;
}

.swi-who-editorial-section {
    max-width:
        790px;

    margin:
        0
        0
        26px;

    padding:
        17px
        0
        0;

    border-top:
        1px solid
        var(--swi-rule);
}

.swi-who-editorial-section p {
    max-width:
        760px;

    margin:
        0
        0
        13px;

    color:
        var(--swi-ink);

    font-size:
        16px;

    line-height:
        1.52;

    font-weight:
        300;
}

.swi-who-editorial-lead {
    max-width:
        820px !important;

    font-size:
        clamp(
            23px,
            2.2vw,
            34px
        ) !important;

    line-height:
        1.08 !important;

    letter-spacing:
        -0.035em;
}

.swi-who-editorial-ask {
    appearance:
        none;

    display:
        inline-block;

    margin:
        0;

    padding:
        10px
        0;

    border:
        0;

    border-bottom:
        1px solid
        rgba(
            241,
            90,
            36,
            0.55
        );

    background:
        transparent;

    color:
        var(--swi-orange);

    font:
        inherit;

    font-size:
        13px;

    line-height:
        1.25;

    cursor:
        pointer;

    text-align:
        left;
}

.swi-who-editorial-ask:hover,
.swi-who-editorial-ask:focus-visible {
    border-bottom-color:
        var(--swi-orange);
}


@media (max-width: 640px) {

    .swi-who-editorial {
        padding-right:
            0;
    }

    .swi-who-editorial-lead {
        font-size:
            24px !important;
    }
}

/* =========================================================
   LEFT INDEX — READABILITY REFINEMENT
   Keep it compact, but not so compressed that the navigation
   labels lose legibility.
   ========================================================= */

@media (min-width: 1221px) {

    .swi-guided-navigation,
    .swi-home-browse {
        flex:
            0
            0
            460px !important;

        width:
            460px !important;

        max-width:
            460px !important;

        min-width:
            460px !important;
    }
}

@media (min-width: 1001px) and (max-width: 1220px) {

    .swi-guided-navigation,
    .swi-home-browse {
        flex:
            0
            0
            420px !important;

        width:
            420px !important;

        max-width:
            420px !important;

        min-width:
            420px !important;
    }
}


/*
 * Stronger lower-image contrast for every photographic navigation tile.
 * This keeps the small fixed index readable without turning the cards
 * into heavy black boxes.
 */
.swi-home-orientation-card
.swi-home-story-shade,
.swi-home-team-card
.swi-home-story-shade,
.swi-home-story-card
.swi-home-story-shade {
    background:
        linear-gradient(
            to bottom,
            rgba(0, 0, 0, 0.00) 28%,
            rgba(0, 0, 0, 0.16) 56%,
            rgba(0, 0, 0, 0.66) 100%
        ) !important;
}


/* Start-here labels: compact, but crisp. */
.swi-home-orientation-title {
    font-size:
        15px !important;

    line-height:
        0.96 !important;

    font-weight:
        450 !important;

    letter-spacing:
        -0.025em !important;

    text-shadow:
        0
        1px
        2px
        rgba(
            0,
            0,
            0,
            0.28
        );
}


/* Team / Story titles need the same legibility at fixed nav sizes. */
.swi-home-team-card
.swi-home-story-title,
.swi-home-story-card
.swi-home-story-title {
    font-size:
        14px !important;

    line-height:
        0.98 !important;

    font-weight:
        430 !important;

    text-shadow:
        0
        1px
        2px
        rgba(
            0,
            0,
            0,
            0.30
        );
}


/* Do not let long team names collide with the arrow. */
.swi-home-team-card
.swi-home-story-title {
    max-width:
        calc(
            100% -
            20px
        ) !important;
}

/* =========================================================
   HOME INDEX — BOTTOM-ANCHORED CARD COPY
   Stories, Team, and Practice now follow the same visual rule
   as the three Start Here cards: the identifying text lives
   at the bottom of the tile.
   ========================================================= */

/* Stories + Team: number at top-left, title at bottom-left. */
.swi-home-story-card
.swi-home-story-copy {
    position:
        absolute !important;

    inset:
        0 !important;

    z-index:
        2 !important;

    display:
        block !important;

    width:
        100% !important;

    height:
        100% !important;

    padding:
        0 !important;

    pointer-events:
        none;
}

.swi-home-story-card
.swi-home-story-number {
    position:
        absolute !important;

    top:
        10px !important;

    left:
        11px !important;

    padding:
        0 !important;

    color:
        rgba(
            255,
            255,
            255,
            0.78
        ) !important;
}

.swi-home-story-card
.swi-home-story-title {
    position:
        absolute !important;

    left:
        11px !important;

    right:
        30px !important;

    bottom:
        10px !important;

    max-width:
        none !important;

    margin:
        0 !important;

    color:
        #fff !important;

    line-height:
        0.96 !important;
}

/*
 * Keep the arrow tucked into the same lower zone, but separate
 * from names/titles so longer copy has room to breathe.
 */
.swi-home-story-card
.swi-home-card-arrow {
    right:
        10px !important;

    bottom:
        9px !important;

    z-index:
        3 !important;
}


/* Practice: number remains top-left; title + supporting line sit low. */
.swi-home-practice-card {
    justify-content:
        flex-start !important;
}

.swi-home-practice-card
.swi-practice-card-number {
    position:
        absolute !important;

    top:
        10px !important;

    left:
        11px !important;
}

.swi-home-practice-card
.swi-practice-card-body {
    position:
        absolute !important;

    left:
        11px !important;

    right:
        30px !important;

    bottom:
        10px !important;

    z-index:
        2 !important;

    display:
        grid !important;

    gap:
        3px !important;

    max-width:
        none !important;
}

.swi-home-practice-card
.swi-practice-card-title {
    margin:
        0 !important;

    line-height:
        0.96 !important;
}

.swi-home-practice-card
.swi-practice-card-line {
    max-width:
        100% !important;

    line-height:
        1.15 !important;
}

.swi-home-practice-card
.swi-home-card-arrow {
    right:
        10px !important;

    bottom:
        9px !important;
}


/*
 * The Human Interface Continuum line is intentionally a little
 * longer than the other Practice descriptors; give it room while
 * keeping the compact left-side index.
 */
.swi-home-practice-card[data-swi-practice="posture-continuum"]
.swi-practice-card-line {
    max-width:
        92% !important;
}


/* =========================================================
   SCRIPTED PRACTICE EDITORIALS
   MASTER TRADITION / OPEN MODE / CURIOUS PLAY / BUILD TO LEARN
   TRUTH + BEAUTY / WEBER PRINCIPLES / ELEVATE HUMAN EXPERIENCE
   ========================================================= */

.swi-practice-editorial {
    width: 100%;
    max-width: 880px;
    margin: 0;
    padding: 0 0 40px;
    box-sizing: border-box;
    white-space: normal;
    color: var(--swi-ink, #211d1b);
}

.swi-practice-editorial-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin: 0 0 34px;
    padding: 0 0 12px;
    border-bottom: 1px solid var(--swi-rule, rgba(33,29,27,.14));
}

.swi-practice-editorial-kicker,
.swi-practice-editorial-label {
    color: var(--swi-orange, #f15a24);
    font-size: 11px;
    line-height: 1;
    letter-spacing: .075em;
    text-transform: uppercase;
}

.swi-practice-editorial-back {
    appearance: none;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--swi-warm-gray, #77716d);
    font: inherit;
    font-size: 12px;
    font-weight: 300;
    cursor: pointer;
    text-transform: lowercase;
}

.swi-practice-editorial-back:hover {
    color: var(--swi-orange, #f15a24);
}

.swi-practice-editorial-heading {
    max-width: 760px;
    margin: 0 0 44px;
}

.swi-practice-editorial-heading h2 {
    margin: 0 0 14px;
    color: var(--swi-ink, #211d1b);
    font-size: clamp(46px, 5.2vw, 78px);
    line-height: .92;
    font-weight: 300;
    letter-spacing: -.055em;
}

.swi-practice-editorial-heading p {
    max-width: 650px;
    margin: 0;
    color: var(--swi-warm-gray, #77716d);
    font-size: clamp(22px, 2.1vw, 31px);
    line-height: 1.08;
    font-weight: 300;
    letter-spacing: -.03em;
}

.swi-practice-editorial-section {
    max-width: 720px;
    margin: 0;
    padding: 28px 0 30px;
    border-top: 1px solid var(--swi-rule, rgba(33,29,27,.14));
}

.swi-practice-editorial-section h3 {
    max-width: 620px;
    margin: 10px 0 12px;
    color: var(--swi-ink, #211d1b);
    font-size: clamp(25px, 2.4vw, 36px);
    line-height: 1.02;
    font-weight: 300;
    letter-spacing: -.04em;
}

.swi-practice-editorial-section > p {
    max-width: 650px;
    margin: 0;
    color: var(--swi-ink, #211d1b);
    font-size: 17px;
    line-height: 1.55;
    font-weight: 300;
}

.swi-practice-editorial-emphasis {
    max-width: 690px;
    margin: 8px 0 34px;
    padding: 28px 0 0;
    border-top: 1px solid var(--swi-rule, rgba(33,29,27,.14));
    color: var(--swi-ink, #211d1b);
    font-size: clamp(25px, 2.4vw, 37px);
    line-height: 1.08;
    font-weight: 300;
    letter-spacing: -.035em;
}

.swi-practice-editorial-ask {
    appearance: none;
    margin: 0;
    padding: 11px 14px;
    border: 1px solid rgba(241,90,36,.68);
    background: transparent;
    color: var(--swi-orange, #f15a24);
    font: inherit;
    font-size: 12px;
    font-weight: 300;
    cursor: pointer;
    text-transform: lowercase;
}

.swi-practice-editorial-ask:hover,
.swi-practice-editorial-ask:focus-visible {
    background: var(--swi-orange, #f15a24);
    color: #fff;
}

.swi-practice-editorial-principles {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    margin-top: 12px;
}

.swi-practice-editorial-principle {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 12px;
    padding: 17px 0;
    border-top: 1px solid rgba(33,29,27,.09);
}

.swi-practice-editorial-principle:first-child {
    border-top: 0;
}

.swi-practice-editorial-principle > span {
    padding-top: 4px;
    color: var(--swi-orange, #f15a24);
    font-size: 10px;
    letter-spacing: .08em;
}

.swi-practice-editorial-principle h3 {
    margin: 0 0 5px;
    font-size: 23px;
    line-height: 1.05;
}

.swi-practice-editorial-principle p {
    max-width: 590px;
    margin: 0;
    color: var(--swi-warm-gray, #77716d);
    font-size: 14px;
    line-height: 1.45;
    font-weight: 300;
}

@media (max-width: 640px) {
    .swi-practice-editorial {
        padding-bottom: 28px;
    }

    .swi-practice-editorial-toolbar {
        margin-bottom: 26px;
    }

    .swi-practice-editorial-heading {
        margin-bottom: 34px;
    }

    .swi-practice-editorial-heading h2 {
        font-size: 46px;
    }

    .swi-practice-editorial-heading p {
        font-size: 22px;
    }

    .swi-practice-editorial-section {
        padding: 24px 0 26px;
    }

    .swi-practice-editorial-section > p {
        font-size: 16px;
    }
}

/* =========================================================
   ARTS OF DAILY LIVING — SCRIPTED PRACTICE VIEW
   ========================================================= */

.swi-guided-layout.swi-arts-daily-living-active .swi-guided-response-area {
    white-space: normal;
}

.swi-arts-daily-living {
    width: 100%;
    max-width: 920px;
    margin: 0;
    padding: 0 12px 36px 0;
    box-sizing: border-box;
}

.swi-adl-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin: 0 0 14px;
    padding: 0 0 9px;
    border-bottom: 1px solid var(--swi-rule);
}

.swi-adl-kicker,
.swi-adl-label {
    color: var(--swi-orange);
    font-size: 10px;
    line-height: 1;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.swi-adl-back {
    appearance: none;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--swi-warm-gray);
    font: inherit;
    font-size: 10px;
    cursor: pointer;
    text-transform: lowercase;
}

.swi-adl-back:hover,
.swi-adl-back:focus-visible {
    color: var(--swi-orange);
}

.swi-adl-hero {
    width: 100%;
    height: clamp(240px, 32vw, 410px);
    margin: 0 0 30px;
    overflow: hidden;
    background: #eeeae7;
}

.swi-adl-hero img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    filter: grayscale(7%);
}

.swi-adl-heading {
    max-width: 840px;
    margin: 0 0 34px;
}

.swi-adl-heading h2 {
    margin: 0 0 18px;
    color: var(--swi-ink);
    font-size: clamp(44px, 5vw, 76px);
    line-height: 0.9;
    font-weight: 300;
    letter-spacing: -0.06em;
}

.swi-adl-heading > p {
    max-width: 760px;
    margin: 0;
    color: var(--swi-warm-gray);
    font-size: 18px;
    line-height: 1.48;
    font-weight: 300;
}

.swi-adl-section {
    max-width: 790px;
    margin: 0 0 34px;
    padding: 18px 0 0;
    border-top: 1px solid var(--swi-rule);
}

.swi-adl-label {
    display: block;
    margin: 0 0 14px;
}

.swi-adl-section p {
    max-width: 760px;
    margin: 0 0 13px;
    color: var(--swi-ink);
    font-size: 16px;
    line-height: 1.54;
    font-weight: 300;
}

.swi-adl-lead {
    max-width: 830px !important;
    font-size: clamp(24px, 2.35vw, 36px) !important;
    line-height: 1.08 !important;
    letter-spacing: -0.038em;
}

.swi-adl-points {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 30px;
}

.swi-adl-points > div {
    padding: 0 0 14px;
    border-bottom: 1px solid rgba(33, 29, 27, 0.08);
}

.swi-adl-points h3 {
    margin: 0 0 6px;
    color: var(--swi-ink);
    font-size: 21px;
    line-height: 1.05;
    font-weight: 300;
    letter-spacing: -0.03em;
}

.swi-adl-points p {
    margin: 0;
    color: var(--swi-warm-gray);
    font-size: 14px;
    line-height: 1.42;
}

.swi-adl-quote {
    max-width: 790px;
    margin: 6px 0 38px;
    padding: 26px 0 27px;
    border-top: 1px solid var(--swi-rule);
    border-bottom: 1px solid var(--swi-rule);
}

.swi-adl-quote p {
    max-width: 760px;
    margin: 0 0 10px;
    color: var(--swi-ink);
    font-size: clamp(28px, 3.1vw, 46px);
    line-height: 1.03;
    font-weight: 300;
    letter-spacing: -0.045em;
}

.swi-adl-quote cite {
    color: var(--swi-orange);
    font-size: 12px;
    line-height: 1.2;
    font-style: normal;
    letter-spacing: 0.02em;
}

.swi-adl-big {
    max-width: 820px !important;
    margin-bottom: 18px !important;
    font-size: clamp(25px, 2.5vw, 38px) !important;
    line-height: 1.08 !important;
    letter-spacing: -0.04em;
}

.swi-adl-closing {
    max-width: 790px;
    margin: 2px 0 28px;
    color: var(--swi-orange);
    font-size: clamp(27px, 2.8vw, 42px);
    line-height: 1;
    font-weight: 300;
    letter-spacing: -0.045em;
}

.swi-adl-ask {
    appearance: none;
    display: inline-block;
    margin: 0;
    padding: 10px 0;
    border: 0;
    border-bottom: 1px solid rgba(241, 90, 36, 0.55);
    background: transparent;
    color: var(--swi-orange);
    font: inherit;
    font-size: 13px;
    line-height: 1.25;
    cursor: pointer;
    text-align: left;
}

.swi-adl-ask:hover,
.swi-adl-ask:focus-visible {
    border-bottom-color: var(--swi-orange);
}

@media (max-width: 640px) {
    .swi-arts-daily-living { padding-right: 0; }
    .swi-adl-hero { height: 240px; }
    .swi-adl-heading h2 { font-size: 46px; }
    .swi-adl-lead { font-size: 24px !important; }
    .swi-adl-points { grid-template-columns: 1fr; gap: 16px; }
    .swi-adl-quote p { font-size: 30px; }
}

/* =========================================================
   SCRIPTED WHAT WE DO
   WHAT DO WE DO? → EDITORIAL INDUSTRIAL DESIGN INTRO
   ========================================================= */

.swi-guided-layout.swi-what-editorial-active
.swi-guided-response-area {
    white-space: normal;
}

.swi-what-editorial {
    width: 100%;
    max-width: 920px;
    margin: 0;
    padding: 0 12px 38px 0;
    box-sizing: border-box;
}

.swi-what-editorial-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin: 0 0 14px;
    padding: 0 0 9px;
    border-bottom: 1px solid var(--swi-rule);
}

.swi-what-editorial-kicker,
.swi-what-editorial-label {
    color: var(--swi-orange);
    font-size: 10px;
    line-height: 1;
    letter-spacing: 0.085em;
    text-transform: uppercase;
}

.swi-what-editorial-back {
    appearance: none;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--swi-warm-gray);
    font: inherit;
    font-size: 10px;
    cursor: pointer;
    text-transform: lowercase;
}

.swi-what-editorial-back:hover,
.swi-what-editorial-back:focus-visible {
    color: var(--swi-orange);
}

/*
 * Natural aspect ratio: no fixed-height cover crop.
 * The image scales to the available width without cutting people off.
 */
.swi-what-editorial-image {
    width: 100%;
    margin: 0 0 28px;
    overflow: visible;
    background: #f1efed;
}

.swi-what-editorial-image img {
    display: block;
    width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
}

.swi-what-editorial-heading {
    max-width: 820px;
    margin: 0 0 34px;
}

.swi-what-editorial-heading h2 {
    margin: 0 0 12px;
    color: var(--swi-ink);
    font-size: clamp(44px, 4.8vw, 72px);
    line-height: 0.92;
    font-weight: 300;
    letter-spacing: -0.055em;
}

.swi-what-editorial-heading > p {
    max-width: 720px;
    margin: 0;
    color: var(--swi-warm-gray);
    font-size: clamp(23px, 2.2vw, 34px);
    line-height: 1.08;
    font-weight: 300;
    letter-spacing: -0.035em;
}

.swi-what-editorial-section {
    max-width: 790px;
    margin: 0;
    padding: 20px 0 28px;
    border-top: 1px solid var(--swi-rule);
}

.swi-what-editorial-section h3 {
    max-width: 680px;
    margin: 10px 0 9px;
    color: var(--swi-ink);
    font-size: clamp(25px, 2.35vw, 36px);
    line-height: 1.03;
    font-weight: 300;
    letter-spacing: -0.035em;
}

.swi-what-editorial-section p {
    max-width: 730px;
    margin: 0;
    color: var(--swi-ink);
    font-size: 16px;
    line-height: 1.52;
    font-weight: 300;
}

.swi-what-editorial-lead {
    max-width: 820px !important;
    margin-top: 12px !important;
    font-size: clamp(22px, 2vw, 31px) !important;
    line-height: 1.12 !important;
    letter-spacing: -0.03em;
}

.swi-what-editorial-emphasis {
    max-width: 720px;
    margin: 2px 0 30px;
    padding: 25px 0 0;
    border-top: 1px solid var(--swi-rule);
    color: var(--swi-orange);
    font-size: clamp(23px, 2.2vw, 34px);
    line-height: 1.08;
    font-weight: 300;
    letter-spacing: -0.035em;
}

.swi-what-editorial-ask {
    appearance: none;
    display: inline-block;
    margin: 0;
    padding: 10px 0;
    border: 0;
    border-bottom: 1px solid rgba(241, 90, 36, 0.55);
    background: transparent;
    color: var(--swi-orange);
    font: inherit;
    font-size: 13px;
    line-height: 1.25;
    cursor: pointer;
    text-align: left;
}

.swi-what-editorial-ask:hover,
.swi-what-editorial-ask:focus-visible {
    border-bottom-color: var(--swi-orange);
}

@media (max-width: 640px) {
    .swi-what-editorial {
        padding-right: 0;
    }

    .swi-what-editorial-heading > p,
    .swi-what-editorial-lead {
        font-size: 23px !important;
    }
}

/* =========================================================
   OPEN MODE DIAGRAM — RESPONSIVE FIT
   Keep the full Bauhaus diagram visible as the right column changes.
   ========================================================= */

.swi-practice-editorial-image {
    width: 100%;
    max-width: 100%;
    height: auto;
    margin: 14px 0 28px;
    padding: 0;
    overflow: visible;
    box-sizing: border-box;
}

.swi-practice-editorial-image img {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center top !important;
}

/*
 * Open Mode's diagram is information-dense and should never behave
 * like a cropped photograph. Its full canvas always scales with the
 * available intelligence-column width.
 */
.swi-guided-layout.swi-practice-editorial-active
.swi-practice-editorial-image {
    overflow: visible !important;
}

.swi-guided-layout.swi-practice-editorial-active
.swi-practice-editorial-image img {
    aspect-ratio: auto !important;
}

/* A little more breathing room when the right column gets narrower. */
@media (max-width: 1350px) and (min-width: 1001px) {
    .swi-practice-editorial-image {
        margin-bottom: 22px;
    }

    .swi-practice-editorial {
        max-width: 100%;
        padding-right: 4px;
    }
}

@media (max-width: 1000px) {
    .swi-practice-editorial-image {
        width: 100%;
        margin: 10px 0 22px;
    }

    .swi-practice-editorial-image img {
        width: 100% !important;
        height: auto !important;
    }
}

/* =========================================================
   HOMEPAGE — CARD TITLE SINGLE-LINE FIT 24
   Keep browse-card titles on one line whenever the available
   card width can reasonably accommodate them.
   ========================================================= */

/*
 * Desktop + tablet:
 * prevent premature wrapping and let the type scale gently
 * with the viewport/card width.
 */
.swi-home-orientation-title,
.swi-home-story-title {
    max-width: none !important;
    width: auto !important;

    white-space: nowrap !important;
    overflow: visible !important;

    font-size:
        clamp(
            11px,
            1.08vw,
            16px
        ) !important;

    line-height: 1 !important;
    letter-spacing: -0.035em !important;
}

/*
 * Leave enough room for the arrow on orientation cards.
 */
.swi-home-orientation-copy {
    padding-right: 30px !important;
}

/*
 * Story titles sit in the second grid column. Allow that column
 * to use all of its available width rather than the older
 * 145px title cap.
 */
.swi-home-story-copy {
    grid-template-columns:
        22px
        minmax(0, 1fr) !important;
}

.swi-home-story-title {
    max-width: none !important;
    min-width: 0 !important;
}

/*
 * On genuinely narrow phone cards, wrapping is preferable to
 * shrinking the labels into unreadably small type.
 */
@media (max-width: 640px) {

    .swi-home-orientation-title,
    .swi-home-story-title {
        white-space: normal !important;

        font-size: 15px !important;
        line-height: 1 !important;
    }
}

/* =========================================================
   MOBILE EXPERIMENT 01 — INTELLIGENCE FIRST
   Post-film hierarchy: Intelligence / query first, browse cards second.
   Desktop is untouched.
   ========================================================= */

@media (max-width: 640px) {

    /*
     * The page remains a natural vertical mobile document, but the
     * Intelligence experience becomes the first destination after
     * the intro film.
     */
    .swi-guided-layout {
        display: flex !important;
        flex-direction: column !important;
    }

    .swi-guided-intelligence {
        order: 1 !important;
    }

    .swi-guided-navigation {
        order: 2 !important;
    }

    /*
     * Give the browse index a little separation once it moves below
     * the query/intelligence area.
     */
    .swi-guided-navigation {
        margin-top: 18px !important;
        padding-top: 18px !important;

        border-top:
            1px solid
            rgba(33, 29, 27, 0.10);
    }
}

/* =========================================================
   WEBER INTELLIGENCE — EDITORIAL ANSWER TYPOGRAPHY
   ========================================================= */

.swi-guided-response-area .swi-editorial-answer {
    width: 100%;
    max-width: 900px;
    margin: 0;
    padding: 8px 0 26px;
    color: var(--swi-ink, #211d1b);
    white-space: normal;
}

.swi-guided-response-area .swi-editorial-answer h2 {
    margin: 0 0 24px;
    max-width: 820px;
    font-size: clamp(48px, 5.4vw, 82px);
    line-height: .92;
    font-weight: 700;
    letter-spacing: -.055em;
    text-wrap: balance;
}

.swi-guided-response-area .swi-editorial-answer h3 {
    margin: 42px 0 10px;
    padding-top: 12px;
    border-top: 1px solid rgba(33, 29, 27, .14);
    font-size: clamp(24px, 2.5vw, 38px);
    line-height: 1;
    font-weight: 700;
    letter-spacing: -.035em;
}

.swi-guided-response-area .swi-editorial-answer h4 {
    margin: 30px 0 8px;
    font-size: 13px;
    line-height: 1.1;
    font-weight: 700;
    letter-spacing: .075em;
    text-transform: uppercase;
    color: var(--swi-orange, #f15a24);
}

.swi-guided-response-area .swi-editorial-answer p {
    max-width: 760px;
    margin: 0 0 18px;
    font-size: clamp(18px, 1.65vw, 25px);
    line-height: 1.35;
    font-weight: 300;
    letter-spacing: -.018em;
}

.swi-guided-response-area .swi-editorial-answer > p:first-of-type {
    max-width: 780px;
    margin-bottom: 28px;
    font-size: clamp(24px, 2.5vw, 38px);
    line-height: 1.12;
    font-weight: 400;
    letter-spacing: -.035em;
}

.swi-guided-response-area .swi-editorial-answer strong {
    font-weight: 700;
}

.swi-guided-response-area .swi-editorial-answer em {
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 400;
}

.swi-guided-response-area .swi-editorial-answer ul,
.swi-guided-response-area .swi-editorial-answer ol {
    max-width: 730px;
    margin: 10px 0 26px;
    padding-left: 1.25em;
}

.swi-guided-response-area .swi-editorial-answer li {
    margin: 0 0 8px;
    font-size: clamp(17px, 1.45vw, 22px);
    line-height: 1.4;
    font-weight: 300;
}

@media (max-width: 782px) {
    .swi-guided-response-area .swi-editorial-answer h2 {
        font-size: clamp(40px, 12vw, 62px);
    }

    .swi-guided-response-area .swi-editorial-answer h3 {
        font-size: clamp(24px, 7vw, 34px);
    }

    .swi-guided-response-area .swi-editorial-answer p,
    .swi-guided-response-area .swi-editorial-answer > p:first-of-type {
        font-size: 19px;
    }
}



/* =========================================================
   STORIES — FINAL TITLE WRAP OVERRIDE
   The older "CARD TITLE SINGLE-LINE FIT 24" block appears later
   in this stylesheet and was forcing story titles back to nowrap.
   Keep orientation-card labels compact, but Stories must wrap.
   ========================================================= */

.swi-home-story-copy {
    grid-template-columns:
        22px
        minmax(0, 1fr) !important;

    align-content:
        end !important;

    padding:
        10px
        12px
        11px !important;
}

.swi-home-story-title {
    display:
        block !important;

    width:
        100% !important;

    max-width:
        none !important;

    min-width:
        0 !important;

    padding-right:
        18px !important;

    white-space:
        normal !important;

    overflow:
        visible !important;

    text-overflow:
        clip !important;

    overflow-wrap:
        break-word !important;

    word-break:
        normal !important;

    font-size:
        clamp(
            13px,
            1.12vw,
            16px
        ) !important;

    line-height:
        0.96 !important;
}

/*
 * The card itself remains fixed-size, but the title is now allowed
 * to occupy two or three lines above the arrow.
 */
.swi-home-story-card
.swi-home-card-arrow {
    right:
        9px !important;

    bottom:
        8px !important;
}



/* =========================================================
   COMPACT LEFT INDEX — 2 ACROSS, ORIGINAL CARD SCALE
   TEST PASS
   Keep the cards approximately the same physical size as the
   previous 3-across layout; shrink the left column instead of
   enlarging the cards. The reclaimed width goes to Intelligence.
   ========================================================= */

@media (min-width: 1001px) {

    /*
     * Previous desktop browse width was ~430px with 3 cards across.
     * At 2 across, ~310px preserves nearly the same individual card width.
     */
    .swi-guided-navigation,
    .swi-home-browse {
        flex:
            0
            0
            310px !important;

        width:
            310px !important;

        max-width:
            310px !important;

        min-width:
            310px !important;
    }

    /*
     * Start Here:
     * row 1 = two cards
     * row 2 = one card
     *
     * Stories / Team / Practice:
     * two cards per row.
     */
    .swi-home-orientation,
    .swi-home-story-grid,
    .swi-home-story-grid.is-team-mode,
    .swi-home-story-grid.is-practice-mode {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            ) !important;

        gap:
            7px !important;
    }

    /*
     * Restore the established card proportions. Do NOT make them
     * taller or larger just because there are only two per row.
     */
    .swi-home-orientation-card,
    .swi-home-story-card {
        aspect-ratio:
            1.42 / 1 !important;

        width:
            100% !important;
    }

    .swi-home-practice-card {
        aspect-ratio:
            1 / 0.92 !important;
    }

    /*
     * Keep the third Start Here card in the first column of row two.
     * Explicit placement prevents any later auto-flow rule from
     * stretching or centering it.
     */
    .swi-home-orientation
    > :nth-child(3) {
        grid-column:
            1 !important;
    }

    /*
     * The right side receives all reclaimed width.
     */
    .swi-guided-intelligence {
        flex:
            1
            1
            auto !important;

        width:
            auto !important;

        min-width:
            0 !important;
    }
}


/*
 * Slightly tighter desktop fallback for narrower laptop windows.
 */
@media (min-width: 1001px) and (max-width: 1220px) {

    .swi-guided-navigation,
    .swi-home-browse {
        flex-basis:
            290px !important;

        width:
            290px !important;

        max-width:
            290px !important;

        min-width:
            290px !important;
    }
}



/* =========================================================
   HEADER IDENTITY — swa MARK TEST
   Replace the longer Studio Weber wordmark with the compact
   three-letter studio mark. No box; black letters on white.
   ========================================================= */

header .wp-block-site-title > a {
    text-decoration:
        none !important;
}

.swi-site-swa-mark {
    display:
        inline-block;

    color:
        #111 !important;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    font-size:
        44px;

    line-height:
        0.82;

    font-weight:
        900;

    letter-spacing:
        -0.08em;

    text-transform:
        lowercase;

    white-space:
        nowrap;

    transform:
        translateY(
            1px
        );
}

@media (max-width: 640px) {

    .swi-site-swa-mark {
        font-size:
            36px;
    }
}



/* =========================================================
   RESPONSIVE EDITORIAL MEDIA — FULL FRAME, NO CROP
   Scope deliberately excludes browse/story tiles and team portraits,
   whose cover-crops are part of the designed navigation system.
   ========================================================= */

/* All editorial media must shrink inside the Intelligence column. */
.swi-guided-conversation,
.swi-guided-response-area,
.swi-guided-response-area .swi-editorial-answer,
.swi-guided-response-area .swi-editorial-answer > figure,
.swi-guided-response-area .swi-editorial-inline-media,
#swi-guided-visual-results,
#swi-guided-visual-results .swi-visual-results-grid,
#swi-guided-visual-results .swi-visual-result {
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

/* Let every inserted image retain its native aspect ratio.  The viewport
   cap prevents a portrait or diagram from becoming several screens tall. */
.swi-guided-response-area .swi-editorial-answer figure.swi-editorial-inline-media,
.swi-guided-response-area .swi-editorial-answer figure.swi-scripted-story-media,
#swi-guided-visual-results .swi-visual-result {
    width: 100%;
    height: auto;
    margin-left: 0;
    margin-right: 0;
    overflow: visible;
}

.swi-guided-response-area .swi-editorial-answer figure.swi-editorial-inline-media > img,
.swi-guided-response-area .swi-editorial-answer figure.swi-scripted-story-media > img,
.swi-guided-response-area .swi-editorial-answer > figure > img,
#swi-guided-visual-results .swi-visual-result > img,
.swi-media-first-results .swi-visual-result:first-child:last-child img {
    display: block;
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: min(65dvh, 680px) !important;
    margin-left: auto;
    margin-right: auto;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    object-position: center center !important;
}

/* Embedded footage should fit as well; do not impose this rule on the
   separate full-screen opening film. */
.swi-guided-response-area .swi-editorial-answer figure.swi-editorial-inline-media > video,
#swi-guided-visual-results .swi-visual-result > video {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: min(65dvh, 680px) !important;
    object-fit: contain !important;
}

@media (max-width: 1000px) {
    .swi-guided-response-area .swi-editorial-answer figure.swi-editorial-inline-media > img,
    .swi-guided-response-area .swi-editorial-answer figure.swi-scripted-story-media > img,
    .swi-guided-response-area .swi-editorial-answer > figure > img,
    #swi-guided-visual-results .swi-visual-result > img,
    .swi-media-first-results .swi-visual-result:first-child:last-child img {
        max-height: min(55dvh, 520px) !important;
    }
}

@media (max-width: 640px) {
    /* A single image per row: no half-width image cropping on a phone. */
    #swi-guided-visual-results .swi-visual-results-grid,
    .swi-media-first-results .swi-visual-results-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .swi-guided-response-area .swi-editorial-answer figure.swi-editorial-inline-media > img,
    .swi-guided-response-area .swi-editorial-answer figure.swi-scripted-story-media > img,
    .swi-guided-response-area .swi-editorial-answer > figure > img,
    #swi-guided-visual-results .swi-visual-result > img,
    .swi-media-first-results .swi-visual-result:first-child:last-child img {
        max-height: min(52svh, 460px) !important;
    }
}

/* =========================================================
   MOBILE IMAGE FIT — USABILITY PASS 2026-09-23
   Phone-only. Desktop image sizing and navigation tile crops
   remain unchanged.
   ========================================================= */
@media (max-width: 640px) {
    /* Allow the actual content column, not the image's intrinsic width,
       to determine the available mobile width. */
    .swi-guided-intelligence,
    .swi-guided-conversation,
    .swi-guided-response-area,
    .swi-guided-response-area .swi-editorial-answer,
    .swi-guided-response-area figure,
    .swi-who-editorial-image,
    .swi-what-editorial-image,
    .swi-practice-editorial-image,
    #swi-guided-visual-results,
    #swi-guided-visual-results .swi-visual-results-grid,
    #swi-guided-visual-results .swi-visual-result {
        min-width: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box;
    }

    /* Editorial images are content, not thumbnails: preserve the whole
       image and constrain both its width and its displayed height. */
    .swi-guided-response-area .swi-editorial-answer img,
    .swi-guided-response-area .swi-editorial-inline-media img,
    .swi-who-editorial-image img,
    .swi-what-editorial-image img,
    .swi-practice-editorial-image img,
    #swi-guided-visual-results .swi-visual-result img {
        display: block;
        width: auto !important;
        max-width: 100% !important;
        height: auto !important;
        max-height: min(52svh, 460px) !important;
        margin-left: auto;
        margin-right: auto;
        aspect-ratio: auto !important;
        object-fit: contain !important;
        object-position: center center !important;
        transform: none !important;
    }

    #swi-guided-visual-results .swi-visual-results-grid,
    .swi-media-first-results .swi-visual-results-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    /* Avoid a fixed media wrapper clipping an otherwise correctly
       contained image. */
    .swi-guided-response-area .swi-editorial-inline-media,
    .swi-guided-response-area figure.swi-scripted-story-media,
    .swi-who-editorial-image,
    .swi-what-editorial-image,
    .swi-practice-editorial-image,
    #swi-guided-visual-results .swi-visual-result {
        height: auto !important;
        max-height: none !important;
        overflow: visible !important;
    }
}

/* =========================================================
   RIGHT INTELLIGENCE PANEL — VISIBLE DESKTOP SCROLLBAR
   The panel itself is the active scroller in the post-film layout;
   the older .swi-guided-conversation scrollbar is not active there.
   Keep mobile's natural page scrolling unchanged.
   ========================================================= */
@media (min-width: 1001px) {
    .swi-guided-intelligence {
        scrollbar-width: auto;
        scrollbar-color: rgba(70, 65, 61, 0.58) rgba(70, 65, 61, 0.09);
        scrollbar-gutter: stable;
    }

    .swi-guided-intelligence::-webkit-scrollbar {
        width: 12px;
    }

    .swi-guided-intelligence::-webkit-scrollbar-track {
        background: rgba(70, 65, 61, 0.09);
        border-radius: 10px;
    }

    .swi-guided-intelligence::-webkit-scrollbar-thumb {
        background: rgba(70, 65, 61, 0.58);
        border: 2px solid #fff;
        border-radius: 10px;
    }

    .swi-guided-intelligence::-webkit-scrollbar-thumb:hover {
        background: rgba(70, 65, 61, 0.78);
    }
}

/* =========================================================
   RIGHT PANEL SCROLLBAR — WIDER THUMB, APPROVED PASS
   Chrome/Safari: use WebKit rules without scrollbar-color,
   which can override custom thumb styling in newer Chrome.
   Desktop only; mobile retains natural page scrolling.
   ========================================================= */
@media (min-width: 1001px) {
    .swi-guided-intelligence {
        scrollbar-width: auto;
        scrollbar-color: auto;
        scrollbar-gutter: stable;
    }

    .swi-guided-intelligence::-webkit-scrollbar {
        width: 16px;
        height: 16px;
    }

    .swi-guided-intelligence::-webkit-scrollbar-track {
        background: rgba(70, 65, 61, 0.08);
        border-radius: 12px;
    }

    .swi-guided-intelligence::-webkit-scrollbar-thumb {
        background: rgba(90, 86, 82, 0.62);
        border: 2px solid #fff;
        border-radius: 12px;
        min-height: 48px;
    }

    .swi-guided-intelligence::-webkit-scrollbar-thumb:hover {
        background: rgba(70, 65, 61, 0.82);
    }
}

/* =========================================================
   PERSISTENT DESKTOP INTELLIGENCE SCROLLBAR
   A dedicated rail avoids macOS/Chrome overlay-width changes.
   The panel still handles wheel, trackpad, keyboard and scrolling.
   ========================================================= */
@media (min-width: 1001px) {
    .swi-guided-intelligence {
        scrollbar-width: none !important;
        scrollbar-gutter: auto !important;
    }
    .swi-guided-intelligence::-webkit-scrollbar {
        display: none !important;
        width: 0 !important;
    }
    .swi-intelligence-scroll-rail {
        position: fixed;
        z-index: 100;
        width: 16px;
        box-sizing: border-box;
        padding: 0 2px;
        border-radius: 12px;
        background: rgba(70, 65, 61, 0.08);
        touch-action: none;
    }
    .swi-intelligence-scroll-thumb {
        width: 12px;
        min-height: 48px;
        border-radius: 10px;
        background: rgba(90, 86, 82, 0.62);
        cursor: grab;
        touch-action: none;
        will-change: transform;
    }
    .swi-intelligence-scroll-thumb:hover,
    .swi-intelligence-scroll-thumb.is-dragging {
        background: rgba(70, 65, 61, 0.82);
    }
    .swi-intelligence-scroll-thumb.is-dragging { cursor: grabbing; }
}
@media (max-width: 1000px) {
    .swi-intelligence-scroll-rail { display: none !important; }
}



/* =========================================================
   TEAM PORTRAITS — CONSISTENT LANDSCAPE FRAME
   Same frame as Jason/Jeff; crop tall portraits from the bottom
   so heads stay visible. No letterboxing or reduced image size.
   ========================================================= */
.swi-team-profile-image-wrap {
    height: 49vh !important;
    max-height: 49vh !important;
    background: #fff !important;
}
.swi-team-profile-image {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    object-fit: cover !important;
}
.swi-team-profile-image:is(
    [alt*="Shawn" i], [alt*="Cam Phung" i], [alt*="Christian" i],
    [src*="shawn" i], [src*="cam-phung" i], [src*="christian" i]
) {
    object-position: center top !important;
}
@media (max-width: 640px) {
    .swi-team-profile-image-wrap {
        height: auto !important;
        max-height: none !important;
        aspect-ratio: 16 / 10;
    }
}

/* Option 1 — Pure Search. Landing-only; navigation and answer views retain their styles. */
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-guided-intelligence {
    padding: clamp(70px, 10vh, 120px) clamp(24px, 5vw, 80px) 56px !important;
    box-sizing:border-box !important;
    gap:0 !important;
}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-home-intro {
    flex:0 0 auto !important;
    width:100% !important;
    max-width:760px !important;
    margin:0 auto !important;
    padding:0 !important;
    border:0 !important;
    background:#fff !important;
}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-home-intro-media {
    border:0 !important;
    overflow:visible !important;
    background:#fff !important;
}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-home-intro-compact {
    padding:0 !important;
    border:0 !important;
}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-home-intro-compact-top {
    display:block !important;
    padding:0 !important;
    border:0 !important;
}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-home-intro-compact-label {
    max-width:760px !important;
    margin:0 auto !important;
    text-align:center !important;
    color:#f15a24 !important;
    font-size:clamp(30px, 3.1vw, 46px) !important;
    font-weight:300 !important;
    line-height:1.12 !important;
    letter-spacing:-0.045em !important;
    text-wrap:balance !important;
}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-home-intro-replay {
    position:absolute !important;
    top:-54px !important;
    right:0 !important;
    margin:0 !important;
    font-size:12px !important;
}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-guided-conversation {
    display:none !important;
}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-guided-composer {
    flex:0 0 auto !important;
    order:3 !important;
    width:100% !important;
    max-width:680px !important;
    margin:52px auto 0 !important;
    padding:0 !important;
    border:0 !important;
    box-shadow:none !important;
    background:transparent !important;
}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-guided-prompt {
    display:none !important;
}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) form#swi-guided-chat-form {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 94px !important;
    gap:0 !important;
    align-items:center !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    min-height:62px !important;
    padding:3px !important;
    border:1px solid #d2d2d2 !important;
    border-radius:999px !important;
    background:#fff !important;
    box-sizing:border-box !important;
    box-shadow:none !important;
}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) textarea#swi-guided-question {
    width:100% !important;
    min-width:0 !important;
    height:54px !important;
    min-height:54px !important;
    max-height:54px !important;
    padding:16px 22px !important;
    border:0 !important;
    border-radius:999px !important;
    outline:none !important;
    box-shadow:none !important;
    resize:none !important;
    background:transparent !important;
    font-size:18px !important;
    line-height:22px !important;
    box-sizing:border-box !important;
}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) button#swi-guided-submit {
    width:94px !important;
    min-width:0 !important;
    height:54px !important;
    min-height:54px !important;
    border:0 !important;
    border-radius:999px !important;
    background:#f15a24 !important;
    color:#fff !important;
    font-size:18px !important;
    font-weight:400 !important;
    padding:0 16px !important;
}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) form#swi-guided-chat-form:focus-within {
    border-color:#f15a24 !important;
    box-shadow:0 0 0 2px rgba(241,90,36,.12) !important;
}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-home-intro-question-area {
    display:block !important;
    flex:0 0 auto !important;
    order:4 !important;
    width:100% !important;
    max-width:680px !important;
    margin:30px auto 0 !important;
    padding:0 !important;
    border:0 !important;
    text-align:center !important;
    box-sizing:border-box !important;
}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-home-intro-question-copy {
    margin:0 0 12px !important;
    padding:0 !important;
    color:#777 !important;
    font-size:16px !important;
    font-weight:300 !important;
    line-height:1.5 !important;
    letter-spacing:0 !important;
}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-home-intro-question-actions {
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    gap:4px !important;
    border:0 !important;
}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-home-intro-prompt {
    width:auto !important;
    max-width:100% !important;
    min-height:44px !important;
    margin:0 !important;
    padding:10px 4px !important;
    border:0 !important;
    background:transparent !important;
    color:#666 !important;
    font-size:clamp(16px,1.5vw,20px) !important;
    font-weight:300 !important;
    line-height:1.4 !important;
    text-align:center !important;
    letter-spacing:-.015em !important;
    box-shadow:none !important;
}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-home-intro-prompt::after {
    display:none !important;
    content:none !important;
}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-home-intro-prompt:hover {
    color:#f15a24 !important;
}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-home-intro-prompt:focus-visible {
    outline:2px solid #f15a24 !important;
    outline-offset:3px !important;
    border-radius:4px !important;
}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) button#swi-guided-submit:focus-visible {
    outline:2px solid #211d1b !important;
    outline-offset:3px !important;
}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) button#swi-guided-submit:hover {
    background:#d94715 !important;
}
.swi-pure-search.swi-conversation-active .swi-guided-intelligence > .swi-home-intro-question-area,
.swi-pure-search.swi-intro-active .swi-guided-intelligence > .swi-home-intro-question-area { display:none !important; }
@media (max-width:640px) {
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-guided-intelligence {padding:64px 20px 36px !important;}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-guided-composer {margin-top:32px !important;}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) form#swi-guided-chat-form {grid-template-columns:minmax(0,1fr) 70px !important;}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) button#swi-guided-submit {width:70px !important; font-size:16px !important;}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) textarea#swi-guided-question {font-size:16px !important; padding-left:16px !important;}
}

/* Pure Search v2 — centered composition and quieter starter links. */
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-guided-intelligence {justify-content:safe center !important; padding-top:64px !important; padding-bottom:64px !important;}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-home-intro-question-area {margin-top:24px !important; padding:0 25px !important; text-align:left !important;}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-home-intro-question-copy {font-size:13px !important; line-height:1.4 !important; color:#858585 !important; margin:0 0 7px !important; letter-spacing:0 !important;}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-home-intro-question-actions {align-items:flex-start !important; gap:0 !important;}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-home-intro-prompt {text-align:left !important; font-size:15px !important; line-height:1.4 !important; color:#777 !important; min-height:32px !important; padding:5px 0 !important; letter-spacing:0 !important;}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-home-intro-prompt:hover,
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-home-intro-prompt:focus-visible {color:#f15a24 !important;}
.swi-guided-layout.swi-pure-search .swi-home-orientation .swi-home-orientation-card {
    padding-top:8px !important;
    padding-bottom:8px !important;
}
@media (max-width:1000px) {
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-guided-intelligence {justify-content:flex-start !important; padding-top:80px !important; padding-bottom:48px !important;}
}
@media (max-width:640px) {
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-guided-intelligence {padding-top:64px !important; padding-bottom:36px !important;}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-home-intro-question-area {padding-left:20px !important; padding-right:20px !important;}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-home-intro-prompt {min-height:44px !important; padding-top:10px !important; padding-bottom:10px !important;}
.swi-guided-layout.swi-pure-search .swi-home-orientation .swi-home-orientation-card {min-height:44px !important;}
}

/* Practice submenu — secondary text navigation, preserving existing routes. */
.swi-pure-search .swi-home-story-grid.is-practice-mode {
    display:flex !important;
    flex-direction:column !important;
    gap:0 !important;
    width:100% !important;
    padding:0 0 0 24px !important;
    margin:0 !important;
    box-sizing:border-box !important;
}
.swi-pure-search .is-practice-mode .swi-home-practice-card {
    position:relative !important;
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:flex-start !important;
    width:100% !important;
    height:auto !important;
    min-height:34px !important;
    aspect-ratio:auto !important;
    margin:0 !important;
    padding:7px 8px 7px 0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    transform:none !important;
    overflow:visible !important;
    text-align:left !important;
    cursor:pointer !important;
}
.swi-pure-search .is-practice-mode .swi-home-practice-card::before,
.swi-pure-search .is-practice-mode .swi-home-practice-card::after {
    display:none !important;
    content:none !important;
}
.swi-pure-search .is-practice-mode .swi-practice-card-body {
    position:static !important;
    display:block !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
    transform:none !important;
}
.swi-pure-search .is-practice-mode .swi-practice-card-title {
    display:block !important;
    margin:0 !important;
    padding:0 !important;
    color:#727272 !important;
    font-family:inherit !important;
    font-size:15px !important;
    font-weight:300 !important;
    line-height:1.4 !important;
    letter-spacing:-.015em !important;
    text-transform:none !important;
    white-space:normal !important;
}
.swi-pure-search .is-practice-mode .swi-home-practice-card:hover .swi-practice-card-title,
.swi-pure-search .is-practice-mode .swi-home-practice-card:focus-visible .swi-practice-card-title,
.swi-pure-search .is-practice-mode .swi-home-practice-card.is-active .swi-practice-card-title,
.swi-pure-search .is-practice-mode .swi-home-practice-card[aria-pressed="true"] .swi-practice-card-title {
    color:#d94715 !important;
}
.swi-pure-search .is-practice-mode .swi-home-practice-card.is-active .swi-practice-card-title {
    font-weight:400 !important;
}
.swi-pure-search .is-practice-mode .swi-home-practice-card:focus-visible {
    outline:2px solid #f15a24 !important;
    outline-offset:2px !important;
}
@media (max-width:640px) {
    .swi-pure-search .is-practice-mode .swi-home-practice-card {min-height:44px !important;}
}

/* Library sidebar: page links follow the currently revealed browse section. */
body:has(.swi-guided-layout.swi-pure-search) header .wp-block-navigation,
body:has(.swi-guided-layout.swi-pure-search) header .swi-relocated-header-link {
    display:none !important;
}
.swi-pure-search .swi-home-page-links {
    display:flex;
    flex-direction:column;
    gap:0;
    margin:12px 0 0;
    padding:0 0 20px;
}
.swi-pure-search .swi-home-page-link {
    display:flex;
    align-items:center;
    justify-content:space-between;
    position:relative;
    box-sizing:border-box;
    min-height:40px;
    padding:8px 2px 8px 24px;
    color:#262323;
    background:transparent;
    font:inherit;
    font-size:16px;
    font-weight:300;
    line-height:1.35;
    letter-spacing:-.035em;
    text-decoration:none;
    border:0;
}
.swi-pure-search .swi-home-page-link::before {
    content:'';
    position:absolute;
    width:6px;
    height:6px;
    left:1px;
    top:50%;
    margin-top:-3px;
    border-radius:50%;
    background:#f15a24;
}
.swi-pure-search .swi-page-link-arrow {color:#484848; font-size:19px;}
.swi-pure-search .swi-home-page-link:hover {color:#f15a24; text-decoration:none;}
.swi-pure-search .swi-home-page-link:focus-visible {outline:2px solid #f15a24; outline-offset:2px;}
@media (prefers-reduced-motion:no-preference) {
    .swi-pure-search .swi-page-link-arrow {transition:translate 180ms ease,color 180ms ease;}
    .swi-pure-search .swi-home-page-link:hover .swi-page-link-arrow {translate:3px 0; color:#f15a24;}
    .swi-pure-search .swi-home-orientation-title,
    .swi-pure-search .swi-practice-card-title {transition:translate 180ms ease,color 180ms ease;}
    .swi-pure-search .swi-home-orientation-card:hover .swi-home-orientation-title,
    .swi-pure-search .swi-home-practice-card:hover .swi-practice-card-title {translate:3px 0;}
}
@media (max-width:640px) {
    .swi-pure-search .swi-home-page-link {min-height:44px;}
}

/* Stronger header anchor: 20% larger than the previous 44px / 36px mark. */
header .swi-site-swa-mark {font-size:52.8px !important;}
@media (max-width:640px) {
    header .swi-site-swa-mark {font-size:43.2px !important;}
}

/* White Papers: shared left navigation and smaller framed PDF previews. */
body:has(.swi-resources-shell) header .wp-block-navigation,
body:has(.swi-resources-shell) .wp-block-post-title,
body:has(.swi-resources-shell) h1.entry-title {display:none !important;}
.swi-resources-shell {
    display:grid;
    grid-template-columns:310px minmax(0,1fr);
    gap:32px;
    width:calc(100vw - 100px);
    max-width:none !important;
    margin:20px 0 0 calc(50% - 50vw + 50px) !important;
    box-sizing:border-box;
    align-items:start;
}
.swi-resources-sidebar {
    position:sticky;
    top:30px;
    min-width:0;
    padding:0 40px 30px 0;
    border-right:1px solid #e2e2e2;
    box-sizing:border-box;
}
.swi-resources-sidebar .swi-home-start-heading {font-size:16px; color:#a6a6a6; font-weight:300; margin:0 0 10px;}
.swi-resources-sidebar .swi-home-page-links {margin:0; padding:0;}
.swi-resources-sidebar .swi-resources-page-links {margin-top:24px;}
.swi-resources-sidebar [aria-current="page"] {outline:1px solid #dedede; outline-offset:-1px;}
.swi-resources-shell .swi-resources-page {
    width:100%; max-width:1020px; min-width:0;
    margin:0; padding:0 24px 60px 0; box-sizing:border-box;
}
.swi-resources-title {margin:0 0 20px; font-size:clamp(30px,3vw,44px); font-weight:400; line-height:1.1; letter-spacing:-.035em;}
.swi-resources-shell .swi-resources-intro {margin-bottom:28px; max-width:740px;}
.swi-resources-shell .swi-resources-intro p {font-size:clamp(18px,1.6vw,24px); line-height:1.35; max-width:680px;}
.swi-resources-shell .swi-resources-section {margin-top:28px;}
.swi-resources-shell .swi-resources-section-head {margin-bottom:18px;}
.swi-resources-shell .swi-resources-section-head h2 {font-size:28px;}
.swi-resources-shell .swi-resources-grid {grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px 20px;}
.swi-resources-shell .swi-resource-card {width:100%; max-width:280px;}
.swi-resources-shell .swi-resource-card h3 {font-size:19px;}
@media (min-width:1600px) {.swi-resources-shell {grid-template-columns:342px minmax(0,1fr);}}
@media (max-width:1100px) {
    .swi-resources-shell {grid-template-columns:240px minmax(0,1fr); gap:24px;}
    .swi-resources-sidebar {padding-right:24px;}
    .swi-resources-shell .swi-resources-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:700px) {
    .swi-resources-shell {width:calc(100vw - 40px); margin-left:calc(50% - 50vw + 20px) !important; grid-template-columns:minmax(0,1fr); gap:30px;}
    .swi-resources-sidebar {position:static; border-right:0; padding:0;}
    .swi-resources-shell .swi-resources-page {padding-right:0;}
    .swi-resources-shell .swi-resources-grid {grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 14px;}
    .swi-resources-shell .swi-resource-card h3 {font-size:17px;}
}
@media (max-width:380px) {.swi-resources-shell .swi-resources-grid {grid-template-columns:1fr;}}
body:has(.swi-resources-shell) header .swi-relocated-header-link {display:none !important;}

/* Remove the WordPress title-area spacing on the resource page only. */
body:has(.swi-resources-shell) main,
body:has(.swi-resources-shell) .wp-block-post-content,
body:has(.swi-resources-shell) .wp-block-group:has(.swi-resources-shell) {
    margin-top:0 !important;
    padding-top:0 !important;
}
body:has(.swi-resources-shell) main > .wp-block-spacer,
body:has(.swi-resources-shell) .wp-block-group:has(> .wp-block-post-title):not(:has(.swi-resources-shell)) {
    display:none !important;
}

/* Contact — centered editorial invitation and a quiet, usable form. */
.swi-contact-shell .swi-contact {
    display:flex !important; flex-direction:column !important; justify-content:safe center !important;
    min-width:0 !important; width:100% !important; max-width:none !important;
    min-height:calc(100svh - 150px) !important;
    margin:0 !important; padding:40px clamp(20px,4vw,64px) 56px !important;
    box-sizing:border-box !important; color:#211d1b !important;
}
.swi-contact-shell .swi-contact-intro {width:100% !important; max-width:760px !important; margin:0 auto 32px !important; padding:0 !important; border:0 !important; text-align:center !important;}
.swi-contact-shell .swi-contact-kicker {margin:0 0 18px !important; color:#777 !important; font-size:13px !important; letter-spacing:.06em !important; font-weight:300 !important;}
.swi-contact-shell .swi-contact-intro h1 {margin:0 !important; color:#f15a24 !important; font-size:clamp(36px,4.1vw,62px) !important; line-height:1.06 !important; letter-spacing:-.045em !important; font-weight:300 !important; text-wrap:balance; transform-origin:center center;}
.swi-contact-shell .swi-contact-grid {display:block !important; width:100% !important; max-width:640px !important; margin:0 auto !important; padding:0 !important; border:0 !important;}
.swi-contact-shell .swi-contact-form-wrap {width:100% !important; margin:0 !important; padding:0 !important;}
.swi-contact-shell .swi-contact-form-heading {text-align:center !important; font-size:18px !important; line-height:1.4 !important; color:#777 !important; font-weight:300 !important; margin:0 0 24px !important;}
.swi-contact-shell .swi-contact-form {display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:18px 20px !important; width:100% !important; margin:0 !important;}
.swi-contact-shell .swi-contact-form label {display:flex !important; flex-direction:column !important; gap:7px !important; margin:0 !important; min-width:0 !important;}
.swi-contact-shell .swi-contact-form label span {color:#777 !important; font-size:13px !important; line-height:1.4 !important;}
.swi-contact-shell .swi-contact-form label:has([name="swi_contact_company"]),
.swi-contact-shell .swi-contact-form-message-field {grid-column:1 / -1 !important;}
.swi-contact-shell .swi-contact-form input:not([type="hidden"]),
.swi-contact-shell .swi-contact-form textarea {width:100% !important; min-width:0 !important; box-sizing:border-box !important; border:1px solid #d9d6d3 !important; border-radius:6px !important; background:#fff !important; padding:12px 14px !important; color:#211d1b !important; font:inherit !important; font-size:16px !important; line-height:1.4 !important; box-shadow:none !important;}
.swi-contact-shell .swi-contact-form input:not([type="hidden"]) {min-height:46px !important;}
.swi-contact-shell .swi-contact-form textarea {min-height:124px !important; height:124px !important; resize:vertical !important;}
.swi-contact-shell .swi-contact-form input:focus-visible,
.swi-contact-shell .swi-contact-form textarea:focus-visible {outline:2px solid #f15a24 !important; outline-offset:2px !important;}
.swi-contact-shell .swi-contact-form button[type="submit"] {grid-column:1 / -1 !important; justify-self:center !important; width:auto !important; min-height:48px !important; padding:12px 28px !important; margin:6px 0 0 !important; border:0 !important; border-radius:999px !important; color:#fff !important; background:#f15a24 !important; font:inherit !important; font-size:16px !important; cursor:pointer !important;}
.swi-contact-shell .swi-contact-form button[type="submit"]:hover {background:#d94715 !important;}
.swi-contact-shell .swi-contact-form button[type="submit"]:focus-visible {outline:2px solid #211d1b !important; outline-offset:3px !important;}
@keyframes swi-contact-heading-enter {from {opacity:0; transform:scale(.94) translateY(12px);} to {opacity:1; transform:scale(1) translateY(0);}}
@media (prefers-reduced-motion:no-preference) {.swi-contact-shell .swi-contact-intro h1 {animation:swi-contact-heading-enter 720ms cubic-bezier(.22,1,.36,1) both;}}
@media (max-width:700px) {.swi-contact-shell .swi-contact {min-height:0 !important; padding:20px 0 40px !important;}}
@media (max-width:480px) {.swi-contact-shell .swi-contact-form {grid-template-columns:minmax(0,1fr) !important;}}

/* Contact refinements and matching White Papers heading. */
.swi-contact-shell .swi-contact-form-heading {
    text-align:left !important;
}
.swi-contact-shell .swi-contact-form button[type="submit"] {
    justify-self:start !important;
    text-align:left !important;
}
.swi-resources-shell .swi-resources-title {
    color:#f15a24 !important;
    font-size:clamp(36px,4.1vw,62px) !important;
    font-weight:300 !important;
    line-height:1.06 !important;
    letter-spacing:-.045em !important;
    text-align:left !important;
    text-wrap:balance;
    transform-origin:left center;
}
@media (prefers-reduced-motion:no-preference) {
    .swi-resources-shell .swi-resources-title {
        animation:swi-contact-heading-enter 720ms cubic-bezier(.22,1,.36,1) both;
    }
}

/* White Papers — lowercase title and a subordinate content inset. */
.swi-resources-shell .swi-resources-title {text-transform:lowercase !important;}
.swi-resources-shell .swi-resources-page > .swi-resources-intro,
.swi-resources-shell .swi-resources-page > .swi-resources-section {
    margin-left:clamp(24px,4vw,60px) !important;
}
@media (max-width:700px) {
    .swi-resources-shell .swi-resources-page > .swi-resources-intro,
    .swi-resources-shell .swi-resources-page > .swi-resources-section {margin-left:16px !important;}
}

/* Who we are — text first, matching editorial typography. */
.swi-guided-layout .swi-who-editorial {
    --swi-who-inset:clamp(24px,4vw,60px);
    max-width:940px; padding:32px clamp(20px,3vw,48px) 48px 0;
}
.swi-who-editorial .swi-who-editorial-toolbar {border:0; margin-bottom:24px; padding:0;}
.swi-who-editorial .swi-who-editorial-kicker {color:#888; font-size:12px; text-transform:lowercase; letter-spacing:.04em;}
.swi-who-editorial .swi-who-editorial-heading {margin:0 0 28px;}
.swi-who-editorial .swi-who-editorial-heading h2 {
    color:#f15a24 !important; font-family:inherit; font-size:clamp(36px,4.1vw,62px) !important;
    font-weight:300 !important; line-height:1.06 !important; letter-spacing:-.045em !important;
    text-transform:lowercase; text-align:left; text-wrap:balance; transform-origin:left center;
}
.swi-who-editorial .swi-who-editorial-section {
    margin:0 0 28px var(--swi-who-inset); padding:0; border:0; max-width:700px;
}
.swi-who-editorial .swi-who-editorial-section p {font-size:17px; line-height:1.55; color:#706c69; margin:0 0 16px;}
.swi-who-editorial .swi-who-editorial-section .swi-who-editorial-lead {
    font-size:clamp(21px,2vw,28px) !important; line-height:1.3 !important; letter-spacing:-.025em; color:#211d1b;
}
.swi-who-editorial .swi-who-editorial-image {
    width:calc(100% - var(--swi-who-inset)); max-width:560px !important;
    height:auto !important; max-height:none !important; margin:0 0 22px var(--swi-who-inset);
    background:transparent; border:1px solid #ece8e4; box-sizing:border-box; overflow:visible !important;
}
.swi-who-editorial .swi-who-editorial-image img {
    display:block; width:100% !important; height:auto !important; max-height:none !important;
    aspect-ratio:auto !important; object-fit:contain !important; margin:0; transform:none !important;
}
.swi-who-editorial .swi-who-editorial-ask {margin-left:var(--swi-who-inset); font-size:13px; color:#777; border:0;}
.swi-who-editorial .swi-who-editorial-ask:hover {color:#f15a24;}
.swi-who-editorial .swi-who-editorial-ask:focus-visible {outline:2px solid #f15a24; outline-offset:4px;}
@media (prefers-reduced-motion:no-preference) {
    .swi-who-editorial .swi-who-editorial-heading h2 {animation:swi-contact-heading-enter 720ms cubic-bezier(.22,1,.36,1) both;}
}
@media (max-width:700px) {
    .swi-guided-layout .swi-who-editorial {--swi-who-inset:16px; padding:20px 0 32px;}
}

/* Shared rounded query treatment for every guided view. */
.swi-guided-layout .swi-guided-composer form#swi-guided-chat-form {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 94px !important;
    gap:0 !important;
    align-items:center !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    min-height:62px !important;
    padding:3px !important;
    border:1px solid #d2d2d2 !important;
    border-radius:999px !important;
    background:#fff !important;
    box-sizing:border-box !important;
    box-shadow:none !important;
}
.swi-guided-layout .swi-guided-composer textarea#swi-guided-question {
    width:100% !important;
    min-width:0 !important;
    height:54px !important;
    min-height:54px !important;
    max-height:54px !important;
    padding:16px 22px !important;
    border:0 !important;
    border-radius:999px !important;
    outline:none !important;
    box-shadow:none !important;
    resize:none !important;
    background:transparent !important;
    font-size:18px !important;
    line-height:22px !important;
    box-sizing:border-box !important;
}
.swi-guided-layout .swi-guided-composer button#swi-guided-submit {
    width:94px !important;
    min-width:0 !important;
    height:54px !important;
    min-height:54px !important;
    border:0 !important;
    border-radius:999px !important;
    background:#f15a24 !important;
    color:#fff !important;
    font-size:18px !important;
    font-weight:400 !important;
    padding:0 16px !important;
}
.swi-guided-layout .swi-guided-composer form#swi-guided-chat-form:focus-within {
    border-color:#f15a24 !important;
    box-shadow:0 0 0 2px rgba(241,90,36,.12) !important;
}

.swi-guided-layout .swi-guided-composer {border-top:0 !important; padding-right:clamp(16px,2vw,32px) !important; box-sizing:border-box !important;}
.swi-guided-layout .swi-guided-composer form#swi-guided-chat-form {max-width:900px !important;}
.swi-guided-layout .swi-guided-composer button#swi-guided-submit:focus-visible {outline:2px solid #211d1b !important; outline-offset:2px;}
.swi-who-editorial .swi-who-suggestions {margin:28px 0 0 var(--swi-who-inset); max-width:640px; display:flex; flex-direction:column; align-items:flex-start; gap:4px;}
.swi-who-editorial .swi-who-suggestions p {margin:0 0 6px; color:#999; font-size:12px; font-weight:300; letter-spacing:.025em;}
.swi-who-editorial .swi-who-suggestion {appearance:none; display:block; width:auto; max-width:100%; border:0; border-radius:0; background:transparent; box-shadow:none; padding:8px 0; margin:0; font:inherit; font-size:15px; font-weight:300; line-height:1.4; color:#777; text-align:left; cursor:pointer;}
.swi-who-editorial .swi-who-suggestion::after {content:' →'; color:#aaa;}
.swi-who-editorial .swi-who-suggestion:hover {color:#f15a24;}
.swi-who-editorial .swi-who-suggestion:focus-visible {outline:2px solid #f15a24; outline-offset:4px;}
@media (prefers-reduced-motion:no-preference) {.swi-who-editorial .swi-who-suggestion {transition:color 180ms ease,transform 180ms ease;} .swi-who-editorial .swi-who-suggestion:hover {transform:translateX(3px);}}
@media (max-width:640px) {
    .swi-guided-layout .swi-guided-composer form#swi-guided-chat-form {grid-template-columns:minmax(0,1fr) 72px !important;}
    .swi-guided-layout .swi-guided-composer button#swi-guided-submit {width:72px !important; font-size:16px !important;}
    .swi-guided-layout .swi-guided-composer textarea#swi-guided-question {font-size:16px !important; padding-left:16px !important; padding-right:10px !important;}
    .swi-who-editorial .swi-who-suggestion {min-height:44px;}
}

/* Landing — left aligned heading and inset query, retaining entrance animation. */
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-guided-intelligence {--swi-landing-inset:clamp(24px,4vw,60px); align-items:flex-start !important;}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-home-intro {margin-left:0 !important; margin-right:0 !important;}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-home-intro-compact-label {text-transform:lowercase !important; text-align:left !important; margin-left:0 !important; margin-right:0 !important; transform-origin:left center; text-wrap:pretty !important;}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-guided-composer {width:calc(100% - var(--swi-landing-inset)) !important; max-width:680px !important; margin-left:var(--swi-landing-inset) !important; margin-right:0 !important; box-sizing:border-box !important;}
.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-home-intro-question-area {width:calc(100% - var(--swi-landing-inset)) !important; max-width:680px !important; margin-left:var(--swi-landing-inset) !important; margin-right:0 !important; box-sizing:border-box !important;}
@media (max-width:640px) {.swi-guided-layout.swi-pure-search:not(.swi-conversation-active):not(.swi-intro-active) .swi-guided-intelligence {--swi-landing-inset:16px;}}

/* Desktop Library frame: reserve the footer inside the window. */
@media (min-width:1001px) {
 html.swi-window-frame, html.swi-window-frame body {height:100%; overflow:hidden !important;}
 .swi-window-frame .swi-guided-layout.swi-pure-search {
   height:var(--swi-frame-height) !important; min-height:0 !important; max-height:var(--swi-frame-height) !important;
   margin-bottom:0 !important; padding-bottom:0 !important; box-sizing:border-box !important;
 }
 .swi-window-frame .swi-guided-layout.swi-pure-search > .swi-guided-navigation,
 .swi-window-frame .swi-guided-layout.swi-pure-search > .swi-guided-intelligence {
   height:100% !important; min-height:0 !important; max-height:100% !important; box-sizing:border-box !important;
 }
 .swi-window-frame .swi-home-browse-scroll {max-height:100% !important; overflow-y:auto !important; overscroll-behavior:contain;}
 .swi-window-frame .swi-guided-intelligence {overscroll-behavior:contain;}
 .swi-window-frame .swi-site-footer {
   position:fixed !important; bottom:0 !important; left:0 !important; right:0 !important;
   width:100% !important; margin:0 !important; padding:12px 50px !important;
   background:#fff !important; z-index:210; box-sizing:border-box !important;
 }
 .swi-window-frame .swi-site-footer-inner {display:flex !important; align-items:center !important; justify-content:space-between !important; gap:24px !important; max-width:none !important; margin:0 !important; padding:0 !important;}
 .swi-window-frame .swi-site-footer-wordmark {font-size:22px !important; line-height:1.15 !important;}
 .swi-window-frame .swi-site-footer-line {font-size:11px !important; line-height:1.3 !important; margin:4px 0 0 !important;}
 .swi-window-frame .swi-site-footer-nav {display:flex !important; gap:24px !important; margin:0 !important; font-size:12px !important;}
}

/* Team profile: a quiet external link beneath the biography. */
.swi-team-profile-copy .swi-team-linkedin {display:inline-flex; align-items:center; gap:7px; margin-top:10px; padding:8px 0; color:#777; font:inherit; font-size:15px; line-height:1.4; text-decoration:underline; text-decoration-color:#d6d2ce; text-underline-offset:5px;}
.swi-team-profile-copy .swi-team-linkedin:hover {color:#f15a24; text-decoration-color:currentColor;}
.swi-team-profile-copy .swi-team-linkedin:focus-visible {outline:2px solid #f15a24; outline-offset:4px;}
@media (max-width:640px) {.swi-team-profile-copy .swi-team-linkedin {min-height:44px; box-sizing:border-box;}}

/* Shared story title: light orange type and the established entrance. */
.swi-guided-response-area .swi-editorial-answer > h2:first-of-type {
 color:#f15a24 !important; font-family:inherit !important;
 font-size:clamp(36px,4.1vw,62px) !important; font-weight:300 !important;
 line-height:1.06 !important; letter-spacing:-.045em !important;
 text-transform:lowercase; text-align:left; text-wrap:balance;
 transform-origin:left center; margin:0 0 28px;
}
.swi-guided-response-area .swi-editorial-answer > h2:first-of-type strong,
.swi-guided-response-area .swi-editorial-answer > h2:first-of-type b {font-weight:inherit !important; color:inherit !important;}
@media (prefers-reduced-motion:no-preference) {
 .swi-guided-response-area .swi-editorial-answer > h2:first-of-type {
  animation:swi-contact-heading-enter 720ms cubic-bezier(.22,1,.36,1) both;
 }
}

/* All practice introductions share the editorial title system. */
.swi-guided-response-area :is(.swi-practice-editorial-heading,.swi-adl-heading,.swi-pc-v2-heading) h2 {
 color:#f15a24 !important; font-family:inherit !important; font-weight:300 !important;
 font-size:clamp(36px,4.1vw,62px) !important; line-height:1.06 !important;
 letter-spacing:-.045em !important; text-transform:lowercase; transform-origin:left center;
 margin:0 0 20px !important; text-wrap:balance;
}
.swi-guided-response-area :is(.swi-practice-editorial-heading,.swi-adl-heading,.swi-pc-v2-heading) {margin:0 0 28px !important;}
.swi-guided-response-area :is(.swi-practice-editorial-heading,.swi-adl-heading,.swi-pc-v2-heading) > p {
 font-size:clamp(21px,2vw,28px) !important; line-height:1.3 !important; font-weight:300 !important; color:#706c69 !important;
}
.swi-guided-response-area :is(.swi-practice-editorial-image,.swi-adl-hero,.swi-master-tradition-gallery,.swi-practice-context-image) {
 width:100% !important; max-width:600px !important; height:auto !important; margin:24px 0 32px !important;
 background:transparent !important; box-sizing:border-box; overflow:visible !important;
}
.swi-guided-response-area :is(.swi-practice-editorial-image,.swi-adl-hero,.swi-master-tradition-gallery,.swi-practice-context-image) img {
 display:block; width:auto !important; max-width:100% !important; height:auto !important;
 max-height:min(48svh,420px) !important; object-fit:contain !important; margin:0 auto !important;
}
.swi-guided-response-area .swi-master-tradition-image {min-width:0; margin:0 0 16px !important;}
.swi-guided-response-area .swi-practice-context-image {grid-column:1 / -1;}
@media (prefers-reduced-motion:no-preference) {
 .swi-guided-response-area :is(.swi-practice-editorial-heading,.swi-adl-heading,.swi-pc-v2-heading) h2 {
 animation:swi-contact-heading-enter 720ms cubic-bezier(.22,1,.36,1) both;
 }
}

/* North Star landing matches the individual practice pages. */
.swi-guided-response-area .swi-north-star-heading {margin:0 0 28px !important;}
.swi-guided-response-area .swi-north-star-heading h2 {
 color:#f15a24 !important; font-family:inherit !important; font-weight:300 !important;
 font-size:clamp(36px,4.1vw,62px) !important; line-height:1.06 !important;
 letter-spacing:-.045em !important; text-transform:lowercase; transform-origin:left center;
 margin:0 !important; text-wrap:balance;
}
.swi-guided-response-area .swi-north-star-purpose {border:0 !important; padding-top:0 !important; margin-bottom:28px !important;}
.swi-guided-response-area .swi-north-star-lead,
.swi-guided-response-area .swi-north-star-lead strong {
 font-size:clamp(21px,2vw,28px) !important; line-height:1.3 !important;
 font-weight:300 !important; color:#706c69 !important;
}
.swi-guided-response-area .swi-north-star-compass-image {
 width:100% !important; max-width:600px !important; height:auto !important; max-height:none !important;
 margin:24px 0 32px !important; overflow:visible !important; background:transparent !important;
}
.swi-guided-response-area .swi-north-star-compass-image img {
 display:block; width:auto !important; max-width:100% !important; height:auto !important;
 max-height:min(48svh,420px) !important; object-fit:contain !important; margin:0 auto !important;
}
@media (prefers-reduced-motion:no-preference) {
 .swi-guided-response-area .swi-north-star-heading h2 {animation:swi-contact-heading-enter 720ms cubic-bezier(.22,1,.36,1) both;}
}

/* Footer identity set in the same inherited face as the headings. */
.swi-site-footer .swi-site-footer-wordmark {
 display:inline-block !important; width:auto !important; height:auto !important;
 font-family:inherit !important; font-size:22px !important; font-weight:300 !important;
 line-height:1.15 !important; letter-spacing:-.045em !important;
 color:#706c69 !important; text-decoration:none !important; text-transform:none !important;
}
.swi-site-footer .swi-site-footer-wordmark:hover {color:#f15a24 !important;}
.swi-site-footer .swi-site-footer-nav a {text-transform:none !important;}

/* Explicit image galleries: compact square tiles; retain the full prototype. */
#swi-guided-visual-results.swi-gallery-results .swi-visual-results-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 16px;
}
#swi-guided-visual-results.swi-gallery-results .swi-visual-result {
    margin: 0;
    border: 1px solid #e6e3df;
    background: #faf9f7;
    overflow: hidden;
}
#swi-guided-visual-results.swi-gallery-results .swi-visual-result > a {
    display: block;
    width: 100%;
    aspect-ratio: 1;
}
#swi-guided-visual-results.swi-gallery-results .swi-visual-result > a > img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    aspect-ratio: 1 !important;
    object-fit: contain !important;
}
.swi-editorial-answer .swi-gallery-status {
    font-size: 15px;
    line-height: 1.5;
    color: #85817c;
}
@media (max-width: 1100px) {
    #swi-guided-visual-results.swi-gallery-results .swi-visual-results-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 640px) {
    #swi-guided-visual-results.swi-gallery-results .swi-visual-results-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px;
    }
}

/* What do we do: smaller full portrait on desktop; preserve mobile sizing. */
@media (min-width: 901px) {
    .swi-what-editorial .swi-what-editorial-image {
        width: 70% !important;
        margin-left: 0;
        margin-right: auto;
        background: transparent;
    }
    .swi-what-editorial .swi-what-editorial-image img {
        width: 100% !important;
        height: auto !important;
        max-height: none !important;
        aspect-ratio: auto !important;
        object-fit: contain !important;
    }
}

/* Services reuses the Library canvas; no new menu or standalone page layout. */
a.swi-home-orientation-card[data-swi-service-link] {text-decoration:none; color:inherit;}
.swi-what-editorial-heading h1 {margin:0 0 12px; color:#f15a24; font-family:inherit; font-size:clamp(44px,4.8vw,72px); line-height:1.06; font-weight:300; letter-spacing:-.045em; transform-origin:left center;}
.swi-services-summary details {margin:18px 0;}
.swi-services-summary summary {cursor:pointer; color:#73675f; font-size:16px; padding:12px 0;}
.swi-services-summary summary:focus-visible {outline:2px solid #f15a24; outline-offset:4px;}
.swi-services-capability {margin:24px 0 32px;}
.swi-services-capability h2 {font-family:inherit; color:#f15a24; font-size:clamp(24px,2.6vw,32px); font-weight:300; line-height:1.2;}
.swi-services-capability ul {padding-left:20px; font-size:16px; line-height:1.6;}
.swi-services-capability li {margin:6px 0;}
@media(prefers-reduced-motion:no-preference) {.swi-what-editorial-heading h1 {animation:swi-contact-heading-enter 720ms cubic-bezier(.22,1,.36,1) both;}}
