.elementor-kit-6365{--e-global-color-primary:#000000;--e-global-color-secondary:#000000;--e-global-color-text:#7A7A7A;--e-global-color-accent:#224290;--e-global-color-c80c312:#FFFFFF;--e-global-color-a1ed237:#ECECEC;--e-global-color-323b027:#F6F5F3;--e-global-color-c3d3833:#3D3833;--e-global-color-c332e2a:#332E2A;--e-global-typography-primary-font-family:"Cormorant Garamond";--e-global-typography-primary-font-size:48px;--e-global-typography-primary-font-weight:500;--e-global-typography-secondary-font-family:"Cormorant Garamond";--e-global-typography-secondary-font-size:36px;--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Bodoni Moda";--e-global-typography-text-font-size:18px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.6em;--e-global-typography-accent-font-family:"Bodoni Moda";--e-global-typography-accent-font-size:18px;--e-global-typography-accent-font-weight:600;--e-global-typography-45eb7dd-font-family:"Cormorant Garamond";--e-global-typography-55b1413-font-family:"Bodoni Moda";--e-global-typography-c91c152-font-family:"Cormorant Garamond";--e-global-typography-c91c152-font-size:4rem;--e-global-typography-c91c152-font-weight:500;--e-global-typography-c351c58-font-family:"Cormorant Garamond";--e-global-typography-c351c58-font-size:3rem;--e-global-typography-c351c58-font-weight:400;--e-global-typography-53acc51-font-family:"Cormorant Garamond";--e-global-typography-53acc51-font-size:2.5rem;--e-global-typography-53acc51-font-weight:400;--e-global-typography-b180ca5-font-family:"Cormorant Garamond";--e-global-typography-b180ca5-font-size:2rem;--e-global-typography-b180ca5-font-weight:400;--e-global-typography-af6afda-font-family:"Cormorant Garamond";--e-global-typography-af6afda-font-size:1.75rem;--e-global-typography-af6afda-font-weight:500;background-color:var( --e-global-color-323b027 );color:var( --e-global-color-text );font-family:"Bodoni Moda", Serif;font-size:18px;font-weight:400;}.elementor-kit-6365 e-page-transition{background-color:#FFBC7D;}.elementor-kit-6365 p{margin-block-end:16px;}.elementor-kit-6365 a:hover{text-decoration:none;}.elementor-kit-6365 h1{font-family:"Cormorant Garamond", Serif;font-size:64px;font-weight:500;line-height:1em;}.elementor-kit-6365 h2{font-family:"Cormorant Garamond", Serif;font-size:40px;font-weight:400;line-height:1em;}.elementor-kit-6365 h3{font-family:var( --e-global-typography-45eb7dd-font-family ), Serif;}.elementor-kit-6365 h4{font-family:var( --e-global-typography-45eb7dd-font-family ), Serif;}.elementor-kit-6365 h5{font-family:"Cormorant Garamond", Serif;font-size:24px;font-weight:500;line-height:1em;}.elementor-kit-6365 h6{font-family:var( --e-global-typography-45eb7dd-font-family ), Serif;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1400px;}.e-con{--container-max-width:1400px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-kit-6365{--e-global-typography-text-font-size:17px;--e-global-typography-c91c152-font-size:4rem;--e-global-typography-c351c58-font-size:3rem;--e-global-typography-53acc51-font-size:2.5rem;--e-global-typography-b180ca5-font-size:2rem;--e-global-typography-af6afda-font-size:1.75rem;font-size:17px;}.elementor-kit-6365 h1{font-size:56px;}.elementor-kit-6365 h2{font-size:32px;}.elementor-kit-6365 h5{font-size:22px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-6365{--e-global-typography-text-font-size:16px;--e-global-typography-c91c152-font-size:3rem;--e-global-typography-c351c58-font-size:2.4rem;--e-global-typography-53acc51-font-size:2.1rem;--e-global-typography-b180ca5-font-size:1.8rem;--e-global-typography-af6afda-font-size:24px;font-size:16px;}.elementor-kit-6365 h1{font-size:48px;}.elementor-kit-6365 h2{font-size:28px;}.elementor-kit-6365 h5{font-size:20px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* === SMBC kit per-tag heading enforcement (Wave 3) === */
/* --- Wave 3: per-tag heading size enforcement (h3-h6) --- */

.elementor-element h3,
.elementor-widget-theme-post-content h3,
.elementor-widget-text-editor h3 {
    font-size: 32px;
    font-weight: 400;
    line-height: 1;
    font-family: "Cormorant Garamond", serif;
}

.elementor-element h4,
.elementor-widget-theme-post-content h4,
.elementor-widget-text-editor h4 {
    font-size: 28px;
    font-weight: 400;
    line-height: 1;
    font-family: "Cormorant Garamond", serif;
}

.elementor-element h5,
.elementor-widget-theme-post-content h5,
.elementor-widget-text-editor h5 {
    font-size: 24px;
    font-weight: 500;
    line-height: 1;
    font-family: "Cormorant Garamond", serif;
}

.elementor-element h6,
.elementor-widget-theme-post-content h6,
.elementor-widget-text-editor h6 {
    font-size: 18px;
    font-weight: 400;
    line-height: 1;
    font-family: "Cormorant Garamond", serif;
}

@media (min-width: 768px) and (max-width: 1024px) {
    .elementor-element h3,
    .elementor-widget-theme-post-content h3,
    .elementor-widget-text-editor h3 { font-size: 28px; }

    .elementor-element h4,
    .elementor-widget-theme-post-content h4,
    .elementor-widget-text-editor h4 { font-size: 24px; }

    .elementor-element h5,
    .elementor-widget-theme-post-content h5,
    .elementor-widget-text-editor h5 { font-size: 22px; }

    .elementor-element h6,
    .elementor-widget-theme-post-content h6,
    .elementor-widget-text-editor h6 { font-size: 18px; }
}

@media (max-width: 767px) {
    .elementor-element h3,
    .elementor-widget-theme-post-content h3,
    .elementor-widget-text-editor h3 { font-size: 24px; }

    .elementor-element h4,
    .elementor-widget-theme-post-content h4,
    .elementor-widget-text-editor h4 { font-size: 20px; }

    .elementor-element h5,
    .elementor-widget-theme-post-content h5,
    .elementor-widget-text-editor h5 { font-size: 20px; }

    .elementor-element h6,
    .elementor-widget-theme-post-content h6,
    .elementor-widget-text-editor h6 { font-size: 16px; }
}

/* --- Wave 4b (rev2): heading margin rhythm (editorial spacing) --- */
/* Narrowed scope: targets only blog post body content rendered via the_content() or text-editor widgets. */
/* Excludes .elementor-element h* to avoid affecting marketing-page heading widgets. */

.elementor-widget-theme-post-content h2,
.elementor-widget-text-editor h2 {
    margin-top: 48px;
    margin-bottom: 16px;
}

.elementor-widget-theme-post-content h3,
.elementor-widget-text-editor h3 {
    margin-top: 32px;
    margin-bottom: 16px;
}

.elementor-widget-theme-post-content h4,
.elementor-widget-text-editor h4 {
    margin-top: 24px;
    margin-bottom: 16px;
}

.elementor-widget-theme-post-content h5,
.elementor-widget-text-editor h5,
.elementor-widget-theme-post-content h6,
.elementor-widget-text-editor h6 {
    margin-top: 16px;
    margin-bottom: 16px;
}

/* First heading in a content area — no top margin so it doesn't push content down */
.elementor-widget-theme-post-content h2:first-child,
.elementor-widget-theme-post-content h3:first-child,
.elementor-widget-theme-post-content h4:first-child,
.elementor-widget-theme-post-content h5:first-child,
.elementor-widget-theme-post-content h6:first-child {
    margin-top: 0;
}

@media (max-width: 767px) {
    .elementor-widget-theme-post-content h2, .elementor-widget-text-editor h2 { margin-top: 32px; }
    .elementor-widget-theme-post-content h3, .elementor-widget-text-editor h3 { margin-top: 24px; }
    .elementor-widget-theme-post-content h4, .elementor-widget-text-editor h4 { margin-top: 20px; }
}


/* --- Wave 6: zero Elementor's default 10px boxed-container padding on blog post body --- */
.elementor-widget-theme-post-content .e-con-boxed {
    padding-left: 0;
    padding-right: 0;
}



/* --- Wave 7: force block layout on blog body images to prevent float overflow --- */
.elementor-widget-theme-post-content img,
.elementor-widget-text-editor img {
    float: none !important;
    display: block;
    margin: 16px auto;
}



/* --- Wave 8: heading color + bold-wrapper suppression for blog body --- */
.elementor-widget-theme-post-content :is(h2, h3, h4, h5, h6),
.elementor-widget-text-editor :is(h2, h3, h4, h5, h6),
.single-portfolio .elementor-widget-heading h2,
.single-portfolio .elementor-widget-heading h3,
.single-portfolio .elementor-widget-heading h4 {
    color: #000;
}
.elementor-widget-theme-post-content :is(h2, h3, h4, h5, h6) :is(b, strong),
.elementor-widget-text-editor :is(h2, h3, h4, h5, h6) :is(b, strong) {
    font-weight: inherit;
    color: inherit;
}



/* --- Wave 11: site-wide responsive container spacing --- */
@media (max-width: 1024px) {
    .e-con-boxed {
        padding: 24px;
    }
    .e-con-boxed > .e-con-inner {
        gap: 24px;
    }
}

/* --- Wave 12: post-title font-fix + h2 enforcement extension --- */
/* Force Cormorant Garamond on blog post title (rendered by Hello Elementor template, outside Elementor heading widget scope). */
h1.entry-title,
.elementor-post__title,
h1.elementor-heading-title {
    font-family: "Cormorant Garamond", serif;
}

/* Extend Wave 3 enforcement to h2 (was h3-h6 only). */
.elementor-element h2,
.elementor-widget-theme-post-content h2,
.elementor-widget-text-editor h2 {
    font-size: 40px;
    font-weight: 400;
    line-height: 1;
    font-family: "Cormorant Garamond", serif;
}

@media (min-width: 768px) and (max-width: 1024px) {
    .elementor-element h2,
    .elementor-widget-theme-post-content h2,
    .elementor-widget-text-editor h2 { font-size: 32px; }
}

@media (max-width: 767px) {
    .elementor-element h2,
    .elementor-widget-theme-post-content h2,
    .elementor-widget-text-editor h2 { font-size: 28px; }
}

/* === END SMBC === */

/* --- Wave 18: zero Elementor's default 10px child-container padding on portfolio bodies --- */
.single-portfolio .e-con-boxed > .e-con-inner > .e-con-full {
    padding-top: 0;
    padding-bottom: 0;
}


/* --- Wave 19: drop-shadow on Home page centered logo for contrast against varied hero backgrounds --- */
.elementor-6448 .elementor-element-821f457 img {
    filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.4));
}


