:root {
    --max-width: 1254px;
}

html {
    height: 100%;
}

iframe {
    width: 100%;
}

body:not(.wp-admin) {
    display: flex;
    flex-direction: column;
    font-family: var(--cabb-font-body);
    min-height: 100%;
}

p, h1, h2, h3, h4, h5 {
    margin-top: 0;
}

a {
    color: #1A1A1A;
}

img {
    display: block;
    max-width: 100%;
    height: auto;
}

button {
    display: block;
    background: none;
    border: none;
}

a:hover {
    text-decoration: none;
}

a.disabled {
    pointer-events: none !important;
    opacity: 0.3 !important;
}

*:target {
    margin: 0;
}

main {
    flex: 1;
    row-gap: normal !important;
}

main [id] {
    scroll-margin-top: 120px;
}

body.tab_navigation :focus-visible {
    outline: 2px solid var(--cabb-color-main) !important;
    outline-offset: 4px !important;
    border-radius: 4px !important;
    box-shadow: none !important;
}

:focus-visible {
    outline-color: var(--cabb-color-main);
}

#wpadminbar .screen-reader-shortcut {
    color: var(--cabb-color-main);
}

.wp-block-list {
    font-size: 18px;
    margin-bottom: 1.5em;
}

.cabb-block {
    display: block;
    font-family: var(--cabb-font-body);
    box-sizing: content-box;
    width: calc(100% - 40px) !important;
    padding: 80px 20px;
}

.editor-styles-wrapper .is-root-container > div.acf-block-preview .cabb-block {
    padding: 80px 20px !important;
}

.cabb-block.alignwide {
    max-width: var(--max-width) !important;
}

.cabb-block.align, .cabb-block.alignnone {
    max-width: var(--wp--custom--cabb-block-content-size);
}

figure.wp-block-image, figure.wp-block-image img, .wp-block-image figure, .wp-block-image figure img, .wp-block-image .components-resizable-box__container img {
    max-width: 100% !important;
}

/**
404
 */
body.error404 {
    background: #EDF2F2;
}

body.error404 main {
    justify-content: center;
}

body.error404 #content {
    padding: 50px 20px;
    max-width: 726px !important;
    width: calc(100% - 40px) !important;
    box-sizing: content-box;
}

body.error404 #content .inner {
    background: #fff;
    padding: 120px;
    border: 1px solid #A5C0BC;
    border-radius: 8px;
}

body.error404 #content h1 {
    font-size: 96px;
    line-height: 1 !important;
    font-weight: 600;
    padding-bottom: 24px;
}

body.error404 #content .error_title {
    font-family: var(--cabb-font-heading);
    font-size: 36px;
    padding-bottom: 24px;
}

body.error404 #content .error_message {
    font-size: 18px;
    line-height: 1.44;
    padding-bottom: 24px;
}

body.error404 #content .error_button a {
    display: flex;
    justify-content: center;
    align-items: center;
    font-family: var(--cabb-font-heading);
    font-weight: 600;
    text-decoration: none;
    transition: color 0.2s ease-in-out;
}

body.error404 #content .error_button a:hover {
    color: var(--cabb-color-main);
}

body.error404 #content .error_button a svg {
    padding-right: 8px;
    box-sizing: content-box;
}

/**
Search
 */
body.search {
    background: var(--cabb-color-bg);
}

body.search .search_area {
    padding: 48px 20px;
    max-width: 760px;
    width: calc(100% - 40px);
    box-sizing: content-box;
}

body.search .search_inner {
    background: #fff;
    border: 1px solid #CDD0CF;
    border-radius: 8px;
    padding: 32px;
}

body.search .page_title {
    font-family: var(--cabb-font-heading);
    font-weight: 600;
    padding-bottom: 24px;
    font-size: 24px;
    margin-bottom: 0;
}

body.search .search_form {
    position: relative;
    margin-bottom: 24px;
}

body.search .search_form input[type="search"] {
    font-family: var(--cabb-font-heading);
    font-size: 14px;
    padding: 0 16px 0 40px;
    margin: 0;
    border: 1px solid #D6D4D4;
    border-radius: 4px;
    width: 100%;
    height: 48px;
}

input[type="search"]::-webkit-search-cancel-button {
    -webkit-appearance: none;
    height: 10px;
    width: 10px;
    padding: 10px;
    margin-right: -10px;
    background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" fill="none"><path d="M1.25 1.25L8.75 8.75M8.75 1.25L1.25 8.75" stroke="%23838A86" stroke-width="1.875" stroke-linecap="round"/></svg>') no-repeat center;
    cursor: pointer;
}

body.search .search_form button {
    position: absolute;
    padding: 10px;
    transform: translateY(-50%);
    top: 50%;
    left: 6px;
}

body.search .total_results {
    font-family: var(--cabb-font-heading);
    font-weight: 600;
    color: #838A86;
    padding-bottom: 16px;
}

body.search .search_results a.result_item {
    display: block;
    text-decoration: none;
    padding: 16px 24px;
    margin-bottom: 16px;
    border: 1px solid #D6D4D4;
    border-radius: 8px;
}

body.search .search_results a.result_item .item_title {
    font-family: var(--cabb-font-heading);
    font-size: 20px;
    font-weight: 600;
    line-height: 1.33;
    text-decoration: underline;
    padding-bottom: 8px;
    transition: color 0.2s ease-in-out;
}

body.search .search_results a.result_item:hover .item_title {
    color: var(--cabb-color-main);
    text-decoration: none;
}

body.search .search_results a.result_item .item_description {
    line-height: 1.44;
    color: #404040;
}

/**
CTA button popup
 */
.cta_popup_data {
    display: none;
}

.cta_button_popup {
    position: fixed;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.30);
    padding: 50px;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 100;
    display: none;
}

.cta_button_popup .popup_block {
    display: flex;
    flex-direction: column;
    background: #fff;
    max-width: 1176px;
    width: 100%;
    max-height: 100%;
    border: 1px solid #CCC;
    border-radius: 4px;
    box-shadow: 0 4px 20px 0 rgba(107, 106, 106, 0.25);
}

.cta_button_popup .popup_block .popup_header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #EDF2F2;
    padding: 12px 24px;
}

.cta_button_popup .popup_block .popup_header .popup_title {
    font-family: var(--cabb-font-heading);
    font-size: 32px;
    line-height: 1.25;
    font-weight: 600;
    padding-right: 30px;
}

.cta_button_popup .popup_block .popup_header .popup_close {
    padding: 10px;
    margin-right: -10px;
}

.cta_button_popup .popup_block .popup_content {
    flex: 1;
    padding: 16px 24px;
    overflow: auto;
    font-size: 18px;
}

.cta_button_popup .popup_block .popup_content h1,
.cta_button_popup .popup_block .popup_content h2,
.cta_button_popup .popup_block .popup_content h3 {
    margin-bottom: 1rem;
}

@media (max-width: 600px) {
    h1.wp-block-heading {
        font-size: 26px;
    }

    body.error404 #content .inner {
        padding: 30px;
    }

    body.error404 #content h1 {
        font-size: 65px;
    }

    body.error404 #content .error_title {
        font-size: 25px;
    }

    .cta_button_popup {
        padding: 20px;
    }

    .cta_button_popup .popup_block .popup_header .popup_title {
        font-size: 24px;
    }
}

