/*
 * Styles for content converted by divi2blocks (core blocks carrying Divi-like class names).
 * Divi 3.0.23 geometry: section padding 4% 0 (54px at 1350px), row 80% / max 1080px with 2% vertical padding,
 * gutter-3 column ratios with 5.5% gaps, modules spaced 2.75% of the row.
 */
.entry-content > .d2b-section { margin: 0 !important; }
.d2b-section { position: relative; padding: 4% 0; }
.d2b-section > * { max-width: 1080px !important; width: 80%; margin-left: auto !important; margin-right: auto !important; }
.d2b-section:has(> .et_pb_fullwidth_header), .d2b-section.et_pb_fullwidth_section { padding: 0; }
.d2b-section > .et_pb_fullwidth_header, .d2b-section.et_pb_fullwidth_section > * { max-width: none !important; width: 100%; }
/* converted sections inside a post (single view): Divi kept them inside the 754px content column */
.single .entry-content .d2b-section { padding: 4% 0; }
.single .entry-content .d2b-section > * { width: 100%; }
/* Divi rows: 2% vertical padding (of the section width; inside a post, of the content column). */
.d2b-section > .d2b-row { padding: 2% 0; }

/* rows / columns (Divi gutter 3: 5.5%) */
.wp-block-columns.et_pb_row { gap: 0 5.5%; flex-wrap: nowrap !important; margin: 0 auto; padding: 2% 0; align-items: flex-start; }
.wp-block-column.et_pb_column > .wp-block-columns.et_pb_row { margin: 0 !important; padding: 0 !important; width: 100%; }
/* Divi specialty sections: the outer row has no padding; inner rows get Divi's padding for the column they sit in. */
.wp-block-columns.et_pb_row.d2b-specialty { padding: 0; }
.wp-block-column.et_pb_column_3_4 > .et_pb_row_inner.et_pb_row { padding: 3.735% 0 !important; }
.wp-block-column.et_pb_column_2_3 > .et_pb_row_inner.et_pb_row { padding: 4.2415% 0 !important; }
.wp-block-column.et_pb_column_1_2 > .et_pb_row_inner.et_pb_row { padding: 5.82% 0 !important; }
/* Two columns inside a 3/4 specialty column are Divi "3_8" columns: 46.25% wide, 7.5% gutter. */
.wp-block-column.et_pb_column_3_4 > .et_pb_row_inner.wp-block-columns { column-gap: 7.5%; }
.wp-block-column.et_pb_column_3_4 > .et_pb_row_inner > .et_pb_column_1_2 { flex-basis: 46.25% !important; }
.wp-block-column.et_pb_column_2_3 > .et_pb_row_inner.wp-block-columns { column-gap: 8.484%; } /* Divi 1_3 inside 2_3: 45.758% */
.wp-block-column.et_pb_column_2_3 > .et_pb_row_inner > .et_pb_column_1_2 { flex-basis: 45.758% !important; }
/* The plain column next to them (salforest: the sidebar column) starts 2.855% of the row width lower (measured on :8256). */
.wp-block-columns.d2b-specialty > .et_pb_column:not(:has(> .et_pb_row_inner)) { padding-top: 2.855%; }
.wp-block-columns.d2b-specialty > .et_pb_column > .et_pb_widget_area { padding-top: 0; }
/* A paragraph that held only an image (Divi text module): inline image in a 1.6 line box + 1em paragraph padding. */
.wp-block-image.d2b-p-img { margin: 0; padding-bottom: 1em; }
.wp-block-image.d2b-p-img img { display: inline; vertical-align: baseline; }
.wp-block-column.et_pb_column { flex-grow: 0 !important; min-width: 0; }
.et_pb_column_4_4 { flex-basis: 100% !important; }
.et_pb_column_1_2 { flex-basis: 47.25% !important; }
.et_pb_column_1_3 { flex-basis: 29.6667% !important; }
.et_pb_column_2_3 { flex-basis: 64.833% !important; }
.et_pb_column_1_4 { flex-basis: 20.875% !important; }
.et_pb_column_3_4 { flex-basis: 73.625% !important; }
.et_pb_column_3_4 .et_pb_column_1_2 { flex-basis: 47.25% !important; }
.et_pb_column_3_4 .et_pb_column_1_3 { flex-basis: 29.6667% !important; }
.et_pb_column_1_4 > .et_pb_widget_area { padding-top: 2%; }