/* --- Wave 21: Adaptive header contrast + hero title shadow + Home hamburger fixed white+shadow --- */

/* === Layer A — Adaptive header contrast (non-Home, all viewports) === */
/* Default state (no class yet) + explicit dark-text class — both produce black text */
body:not(.smbc-header-text-light):not(.smbc-header-text-light-shadowed) [data-elementor-type="header"] .elementor-widget-icon svg {
    fill: #000;
}
body:not(.smbc-header-text-light):not(.smbc-header-text-light-shadowed) [data-elementor-type="header"] .elementor-widget-heading h2,
body:not(.smbc-header-text-light):not(.smbc-header-text-light-shadowed) [data-elementor-type="header"] .elementor-widget-heading a {
    color: #000;
}
/* Dark hero (YIQ < 100) → white text, no shadow */
body.smbc-header-text-light [data-elementor-type="header"] .elementor-widget-icon svg {
    fill: #fff;
}
body.smbc-header-text-light [data-elementor-type="header"] .elementor-widget-heading h2,
body.smbc-header-text-light [data-elementor-type="header"] .elementor-widget-heading a {
    color: #fff;
}
/* Borderline (YIQ 100–156) → white text + safety shadow */
body.smbc-header-text-light-shadowed [data-elementor-type="header"] .elementor-widget-icon svg {
    fill: #fff;
    filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.5));
}
body.smbc-header-text-light-shadowed [data-elementor-type="header"] .elementor-widget-heading h2,
body.smbc-header-text-light-shadowed [data-elementor-type="header"] .elementor-widget-heading a {
    color: #fff;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}

/* === Layer B (Wave 22) — Hero page title text-shadow, scoped to heading widgets only ===
   Wave 22 (2026-05-15) replaces the Wave 21 + 21.1 .elementor-kit-6365s. Old form bled into blog post body
   text-editor H2s on posts whose post_content was a single :first-of-type container (e.g., 5585
   "Cape Cod Architecture"). New form requires the h1/h2 to live inside an Elementor heading
   widget — body text-editor headings are excluded by construction. Also extends to single-post
   wrapper so blog post hero H1s (rendered through the Theme Builder template) get the shadow.
   Wave 23: removed @media (min-width: 768px) gate — hero title shadows now apply at all viewports. */
[data-elementor-type="wp-post"] > [data-element_type="container"]:first-of-type .elementor-widget-heading h1,
[data-elementor-type="wp-page"] > [data-element_type="container"]:first-of-type .elementor-widget-heading h1,
[data-elementor-type="single-post"] > [data-element_type="container"]:first-of-type .elementor-widget-heading h1,
[data-elementor-type="wp-post"] > [data-element_type="container"]:first-of-type .elementor-widget-heading h2,
[data-elementor-type="wp-page"] > [data-element_type="container"]:first-of-type .elementor-widget-heading h2 {
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
}

/* === Layer C — Home page hamburger: locked white + drop-shadow (slideshow has mixed luminance) === */
/* No @media — applies at all viewports because Home is special-cased out of the JS auto-detect */
.elementor-6448 .elementor-element-3bc26a8b a.elementor-icon,
.elementor-6448 .elementor-element-3bc26a8b svg {
    color: #fff;
    fill: #fff;
}
.elementor-6448 .elementor-element-3bc26a8b svg {
    filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.4));
}

