/*
 * Wildcats' own document and content-layout foundation.
 * The migrated content keeps its old wrapper names; no Divi styles or icon font
 * are loaded. Component colors, type scales and spacing follow in redesign CSS.
 */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; padding: 0; }
:where(h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd, ul, ol) { margin: 0; padding: 0; }
:where(h1, h2, h3, h4, h5, h6) { font-weight: 650; }
h5 { font-size: 18px; }
h6 { font-size: 16px; }
a { color: inherit; text-decoration: none; }
img, svg, video { max-width: 100%; }
img { height: auto; border: 0; vertical-align: middle; }
iframe { max-width: 100%; border: 0; }
button, input, select, textarea { margin: 0; font: inherit; }
button, input[type="submit"], input[type="reset"] { cursor: pointer; }
textarea { max-width: 100%; resize: vertical; }
fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
legend { max-width: 100%; padding: 0; }
table { border-collapse: collapse; border-spacing: 0; }
th { text-align: left; }
strong, b { font-weight: 700; }
address { font-style: normal; }
pre { max-width: 100%; overflow: auto; white-space: pre-wrap; }
code, pre, kbd, samp { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
hr { height: 0; margin-block: 24px; border: 0; border-top: 1px solid var(--kwc2-line, #e3e4e3); }

/* Keep WordPress helpers independent of any parent theme. */
.clearfix { display: flow-root; }
.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    border: 0;
    white-space: nowrap;
}
.screen-reader-text:focus {
    z-index: 100000;
    top: 12px;
    left: 12px;
    width: auto;
    height: auto;
    margin: 0;
    padding: 12px 20px;
    overflow: visible;
    clip: auto;
    clip-path: none;
    background: #fff;
    color: #17191b;
    white-space: normal;
}
.alignleft { float: left; margin: 0 24px 20px 0; }
.alignright { float: right; margin: 0 0 20px 24px; }
.aligncenter { display: block; margin-inline: auto; }
.wp-caption { max-width: 100%; }
.wp-caption-text, .gallery-caption { margin-top: 10px; color: var(--kwc2-muted, #666b70); font-size: 13px; line-height: 1.6; }
.entry-content > :where(ul, ol) { padding-left: 1.2em; }
.entry-content > ol { list-style: decimal outside; }
.entry-content > :where(ul, ol) > li { margin-block: 8px; }

/* Center both ordinary templates and migrated section/row/column content. */
#page-container, #et-main-area, #main-content, .et-l, .et_builder_inner_content { min-width: 0; }
#main-content > .container { position: relative; margin-inline: auto; }
.et_pb_section, .et_pb_module { position: relative; }
.et_pb_row, .et_pb_row_inner {
    --kwc-native-gap: clamp(24px, 4.4vw, 56px);
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 24px var(--kwc-native-gap);
    width: calc(100% - 2 * var(--kwc2-gutter, 24px));
    max-width: var(--kwc2-width, 1240px);
    margin-inline: auto;
}
.et_pb_row_inner { width: 100%; }
.et_pb_row > .et_pb_column, .et_pb_row_inner > .et_pb_column {
    flex: 0 0 auto;
    min-width: 0;
    width: calc((100% + var(--kwc-native-gap)) * var(--kwc-native-fraction, 1) - var(--kwc-native-gap));
}
.et_pb_column_4_4 { --kwc-native-fraction: 1; }
.et_pb_column_1_2 { --kwc-native-fraction: .5; }
.et_pb_column_1_3 { --kwc-native-fraction: .3333333333; }
.et_pb_column_2_3 { --kwc-native-fraction: .6666666667; }
.et_pb_column_1_4 { --kwc-native-fraction: .25; }
.et_pb_column_3_4 { --kwc-native-fraction: .75; }
.et_pb_equal_columns { align-items: stretch; }
.et_pb_fullwidth_section > .et_pb_module { width: 100%; }
.et_pb_text_inner, .et_pb_code_inner { min-width: 0; }
.et_pb_text_align_left { text-align: left; }
.et_pb_text_align_center { text-align: center; }
.et_pb_text_align_right { text-align: right; }
.et_pb_text_align_justified { text-align: justify; }
.et_pb_image { line-height: 0; }
.et_pb_image_wrap { display: inline-block; position: relative; max-width: 100%; }
.et_pb_image_wrap img { max-width: 100%; height: auto; }
.et_pb_fullwidth_image .et_pb_image_wrap, .et_pb_fullwidth_image img { display: block; width: 100%; }
.et_pb_video_box, .et_pb_video_box video { width: 100%; }
.et_pb_button { display: inline-flex; align-items: center; }
.et_pb_button_alignment_left { text-align: left; }
.et_pb_button_alignment_center { text-align: center; }
.et_pb_button_alignment_right { text-align: right; }

/* Migrated accordions use native details/summary, including keyboard behavior. */
details.et_pb_toggle > summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; list-style: none; cursor: pointer; }
details.et_pb_toggle > summary::-webkit-details-marker { display: none; }
details.et_pb_toggle > summary::after {
    content: '';
    flex: 0 0 10px;
    width: 10px;
    height: 10px;
    margin: 0 4px 5px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
}
details.et_pb_toggle[open] > summary::after { margin-block: 5px 0; transform: rotate(225deg); }
details.et_pb_toggle > summary > h5 { margin: 0; }
details.et_pb_toggle[open] > .et_pb_toggle_content { padding-top: 20px; }

/* Small fallbacks for retained editorial modules; no third-party icon font. */
.et_pb_team_member_image { max-width: 100%; margin-bottom: 20px; }
.et_pb_team_member_image img { display: block; }
.et_pb_team_member_description h4 { margin-bottom: 8px; }
.et_pb_member_position { margin-bottom: 16px; color: var(--kwc2-muted, #666b70); }
.et_pb_social_media_follow, .et_pb_member_social_links { display: flex; flex-wrap: wrap; gap: 12px; list-style: none; }
.et_pb_social_media_follow li, .et_pb_member_social_links li { margin: 0; padding: 0; }
.et_pb_social_media_follow a, .et_pb_member_social_links a { display: inline-flex; align-items: center; min-height: 44px; }
.et_pb_fullwidth_header_container { width: calc(100% - 2 * var(--kwc2-gutter, 24px)); max-width: var(--kwc2-width, 1240px); margin-inline: auto; }
.et_pb_fullwidth_header_container .header-content { max-width: 70ch; }
.et_pb_blurb_content { min-width: 0; }
.et_pb_main_blurb_image { margin-bottom: 20px; }

@media (max-width: 980px) {
    .et_pb_row > .et_pb_column, .et_pb_row_inner > .et_pb_column { --kwc-native-fraction: 1; }
    .et_pb_text_align_left-tablet { text-align: left; }
    .et_pb_text_align_center-tablet { text-align: center; }
    .et_pb_text_align_right-tablet { text-align: right; }
}
@media (min-width: 768px) and (max-width: 980px) {
    .et_pb_row > .et_pb_column_1_4, .et_pb_row_inner > .et_pb_column_1_4 { --kwc-native-fraction: .5; }
    body.kwc-redesign #main-content .et_pb_hidden_tablet { display: none !important; }
}
@media (min-width: 981px) {
    body.kwc-redesign #main-content .et_pb_hidden_desktop { display: none !important; }
}
@media (max-width: 767px) {
    body.kwc-redesign #main-content .et_pb_hidden_phone { display: none !important; }
    .et_pb_text_align_left-phone { text-align: left; }
    .et_pb_text_align_center-phone { text-align: center; }
    .et_pb_text_align_right-phone { text-align: right; }
    .alignleft, .alignright { float: none; margin-inline: 0; }
}
/* A saved disabled module stays disabled even if its component normally uses flex/grid. */
body.kwc-redesign #main-content [hidden] { display: none !important; }
