/* Service detail chapters. Shared type tokens keep the existing hero and intro unchanged. */
.sd-section{padding-block:48px}
.sd-editorial{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,6vw,90px);align-items:center}
.sd-editorial--reverse .sd-photo{order:2}
.sd-photo{margin:0;min-width:0;align-self:stretch;display:flex;flex-direction:column;justify-content:center}
.sd-photo img{display:block;width:100%;aspect-ratio:4/3;max-height:450px;object-fit:cover;border-radius:24px;background:#e9f7fc}
.sd-photo figcaption{font-size:12px;line-height:1.6;color:#375e72;margin-top:12px;padding-left:2px}
.sd-copy{min-width:0}.sd-label{font-size:11px!important;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#426f1a;margin:0 0 16px!important}
.sd-copy h2,.sd-scope h2,.sd-planning h2{font-family:var(--site-font);font-size:var(--site-heading-size);font-weight:400;line-height:1.14;letter-spacing:-.045em;margin:0 0 22px;text-wrap:balance;color:#123e56}
.sd-copy p,.sd-scope p,.sd-planning p{font-size:var(--site-body-size);line-height:1.8;color:#375e72;margin:0 0 17px}
.sd-copy p:last-child,.sd-scope p:last-child,.sd-planning p:last-child{margin-bottom:0}
.sd-link{margin-top:5px;display:inline-flex;align-items:center;gap:14px;color:#006da6}.sd-link svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;flex:none}
.sd-scope{margin-block:16px;background:linear-gradient(115deg,#edf8fe 0%,#f3f9ed 100%);padding-block:45px;border-block:1px solid #d7eceb}
.sd-scope-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,6vw,90px);align-items:start}
.sd-scope ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:26px 30px}
.sd-scope li{display:flex;align-items:flex-start;gap:12px;min-width:0}
.sd-check{flex:none;width:26px;height:26px;display:grid;place-items:center;background:#e0f0d5;color:#3e7610;border-radius:50%;margin-top:1px}
.sd-check svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8}
.sd-scope h3{font:500 var(--site-control-size)/1.5 var(--site-font);margin:0 0 8px;color:#123e56;letter-spacing:-.015em}
.sd-planning{padding-block:10px 48px}.sd-planning-inner{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(25px,6vw,90px);padding:32px 0;border-block:1px solid #c8e3ef}
.sd-planning h2{font-size:clamp(26px,2.5vw,36px);max-width:410px}
@media(max-width:800px){.sd-section{padding-block:32px}.sd-editorial,.sd-scope-grid,.sd-planning-inner{grid-template-columns:1fr;gap:26px}.sd-editorial--reverse .sd-photo{order:0}.sd-photo img{max-height:360px}.sd-scope{padding-block:32px}.sd-planning{padding-block:8px 32px}.sd-planning-inner{gap:8px}.sd-planning h2{max-width:100%}}
@media(max-width:480px){.sd-scope ul{grid-template-columns:1fr;gap:20px}.sd-photo img{border-radius:18px}.sd-photo figcaption{font-size:11px}.sd-copy h2,.sd-scope h2{font-size:var(--site-heading-size)}.sd-scope li{gap:12px}}

/* A wide establishing view with two smaller project details beneath it. */
.sd-image-set {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  grid-template-rows: minmax(0,2.1fr) minmax(0,1fr);
  aspect-ratio: 1.28;
  gap: 6px;
  border-radius: 20px;
  overflow: hidden;
}
.sd-image-link { display: block; min-height: 0; cursor: zoom-in; }
.sd-image-link:first-child { grid-column: 1/-1; }
.sd-image-set .sd-image-link img { height: 100%; max-height: none; aspect-ratio: auto; border-radius: 0; }
.sd-image-link:focus-visible { outline: 3px solid white; outline-offset: -5px; }
.sd-image-set[data-count="2"] { grid-template-columns: 1.5fr 1fr; grid-template-rows: 1fr; }
.sd-image-set[data-count="2"] .sd-image-link:first-child { grid-column: auto; }
.sd-image-set[data-count="1"] { grid-template-rows: 1fr; }
.sd-gallery-count { margin: 10px 0 0; font: 500 .8rem/1.4 var(--site-font); color: #426677; }
.sd-more-photos { margin-top: 22px; }
.sd-more-photos summary {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  border: 1px solid #b3d6e5;
  border-radius: 999px;
  padding: 9px 16px;
  color: #07567d;
  font: 500 var(--site-control-size)/1.4 var(--site-font);
  cursor: pointer;
}
.sd-more-photos summary::-webkit-details-marker { display: none; }
.sd-more-photos summary:focus-visible { outline: 3px solid #058fd7; outline-offset: 3px; }
.sd-more-photos summary:hover { background: #eaf6fc; }
.sd-more-photos summary svg { width: 16px; height: 16px; fill: none; stroke: currentColor; }
.sd-more-photos .sd-when-open, .sd-more-photos[open] .sd-when-closed { display: none; }
.sd-more-photos[open] .sd-when-open { display: inline; }
.sd-more-photos[open] summary svg { transform: rotate(180deg); }
.sd-more-photos .service-photo-grid { margin-top: 22px; }
@media (max-width: 800px) {
  .sd-image-set { aspect-ratio: 1.6; max-height: 420px; }
}
@media (max-width: 480px) {
  .sd-image-set { aspect-ratio: 1.25; border-radius: 15px; gap: 4px; }
}