/* === Wave 21.1 — Layer A specificity fix (!important) === */
/* Beats Elementor's per-post .elementor-element-{id} icon-fill rule (specificity 0,4,1).
   !important scoped ONLY to the JS-classified states (light + light-shadowed);
   the default-state .elementor-kit-6365 stays without !important (its #000 ties with Elementor's
   --e-global-color-primary, tie is fine). */
body.smbc-header-text-light [data-elementor-type="header"] .elementor-widget-icon svg {
    fill: #fff !important;
}
body.smbc-header-text-light-shadowed [data-elementor-type="header"] .elementor-widget-icon svg {
    fill: #fff !important;
    filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.5)) !important;
}

/* === Wave 21.2 — Logo invert flip + H3 extension + Sticky-state reset === */

/* === Layer A2 — Extend Wave 21 header heading-color .elementor-kit-6365s to H3 (Contact widget uses H3) === */
body:not(.smbc-header-text-light):not(.smbc-header-text-light-shadowed) [data-elementor-type="header"] .elementor-widget-heading h3 {
    color: #000;
}
body.smbc-header-text-light [data-elementor-type="header"] .elementor-widget-heading h3 {
    color: #fff;
}
body.smbc-header-text-light-shadowed [data-elementor-type="header"] .elementor-widget-heading h3 {
    color: #fff;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}

/* === Layer B — Header logo color flip via filter: invert(1) === */
/* Pixel analysis confirmed the PNG is 76% transparent + 24% pure black + 0% other colors —
   invert(1) produces a clean white logo with zero antialiasing artifacts. */
body.smbc-header-text-light [data-elementor-type="header"] .elementor-widget-theme-site-logo img {
    filter: invert(1);
}
body.smbc-header-text-light-shadowed [data-elementor-type="header"] .elementor-widget-theme-site-logo img {
    filter: invert(1) drop-shadow(0 1px 3px rgba(0, 0, 0, 0.5));
}


/* === Wave 21.3 — Past-hero state reset (header over cream page body) === */
/* Triggered by JS-set `body.smbc-past-hero` class. When hero scrolls past the sticky header
   offset, header is over page body bg (cream) — force all 3 elements to black + clear
   filters/shadows. Selectors at specificity (0,4,2) cleanly beat Wave 21.1's (0,3,2) rules.
   Wave 23: removed @media (min-width: 768px) gate — past-hero reset now applies at all viewports. */
/* Hamburger SVG — force black + clear any drop-shadow filter */
body.smbc-past-hero [data-elementor-type="header"] .elementor-widget-icon svg {
    fill: #000 !important;
    filter: none !important;
}
/* Site logo IMG — clear invert(1) from Wave 21.2 Layer B */
body.smbc-past-hero [data-elementor-type="header"] .elementor-widget-theme-site-logo img {
    filter: none !important;
}
/* Contact heading + link — clear color + text-shadow */
body.smbc-past-hero [data-elementor-type="header"] .elementor-widget-heading h1,
body.smbc-past-hero [data-elementor-type="header"] .elementor-widget-heading h2,
body.smbc-past-hero [data-elementor-type="header"] .elementor-widget-heading h3,
body.smbc-past-hero [data-elementor-type="header"] .elementor-widget-heading a {
    color: #000 !important;
    text-shadow: none !important;
}/* End custom CSS */