:root {
  --bldg-edge: clamp(1.25rem, 4.2vw, 3.75rem);
  --bldg-section-space: clamp(6rem, 10vw, 10.625rem);
  --bldg-content-wide: 81.5625rem;
  --bldg-content-text: 47.5rem;
  --bldg-image-radius: 8px;
  --bldg-image-shadow: 0 3px 12px rgb(0 0 0 / 6%);
  --bldg-heading-family: var(--wp--preset--font-family--cormorant);
  --bldg-heading-size: clamp(2.75rem, 5.2vw, 5rem);
  --bldg-heading-weight: 300;
  --bldg-heading-tracking: -.025em;
  --bldg-heading-leading: 1.04;
  --bldg-heading-measure: 17ch;
  --bldg-lead-size: clamp(1.13rem, 1.55vw, 1.45rem);
}
@media (max-width: 781px) {
  :root {
    --bldg-heading-size: clamp(2.75rem, 8.5vw, 4rem);
    --bldg-heading-measure: 18ch;
  }
}
html { scroll-behavior: smooth; }
body { margin: 0; }
img, video { max-width: 100%; }
a { text-underline-offset: 0.16em; }
a:hover, a:focus-visible { text-decoration: underline; }
/* Inline prose links stay identifiable on touch, with an ink-line reveal on interaction. */
.wp-block-post-content p:not(.bldg-e-link) a:not(.bldg-text-link) {
  background-image: linear-gradient(#56534d, #56534d), linear-gradient(#aaa69d, #aaa69d);
  background-position: 0 100%, 0 100%;
  background-repeat: no-repeat;
  background-size: 0% 1px, 100% 1px;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  text-decoration: none;
  transition: background-size 380ms cubic-bezier(.2,.7,.2,1);
}
.wp-block-post-content p:not(.bldg-e-link) a:not(.bldg-text-link):is(:hover, :focus-visible) {
  background-size: 100% 1px, 100% 1px;
  text-decoration: none;
}
.wp-block-post-content p:not(.bldg-e-link) a:not(.bldg-text-link):focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
  .wp-block-post-content p:not(.bldg-e-link) a:not(.bldg-text-link) { transition: none; }
}
@media (forced-colors: active) {
  .wp-block-post-content p:not(.bldg-e-link) a:not(.bldg-text-link) { text-decoration: underline; }
}
.bldg-header { padding-block: .7rem; position: relative; z-index: 20; }
.bldg-header__inner { max-width: none !important; min-height: 3rem; padding-inline: var(--bldg-edge); }
.bldg-logo { display: block; line-height: 0; width: clamp(7rem, 9vw, 10rem); }
.bldg-logo img { display: block; height: auto; width: 100%; }
.wp-block-navigation__responsive-container { clip-path: inset(0 0 0 100%); display: block; opacity: 0; pointer-events: none; transition: clip-path 480ms cubic-bezier(.7,0,.2,1), opacity 1ms linear 480ms; }
.wp-block-navigation__responsive-container.has-modal-open,
.wp-block-navigation__responsive-container.is-menu-open { clip-path: inset(0); opacity: 1; pointer-events: auto; transition: clip-path 480ms cubic-bezier(.2,.7,.2,1), opacity 1ms linear; }
.wp-block-navigation__responsive-container-content { box-sizing: border-box; padding-left: clamp(2.75rem, 8vw, 6rem) !important; padding-right: var(--bldg-edge) !important; }
.wp-block-navigation__responsive-container-content .wp-block-navigation__container { align-content: center !important; align-items: start !important; display: grid !important; gap: clamp(.45rem, 1.5vh, 1rem) .65rem !important; grid-template-columns: 44px 44px minmax(0, 1fr); width: 100%; }
.wp-block-navigation__responsive-container-content .wp-block-navigation-item:not(.bldg-nav-social) { align-items: flex-start !important; grid-column: 1 / -1; }
.wp-block-navigation__responsive-container-content .wp-block-navigation-item { opacity: 0; transform: translateX(-32px); }
.wp-block-navigation__responsive-container.has-modal-open .wp-block-navigation-item,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { animation: bldg-menu-item-in 520ms cubic-bezier(.2,.7,.2,1) both; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(1) { animation-delay: 360ms; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(2) { animation-delay: 430ms; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(3) { animation-delay: 500ms; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(4) { animation-delay: 570ms; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(5) { animation-delay: 690ms; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(6) { animation-delay: 750ms; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(7) { animation-delay: 810ms; }
@keyframes bldg-menu-item-in { to { opacity: 1; transform: none; } }
.wp-block-navigation__responsive-container-content .wp-block-navigation-item:not(.bldg-nav-social) .wp-block-navigation-item__content { font-size: clamp(2.35rem, 10vw, 4.75rem); letter-spacing: -.035em; line-height: 1.05; }
.wp-block-navigation__responsive-container-content .bldg-nav-social { margin-top: clamp(1.25rem, 3vh, 2.5rem); }
.wp-block-navigation__responsive-container-content .bldg-nav-social + .bldg-nav-social { margin-top: clamp(1.25rem, 3vh, 2.5rem); }
.wp-block-navigation__responsive-container-content .bldg-nav-social .wp-block-navigation-item__content { align-items: center; display: inline-flex; font-size: 0; height: 44px; justify-content: center; width: 44px; }
.wp-block-navigation__responsive-container-content .bldg-nav-social .wp-block-navigation-item__content::before { background: currentColor; content: ''; display: block; height: 24px; mask: center / contain no-repeat; width: 24px; }
.wp-block-navigation__responsive-container-content .bldg-nav-social .wp-block-navigation-item__content[href*="instagram.com"]::before { mask-image: url('../icons/instagram.svg'); }
.wp-block-navigation__responsive-container-content .bldg-nav-social .wp-block-navigation-item__content[href*="houzz.com"]::before { mask-image: url('../icons/houzz.svg'); }
.wp-block-navigation__responsive-container-content .bldg-nav-social .wp-block-navigation-item__content:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.wp-block-navigation__responsive-container-close { right: var(--bldg-edge) !important; top: 1.4rem !important; }
.bldg-home-intro h1 { max-width: 12ch; }
.bldg-home-intro p { max-width: 46ch; }
.bldg-project-grid { display: grid; gap: clamp(1.75rem, 3vw, 4rem) clamp(0.75rem, 1.3vw, 1.5rem); grid-template-columns: 1fr; }
.bldg-project-grid.is-masonry-ready { align-items: start; grid-auto-rows: 1px; row-gap: 0; }
.bldg-project-card { margin: 0; }
.bldg-project-browser [hidden], .bldg-project-empty[hidden] { display: none !important; }
.bldg-project-grid.is-masonry-ready .bldg-project-card { padding-bottom: clamp(1.75rem, 3vw, 4rem); }
.bldg-project-card a { display: block; }
.bldg-project-card__image { background: #dedbd3; border-radius: var(--bldg-image-radius); box-shadow: var(--bldg-image-shadow); overflow: hidden; position: relative; }
.bldg-project-card__image img { display: block; height: auto; transition: transform 600ms cubic-bezier(.2,.7,.2,1); width: 100%; }
.bldg-project-card__image .bldg-project-card__alternate { height: 100%; width: 100%; object-fit: cover; object-position: center; inset: 0; opacity: 0; position: absolute; transition: opacity 450ms ease; }
.bldg-project-card a:hover img { transform: scale(1.015); }
.bldg-project-card a:hover .bldg-project-card__alternate { opacity: 1; }
.bldg-project-card__meta { align-items: baseline; display: flex; gap: 1rem; justify-content: space-between; padding-top: 0.65rem; }
.bldg-project-card__meta h2, .bldg-project-card__meta p { font-size: 0.78rem; letter-spacing: 0.06em; margin: 0; text-transform: uppercase; }
.bldg-project-card__meta p { color: var(--wp--preset--color--stone); text-align: right; }
.bldg-project-index { padding: clamp(4rem, 8vw, 8rem) var(--bldg-edge) var(--bldg-section-space); }
.bldg-project-index__inner { margin-inline: auto; max-width: var(--bldg-content-wide); }
.bldg-project-index h1 { margin-block: 0 2.5rem; }
.bldg-project-index .wp-block-post-content > p { font-size: clamp(1.1rem, 1rem + .3vw, 1.4rem); max-width: var(--bldg-content-text); }
.bldg-project-index__header { margin-bottom: 3rem; }
.bldg-project-eyebrow { font-size: .78rem; margin-bottom: 2rem; }
.bldg-project-browser { margin-block: clamp(3rem, 5vw, 5rem); }
.bldg-project-filters { display: flex; flex-wrap: wrap; gap: .65rem; }
.bldg-project-filters a { border: 1px solid #c6c2b9; border-radius: 3px; font-size: .8rem; padding: .65rem .9rem; text-decoration: none; transition: background-color 180ms ease, color 180ms ease; }
.bldg-project-filters a:hover, .bldg-project-filters a[aria-current] { background: #111; border-color: #111; color: #fff; }
.bldg-project-filters a:focus-visible { outline: 2px solid #111; outline-offset: 3px; }
.bldg-project-filter-summary { align-items: baseline; display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; justify-content: space-between; margin-block: 1.5rem 2rem; }
.bldg-project-filter-summary p, .bldg-project-filter-summary a { font-size: .8rem; margin: 0; }
.bldg-project-filter-summary a { text-decoration: underline; }
.bldg-project-focus { border-top: 1px solid #c6c2b9; margin-top: clamp(4rem, 7vw, 7rem); padding-top: clamp(3rem, 5vw, 5rem); }
.bldg-project-focus > * { max-width: var(--bldg-content-text); }
.bldg-project-focus h2 { font-size: clamp(1.8rem, 1.4rem + 1.5vw, 3rem); }
.bldg-project-focus h3 { font-size: 1.4rem; margin-top: 2.5rem; }
.bldg-project-index__return { margin-top: 3rem; }
.bldg-home-projects { padding: 0 var(--bldg-edge) var(--bldg-section-space); }
.bldg-home-projects > * { margin-inline: auto; max-width: var(--bldg-content-wide); }
.bldg-home-projects__header { align-items: baseline; display: flex; flex-wrap: wrap; gap: 1rem 2rem; justify-content: space-between; margin-bottom: 2.5rem; }
.bldg-home-projects__header h2 { font-size: clamp(2rem, 1.4rem + 2.3vw, 4rem); margin: 0; }
.bldg-home-projects__more { margin-top: 1.5rem; }
.bldg-project__header h1 { max-width: 14ch; }
.bldg-project-facts { display: flex; flex-wrap: wrap; gap: 1rem 2.5rem; margin: 2rem 0 0; }
.bldg-project-facts div { min-width: 9rem; }
.bldg-project-facts dt { color: var(--wp--preset--color--stone); font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; }
.bldg-project-facts dd { margin: 0.25rem 0 0; }
.bldg-project-gallery { --gallery-gap: clamp(12px, 1.3vw, 24px); display: grid; gap: var(--gallery-gap); }
.bldg-project-gallery__item { border-radius: var(--bldg-image-radius); box-shadow: var(--bldg-image-shadow); margin: 0; min-width: 0; overflow: hidden; position: relative; }
.bldg-project-gallery__item > a { display: block; overflow: hidden; }
.bldg-project-gallery__item img, .bldg-project-gallery__item video { display: block; height: auto; width: 100%; }
.bldg-project-gallery__item video { aspect-ratio: var(--gallery-ratio); }
.bldg-project-gallery__item img { transition: transform 650ms cubic-bezier(.2,.7,.2,1); }
.bldg-project-gallery__item figcaption { opacity: 0; align-items: flex-end; background: linear-gradient(to top, rgb(0 0 0 / 95%), rgb(0 0 0 / 0%)); bottom: 0; box-sizing: border-box; color: #fff; display: flex; font-size: clamp(.75rem, .7rem + .15vw, .875rem); left: 0; line-height: 1.5; margin: 0; min-height: 20%; padding: 2.5rem clamp(1rem, 2vw, 1.75rem) 1rem; pointer-events: none; position: absolute; width: 100%; }
.bldg-project-gallery__item:focus-within { outline: 2px solid currentColor; outline-offset: 4px; }
/* Justified rows: proportional widths, equal heights, saved DOM order. */
@media (min-width: 700px) {
  .bldg-project-gallery { display: flex; flex-wrap: wrap; align-items: flex-start; }
  .bldg-project-gallery > .bldg-project-gallery__item { aspect-ratio: var(--gallery-ratio); height: var(--gallery-height, auto); flex: 0 0 var(--gallery-width, calc(100% * var(--gallery-fraction) - var(--gallery-gap) * var(--gallery-gap-share))); }
  /* The opening occupies its own row, including when the next image is narrow. */
  .bldg-project-gallery > .bldg-project-gallery__item:first-child { flex-basis: 75%; margin-left: 25%; }
  .bldg-project-gallery > .bldg-project-gallery__item > a, .bldg-project-gallery > .bldg-project-gallery__item img, .bldg-project-gallery > .bldg-project-gallery__item video { height: 100%; object-fit: contain; }
}
/* A quiet film invitation, separate from the photograph browsing sequence. */
.bldg-project-film__callout { margin-bottom: 1rem; }
.bldg-project-film__link { align-items: center; display: inline-flex; gap: .75rem; min-height: 44px; font-size: .875rem; line-height: 1.4; text-decoration: none; }
.bldg-project-film__play { display: block; flex: 0 0 32px; height: 32px; width: 32px; }
.bldg-project-film__link:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
@media (min-width: 700px) {
  .bldg-project-media--film-aside { display: grid; }
  .bldg-project-media--film-aside > .bldg-project-gallery, .bldg-project-media--film-aside > .bldg-project-film__callout { grid-area: 1 / 1; }
  .bldg-project-media--film-aside > .bldg-project-film__callout { align-items: flex-end; align-self: start; aspect-ratio: calc(var(--film-opening-ratio) / 3); box-sizing: border-box; display: flex; margin: 0; padding: 0 clamp(12px, 1.3vw, 24px) 0 0; width: 25%; z-index: 1; }
}
.bldg-project-film__dialog { background: #111; border: 0; box-sizing: border-box; color: #fff; max-width: none; max-height: calc(100dvh - 32px); padding: 16px; width: min(1200px, calc(100vw - 32px), calc((100dvh - 160px) * 16 / 9)); overflow: auto; }
.bldg-project-film__dialog:not([open]) { display: none; }
.bldg-project-film__dialog::backdrop { background: rgb(0 0 0 / 94%); }
.bldg-project-film__toolbar { align-items: center; display: flex; gap: 1rem; justify-content: space-between; font-size: .875rem; margin-bottom: 12px; }
.bldg-project-film__toolbar button { align-items: center; appearance: none; background: transparent; border: 0; border-radius: 0; color: inherit; cursor: pointer; display: inline-flex; flex: 0 0 44px; height: 44px; justify-content: center; padding: 0; }
.bldg-project-film__toolbar button svg { display: block; height: 24px; width: 24px; }
.bldg-project-film__toolbar button:focus-visible, .bldg-project-film__youtube:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.bldg-project-film__frame { aspect-ratio: 16 / 9; background: #000; position: relative; }
.bldg-project-film__frame iframe, .bldg-project-film__poster { border: 0; display: block; height: 100%; position: absolute; inset: 0; width: 100%; }
.bldg-project-film__poster { object-fit: contain; }
.bldg-project-film__youtube { color: inherit; display: inline-block; font-size: .75rem; margin-top: 12px; }
.wp-block-post-content .wp-block-image img { border-radius: var(--bldg-image-radius); box-shadow: var(--bldg-image-shadow); }
@media (hover: hover) and (pointer: fine) {
  .bldg-project-gallery__item figcaption { opacity: 0; transform: translateY(6px); transition: opacity 400ms ease, transform 500ms cubic-bezier(.2,.7,.2,1); }
  .bldg-project-gallery__item:hover figcaption, .bldg-project-gallery__item:focus-within figcaption { opacity: 1; transform: none; }
  .bldg-project-gallery__item:hover img, .bldg-project-gallery__item:focus-within img { transform: scale(1.025); }
}
.bldg-project__narrative { font-size: clamp(1.05rem, 0.98rem + 0.3vw, 1.3rem); }
.bldg-project__narrative iframe[src*="youtube.com/embed/"],
.bldg-project__narrative iframe[src*="player.vimeo.com/video/"] { aspect-ratio: 16 / 9; display: block; height: auto; max-width: 100%; }
.bldg-project__narrative > .wp-block-post-content { border-top: 10px solid #56534d; padding-top: 40px; }
.bldg-project-next { border-top: 1px solid #c8c4bb; margin: 0 auto clamp(5rem, 8vw, 8rem); max-width: var(--bldg-content-wide); padding-top: clamp(1.5rem, 3vw, 2.5rem); }
.bldg-project-next__heading { align-items: baseline; display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; margin-bottom: clamp(1.5rem, 3vw, 2.5rem); }
.bldg-project-next__heading h2 { font-size: clamp(1.7rem, 2.5vw, 2.75rem); font-weight: 400; margin: 0; }
.bldg-project-next__heading a, .bldg-project-next__card > span:last-child { font-size: .8rem; letter-spacing: .04em; text-decoration: none; }
.bldg-project-next__heading a { border-bottom: 1px solid currentColor; }
.bldg-project-next__grid { display: grid; gap: clamp(1.5rem, 3vw, 3rem); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bldg-project-next__card { display: block; text-decoration: none; }
.bldg-project-next__image { aspect-ratio: 4 / 3; border-radius: var(--bldg-image-radius); display: block; overflow: hidden; position: relative; width: 100%; }
.bldg-project-next__image img { display: block; height: 100%; inset: 0; object-fit: cover; position: absolute; transition: transform 600ms cubic-bezier(.2,.7,.2,1); width: 100%; }
.bldg-project-next__image .bldg-project-card__alternate { opacity: 0; transition: opacity 450ms ease, transform 600ms cubic-bezier(.2,.7,.2,1); }
.bldg-project-next__card:is(:hover,:focus-visible) .bldg-project-next__image img { transform: scale(1.015); }
.bldg-project-next__card:is(:hover,:focus-visible) .bldg-project-card__alternate { opacity: 1; }
.bldg-project-next__card > span:last-child { display: flex; justify-content: space-between; padding-top: .75rem; text-transform: uppercase; }
.bldg-project-next a:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
/* Shared display type: real page H1s, editor previews and the footer CTA.
 * Slideshow captions are deliberately excluded. Styles never depend on JS. */
:is(.bldg-primary-h1, main h1:not(.bldg-slider h1), .editor-styles-wrapper h1, .bldg-footer__heading) {
  font-family: var(--bldg-heading-family);
  font-size: var(--bldg-heading-size);
  font-weight: var(--bldg-heading-weight);
  letter-spacing: var(--bldg-heading-tracking);
  line-height: var(--bldg-heading-leading);
  max-width: var(--bldg-heading-measure);
  text-align: left;
  text-wrap: balance;
}
/* The saved footer block retains its Gutenberg font-size preset. */
.bldg-footer__heading { font-size: var(--bldg-heading-size) !important; }
:is(.bldg-primary-h1, main h1:not(.bldg-slider h1)) { margin-inline: 0 !important; }
.bldg-lead, .bldg-lead > p, .bldg-editorial .bldg-e-lead {
  font-size: var(--bldg-lead-size);
  line-height: 1.5;
  letter-spacing: -.015em;
  max-width: 54ch;
  text-align: left;
}
/* Legacy category descriptions can contain saved inline centre alignment. */
.bldg-project-index__intro p { text-align: left !important; }
.bldg-word-mask .bldg-e-word { display: inline-block; }
.bldg-word-mask.is-sweep-staged .bldg-e-word { clip-path: inset(-0.18em 100% -0.22em 0); }
.is-mask-prefix-staged { opacity: 0; }
@media (prefers-reduced-motion: reduce) {
  .bldg-word-mask.is-sweep-staged .bldg-e-word { clip-path: none; }
  .is-mask-prefix-staged { opacity: 1; }
}
.bldg-footer { border-top: 1px solid color-mix(in srgb, currentColor 18%, transparent); }
.bldg-home--slider { margin-top: 0; }
.bldg-slider { background: #1b1b1b; color: #fff; height: calc(100svh - 70px); margin-left: calc(-1 * var(--wp--preset--spacing--20)); min-height: 26rem; overflow: hidden; position: relative; width: calc(100% + (2 * var(--wp--preset--spacing--20))); }
.bldg-slider__track, .bldg-slide { height: 100%; }
.bldg-slider--stacked .swiper-slide { box-shadow: 16px 0 26px rgb(0 0 0 / 20%); transition-timing-function: cubic-bezier(.16, 1, .3, 1) !important; }
.bldg-slider--stacked:not(.bldg-slider--intro) .swiper-slide-prev { z-index: 10 !important; }
.bldg-slider--intro .swiper-slide { box-shadow: 16px 0 26px rgb(0 0 0 / 20%); }
.bldg-slider--intro .bldg-slider__next { opacity: 0; pointer-events: none; }
.bldg-slide { overflow: hidden; position: relative; }
.bldg-slide__image { height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.bldg-slide__shade { background: linear-gradient(to top, rgb(0 0 0 / 24%), rgb(0 0 0 / 0%) 55%); inset: 0; position: absolute; }
.bldg-slide__content { bottom: clamp(2.2rem, 4vw, 4rem); color: #fff; max-width: min(68vw, 38rem); pointer-events: none; position: absolute; right: clamp(2rem, 6.5vw, 5rem); text-align: left; z-index: 3; }
.bldg-slider--post-intro .swiper-slide-active .bldg-slide__content { animation: bldg-slide-copy-in 700ms cubic-bezier(.2,.7,.2,1) 120ms both; }
@keyframes bldg-slide-copy-in { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.bldg-slide__content h1 { color: #fff; font-size: clamp(1.35rem, 1.15rem + .35vw, 1.7rem); letter-spacing: -.015em; line-height: 1.2; margin: 0 0 .1rem; }
.bldg-slide__eyebrow { color: #fff; font-size: .66rem; letter-spacing: .14em; margin: 0; text-transform: uppercase; }
.bldg-slide__link { inset: 0; position: absolute; z-index: 2; }
.bldg-slide__link:focus-visible { outline: 2px solid #fff; outline-offset: -8px; }
.bldg-slider__pagination { align-items: center; bottom: clamp(2.5rem, 4vw, 4.25rem) !important; display: flex; left: clamp(2rem, 4.9vw, 4rem) !important; position: absolute; right: auto !important; width: auto !important; z-index: 4; }
.bldg-slider__bullet { --bldg-bullet-rest-width: 42px; --bldg-bullet-active-width: 100px; align-items: center; appearance: none; background: transparent; border: 0; cursor: pointer; display: flex; height: 11px; margin: 0 5px; padding: 5px 0; position: relative; transition: width 200ms ease-out; width: var(--bldg-bullet-rest-width); }
.bldg-slider__bullet::after { background: #fff; content: ''; display: block; height: 1px; width: 100%; }
.bldg-slider__bullet.is-active { width: var(--bldg-bullet-active-width); }
.bldg-slider--counting .bldg-slider__bullet.is-active { animation: bldg-bullet-countdown var(--bldg-slide-delay) linear forwards; }
@keyframes bldg-bullet-countdown { from { width: var(--bldg-bullet-active-width); } to { width: var(--bldg-bullet-rest-width); } }
.bldg-slider__next { align-items: center; appearance: none; background: transparent; border: 0; bottom: clamp(5.25rem, 7vw, 7.25rem); color: #fff; cursor: pointer; display: flex; font: inherit; gap: .6rem; left: clamp(2rem, 4.9vw, 4rem); max-width: min(45vw, 30rem); padding: .4rem 0; position: absolute; text-align: left; transition: opacity 220ms ease-out; z-index: 4; }
.bldg-slider__next-label, .bldg-slider__count { font-size: .65rem; letter-spacing: .14em; text-transform: uppercase; }
.bldg-slider__next-label { opacity: .75; white-space: nowrap; }
.bldg-slider__next-title { font-size: .8rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bldg-slider__next-arrow { font-size: .8rem; white-space: nowrap; }
.bldg-slider__count { bottom: clamp(2.5rem, 4vw, 4.25rem); left: clamp(23rem, 29vw, 28rem); position: absolute; z-index: 4; }
.bldg-slider__next:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.bldg-home-press .bldg-text-link { color: #fff; }
.bldg-text-link { display: inline-block; position: relative; text-decoration: none; }
.bldg-text-link::after { background: currentColor; bottom: -.15em; content: ''; height: 1px; left: 0; position: absolute; transform: scaleX(0); transform-origin: right; transition: transform 250ms ease; width: 100%; }
.bldg-text-link:hover::after, .bldg-text-link:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.bldg-editorial-intro h1 { max-width: 18ch; }
.bldg-editorial-intro > p:first-child, .bldg-services-list > p:first-child, .bldg-home-press p:first-child { letter-spacing: .12em; text-transform: uppercase; }
.bldg-home-band { background: #d8d4cb; padding: clamp(4rem, 10vw, 10rem) var(--bldg-edge); }
.bldg-home-band h2 { margin-top: 0; max-width: 10ch; }
.bldg-services-list h3 { border-top: 1px solid currentColor; margin: 0; padding: .35em 0 .5em; }
.bldg-services-list h3:last-child { border-bottom: 1px solid currentColor; }
.bldg-home-press h2 { max-width: 19ch; }
.bldg-home-cta h2 { max-width: 13ch; }
.bldg-reveal.is-reveal-ready { opacity: 0; transform: translateY(18px); transition: opacity var(--bldg-reveal-duration, 650ms) ease var(--bldg-reveal-delay, 0ms), transform var(--bldg-reveal-duration, 650ms) cubic-bezier(.2,.7,.2,1) var(--bldg-reveal-delay, 0ms); }
.bldg-project-gallery__item.is-reveal-ready { transition-duration: 1300ms; }
.bldg-reveal.is-visible { opacity: 1; transform: none; }
.bldg-editorial-intro,
.bldg-services-list,
.bldg-home-cta { box-sizing: border-box; max-width: none !important; padding-inline: var(--bldg-edge); width: 100%; }
.bldg-editorial-intro { padding-bottom: clamp(7rem, 9vw, 9rem); padding-top: var(--bldg-section-space); }
.bldg-editorial-intro > * { margin-left: 0 !important; margin-right: auto !important; max-width: var(--bldg-content-wide) !important; }
.bldg-editorial-intro > p:first-child { margin-bottom: clamp(2rem, 4vw, 4rem); }
.bldg-editorial-intro h1 { margin-bottom: clamp(3rem, 5vw, 5rem) !important; }
.bldg-editorial-intro .wp-block-columns { gap: clamp(2rem, 6vw, 7rem); }
.bldg-home-band { padding-block: clamp(7rem, 10vw, 9rem); padding-inline: var(--bldg-edge); }
.bldg-home-band > .wp-block-group { margin-inline: auto !important; max-width: var(--bldg-content-wide) !important; width: 100%; }
.bldg-home-band .wp-block-columns { gap: clamp(3rem, 8vw, 9rem); }
.bldg-home-band .wp-block-column:last-child { padding-top: clamp(2rem, 5vw, 5rem); }
.bldg-services-list { padding-bottom: var(--bldg-section-space); padding-top: var(--bldg-section-space); }
.bldg-services-list > * { margin-left: 0 !important; margin-right: 0 !important; max-width: var(--bldg-content-wide) !important; }
.bldg-services-list > p:first-child { margin-bottom: clamp(2.5rem, 5vw, 5rem); }
.bldg-services-list h3 { padding-left: clamp(0rem, 8vw, 8rem); transition: padding-left 350ms cubic-bezier(.2,.7,.2,1); }
.bldg-services-list h3:hover { padding-left: clamp(1rem, 10vw, 10rem); }
.bldg-home-press { box-sizing: border-box; padding: var(--bldg-section-space) var(--bldg-edge) !important; }
.bldg-home-press > .wp-block-group { margin-inline: auto !important; max-width: var(--bldg-content-wide) !important; width: 100%; }
.bldg-home-press p:first-child { margin-bottom: clamp(2.5rem, 5vw, 5rem); }
.bldg-home-press h2 { margin-bottom: clamp(3rem, 5vw, 5rem) !important; }
.bldg-home-cta { padding-bottom: var(--bldg-section-space); padding-top: var(--bldg-section-space); }
.bldg-home-cta > * { margin-left: 0 !important; margin-right: auto !important; max-width: var(--bldg-content-wide) !important; }
.bldg-home-cta h2 { margin-bottom: clamp(2.5rem, 5vw, 5rem) !important; }
.bldg-page { box-sizing: border-box; padding: var(--bldg-section-space) var(--bldg-edge); }
.bldg-page__inner { margin-inline: auto !important; max-width: var(--bldg-content-wide) !important; width: 100%; }
.bldg-page__inner > .wp-block-post-title { margin-block: 0 clamp(5rem, 9vw, 9rem); }
.bldg-page .wp-block-post-content > :where(p, h2, h3, h4, ul, ol, blockquote, form) { margin-left: 0; margin-right: auto; max-width: var(--bldg-content-text); }
.bldg-page .wp-block-post-content > h2 { margin-top: clamp(5rem, 8vw, 8rem); }
.bldg-page .wp-block-post-content > h3 { margin-top: clamp(3rem, 5vw, 5rem); }
.bldg-page .wp-block-post-content > .alignwide { max-width: var(--bldg-content-wide); }
.bldg-page .wp-block-post-content > .alignfull { margin-left: calc(-1 * var(--bldg-edge)); width: calc(100% + (2 * var(--bldg-edge))); }
.bldg-page .wp-block-post-content > .bldg-press-archive { max-width: var(--bldg-content-wide); }
.bldg-press-intro { margin-bottom: clamp(3.5rem, 7vw, 7rem); }
.bldg-press-intro p { font-size: clamp(1.15rem, 1rem + .5vw, 1.55rem); line-height: 1.5; max-width: 48rem; }
.bldg-press-years { border-bottom: 1px solid #b8b3a9; display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin-bottom: clamp(4rem, 8vw, 8rem); padding-bottom: 1.2rem; }
.bldg-press-years a { color: inherit; font-size: .9rem; text-decoration: none; }
.bldg-press-years a:hover, .bldg-press-years a:focus-visible { text-decoration: underline; }
.bldg-press-year { margin-top: clamp(4rem, 7vw, 7rem); scroll-margin-top: 3rem; }
.bldg-press-year h2 { border-bottom: 1px solid #b8b3a9; font-size: clamp(2.7rem, 5vw, 5rem); font-weight: 400; margin: 0 0 2rem; padding-bottom: .5rem; }
.bldg-press-grid { display: grid; gap: clamp(2.5rem, 4vw, 4.5rem) clamp(1.5rem, 2.5vw, 3rem); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bldg-press-card { border-top: 1px solid #b8b3a9; min-width: 0; padding-top: 1.1rem; }
.bldg-press-card.has-image { border-top: 0; padding-top: 0; }
.bldg-press-card__image { aspect-ratio: 1.5; background: #dedbd3; display: block; margin-bottom: 1.25rem; overflow: hidden; }
.bldg-press-card__image img { display: block; height: 100%; object-fit: cover; width: 100%; }
.bldg-press-card__meta { color: #625f58; font-size: .74rem; letter-spacing: .07em; line-height: 1.5; margin: 0 0 .9rem; text-transform: uppercase; }
.bldg-press-card__meta span { padding-inline: .25rem; }
.bldg-press-card h3 { font-size: clamp(1.5rem, 1.15rem + 1vw, 2.3rem); font-weight: 400; line-height: 1.18; margin: 0; }
.bldg-press-card h3 a { color: inherit; text-decoration: none; }
.bldg-press-card h3 a:hover, .bldg-press-card h3 a:focus-visible { text-decoration: underline; }
.bldg-press-card__summary { font-size: 1rem; line-height: 1.55; margin: 1rem 0 0; max-width: 52ch; }
.bldg-press-card__project { color: #625f58; font-size: .8rem; margin: 1rem 0 0; }
.bldg-press-card__project a { color: inherit; }
.bldg-project__header,
.bldg-project__body { box-sizing: border-box; max-width: none !important; padding-inline: var(--bldg-edge); width: 100%; }
.bldg-project__header { padding-bottom: clamp(5rem, 8vw, 8rem); padding-top: clamp(6rem, 10vw, 10rem); }
.bldg-project__header > * { margin-left: 0 !important; margin-right: auto !important; max-width: var(--bldg-content-wide) !important; }
.bldg-project__body { padding-bottom: var(--bldg-section-space); }
.bldg-project__narrative { padding-block: clamp(6rem, 9vw, 9rem); }
.bldg-footer { box-sizing: border-box; padding: clamp(6rem, 9vw, 9rem) var(--bldg-edge) clamp(2rem, 4vw, 4rem) !important; }
.bldg-footer > .wp-block-group { margin-inline: auto !important; max-width: var(--bldg-content-wide) !important; width: 100%; }
@media (min-width: 700px) {
  .bldg-project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 699px) {
  /* Widen only the image gallery; project copy keeps the normal body inset. */
  .bldg-project__body > .bldg-project-gallery,
  .bldg-project__body > .bldg-project-media > .bldg-project-gallery { margin-inline: calc(var(--bldg-edge) * -.5) !important; max-width: none !important; width: calc(100% + var(--bldg-edge)); }
  .bldg-press-grid { grid-template-columns: 1fr; }
  .bldg-logo { width: 7rem; }
  .bldg-slider { height: calc(100svh - 70px); min-height: 27rem; }
  .bldg-slide__content { bottom: 2.25rem; max-width: calc(100% - 3rem); right: 1.5rem; }
  .bldg-slide__content h1 { font-size: clamp(1.35rem, 6vw, 2rem); }
  .bldg-slider__pagination { bottom: 2.5rem !important; left: 1rem !important; }
  .bldg-slider__bullet { --bldg-bullet-rest-width: 22px; --bldg-bullet-active-width: 52px; }
  .bldg-slider__next { bottom: 5.25rem; left: 1rem; max-width: calc(100% - 2rem); }
  .bldg-slider__count { bottom: 2.5rem; left: 13.75rem; }
  .bldg-project-next__grid { grid-template-columns: 1fr; }
  .bldg-home-band { padding-inline: var(--bldg-edge); }
}
@media (min-width: 1180px) {
  .bldg-project-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .bldg-slider--post-intro .swiper-slide-active .bldg-slide__content { animation: none; }
  .bldg-reveal.is-reveal-ready { opacity: 1; transform: none; }
  .bldg-project-gallery__item img { transform: none !important; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
  .wp-block-navigation__responsive-container-content .wp-block-navigation-item { animation: none !important; opacity: 1; transform: none; }
}
@media print {
  .bldg-reveal.is-reveal-ready { opacity: 1; transform: none; }
  .bldg-project-gallery__item figcaption { opacity: 1; transform: none; }
}

/* Full-viewport gallery: captions live outside the fitted image, not on touch thumbnails. */
.bldg-lightbox { --pswp-bg: #151515; --pswp-root-z-index: 100000; }
.bldg-lightbox__caption { bottom: env(safe-area-inset-bottom, 0px); box-sizing: border-box; color: #fff; font-size: .9375rem; left: 50%; line-height: 1.5; max-height: 100px; max-width: 60rem; overflow-y: auto; padding: .75rem 1.5rem 1.25rem; position: absolute; text-align: center; transform: translateX(-50%); width: 100%; }
.bldg-lightbox__caption[hidden] { display: none; }
.bldg-lightbox .pswp__top-bar { top: env(safe-area-inset-top, 0px); }
.bldg-lightbox .pswp__button:focus-visible { outline: 2px solid #fff; outline-offset: -4px; }
@media (max-width: 699px) {
  .bldg-lightbox__caption { font-size: .875rem; max-height: 120px; padding-inline: 1.25rem; }
}
@media print { .bldg-lightbox { display: none; } }

/* Stable Press deep links clear the fixed navigation and identify the destination. */
.bldg-press-card[id] { scroll-margin-top: 110px; }
.bldg-press-card:target { outline: 1px solid #aaa69d; outline-offset: 10px; }
