/* Aggregates page only. Shared navigation, other pages and original content stay intact. */
body.jjs-aggregates-layout { --agg-width:1280px; --agg-gutter:clamp(20px,4vw,48px); --agg-space:clamp(48px,6vw,88px); }
.jjs-aggregates-layout .agg-main { background:#f7f6f2; }
.jjs-aggregates-layout .agg-main :is(section,article,aside,div,picture,figure) { min-width:0; }
.jjs-aggregates-layout .agg-main :is(h1,h2,h3) { overflow-wrap:break-word; text-wrap:balance; }
.jjs-aggregates-layout .agg-main p { text-wrap:pretty; }
.jjs-aggregates-layout :is(.agg-section,.jjs-service-work) { padding:var(--agg-space) var(--agg-gutter); }
.jjs-aggregates-layout :is(.agg-inner,.jjs-service-work__inner) { max-width:var(--agg-width); margin-inline:auto; }
.jjs-aggregates-layout :is(.agg-eyebrow,.jjs-service-work__eyebrow) { color:#805e00; line-height:1.5; }
.jjs-aggregates-layout :is(.agg-heading,.jjs-service-work__heading) { font-size:clamp(29px,3.2vw,44px); line-height:1.13; letter-spacing:-.035em; }
.jjs-aggregates-layout .agg-copy { font-size:17px; line-height:1.75; }
.jjs-aggregates-layout .agg-main .gold-btn { min-height:48px; line-height:1.4; border-radius:4px; justify-content:center; text-align:center; }
.jjs-aggregates-layout .agg-main .gold-btn:hover { background:#805e00; }
.jjs-aggregates-layout .agg-main a:focus-visible { outline:3px solid #c59829; outline-offset:5px; }
/* Match the redesigned sweeper page: clear copy beside a dedicated photograph. */
.jjs-aggregates-layout .agg-hero { display:grid; grid-template-columns:minmax(var(--agg-gutter),1fr) minmax(0,640px) minmax(0,640px) minmax(var(--agg-gutter),1fr); min-height:0; align-items:stretch; background:#141414; }
.jjs-aggregates-layout .agg-hero::after { display:none; }
.jjs-aggregates-layout .agg-hero > picture { position:relative; inset:auto; grid-column:3 / 5; grid-row:1; width:100%; height:100%; min-height:480px; }
.jjs-aggregates-layout .agg-hero img { position:static; inset:auto; width:100%; height:100%; object-fit:cover !important; object-position:center !important; }
.jjs-aggregates-layout .agg-hero__inner { grid-column:2; grid-row:1; width:auto; margin:0; align-self:center; padding:clamp(48px,5vw,72px) clamp(24px,4vw,64px) clamp(48px,5vw,72px) 0; }
.jjs-aggregates-layout .agg-hero .agg-eyebrow { color:#e0ba55; margin-bottom:22px; }
.jjs-aggregates-layout .agg-hero h1 { font-size:clamp(42px,4.5vw,64px); line-height:1.02; margin:0 0 24px; letter-spacing:-.04em; }
.jjs-aggregates-layout .agg-hero h1::after { content:""; display:block; width:58px; height:3px; margin-top:24px; background:var(--gold); }
.jjs-aggregates-layout .agg-hero p { font-size:clamp(17px,1.7vw,20px); line-height:1.65; font-weight:400; max-width:42ch; margin-bottom:28px; color:#e6e6e6; }
/* Overview: real image proportions and readable copy, without fixed-height clipping. */
.jjs-aggregates-layout .agg-intro { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px; align-items:center; }
.jjs-aggregates-layout .agg-intro__copy { padding:clamp(26px,3.5vw,44px); border-radius:7px; box-shadow:none; }
.jjs-aggregates-layout .agg-intro__copy p:last-child { margin-bottom:0; }
.jjs-aggregates-layout .agg-intro__image { min-height:0; height:auto; border-radius:7px; box-shadow:0 8px 24px rgb(0 0 0 / .05); background:#eeece5; }
.jjs-aggregates-layout .agg-intro__image picture { display:block; width:100%; aspect-ratio:1536 / 1017; }
.jjs-aggregates-layout .agg-intro__image img { height:100%; width:100%; object-fit:contain !important; object-position:center !important; }
/* Hire options keep comfortable line lengths at intermediate screen sizes. */
.jjs-aggregates-layout .agg-products__head { max-width:800px; margin-bottom:36px; }
.jjs-aggregates-layout .agg-products__head .agg-heading { max-width:24ch; margin-inline:auto; }
.jjs-aggregates-layout .agg-feature-strip { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.jjs-aggregates-layout .agg-feature { padding:30px 28px; border-top-width:3px; border-radius:7px; box-shadow:none; }
.jjs-aggregates-layout .agg-feature__icon { width:48px; height:48px; font-size:16px; margin-bottom:24px; color:#805e00; }
.jjs-aggregates-layout .agg-feature h3 { font-size:clamp(21px,2vw,26px); line-height:1.2; margin-bottom:16px; text-transform:none; letter-spacing:-.02em; }
.jjs-aggregates-layout .agg-feature p { font-size:16px; line-height:1.7; }
/* Experience panel and loading photograph have their own usable space. */
.jjs-aggregates-layout .agg-bulk { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px; align-items:center; }
.jjs-aggregates-layout .agg-bulk__image { height:auto; border-radius:7px; background:#eeece5; }
.jjs-aggregates-layout .agg-bulk__image picture { display:block; width:100%; aspect-ratio:1167 / 740; }
.jjs-aggregates-layout .agg-bulk__image img { width:100%; height:100%; object-fit:contain !important; object-position:center !important; }
.jjs-aggregates-layout .agg-bulk__panel { padding:clamp(28px,3.5vw,44px); border-radius:7px; box-shadow:0 10px 28px rgb(0 0 0 / .06); }
.jjs-aggregates-layout .agg-bulk__panel .agg-eyebrow { color:#e0ba55; }
.jjs-aggregates-layout .agg-bulk__panel h2 { font-size:clamp(28px,3vw,38px); line-height:1.15; letter-spacing:-.025em; }
.jjs-aggregates-layout .agg-bulk__panel p { font-size:16px; line-height:1.75; }
.jjs-aggregates-layout .agg-ticklist { gap:15px; line-height:1.55; font-size:16px; }
/* Preserve both the fleet gallery and all five historical project cards. */
.jjs-aggregates-layout .agg-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.jjs-aggregates-layout .agg-gallery picture { display:block; height:auto; aspect-ratio:4 / 3; overflow:hidden; border-radius:7px; background:#eeece5; }
.jjs-aggregates-layout .agg-gallery img { width:100%; height:100%; object-fit:contain !important; object-position:center !important; }
.jjs-aggregates-layout .jjs-service-work { background:#f7f6f2; }
.jjs-aggregates-layout .jjs-service-work__header { max-width:850px; margin-bottom:36px; }
.jjs-aggregates-layout .jjs-service-work__grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:24px; }
.jjs-aggregates-layout .jjs-service-work__card { grid-column:span 2; display:flex; flex-direction:column; align-items:stretch; box-shadow:0 8px 20px rgb(0 0 0 / .035); }
.jjs-aggregates-layout .jjs-service-work__card:nth-child(4) { grid-column:2 / span 2; }
.jjs-aggregates-layout .jjs-service-work__card:nth-child(5) { grid-column:4 / span 2; }
.jjs-aggregates-layout .jjs-service-work__photo { aspect-ratio:4 / 3; }
.jjs-aggregates-layout .jjs-service-work__capture { width:var(--photo-width,100%); }
/* Keep source offsets in the original markup: these mask social-interface pixels. */
.jjs-aggregates-layout .jjs-service-work__body { padding:26px; }
.jjs-aggregates-layout .jjs-service-work__title { font-size:21px; line-height:1.2; text-transform:none; letter-spacing:-.015em; }
.jjs-aggregates-layout .jjs-service-work__description { font-size:16px; line-height:1.65; }
.jjs-aggregates-layout .jjs-service-work__context { line-height:1.5; }
.jjs-aggregates-layout .agg-cta { padding:clamp(36px,5vw,64px) var(--agg-gutter); }
.jjs-aggregates-layout .agg-cta__inner { max-width:var(--agg-width); gap:32px; flex-direction:row; align-items:center; }
.jjs-aggregates-layout .agg-cta h2 { font-size:clamp(28px,3.2vw,40px); line-height:1.15; margin-bottom:16px; }
.jjs-aggregates-layout .agg-cta p { max-width:60ch; font-size:16px; line-height:1.65; }
.jjs-aggregates-layout .agg-cta .gold-btn { flex-shrink:0; }
.jjs-aggregates-layout .agg-areas { max-width:var(--agg-width); margin:48px auto; padding:32px; border:1px solid #e2ded4; border-left:4px solid var(--gold); border-radius:6px; box-shadow:none; }
.jjs-aggregates-layout .agg-areas h2 { font-size:clamp(26px,2.5vw,32px); line-height:1.2; margin:0 0 18px; }
.jjs-aggregates-layout .agg-areas p { font-size:16px; line-height:1.9; margin:14px 0 0; }
@media (max-width:1376px) { .jjs-aggregates-layout .agg-areas { margin-inline:var(--agg-gutter); } }
@media (max-width:1099px) {
 .jjs-aggregates-layout :is(.agg-intro,.agg-bulk) { grid-template-columns:minmax(0,1fr); }
 .jjs-aggregates-layout .agg-intro__image { max-width:900px; width:100%; margin-inline:auto; }
 .jjs-aggregates-layout .agg-feature-strip { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .jjs-aggregates-layout .agg-feature { grid-column:span 2; }
 .jjs-aggregates-layout .agg-feature:last-child { grid-column:2 / span 2; }
 .jjs-aggregates-layout .agg-gallery { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .jjs-aggregates-layout .agg-gallery picture { grid-column:span 2; }
 .jjs-aggregates-layout .agg-gallery picture:last-child { grid-column:2 / span 2; }
 .jjs-aggregates-layout .jjs-service-work__grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .jjs-aggregates-layout .jjs-service-work__card:nth-child(n) { grid-column:span 2; }
 .jjs-aggregates-layout .jjs-service-work__card:last-child { grid-column:2 / span 2; }
}
@media (max-width:759px) {
 .jjs-aggregates-layout .agg-hero { grid-template-columns:minmax(0,1fr); }
 .jjs-aggregates-layout .agg-hero__inner { grid-column:1; grid-row:1; padding:38px var(--agg-gutter); }
 .jjs-aggregates-layout .agg-hero h1 { font-size:clamp(40px,8vw,58px); }
 .jjs-aggregates-layout .agg-hero p { max-width:48ch; }
 .jjs-aggregates-layout .agg-hero > picture { grid-column:1; grid-row:2; min-height:0; height:auto; aspect-ratio:987 / 740; }
 .jjs-aggregates-layout .agg-hero img { object-fit:contain !important; }
 .jjs-aggregates-layout .agg-cta__inner { flex-direction:column; align-items:stretch; }
 .jjs-aggregates-layout .agg-cta .gold-btn { width:100%; }
}
@media (max-width:599px) {
 .jjs-aggregates-layout :is(.agg-feature-strip,.agg-gallery,.jjs-service-work__grid) { grid-template-columns:minmax(0,1fr); gap:18px; }
 .jjs-aggregates-layout .agg-feature:nth-child(n),
 .jjs-aggregates-layout .agg-gallery picture:nth-child(n),
 .jjs-aggregates-layout .jjs-service-work__card:nth-child(n) { grid-column:auto; }
 .jjs-aggregates-layout .agg-feature { padding:26px; }
 .jjs-aggregates-layout .agg-feature__icon { margin-bottom:18px; }
 .jjs-aggregates-layout .jjs-service-work__photo { aspect-ratio:auto; }
 .jjs-aggregates-layout .jjs-service-work__capture { width:100%; }
 .jjs-aggregates-layout .jjs-service-work__body { padding:24px; }
 .jjs-aggregates-layout .agg-areas { padding:24px; }
}

/* Aggregate catalogues: two generous categories with comfortably spaced lists. */
.jjs-aggregates-layout .agg-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.jjs-aggregates-layout .agg-product-card { padding:clamp(26px,3vw,40px); border-radius:7px; border-top-width:3px; box-shadow:none; }
.jjs-aggregates-layout .agg-product-card h3 { font-size:clamp(25px,2.5vw,32px); line-height:1.2; text-transform:none; letter-spacing:-.025em; }
.jjs-aggregates-layout .agg-product-card > p { margin-top:16px; font-size:16px; line-height:1.7; }
.jjs-aggregates-layout .agg-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.jjs-aggregates-layout .agg-list li { min-width:0; min-height:52px; padding:13px 14px; gap:10px; font-size:15px; line-height:1.5; border-radius:4px; }
.jjs-aggregates-layout .agg-feature { border-top-width:1px; }
/* The original aggregate work example gets a single, larger feature card. */
.jjs-aggregates-layout .jjs-service-work--single .jjs-service-work__grid { display:block; max-width:1100px; margin-inline:auto; }
.jjs-aggregates-layout .jjs-service-work--single .jjs-service-work__card { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); align-items:center; }
.jjs-aggregates-layout .jjs-service-work--single .jjs-service-work__photo { aspect-ratio:auto; }
.jjs-aggregates-layout .jjs-service-work--single .jjs-service-work__capture { width:100%; }
.jjs-aggregates-layout .jjs-service-work--single .jjs-service-work__body { padding:clamp(26px,4vw,48px); }
@media (max-width:1099px) { .jjs-aggregates-layout .agg-product-grid { grid-template-columns:minmax(0,1fr); } }
@media (max-width:759px) {
 .jjs-aggregates-layout .jjs-service-work--single .jjs-service-work__card { display:flex; flex-direction:column; align-items:stretch; }
 .jjs-aggregates-layout .jjs-service-work--single .jjs-service-work__figure { width:100%; }
 .jjs-aggregates-layout .jjs-service-work--single .jjs-service-work__body { padding:26px; }
}
@media (max-width:419px) { .jjs-aggregates-layout .agg-list { grid-template-columns:minmax(0,1fr); } }
