.elementor-widget-post-info .elementor-icon-list-item:not(:last-child):after{border-color:var( --e-global-color-text );}.elementor-widget-post-info .elementor-icon-list-icon i{color:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-post-info .elementor-icon-list-text, .elementor-widget-post-info .elementor-icon-list-text a{color:var( --e-global-color-secondary );}.elementor-widget-post-info .elementor-icon-list-item{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-518 .elementor-element.elementor-element-c32cf89 .elementor-icon-list-icon{width:14px;}.elementor-518 .elementor-element.elementor-element-c32cf89 .elementor-icon-list-icon i{font-size:14px;}.elementor-518 .elementor-element.elementor-element-c32cf89 .elementor-icon-list-icon svg{--e-icon-list-icon-size:14px;}.elementor-518 .elementor-element.elementor-element-31a1fd1 .elementor-icon-list-icon{width:14px;}.elementor-518 .elementor-element.elementor-element-31a1fd1 .elementor-icon-list-icon i{font-size:14px;}.elementor-518 .elementor-element.elementor-element-31a1fd1 .elementor-icon-list-icon svg{--e-icon-list-icon-size:14px;}.elementor-widget-gallery .elementor-gallery-item__title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-gallery .elementor-gallery-item__description{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-widget-gallery{--galleries-title-color-normal:var( --e-global-color-primary );--galleries-title-color-hover:var( --e-global-color-secondary );--galleries-pointer-bg-color-hover:var( --e-global-color-accent );--gallery-title-color-active:var( --e-global-color-secondary );--galleries-pointer-bg-color-active:var( --e-global-color-accent );}.elementor-widget-gallery .elementor-gallery-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-518 .elementor-element.elementor-element-b550c8f{--image-transition-duration:800ms;--content-text-align:center;--content-padding:20px;--content-transition-duration:800ms;--content-transition-delay:800ms;}.elementor-518 .elementor-element.elementor-element-a0d26d0{--image-transition-duration:800ms;--content-text-align:center;--content-padding:20px;--content-transition-duration:800ms;--content-transition-delay:800ms;}.elementor-518 .elementor-element.elementor-element-4e93df7 .elementor-icon-list-icon{width:14px;}.elementor-518 .elementor-element.elementor-element-4e93df7 .elementor-icon-list-icon i{font-size:14px;}.elementor-518 .elementor-element.elementor-element-4e93df7 .elementor-icon-list-icon svg{--e-icon-list-icon-size:14px;}.elementor-widget-loop-grid .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-loop-grid .elementor-pagination{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-widget-loop-grid .e-load-more-message{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-518 .elementor-element.elementor-element-b454add{--grid-columns:3;--grid-row-gap:48px;--grid-column-gap:32px;}@media(max-width:1024px){.elementor-518 .elementor-element.elementor-element-b454add{--grid-columns:2;}}@media(max-width:767px){.elementor-518 .elementor-element.elementor-element-b454add{--grid-columns:1;}}/* Start custom CSS *//* Hide-if-empty (content/projects.docx): a block with an empty field value, a group with no values,
   a photo stage with no photos and a related-projects block with no projects are not shown. */
.dsp-optional:has(.dsp-value:empty),
.dsp-group:not(:has(.dsp-value:not(:empty))):not(:has(.elementor-post-info__terms-list-item)):not(:has(.dsp-compare-before img[src])),
.dsp-scope-col:not(:has(.elementor-post-info__terms-list-item)),
.dsp-compare-col:not(:has(.dsp-compare-before img[src])),
.dsp-compare-col:not(:has(.dsp-compare-after img[src])),
.dsp-stage:not(:has(img, .e-gallery-image)),
.dsp-related:not(:has(.e-loop-item)) { display: none !important; }

/* Terms (Post Info widget): one <span> per term with ", " text between them. font-size: 0 hides the commas,
   and spacing uses margins/padding (not gap), because the comma text nodes count as flex/grid items. */
.dsp-tags .elementor-icon-list-items, .dsp-scope .elementor-icon-list-items { display: flex !important; flex-wrap: wrap; margin: 0 !important; padding: 0; list-style: none; }
.dsp-tags .elementor-icon-list-item, .dsp-scope .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
.dsp-tags .elementor-icon-list-item::after { display: none !important; }
.dsp-tags .elementor-post-info__terms-list, .dsp-scope .elementor-post-info__terms-list { font-size: 0 !important; display: flex !important; flex-wrap: wrap; }
.dsp-tags .elementor-post-info__terms-list-item { display: inline-block !important; margin: 0 0.5rem 0.5rem 0; font-family: var(--ds-font-body); font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.04em; line-height: 1.2; padding: 0.4375rem 0.75rem; border: 1px solid currentColor; border-radius: 2px; color: inherit !important; }
.dsp-tags .elementor-icon-list-text, .dsp-tags .elementor-post-info__item { color: inherit !important; }
.dsp-tags-plain .elementor-post-info__terms-list-item { border: 0; padding: 0; margin: 0 0.75rem 0 0; font-weight: 500; letter-spacing: 0; font-size: 0.9375rem; }

/* Scope of work: a ✓ list in two columns */
.dsp-scope .elementor-icon-list-items, .dsp-scope .elementor-icon-list-item, .dsp-scope .elementor-post-info__item { display: block !important; width: 100%; }
.dsp-scope .elementor-post-info__terms-list-item { display: flex !important; flex: 0 0 50%; box-sizing: border-box; gap: 0.875rem; align-items: baseline; padding: 1rem 2.5rem 1rem 0; border-top: 1px solid rgba(217,212,199,0.25); font-family: var(--ds-font-body); font-size: 1.0625rem; line-height: 1.4; color: var(--ds-white) !important; }
.dsp-scope .elementor-post-info__terms-list-item::before { content: "✓"; color: var(--ds-gold); font-weight: 700; }
@media (max-width: 767px) { .dsp-scope .elementor-post-info__terms-list-item { flex-basis: 100%; padding-right: 0; } }

/* Before/after slider: before photo on top, clipped to the left --pos of the box. Hidden unless both photos exist. */
.dsp-compare:not(:has(.dsp-compare-before img[src]:not([src=""]))),
.dsp-compare:not(:has(.dsp-compare-after img[src]:not([src=""]))) { display: none !important; }
.dsp-compare { width: 100% !important; aspect-ratio: 4 / 3; }
@media (max-width: 767px) { .dsp-compare { aspect-ratio: 4 / 3; } }
.dsp-compare-before { display: none; }
.dsp-compare-on .dsp-compare-before { display: block; clip-path: inset(0 calc(100% - var(--pos, 50%)) 0 0); }
.dsp-compare-range { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; z-index: 3; touch-action: pan-y; }
.dsp-compare-handle { position: absolute; top: 0; bottom: 0; left: var(--pos, 50%); width: 2px; margin-left: -1px; background: var(--ds-white); z-index: 2; pointer-events: none; box-shadow: 0 0 0 1px rgba(35,31,32,0.2); }
.dsp-compare-handle::after { content: "‹ ›"; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--ds-white); color: var(--ds-ink); font: 700 1rem/2.75rem var(--ds-font-body); text-align: center; letter-spacing: 0.1em; box-shadow: 0 2px 8px rgba(0,0,0,0.25); }
.dsp-compare-range:focus-visible + .dsp-compare-handle, .dsp-compare:has(.dsp-compare-range:focus-visible) .dsp-compare-handle::after { outline: 3px solid var(--ds-gold); outline-offset: 2px; }

/* During: a sideways photo strip (swipe / scroll, snaps to each photo) */
.dsp-strip .e-gallery-container { display: grid !important; grid-auto-flow: column; grid-auto-columns: calc((100% - 36px) / 3.4); grid-template-columns: none !important; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 0 0.75rem !important; height: auto !important; scrollbar-color: var(--ds-clay) transparent; }
.dsp-strip .e-gallery-item { position: relative !important; inset: auto !important; width: auto !important; scroll-snap-align: start; }
.dsp-strip .e-gallery-image { padding-bottom: 75% !important; height: auto !important; }
@media (max-width: 767px) { .dsp-strip .e-gallery-container { grid-auto-columns: 82%; } }

/* After: mosaic, first photo large (and every 7th after it) */
.dsp-bento .e-gallery-container { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; grid-auto-rows: clamp(9rem, 14vw, 15rem); grid-auto-flow: dense; gap: 12px; padding: 0 !important; height: auto !important; }
.dsp-bento .e-gallery-item { position: relative !important; inset: auto !important; width: auto !important; }
.dsp-bento .e-gallery-item:nth-child(7n+1) { grid-column: span 2; grid-row: span 2; }
.dsp-bento .e-gallery-item:nth-child(7n+5) { grid-column: span 2; }
.dsp-bento .e-gallery-image { padding-bottom: 0 !important; height: 100% !important; }
@media (max-width: 767px) { .dsp-bento .e-gallery-container { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; grid-auto-rows: 9rem; } }

/* Galleries: no hover overlay, square corners */
.dsp-gallery .elementor-gallery-item__overlay, .dsp-gallery .elementor-gallery-item__content { display: none !important; }

/* Project cards */
.dsp-card .dsp-cover { transition: transform 0.5s ease-out; }
.dsp-card:hover .dsp-cover { transform: scale(1.03); }
.dsp-card:hover .ds-link { color: var(--ds-clay); }
@media (prefers-reduced-motion: reduce) { .dsp-card .dsp-cover { transition: none; } }

/* Filters: brand chips */
.dsp-filter .e-filter { gap: 0.5rem; flex-wrap: wrap; }
.dsp-filter .e-filter-item { font-family: var(--ds-font-body); font-size: 0.875rem; font-weight: 500; padding: 0.5rem 0.875rem; border: 1px solid var(--ds-line); border-radius: 2px; background: transparent; color: var(--ds-ink); }
.dsp-filter .e-filter-item[aria-pressed="true"] { background: var(--ds-ink); border-color: var(--ds-ink); color: var(--ds-white); }
.dsp-grid .e-load-more-anchor + .elementor-pagination, .dsp-grid .elementor-pagination { margin-top: 3rem; font-family: var(--ds-font-body); }/* End custom CSS */