.sb-base-builder-layout {
  color: var(--sb-base-color-text, #2a2a2a);
  background: var(--sb-base-color-background, #fff);
  font-family: var(--sb-base-font-body, system-ui, sans-serif);
  font-size: var(--sb-base-font-size, 16px);
  line-height: 1.65;
}

/*
 * Builder pages must escape WordPress' normal article width. The block-theme
 * page template intentionally constrains ordinary text to about 760px; a
 * visual page layout needs the full viewport and applies its own containers.
 */
body.sb-base-has-builder-layout main.sb-base-section {
  padding-block: 0 !important;
  padding-inline: 0 !important;
}

body.sb-base-has-builder-layout .entry-content.wp-block-post-content,
body.sb-base-has-builder-layout .wp-block-post-content > .sb-base-builder-layout,
body.sb-base-has-builder-layout .entry-content > .sb-base-builder-layout {
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding-inline: 0 !important;
}

.sb-base-builder-layout *,
.sb-base-builder-layout *::before,
.sb-base-builder-layout *::after { box-sizing: border-box; }
.sb-base-builder-layout img { display: block; max-width: 100%; height: auto; }
.sb-base-builder-layout a { color: var(--sb-base-color-link, #111); }

.sb-base-builder-section { position: relative; width: 100%; max-width: none; background-repeat: no-repeat; }
.sb-base-builder-section--boxed { width: min(calc(100% - 2rem), var(--sb-base-container-width, 1200px)); margin-inline: auto; }
.sb-base-builder-container { display: grid; width: min(100%, var(--sb-base-container-max, var(--sb-base-container-width, 1200px))); max-width: var(--sb-base-container-max, var(--sb-base-container-width, 1200px)); margin-inline: auto; grid-template-columns: 1fr; gap: var(--sb-base-columns-gap, 24px); }
.sb-base-builder-container--full { width: 100%; max-width: none; }
.sb-base-layout-50-50 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sb-base-layout-40-60 { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); }
.sb-base-layout-60-40 { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
.sb-base-layout-33-33-33 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sb-base-layout-25-25-25-25 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sb-base-layout-25-75 { grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); }
.sb-base-layout-75-25 { grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); }
.sb-base-builder-column { min-width: 0; }
.sb-base-builder-module { margin-block: 0 1.5rem; }
.sb-base-builder-module:last-child { margin-bottom: 0; }

.sb-base-module-button__align-left { text-align: left; }
.sb-base-module-button__align-center { text-align: center; }
.sb-base-module-button__align-right { text-align: right; }
.sb-base-module-button__link { display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: var(--sb-base-button-radius, 2px); font-weight: 700; letter-spacing: .04em; line-height: 1.2; text-decoration: none; text-transform: uppercase; transition: transform .18s ease, background .18s ease; }
.sb-base-module-button__link:hover { transform: translateY(-2px); }
.sb-base-module-button__link--small { padding: .65rem 1rem; font-size: .75rem; }
.sb-base-module-button__link--medium { padding: .9rem 1.4rem; font-size: .82rem; }
.sb-base-module-button__link--large { padding: 1.05rem 1.7rem; font-size: .9rem; }
.sb-base-module-button__link--primary { color: #fff !important; background: var(--sb-base-color-primary, #111); }
.sb-base-module-button__link--secondary { color: #fff !important; background: var(--sb-base-color-secondary, #2a2a2a); }
.sb-base-module-button__link--outline { color: var(--sb-base-color-primary, #111) !important; border-color: currentColor; background: transparent; }
.sb-base-module-button__link--text { padding-inline: 0; color: var(--sb-base-color-primary, #111) !important; background: transparent; }

.sb-base-module-hero { margin: 0; }
.sb-base-module-hero__inner { position: relative; display: grid; min-height: 560px; grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr); align-items: stretch; overflow: visible; }
.sb-base-module-hero__copy { display: flex; min-width: 0; padding: clamp(3rem, 4.6vw, 5.25rem); flex-direction: column; justify-content: center; }
.sb-base-module-hero__copy h1 { max-width: 12ch; margin: 0 0 1.2rem; color: var(--sb-base-color-heading, #111); font: 400 clamp(3.15rem, 4.2vw, 5rem)/1.02 var(--sb-base-font-heading, Georgia, serif); letter-spacing: -.025em; text-wrap: balance; }
.sb-base-module-hero__eyebrow { color: var(--sb-base-color-accent, #c8a96a); font-size: .76rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.sb-base-module-hero__buttons { display: flex; margin-top: 1.5rem; flex-wrap: wrap; gap: .75rem; }
.sb-base-module-hero__shortcode { position: absolute; z-index: 3; right: clamp(1rem, 4vw, 4rem); bottom: -3rem; width: min(390px, calc(100% - 2rem)); }
.sb-base-module-hero__media { min-height: 480px; background: #111; }
.sb-base-module-hero__media img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); }
.sb-base-module-hero__inner--image-left .sb-base-module-hero__media { order: -1; }
.sb-base-module-hero__inner--centered { min-height: 520px; grid-template-columns: 1fr; text-align: center; }
.sb-base-module-hero__inner--centered .sb-base-module-hero__copy { align-items: center; max-width: 980px; margin: auto; }
.sb-base-module-hero__inner--background { min-height: 620px; grid-template-columns: 1fr; color: #fff; background-size: cover; background-position: center; }
.sb-base-module-hero__inner--background .sb-base-module-hero__copy { max-width: 900px; }
.sb-base-module-hero__inner--background h1 { color: #fff; }
.sb-base-module-placeholder { display: grid; place-items: center; color: #fff; }

.sb-base-module-cards__grid,
.sb-base-module-posts__grid { display: grid; grid-template-columns: repeat(var(--sb-base-card-columns, var(--sb-base-post-columns, 3)), minmax(0, 1fr)); gap: 1.5rem; }
.sb-base-module-cards__item,
.sb-base-module-posts__item { padding: clamp(1.4rem, 3vw, 2.2rem); border: 1px solid #edeae5; background: #fff; box-shadow: var(--sb-base-global-shadow); }
.sb-base-module-cards__icon { display: grid; width: 3rem; height: 3rem; margin-bottom: 1.25rem; place-items: center; border: 1px solid var(--sb-base-color-accent, #c8a96a); border-radius: 50%; color: var(--sb-base-color-accent, #c8a96a); }
.sb-base-module-gallery__grid { display: grid; grid-template-columns: repeat(var(--sb-base-gallery-columns, 3), minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
.sb-base-module-gallery__item { position: relative; min-width: 0; margin: 0; overflow: hidden; background: #111; }
.sb-base-module-gallery__item img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; filter: grayscale(1); transition: transform .45s ease, filter .45s ease; }
.sb-base-module-gallery__item:hover img { transform: scale(1.025); filter: grayscale(.72); }
.sb-base-module-gallery__item figcaption { position: absolute; right: 0; bottom: 0; left: 0; padding: 1.5rem 1.25rem 1rem; color: #fff; background: linear-gradient(transparent, rgb(0 0 0 / 78%)); font-size: .72rem; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.sb-base-module-posts__item time { display: block; margin-top: 1rem; color: #666; font-size: .82rem; }
.sb-base-module-posts__item h3 { font-size: 1.45rem; }
.sb-base-module-posts__item a { text-decoration: none; }
.sb-base-module-testimonials__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.sb-base-module-testimonials blockquote { margin: 0; padding: 2rem; border-left: 3px solid var(--sb-base-color-accent, #c8a96a); background: #f7f5f1; }
.sb-base-module-testimonials__empty { display: flex; min-height: 160px; padding: 1.5rem 2rem; align-items: center; justify-content: center; flex-direction: column; color: #454545; background: linear-gradient(100deg, #fbfaf7, #f4f1ea, #fbfaf7); text-align: center; }
.sb-base-module-testimonials__empty > span { height: 2.3rem; color: var(--sb-base-color-accent, #c8a96a); font: 4.5rem/.8 Georgia, serif; }
.sb-base-module-testimonials__empty p { max-width: 680px; margin: .75rem auto; font: italic clamp(1.1rem, 2vw, 1.45rem)/1.45 var(--sb-base-font-heading, Georgia, serif); }
.sb-base-module-testimonials__empty strong { font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; }
.sb-base-module-contact__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 6vw, 6rem); }

.sb-base-product-hero .sb-base-module-hero__copy h1,
.sb-base-product-hero .sb-base-module-hero__copy { color: #fff; }
.sb-base-product-hero .sb-base-module-hero__copy h1 { color: #fff; }
.sb-base-builder-section.evelyn-hero { padding-block: 0 !important; }
.sb-base-builder-preset-evelyn .sb-base-module-hero__media img { object-position: 50% 28%; }

@media (min-width: 783px) and (max-width: 1120px) {
  .sb-base-module-hero__inner { grid-template-columns: minmax(0, 1fr) minmax(300px, .9fr); }
  .sb-base-module-hero__copy { padding: 3.25rem 2.5rem; }
  .sb-base-module-hero__copy h1 { font-size: clamp(3rem, 5.7vw, 4.25rem); }
}

@media (min-width: 1025px) { .sb-base-hide-desktop { display: none !important; } }
@media (min-width: 783px) and (max-width: 1024px) { .sb-base-hide-tablet { display: none !important; } }
@media (max-width: 782px) {
  .sb-base-hide-mobile { display: none !important; }
  .sb-base-builder-container { grid-template-columns: 1fr; }
  .sb-base-builder-container--mobile-reverse { display: flex; flex-direction: column-reverse; }
  .sb-base-module-hero__inner { min-height: auto; grid-template-columns: 1fr; }
  .sb-base-module-hero__copy { padding: 3.5rem 1.25rem; }
  .sb-base-module-hero__copy h1 { max-width: 11ch; font-size: clamp(2.8rem, 14vw, 4.25rem); }
  .sb-base-module-hero__media { min-height: 400px; }
  .sb-base-module-hero__shortcode { position: static; width: 100%; margin-top: 1.5rem; }
  .sb-base-module-cards__grid,
  .sb-base-module-gallery__grid,
  .sb-base-module-posts__grid,
  .sb-base-module-testimonials__grid,
  .sb-base-module-contact__grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .sb-base-builder-layout *,
  .sb-base-builder-layout *::before,
  .sb-base-builder-layout *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