/* modules */
.et_pb_column > * + *, .d2b-section > * + * { margin-top: 0 !important; }
.et_pb_text, .et_pb_toggle, .et_pb_blurb, .et_pb_promo, .et_pb_image, .et_pb_testimonial, .et_pb_gallery, .wp-block-buttons, .wp-block-separator, .wp-block-embed, .wp-block-shortcode, .et_pb_widget_area, .wp-block-latest-posts, .d2b-slider { margin-bottom: calc(min(80vw, 1080px) * .0275) !important; }
/* Divi spaces modules by 2.75% of the row (28px at 1280px), whatever the column width; inside a post the row is the content column. */
.single .entry-content .et_pb_text, .single .entry-content .et_pb_toggle, .single .entry-content .et_pb_image, .single .entry-content .wp-block-buttons { margin-bottom: 2.75% !important; }
.et_pb_column > :last-child, .d2b-section > :last-child, .et_pb_row_inner > :last-child, .d2b-row > :last-child, .et_pb_promo > :last-child { margin-bottom: 0 !important; }
.et_pb_text p { padding-bottom: 1em; }
.et_pb_text p:last-of-type { padding-bottom: 0; }
:where(.et_pb_text) :where(h1, h2, h3, h4, h5, h6) { padding-bottom: 10px; }
.et_pb_text ul, .et_pb_text ol { padding-bottom: 1em; padding-left: 16px; }
.et_pb_text > ul:last-child, .et_pb_text > ol:last-child { padding-bottom: 0; }
#left-area .et_pb_text > ul, #left-area .et_pb_text > ol { padding-bottom: 23px; }
#left-area .et_pb_text > ul:last-child, #left-area .et_pb_text > ol:last-child { padding-bottom: 0; }
.has-text-align-center { text-align: center; }
.has-text-align-right { text-align: right; }
.et_pb_bg_layout_dark, .et_pb_bg_layout_dark h1, .et_pb_bg_layout_dark h2, .et_pb_bg_layout_dark h3, .et_pb_bg_layout_dark h4, .et_pb_bg_layout_dark p, .et_pb_bg_layout_dark a { color: #fff; }

/* fullwidth header band */
.et_pb_fullwidth_header { padding: 10px 0 !important; text-align: center; position: relative; }
.et_pb_fullwidth_header h1 { font-size: 36px; padding-bottom: 10px; line-height: 1.3; max-width: 1080px; width: 80%; margin: 0 auto; }
.et_pb_fullwidth_header p { padding: 0; }

/* image module */
.wp-block-image.et_pb_image { margin-top: 0; line-height: 0; }
.wp-block-image.et_pb_image img { display: inline-block; }
.wp-block-image.et_pb_image.aligncenter { text-align: center; }

/* toggles → <details> */
.wp-block-details.et_pb_toggle { background: #f4f4f4; border: 1px solid #d9d9d9; padding: 20px; }
.wp-block-details.et_pb_toggle[open] { background: #fff; }
.wp-block-details.et_pb_toggle > summary { list-style: none; cursor: pointer; font-family: RSURegular, Thonburi, sans-serif; font-size: 22px; line-height: 1.3; font-weight: 500; color: #666; padding-right: 50px; position: relative; }
.wp-block-details.et_pb_toggle > summary::-webkit-details-marker { display: none; }
.wp-block-details.et_pb_toggle > summary::after { content: "+"; position: absolute; right: 0; top: -2px; font-size: 22px; color: #ccc; font-family: Arial, sans-serif; }
.wp-block-details.et_pb_toggle[open] > summary { color: #333; }
.wp-block-details.et_pb_toggle[open] > summary::after { content: "\2212"; }
.wp-block-details.et_pb_toggle > :not(summary) { padding-top: 20px; }

/* blurbs */
.et_pb_blurb h4 { font-size: 18px; line-height: 1.3; padding-bottom: 10px; }
.et_pb_blurb h4 a { color: #333; }
.et_pb_blurb_position_left .d2b-blurb-cols { gap: 0 !important; margin: 0 !important; padding: 0 !important; align-items: flex-start; }
.et_pb_blurb_position_left .d2b-blurb-img { flex: 0 0 80px !important; }
.et_pb_blurb_position_left .d2b-blurb-text { flex: 1 1 auto !important; padding-left: 15px; }
.et_pb_blurb_position_top .et_pb_main_blurb_image { text-align: center; margin-bottom: 30px; }

/* testimonial (Divi: grey box, quote, bold author) */
.d2b-testimonial { padding: 30px; position: relative; line-height: 1.5; margin-top: 16px; }
.d2b-testimonial::before { content: "\201C"; position: absolute; top: -16px; left: 50%; margin-left: -16px; width: 32px; height: 32px; border-radius: 50%; background: #f5f5f5; color: #19928e; font: 40px/44px Georgia, serif; text-align: center; }
.d2b-testimonial > p:has(.et_pb_testimonial_author) { margin-top: 16px; }
.d2b-testimonial p { padding-bottom: 1em; }
.d2b-testimonial p:last-child { padding-bottom: 0; }
.d2b-testimonial .et_pb_testimonial_author { font-weight: 700; }
.d2b-testimonial .et_pb_testimonial_portrait { float: left; margin: 0 30px 0 0 !important; }
.d2b-testimonial .et_pb_testimonial_portrait img { width: 90px; height: 90px; border-radius: 50%; object-fit: cover; }
.d2b-testimonial:has(.et_pb_testimonial_portrait) > :not(.et_pb_testimonial_portrait) { margin-left: 120px; }
.d2b-testimonial:has(.et_pb_testimonial_portrait) { line-height: 2; }
/* narrow columns: Divi puts the portrait above the text */
:is(.et_pb_column_1_3, .et_pb_column_1_4) .d2b-testimonial .et_pb_testimonial_portrait { float: none; margin: 0 0 20px !important; }
:is(.et_pb_column_1_3, .et_pb_column_1_4) .d2b-testimonial:has(.et_pb_testimonial_portrait) > :not(.et_pb_testimonial_portrait) { margin-left: 0; }
:is(.et_pb_column_1_3, .et_pb_column_1_4) .d2b-testimonial { line-height: 1.5; }

/* gallery, slides, post list */
.wp-block-gallery.et_pb_gallery { gap: 10px; }
.d2b-slider > .wp-block-cover, .d2b-slider > .d2b-slide { margin-bottom: 0; min-height: 417px; padding: 0 6%; }
.d2b-slider .wp-block-cover__background { opacity: .1 !important; }
.d2b-slider h2 { font-size: 46px; font-weight: 300; line-height: 1.3; }
.wp-block-latest-posts.et_pb_post_slider { list-style: none; padding: 30px; background: #46bf4a; color: #fff; }
.wp-block-latest-posts.et_pb_post_slider a { color: #fff; font-size: 22px; font-family: RSURegular, Thonburi, sans-serif; }
.wp-block-latest-posts.et_pb_post_slider li { margin-bottom: 20px; }

/* buttons (Divi button look) */
.wp-block-buttons { gap: 10px; }
.wp-block-button__link { font-family: Boon300, Thonburi, sans-serif; }

/* separators / spacers / embeds */
.wp-block-separator { border: 0; height: 1px; opacity: 1; }
.wp-block-embed iframe { width: 100%; }
.d2b-section > iframe, iframe.d2b-map { display: block; }

/* site contact form (salforest-site mu-plugin) in the Divi form layout */
.sf-contact-form { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; }
.sf-contact-form .sf-field { width: 100%; margin: 0 0 3%; }
.sf-contact-form .sf-field.half { width: 48.5%; }
.sf-contact-form label { position: absolute; left: -9999px; }
.sf-contact-form input[type=text], .sf-contact-form input[type=email], .sf-contact-form textarea { width: 100%; background: #eee; border: 0; padding: 16px; font-size: 14px; color: #555; }
.sf-contact-form textarea { height: 150px; }
.sf-contact-form .sf-captcha { margin-left: auto; padding-right: 12px; font-size: 14px; color: #999; }
.sf-contact-form .sf-captcha input { width: 50px; padding: 10px 6px; background: #eee; border: 0; }
.sf-contact-form button { background: transparent; border: 2px solid #19928e; border-radius: 3px; color: #19928e; font-size: 20px; padding: 6px 20px; cursor: pointer; }
.sf-contact-form .sf-hp { position: absolute; left: -9999px; }
.sf-contact-message { width: 100%; margin-bottom: 20px; }
.et_pb_contact_main_title { font-size: 26px; }

@media (max-width: 980px) {
	.wp-block-columns.et_pb_row { flex-wrap: wrap !important; }
	.wp-block-column.et_pb_column { flex-basis: 100% !important; margin-bottom: 30px; }
	.wp-block-column.et_pb_column:last-child { margin-bottom: 0; }
	.sf-contact-form .sf-field.half { width: 100%; }
}

/* Divi "disabled_on" (phone ≤ 767, tablet 768–980, desktop ≥ 981) */
@media (max-width: 767px) { .d2b-hide-phone { display: none !important; } }
@media (min-width: 768px) and (max-width: 980px) { .d2b-hide-tablet { display: none !important; } }
@media (min-width: 981px) { .d2b-hide-desktop { display: none !important; } }

/* captions ([caption] shortcode), as Divi */
.wp-caption { max-width: 96%; padding: 4px 8px 8px; margin-bottom: 10px; border: 1px solid #ddd; background: #f3f3f3; text-align: center; } /* as on :8256 */
.wp-caption.aligncenter { margin-left: auto; margin-right: auto; }
.wp-caption img { margin: 0; padding: 0; border: 0; }
.wp-caption-text, .wp-caption .wp-element-caption { margin: 0; padding: 0 4px 5px; font-size: 12px; }
.et_pb_text .wp-caption-text { line-height: 1.6em; } /* Divi text module paragraphs */

/* Divi post slider → latest-posts list shown one item at a time (front.js rotates, dots below) */
.wp-block-latest-posts.et_pb_post_slider { position: relative; padding: 0 !important; margin-left: 0; text-align: center; min-height: 260px; }
.wp-block-latest-posts.et_pb_post_slider > li { padding: 16% 8% 10%; margin: 0; }
.sf-slider-ready { position: relative; }
.sf-slider-ready > .sf-slide { display: none !important; }
.sf-slider-ready > .sf-slide.is-active { display: block !important; }
.wp-block-gallery.sf-slider-ready > .sf-slide.is-active { width: 100% !important; }
.wp-block-gallery.sf-slider-ready .sf-slider-dots button, .d2b-slider .sf-slider-dots button { background: rgba(0,0,0,.25); }
.wp-block-gallery.sf-slider-ready .sf-slider-dots button.is-active, .d2b-slider .sf-slider-dots button.is-active { background: rgba(0,0,0,.6); }
.wp-block-latest-posts.et_pb_post_slider .wp-block-latest-posts__featured-image { display: none; }
.wp-block-latest-posts.et_pb_post_slider .wp-block-latest-posts__post-title { display: block; font-family: RSURegular, Thonburi, sans-serif; font-size: 26px; line-height: 1.3; font-weight: 500; color: #fff !important; margin-bottom: 16px; }
.wp-block-latest-posts.et_pb_post_slider .wp-block-latest-posts__post-excerpt { color: #fff; font-size: 14px; margin: 0; }
.wp-block-latest-posts.et_pb_post_slider .wp-block-latest-posts__post-excerpt a { display: inline-block; margin-top: 20px; padding: 3px 12px; border: 2px solid #fff; border-radius: 3px; color: #fff; font-size: 16px; font-family: Boon300, sans-serif; }
.sf-slider-dots { position: absolute; left: 0; right: 0; bottom: 20px; text-align: center; line-height: 0; }
.sf-slider-dots button { width: 7px; height: 7px; padding: 0; margin: 0 3px; border: 0; border-radius: 7px; background: rgba(255,255,255,.5); cursor: pointer; }
.sf-slider-dots button.is-active { background: #fff; }

/* Blurb icons: own drawings for the Divi icon-font glyphs used on /knowledge (Divi's ETmodules font is not reused). */
.et_pb_blurb.d2b-icon::before { content: ""; display: block; width: 96px; height: 96px; margin: 0 auto 30px; background: no-repeat center / contain; }
.et_pb_blurb.d2b-icon-160::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2096%2096%27%3E%3Crect%20x%3D%2718%27%20y%3D%2714%27%20width%3D%2760%27%20height%3D%2768%27%20fill%3D%27none%27%20stroke%3D%27%237EBEC5%27%20stroke-width%3D%273%27/%3E%3Crect%20x%3D%2732%27%20y%3D%2750%27%20width%3D%278%27%20height%3D%2722%27%20fill%3D%27%237EBEC5%27/%3E%3Crect%20x%3D%2744%27%20y%3D%2736%27%20width%3D%278%27%20height%3D%2736%27%20fill%3D%27%237EBEC5%27/%3E%3Crect%20x%3D%2756%27%20y%3D%2744%27%20width%3D%278%27%20height%3D%2728%27%20fill%3D%27%237EBEC5%27/%3E%3C/svg%3E"); }
.et_pb_blurb.d2b-icon-129::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2096%2096%27%3E%3Crect%20x%3D%2716%27%20y%3D%2714%27%20width%3D%2764%27%20height%3D%2768%27%20fill%3D%27none%27%20stroke%3D%27%237EBEC5%27%20stroke-width%3D%273%27/%3E%3Cline%20x1%3D%2730%27%20y1%3D%2714%27%20x2%3D%2730%27%20y2%3D%2782%27%20stroke%3D%27%237EBEC5%27%20stroke-width%3D%273%27/%3E%3Cline%20x1%3D%2766%27%20y1%3D%2714%27%20x2%3D%2766%27%20y2%3D%2782%27%20stroke%3D%27%237EBEC5%27%20stroke-width%3D%273%27/%3E%3Cline%20x1%3D%2730%27%20y1%3D%2748%27%20x2%3D%2766%27%20y2%3D%2748%27%20stroke%3D%27%237EBEC5%27%20stroke-width%3D%273%27/%3E%3Cpath%20d%3D%27M16%2026h14M16%2038h14M16%2058h14M16%2070h14M66%2026h14M66%2038h14M66%2058h14M66%2070h14%27%20stroke%3D%27%237EBEC5%27%20stroke-width%3D%273%27/%3E%3C/svg%3E"); }
.et_pb_blurb.d2b-icon-72::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2096%2096%27%3E%3Cpath%20d%3D%27M28%2012h34l14%2014v58H28z%27%20fill%3D%27none%27%20stroke%3D%27%237EBEC5%27%20stroke-width%3D%273%27/%3E%3Cpath%20d%3D%27M20%2020v72h48%27%20fill%3D%27none%27%20stroke%3D%27%237EBEC5%27%20stroke-width%3D%273%27/%3E%3Cpath%20d%3D%27M36%2034h30M36%2044h30M36%2054h30M36%2064h30M36%2074h20%27%20stroke%3D%27%237EBEC5%27%20stroke-width%3D%273%27/%3E%3C/svg%3E"); }
.et_pb_blurb.d2b-icon-158::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2096%2096%27%3E%3Cpath%20d%3D%27M12%2018h72M18%2018v46h60V18%27%20fill%3D%27none%27%20stroke%3D%27%237EBEC5%27%20stroke-width%3D%273%27/%3E%3Cpath%20d%3D%27M48%2064v20M48%2084l-12%208M48%2084l12%208%27%20stroke%3D%27%237EBEC5%27%20stroke-width%3D%273%27/%3E%3Cpath%20d%3D%27M26%2054l14-14%2010%208%2018-20%27%20fill%3D%27none%27%20stroke%3D%27%237EBEC5%27%20stroke-width%3D%273%27/%3E%3C/svg%3E"); }
.et_pb_blurb.d2b-icon-147::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2096%2096%27%3E%3Cpath%20d%3D%27M18%2012h40l14%2014v34%27%20fill%3D%27none%27%20stroke%3D%27%237EBEC5%27%20stroke-width%3D%273%27/%3E%3Cpath%20d%3D%27M18%2012v76h30%27%20fill%3D%27none%27%20stroke%3D%27%237EBEC5%27%20stroke-width%3D%273%27/%3E%3Cpath%20d%3D%27M26%2030h26M26%2040h30M26%2050h20%27%20stroke%3D%27%237EBEC5%27%20stroke-width%3D%273%27/%3E%3Ccircle%20cx%3D%2762%27%20cy%3D%2768%27%20r%3D%2712%27%20fill%3D%27none%27%20stroke%3D%27%237EBEC5%27%20stroke-width%3D%273%27/%3E%3Cpath%20d%3D%27M71%2077l12%2012%27%20stroke%3D%27%237EBEC5%27%20stroke-width%3D%274%27/%3E%3C/svg%3E"); }

/* Divi "read more" button on converted post sliders (added by salforest-site) */
.wp-block-latest-posts.et_pb_post_slider .et_pb_more_button { display: inline-block; margin-top: 20px; padding: 3px 12px; border: 2px solid #fff; border-radius: 3px; color: #fff !important; font-size: 16px; }

/* Divi list items have no gap; Twenty Twenty-Five adds 0.5rem to list blocks. */
.entry-content .wp-block-list li { margin-top: 0; }

/* Divi "sticky" image module (frontend JS: a sticky image that ends a column in the section's last row removes the
   section's bottom padding and that of its last rows). */
.d2b-section:has(> :last-child .et_pb_image_sticky:last-child, > .et_pb_image_sticky:last-child),
.d2b-section:has(> :last-child .et_pb_image_sticky:last-child, > .et_pb_image_sticky:last-child) > .et_pb_row:last-child,
.d2b-section:has(> :last-child .et_pb_image_sticky:last-child, > .et_pb_image_sticky:last-child) .et_pb_column_3_4 > .et_pb_row_inner:last-child,
.d2b-section:has(> :last-child .et_pb_image_sticky:last-child, > .et_pb_image_sticky:last-child) .d2b-specialty > .et_pb_column:not(:has(> .et_pb_row_inner)) { padding-bottom: 0 !important; }

/* Divi: smaller headings in 1/3 and 1/4 columns. */
.et_pb_column_1_3 h1, .et_pb_column_1_4 h1 { font-size: 26px; }
.et_pb_column_1_3 h2, .et_pb_column_1_4 h2 { font-size: 22px; }
/* Divi call-to-action (promo) button: 20px below the description, legacy child-theme button metrics. */
.d2b-cta .wp-block-buttons { padding-top: 20px; }
.d2b-cta:has(> .has-text-align-center) .wp-block-buttons { justify-content: center; }
.d2b-cta .wp-block-button__link { font-size: 16px; line-height: 1.7; font-weight: 500; padding: .3em 1em; border-width: 1px; }
/* <hr> inside a Divi text module was the browser default rule. */
.et_pb_text > hr.wp-block-separator { margin: .5em 0 !important; height: 0; border: 1px inset #808080; background: none; opacity: 1; color: inherit; }
