:root {
    --max-width: 1254px;
    --content-padding-x: 20px;
    /* Matches .header_inner total width (max-width + horizontal padding, content-box). */
    --site-content-width: calc(var(--max-width) + (2 * var(--content-padding-x)));
    --content-inset-inline: calc((100vw - min(100vw, var(--site-content-width))) / 2 + var(--content-padding-x));
    /* Matches .header_inner content area – same horizontal bounds as the logo row. */
    --content-max-width: var(--max-width);
    /* Media & Text alignfull: max 20% bleed outside wide-size (10% per side). */
    --media-text-max-width: calc(var(--max-width) * 1.2);
}

html {
    height: 100%;
}

iframe {
    width: 100%;
}

.wp-block-embed.wp-embed-aspect-16-9 .wp-block-embed__wrapper {
    position: relative;
    padding-top: 56.25%;
}

.wp-block-embed.wp-embed-aspect-16-9 .wp-block-embed__wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.wp-block-embed.wp-embed-aspect-4-3 .wp-block-embed__wrapper {
    position: relative;
    padding-top: 75%;
}

.wp-block-embed.wp-embed-aspect-4-3 .wp-block-embed__wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 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;
}

body:not(.wp-admin) button:not(.cabb-btn-primary) {
    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);
}

.alignwide, main .alignwide, .wp-block[data-align="wide"], .editor-styles-wrapper .edit-post-visual-editor__post-title-wrapper>.alignwide, .editor-styles-wrapper .block-editor-block-list__layout.is-root-container>.alignwide {
    max-width: 100% !important;
}

.alignfull, main .alignfull, .wp-block[data-align="full"] {
    max-width: 100% !important;
    width: 100% !important;
}

.is-root-container> :where(:not(.alignleft):not(.alignright):not(.hndle)) {
    width: 100% !important;
}

/* Root-level text blocks (p, lists, headings, etc.) — 670px; cabb/ACF blocks keep 760px content width */
.is-root-container > :where(:not(div):not(.alignleft):not(.alignright):not(.alignfull):not(.alignwide):not(.page_header):not(figure.wp-block-image):not(.hndle)),
main > :where(:not(div):not(.cabb-block):not(.alignleft):not(.alignright):not(.alignfull):not(.alignwide):not(.page_header):not(figure.wp-block-image):not(.hndle)) {
    max-width: var(--wp--custom--cabb-text-content-size, 670px) !important;
    margin-inline: auto !important;
}

.is-root-container > :where(:not(div).alignwide:not(.alignleft):not(.alignright)),
main > :where(:not(div):not(.cabb-block).alignwide:not(.alignleft):not(.alignright)) {
    max-width: var(--wp--custom--cabb-block-content-wide-size, var(--wp--style--global--wide-size));
    margin-inline: auto;
}

.wp-block-columns {
    flex-wrap: wrap !important;
    --wp--style--block-gap: 0;
}

@media (min-width: 782px) {
    .wp-block-columns {
        flex-wrap: nowrap !important;
    }
}

@media (max-width: 781px) {
    .wp-block-columns {
        --wp--style--block-gap: 1.5rem;
    }
}

.wp-block-buttons {
    align-items: flex-start;
    justify-content: flex-start;
}
/*
.wp-block-columns {
    gap: 0;
    --default-column-padding: calc(var(--wp--style--block-gap) / 2);
}

:root :where(.editor-styles-wrapper) :where(.is-layout-flex) {
    gap: 0;
}

.wp-block-columns .wp-block-column {
    padding-left: var(--default-column-padding);
    padding-right: var(--default-column-padding);
}

.wp-block-columns .wp-block-column:first-of-type {
    padding-left: 0;
    padding-right: var(--default-column-padding);
}

.wp-block-columns .wp-block-column:last-of-type {
    padding-left: var(--default-column-padding);
    padding-right: 0;
}

@media (max-width: 783px) {
    .wp-block-columns .wp-block-column {
        padding-top: var(--default-column-padding);
        padding-bottom: var(--default-column-padding);
        padding-left: 0;
        padding-right: 0;
    }
    
    .wp-block-columns .wp-block-column:first-of-type {
        padding-top: 0;
        padding-bottom: var(--default-column-padding);
        padding-left: 0;
        padding-right: 0;
    }
    
    .wp-block-columns .wp-block-column:last-of-type {
        padding-top: var(--default-column-padding);
        padding-bottom: 0;
        padding-left: 0;
        padding-right: 0;
    }
}*/

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

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

