/*
 * Homepage visual system.
 * The rhythm is based on an 8px grid: 32px for related content,
 * 64px for independent sections and 80px for information-heavy transitions.
 */
body.iig-home {
    --iig-text: #1D1B20;
    --iig-text-muted: #4D4D54;
    --iig-surface: #FFFFFF;
    --iig-surface-soft: #F5F5F8;
    --iig-accent: #03969D;
    --iig-space-related: 32px;
    --iig-space-section: 64px;
    --iig-space-featured: 80px;
}

body.iig-home main {
    color: var(--iig-text);
}

/* Unified heading hierarchy */
body.iig-home .iig-home-title {
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin: 0 0 var(--iig-space-related) !important;
    padding: 0 !important;
    color: var(--iig-text) !important;
    font-size: 32px !important;
    line-height: 1.25 !important;
    font-weight: 600 !important;
    letter-spacing: -0.015em;
    text-align: center !important;
    text-shadow: none !important;
    text-transform: none !important;
}

body.iig-home .iig-home-title::after {
    display: none !important;
}

body.iig-home .iig-home-title--primary {
    font-size: 36px !important;
    line-height: 1.22 !important;
    font-weight: 700 !important;
}

body.iig-home .iig-home-title--inverse {
    color: #FFFFFF !important;
    font-weight: 700 !important;
}

body.iig-home .iig-home-subtitle {
    width: 100%;
    box-sizing: border-box;
    margin: var(--iig-space-related) 0 24px !important;
    padding: 0 !important;
    color: var(--iig-text) !important;
    font-size: 24px !important;
    line-height: 1.33 !important;
    font-weight: 600 !important;
    text-align: center !important;
}

body.iig-home #bk13w .iig-home-subtitle ~ .iig-home-subtitle {
    margin-top: 48px !important;
}

body.iig-home #bk02w > .iig-home-lead {
    margin-top: 48px !important;
}

body.iig-home #bk16h2w {
    position: relative;
}

body.iig-home #bk16h2w .iig-home-title {
    flex: 1 1 auto;
    margin-bottom: 0 !important;
    text-align: center !important;
}

body.iig-home #bk16-blog-ui {
    position: absolute;
    right: 0;
}

body.iig-home #bk20h2 {
    margin-bottom: 40px !important;
}

body.iig-home #b15h2 {
    margin: 0 0 var(--iig-space-related) !important;
    color: #FFFFFF !important;
    font-size: 32px !important;
    line-height: 1.25 !important;
    font-weight: 600 !important;
    text-align: center !important;
}

/* Predictable top-level section rhythm */
body.iig-home main > div[id^="bk"] {
    margin-bottom: var(--iig-space-section) !important;
}

body.iig-home main > #bk01,
body.iig-home main > #bk02,
body.iig-home main > #bk14,
body.iig-home main > #bk16 {
    margin-bottom: var(--iig-space-featured) !important;
}

body.iig-home main > #bk11-13 {
    margin-bottom: var(--iig-space-related) !important;
}

body.iig-home main > #bk13 {
    margin-bottom: var(--iig-space-featured) !important;
}

body.iig-home main > #bk20 {
    margin-bottom: 0 !important;
}

body.iig-home #bk01bw,
body.iig-home #bk02w,
body.iig-home #bk03w,
body.iig-home #bk04w,
body.iig-home #bk05w,
body.iig-home #bk06w,
body.iig-home #bk07w,
body.iig-home main > #bk08 #bk08_a,
body.iig-home #bk09w,
body.iig-home #bk10w,
body.iig-home #bk13w,
body.iig-home #bk14w,
body.iig-home #bk15w2,
body.iig-home #bk16w2,
body.iig-home #bk19w2 {
    margin-bottom: 0 !important;
}

body.iig-home #bk11-13 > #bk11,
body.iig-home #bk11-13 > #bk12 {
    margin-bottom: var(--iig-space-related) !important;
}

body.iig-home #bk11-13 #bk11w,
body.iig-home #bk11-13 #bk12w {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

body.iig-home #bk02 #bk08_a {
    margin: 0 0 48px !important;
    padding-top: 0 !important;
}

body.iig-home #bk02w > h1 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* One neutral background instead of two almost identical greys */
body.iig-home #bk03w,
body.iig-home #bk04w,
body.iig-home #bk06,
body.iig-home #bk07_a .bk07_b,
body.iig-home #b17_a .b17_b,
body.iig-home #bk16w2 {
    background-color: var(--iig-surface-soft) !important;
}

/* Motion remains visible while dragging and is calm between states */
body.iig-home #bk01a {
    transition-timing-function: cubic-bezier(.22, .61, .36, 1);
}

body.iig-home #bk01a .swiper-slide {
    opacity: 1 !important;
}

body.iig-home #bk14w2,
body.iig-home #b14_a {
    margin-top: 0 !important;
}

body.iig-home #b14_c {
    padding-top: 0;
}

body.iig-home #b14_bn2 {
    max-width: none;
}

body.iig-home #bk20w2 {
    padding-top: 64px !important;
    padding-bottom: 64px !important;
}

@media (max-width: 767px) {
    body.iig-home {
        --iig-space-related: 24px;
        --iig-space-section: 40px;
        --iig-space-featured: 48px;
    }

    body.iig-home .iig-home-title {
        font-size: 24px !important;
        line-height: 1.33 !important;
        letter-spacing: -0.01em;
    }

    body.iig-home .iig-home-title--primary {
        font-size: 28px !important;
        line-height: 1.29 !important;
    }

    body.iig-home .iig-home-subtitle {
        margin-top: 24px !important;
        margin-bottom: 16px !important;
        font-size: 20px !important;
        line-height: 1.4 !important;
    }

    body.iig-home #b15h2 {
        margin-bottom: 24px !important;
        font-size: 24px !important;
        line-height: 1.33 !important;
    }

    body.iig-home #bk02 #bk08_a {
        margin-bottom: 32px !important;
    }

    body.iig-home #bk16h2w {
        align-items: stretch;
        flex-direction: column;
    }

    body.iig-home #bk16h2w .iig-home-title {
        text-align: center !important;
    }

    body.iig-home #bk16-blog-ui {
        position: static;
        align-self: center;
    }

    body.iig-home #bk20w2 {
        padding-top: 40px !important;
        padding-bottom: 40px !important;
    }

    #xform-info > .g-recaptcha {
        transform: scale(.88);
        transform-origin: center center;
        margin: -8px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.iig-home #bk01a,
    body.iig-home #b16_a0 .b16_a,
    body.iig-home #bk16h2w > h2,
    body.iig-home #b20_tools .b20_tool {
        transition-duration: 0.01ms !important;
    }
}
