/* Shared project cards and modal on the homepage and service pages. */
.home-page .home-gallery {padding:80px 5%;background:var(--site-surface,#f3f6fa);}
.home-page .home-gallery-container {max-width:1200px;margin:0 auto;}
.home-page .home-gallery-heading {margin-bottom:32px;max-width:720px;}
.home-page .home-gallery-heading h2 {margin:0 0 12px;color:var(--site-ink,#152332);font-size:clamp(36px,3.5vw,48px);line-height:1.1;letter-spacing:0;}
.home-page .home-gallery-heading p {margin:0;color:var(--site-muted,#4b5563);font-size:18px;line-height:1.6;}
body:is(.home-page,.service-page) .project-gallery-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:stretch;}
.home-page .project-gallery-more {margin-top:32px;}
.home-page .project-gallery-more-toggle {box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:12px;width:fit-content;max-width:100%;min-height:56px;margin:0 auto;padding:14px 24px;list-style:none;border:1px solid var(--site-border,#e4e9ef);border-radius:999px;background:#fff;color:var(--site-blue,#146fb8);font:600 18px/1.5 'Barlow',Arial,sans-serif;text-align:center;cursor:pointer;transition:border-color var(--site-hover-duration) var(--site-hover-easing),color var(--site-hover-duration) var(--site-hover-easing);}
.project-gallery-more-toggle::-webkit-details-marker {display:none;}
.project-gallery-more-toggle>span {min-width:0;}
.project-gallery-more-toggle svg {flex:none;}
.home-page .project-gallery-more-toggle:hover {border-color:var(--site-blue,#146fb8);color:var(--site-blue-hover,#105d9c);}
.home-page .project-gallery-more-toggle:focus-visible {outline:3px solid var(--site-blue,#146fb8);outline-offset:4px;}
.project-gallery-more-label--open,.project-gallery-more[open]>.project-gallery-more-toggle .project-gallery-more-label--closed {display:none;}
.project-gallery-more[open]>.project-gallery-more-toggle .project-gallery-more-label--open {display:inline;}
.project-gallery-more[open]>.project-gallery-more-toggle .project-gallery-more-plus {display:none;}
.project-gallery-more-content {padding-top:40px;}
.project-gallery-group+.project-gallery-group {margin-top:48px;}
.home-page .project-gallery-group-heading {margin:0 0 24px;color:var(--site-ink,#152332);font:600 36px/1.1 'Teko','Arial Narrow',Arial,sans-serif;letter-spacing:0;scroll-margin-top:160px;}
body:is(.home-page,.service-page) .project-gallery-grid .project-card {display:flex;flex-direction:column;min-width:0;margin:0;background:#fff;border:1px solid var(--site-border,#e4e9ef);border-radius:12px;overflow:hidden;scroll-margin-top:160px;box-shadow:none;transition:border-color var(--site-hover-duration) var(--site-hover-easing);}
body:is(.home-page,.service-page) .project-gallery-grid .project-card:hover {border-color:#b8cee2;}
body:is(.home-page,.service-page) .project-gallery-grid .project-card:target {border-color:var(--site-blue,#146fb8);box-shadow:0 0 0 2px #146fb81a;}
.project-card-media-wrap {position:relative;min-width:0;}
.project-card-media-open {position:absolute;inset:0;display:block;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:0;background:transparent;cursor:pointer;}
.project-card-media-wrap>.project-card-media-open:focus-visible {outline:3px solid var(--site-blue,#146fb8);outline-offset:-5px;}
.project-card-media {aspect-ratio:4/3;overflow:hidden;background:#e9eef3;}
.project-card-media .project-card-image {display:block;width:100%;height:100%;min-width:0;min-height:0;object-fit:cover;}
.project-card-media--single .project-card-image {transition:transform var(--site-hover-duration) var(--site-hover-easing);}
.project-card:hover .project-card-media--single .project-card-image {transform:scale(1.045);}
.project-card-media--portrait-pair {display:flex;gap:4px;padding-inline:15px;}
.project-card-media--portrait-pair .project-card-image {width:calc(50% - 2px);object-fit:contain;}
.project-card-media--before-after {position:relative;}
.project-card-photo-label {position:absolute;top:12px;padding:5px 8px;border-radius:6px;background:#fff;color:#344352;box-shadow:0 1px 5px #15233214;font:600 13px/18px 'Barlow',Arial,sans-serif;pointer-events:none;}
.project-card-photo-label--after {left:23px;}
.project-card-photo-label--before {left:calc(50% + 10px);}
.project-card-media--wetroom {display:grid;grid-template-columns:1.55fr 1fr;grid-template-rows:repeat(2,minmax(0,1fr));gap:4px;}
.project-card-media--wetroom .project-card-image--wetroom-primary {grid-row:1/3;object-fit:contain;}
.project-card-count {position:absolute;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;left:14px;bottom:14px;padding:6px 10px;border-radius:6px;background:#fff;color:#344352;box-shadow:0 1px 5px #15233214;font:600 13px/18px 'Barlow',Arial,sans-serif;pointer-events:none;}
.project-card-count-icon {display:block;flex:none;width:16px;height:16px;color:var(--site-blue,#146fb8);}
body:is(.home-page,.service-page) .project-gallery-grid .project-card-copy {display:flex;flex:1;flex-direction:column;min-width:0;padding:22px 24px 20px;text-align:left;}
body:is(.home-page,.service-page) .project-gallery-grid .project-card-copy .project-story-title {margin:0 0 10px;color:var(--site-ink,#152332);font:600 32px/1.08 'Teko','Arial Narrow',Arial,sans-serif;letter-spacing:0;overflow-wrap:break-word;}
body:is(.home-page,.service-page) .project-gallery-grid .project-card-summary {margin:0 0 18px;color:var(--site-muted,#4b5563);font:400 16px/1.6 'Barlow',Arial,sans-serif;}
.project-card-details {margin-top:auto;}
.project-card-open {transition:color var(--site-hover-duration) var(--site-hover-easing);display:inline-flex;align-items:center;gap:10px;max-width:100%;min-height:44px;margin:0;padding:5px 0;list-style:none;border:0;background:transparent;color:var(--site-blue,#146fb8);font:600 16px/1.5 'Barlow',Arial,sans-serif;text-align:left;cursor:pointer;}
.project-card-open::-webkit-details-marker {display:none;}
.project-card-open span {text-decoration:underline;text-underline-offset:4px;}
.project-card-open svg {flex:none;width:20px;height:20px;}
.project-card-open:hover {color:var(--site-blue-hover,#105d9c);}
.project-card-open:focus-visible,.project-card-full a:focus-visible,.home-gallery-dialog-details a:focus-visible {outline:3px solid var(--site-blue,#146fb8);outline-offset:4px;border-radius:2px;}
.project-card-full {min-width:0;margin-top:16px;}
.project-card-full .project-story-lead {margin:0 0 20px;color:var(--site-muted,#4b5563);font:400 17px/1.65 'Barlow',Arial,sans-serif;}
.project-story-facts {display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px 18px;min-width:0;margin:0 0 20px;padding:16px 0;border-top:1px solid var(--site-border,#e4e9ef);border-bottom:1px solid var(--site-border,#e4e9ef);font:400 16px/1.5 'Barlow',Arial,sans-serif;}
.project-story-facts>div {display:contents;}
.project-story-facts dt {margin:0;color:var(--site-muted,#4b5563);font-weight:600;overflow-wrap:break-word;}
.project-story-facts dd {min-width:0;margin:0;overflow-wrap:break-word;}
.project-story-links,.project-gallery-sources {display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0;}
.project-story-links>a,.project-gallery-sources>a {display:inline-flex;align-items:center;gap:10px;min-height:44px;max-width:100%;padding:6px 0;color:var(--site-blue,#146fb8);font:600 16px/1.5 'Barlow',Arial,sans-serif;text-decoration:underline;text-underline-offset:4px;overflow-wrap:break-word;}
.project-story-links>a {text-decoration:none;}
.project-service-label {min-width:0;text-decoration:underline;text-underline-offset:4px;}
.project-service-icon>.menu-image {display:block;flex:none;width:24px;height:24px;object-fit:contain;}
.project-story-links svg {flex:none;width:20px;height:20px;}
.project-card-full .project-quote-cta {margin-top:20px;}
.project-quote-cta>span {min-width:0;}
.project-gallery-sources {margin-top:16px;}
:is(.home-page,.service-page).home-gallery-open {overflow:hidden;}
body:is(.home-page,.service-page) .home-gallery-dialog {box-sizing:border-box;width:min(1120px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);margin:auto;padding:28px;border:0;border-radius:12px;background:#fff;color:var(--site-ink,#152332);box-shadow:0 24px 80px #0005;overflow:auto;}
:is(.home-page,.service-page) .home-gallery-dialog::backdrop {background:#0c1728d9;}
:is(.home-page,.service-page) .home-gallery-dialog-header {position:sticky;top:-28px;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin:-28px -28px 0;padding:28px 28px 24px;background:#fff;}
:is(.home-page,.service-page) .home-gallery-dialog-title {min-width:0;margin:0;font:600 40px/1.1 'Teko','Arial Narrow',Arial,sans-serif;overflow-wrap:break-word;}
:is(.home-page,.service-page) .home-gallery-dialog-button {transition:border-color var(--site-hover-duration) var(--site-hover-easing);display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;margin:0;padding:8px 14px;border:1px solid var(--site-border,#e4e9ef);border-radius:8px;background:var(--site-surface,#f3f6fa);color:var(--site-blue,#146fb8);font:600 16px/22px 'Barlow',Arial,sans-serif;cursor:pointer;}
:is(.home-page,.service-page) .home-gallery-dialog-button:hover {border-color:var(--site-blue,#146fb8);}
:is(.home-page,.service-page) .home-gallery-dialog-button:focus-visible {outline:3px solid var(--site-blue,#146fb8);outline-offset:3px;}
:is(.home-page,.service-page) .home-gallery-dialog-button svg {flex:none;width:20px;height:20px;}
:is(.home-page,.service-page) .home-gallery-dialog-close {flex-shrink:0;}
.home-gallery-dialog-layout {display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:32px;}
.home-gallery-dialog-media,.home-gallery-dialog-details {min-width:0;}
:is(.home-page,.service-page) .home-gallery-dialog-figure {margin:0;}
:is(.home-page,.service-page) .home-gallery-stage {display:flex;align-items:center;justify-content:center;width:100%;min-height:160px;margin:0;background:var(--site-surface,#f3f6fa);border-radius:8px;overflow:hidden;}
:is(.home-page,.service-page) .home-gallery-stage.is-swipeable {touch-action:pan-y pinch-zoom;}
:is(.home-page,.service-page) .home-gallery-dialog-image {display:block;width:auto;height:auto;max-width:100%;max-height:min(60dvh,480px);object-fit:contain;}
:is(.home-page,.service-page) .home-gallery-stage[aria-busy="true"] .home-gallery-dialog-image {opacity:0;}
:is(.home-page,.service-page) .home-gallery-dialog-caption {margin:12px 0 0;color:var(--site-muted,#4b5563);font:400 15px/1.5 'Barlow',Arial,sans-serif;}
:is(.home-page,.service-page) .home-gallery-dialog-controls {display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;}
:is(.home-page,.service-page) .home-gallery-dialog-controls[hidden] {display:none;}
:is(.home-page,.service-page) .home-gallery-dialog-count {margin:0;white-space:nowrap;color:var(--site-muted,#4b5563);font:400 14px/22px 'Barlow',Arial,sans-serif;text-align:center;}
:is(.home-page,.service-page) .home-gallery-swipe-hint {display:none;margin:8px 0 0;color:var(--site-muted,#4b5563);font:400 14px/1.5 'Barlow',Arial,sans-serif;text-align:center;}
@media(any-pointer:coarse) {
 :is(.home-page,.service-page) .home-gallery-swipe-hint:not([hidden]) {display:block;}
}
.home-gallery-dialog-details .project-card-full {margin-top:0;}
:is(.home-page,.service-page) .home-gallery-load-status {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;}
:is(.home-page,.service-page) .home-gallery-load-status.is-error {position:static;width:auto;height:auto;margin:12px 0 0;overflow:visible;clip-path:none;white-space:normal;color:var(--site-ink,#152332);font-size:16px;line-height:1.5;}
@media(max-width:1099px) {
 body:is(.home-page,.service-page) .project-gallery-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
 .home-gallery-dialog-layout {grid-template-columns:minmax(0,1fr);gap:24px;}
 :is(.home-page,.service-page) .home-gallery-dialog-image {max-height:min(60dvh,420px);}
 :is(.home-page,.service-page) .home-gallery-dialog-title {font-size:36px;}
}
@media(max-width:991px) {.home-page .home-gallery {padding-top:64px;padding-bottom:64px;}}
@media(max-width:699px) {
 body:is(.home-page,.service-page) .project-gallery-grid {grid-template-columns:minmax(0,1fr);}
 body:is(.home-page,.service-page) .project-gallery-grid .project-card-copy {padding:20px;}
 .home-page .home-gallery-heading p {font-size:17px;}
 .project-card-media--portrait-pair {padding-inline:10px;}
 .project-card-photo-label--after {left:16px;}
 .project-card-photo-label--before {left:calc(50% + 8px);}
 .project-card-count {left:12px;bottom:12px;}
 body:is(.home-page,.service-page) .home-gallery-dialog {width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:20px;}
 :is(.home-page,.service-page) .home-gallery-dialog-header {top:-20px;gap:12px;margin:-20px -20px 0;padding:20px 20px 24px;}
 :is(.home-page,.service-page) .home-gallery-dialog-title {font-size:32px;}
 :is(.home-page,.service-page) .home-gallery-dialog-button {padding:8px 10px;gap:4px;}
 :is(.home-page,.service-page) .home-gallery-dialog-controls {gap:6px;}
 :is(.home-page,.service-page) .home-gallery-dialog-image {max-height:min(60dvh,360px);}
 .project-story-facts {grid-template-columns:90px minmax(0,1fr);gap:10px;}
}
@media(max-width:359px) {
 :is(.home-page,.service-page) .home-gallery-dialog-controls {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
 :is(.home-page,.service-page) .home-gallery-dialog-controls [data-gallery-next] {grid-column:2;grid-row:1;}
 :is(.home-page,.service-page) .home-gallery-dialog-count {grid-column:1/-1;grid-row:2;}
}
@media(prefers-reduced-motion:reduce) {
 .project-card-media--single .project-card-image,body:is(.home-page,.service-page) .project-gallery-grid .project-card,:is(.home-page,.service-page) .project-gallery-more-toggle {transition:none;}
}