/* Block editor: preview shell is tuned in gutenberg.php; edit UI has no cabb-block wrapper */
.editor-styles-wrapper .acf-block-body:not(.acf-block-preview) .cabb-block {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !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;
    }
}

/*
 * Media & Text (core block) – breakpoints aligned with theme tokens
 * (sm: 384px, md: 768px in functions.php) and img-txt block (stack: 850px).
 * Overrides WordPress core stack at 600px.
 */

/* Desktop, no block background: cap width, center block, balance text/image columns. */
@media (min-width: 851px) {
    .wp-block-media-text.alignfull:not(.has-background) {
        width: min(100%, var(--media-text-max-width)) !important;
        max-width: var(--media-text-max-width);
        margin-inline: auto !important;
    }

    /* Slightly wider text column so the layout does not feel image-heavy. */
    .wp-block-media-text.alignfull:not(.has-background).has-media-on-the-right {
        grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr) !important;
    }

    .wp-block-media-text.alignfull:not(.has-background):not(.has-media-on-the-right) {
        grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr) !important;
    }

    .wp-block-media-text.alignfull:not(.has-background).has-media-on-the-right > .wp-block-media-text__content {
        padding-left: var(--content-padding-x) !important;
        padding-right: clamp(var(--content-padding-x), 6%, 56px) !important;
        box-sizing: border-box;
    }

    .wp-block-media-text.alignfull:not(.has-background).has-media-on-the-right > .wp-block-media-text__media {
        padding-right: var(--content-padding-x) !important;
        box-sizing: border-box;
        overflow: hidden;
    }

    .wp-block-media-text.alignfull:not(.has-background).has-media-on-the-right > .wp-block-media-text__content > * {
        max-width: 100%;
        box-sizing: border-box;
    }

    .wp-block-media-text.alignfull:not(.has-background):not(.has-media-on-the-right) > .wp-block-media-text__media {
        padding-left: var(--content-padding-x) !important;
        box-sizing: border-box;
        overflow: hidden;
    }

    .wp-block-media-text.alignfull:not(.has-background):not(.has-media-on-the-right) > .wp-block-media-text__content {
        padding-right: var(--content-padding-x) !important;
        padding-left: clamp(var(--content-padding-x), 6%, 56px) !important;
        box-sizing: border-box;
    }

    .wp-block-media-text.alignfull:not(.has-background):not(.has-media-on-the-right) > .wp-block-media-text__content > * {
        max-width: 100%;
        box-sizing: border-box;
    }
}

@media (max-width: 850px) {
    .wp-block-media-text.is-stacked-on-mobile {
        grid-template-columns: 100% !important;
    }

    .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__media {
        grid-column: 1;
        grid-row: 1;
    }

    .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__content {
        grid-column: 1;
        grid-row: 2;
        padding-left: var(--content-padding-x) !important;
        padding-right: var(--content-padding-x) !important;
        padding-top: 30px;
        box-sizing: border-box;
    }

    .wp-block-media-text.is-stacked-on-mobile.alignfull > .wp-block-media-text__content > * {
        max-width: 100%;
        box-sizing: border-box;
    }
}

@media (max-width: 768px) {
    .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__content {
        padding-top: 24px;
    }
}

@media (max-width: 384px) {
    .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__content {
        padding-top: 20px;
    }
}

