/* Preserve a visible page-background interval between content/CTA and the footer. */
body>main{display:flow-root;padding-bottom:72px}
/* Equal service cards keep their detail links aligned within each row. */
.svc-1 .svc-grid>.svc-item{display:flex;flex-direction:column;align-self:stretch}
.svc-1 .svc-grid .svc-photo{flex:none}
.svc-1 .svc-grid .svc-copy{display:flex;flex-direction:column;flex:1;align-items:flex-start}
.svc-1 .svc-grid .svc-copy h2{min-height:2.4em}
.svc-1 .svc-grid .svc-link{margin-top:auto}
/* Text cards must start at the same edge, rather than center within their grid row. */
.ip-1 .ip-open-grid>.ip-block{align-self:stretch;display:flex;flex-direction:column;align-items:flex-start}
.ip-1 .ip-open-grid>.ip-block h2{min-height:2.4em}
.ip-1 .ip-open-grid>.ip-block .ip-action{margin-top:auto}
/* Individual service pages use a full-width planning section, a photo band,
   then two equally sized construction/preparation columns. */
.ip-1:is(.ip-whole-home-remodeling,.ip-kitchen-remodeling,.ip-bathroom-remodeling,.ip-home-additions,.ip-garage-construction) .ip-open-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.ip-1:is(.ip-whole-home-remodeling,.ip-kitchen-remodeling,.ip-bathroom-remodeling,.ip-home-additions,.ip-garage-construction) .ip-open-grid>.ip-block:first-child,
.ip-1:is(.ip-whole-home-remodeling,.ip-kitchen-remodeling,.ip-bathroom-remodeling,.ip-home-additions,.ip-garage-construction) .ip-open-grid>.ip-photo{grid-column:1/-1}
@media(max-width:650px){body>main{padding-bottom:48px}.svc-1 .svc-grid .svc-copy h2,.ip-1 .ip-open-grid>.ip-block h2{min-height:0}.svc-1 .svc-grid .svc-link,.ip-1 .ip-open-grid>.ip-block .ip-action{margin-top:12px}}
.ip-1.ip-service-area .ip-open-grid>.ip-block h2,
.ip-1:is(.ip-whole-home-remodeling,.ip-kitchen-remodeling,.ip-bathroom-remodeling,.ip-home-additions,.ip-garage-construction) .ip-open-grid>.ip-block h2{min-height:0}
/* Westmere: inset photographic chapters and pair scope with its planning section. */
.svc-2 .svc-chapters{max-width:1320px;margin-inline:auto;padding-inline:40px}
.svc-2 .svc-chapters .svc-photo{width:100%}
.svc-2 .svc-chapters .svc-copy{margin-left:35px}
.svc-2 .svc-chapters .svc-item:nth-child(even) .svc-copy{margin-right:35px}
.ip-2:is(.ip-whole-home-remodeling,.ip-kitchen-remodeling,.ip-bathroom-remodeling,.ip-home-additions,.ip-garage-construction) .ip-cinema{gap:45px 60px}
.ip-2:is(.ip-whole-home-remodeling,.ip-kitchen-remodeling,.ip-bathroom-remodeling,.ip-home-additions,.ip-garage-construction) .ip-cinema>.ip-block:nth-child(2){grid-column:auto;margin-left:0;padding:28px 0;align-self:stretch;border-top:1px solid var(--line)}
.ip-2:is(.ip-whole-home-remodeling,.ip-kitchen-remodeling,.ip-bathroom-remodeling,.ip-home-additions,.ip-garage-construction) .ip-cinema>.ip-block:nth-child(3){padding:28px 0;align-self:stretch;border-top:1px solid var(--line)}
.ip-2:is(.ip-whole-home-remodeling,.ip-kitchen-remodeling,.ip-bathroom-remodeling,.ip-home-additions,.ip-garage-construction) .ip-cinema>.ip-photo:nth-child(4){aspect-ratio:2.3;width:100%}
@media(max-width:650px){.svc-2 .svc-chapters{padding-inline:20px}.svc-2 .svc-chapters .svc-copy{margin-inline:0!important}.ip-2:is(.ip-whole-home-remodeling,.ip-kitchen-remodeling,.ip-bathroom-remodeling,.ip-home-additions,.ip-garage-construction) .ip-cinema{gap:22px}}
/* Clearbrook: a broad closing photograph on About. */
.ip-3.ip-about .ip-rulebook>.ip-photo:last-child{grid-column:1/-1;width:100%;aspect-ratio:2.3;margin:30px 0 0}
/* Give the scope/planning row its own visible rules and align paragraph starts. */
.ip-3:is(.ip-whole-home-remodeling,.ip-kitchen-remodeling,.ip-bathroom-remodeling,.ip-home-additions,.ip-garage-construction) .ip-rulebook{row-gap:32px}
.ip-3:is(.ip-whole-home-remodeling,.ip-kitchen-remodeling,.ip-bathroom-remodeling,.ip-home-additions,.ip-garage-construction) .ip-rulebook>.ip-photo{margin:0}
.ip-3:is(.ip-whole-home-remodeling,.ip-kitchen-remodeling,.ip-bathroom-remodeling,.ip-home-additions,.ip-garage-construction) .ip-rulebook>.ip-block:nth-child(3),
.ip-3:is(.ip-whole-home-remodeling,.ip-kitchen-remodeling,.ip-bathroom-remodeling,.ip-home-additions,.ip-garage-construction) .ip-rulebook>.ip-block:nth-child(4){align-self:stretch;border-top:3px solid #000;padding-top:30px}
.ip-3:is(.ip-whole-home-remodeling,.ip-kitchen-remodeling,.ip-bathroom-remodeling,.ip-home-additions,.ip-garage-construction) .ip-rulebook>.ip-block:nth-child(3) h2,
.ip-3:is(.ip-whole-home-remodeling,.ip-kitchen-remodeling,.ip-bathroom-remodeling,.ip-home-additions,.ip-garage-construction) .ip-rulebook>.ip-block:nth-child(4) h2{min-height:2.24em}
@media(min-width:651px) and (max-width:1000px){.ip-3 .ip-rulebook>.ip-block:nth-child(3) h2,.ip-3 .ip-rulebook>.ip-block:nth-child(4) h2{min-height:3.36em}}
@media(max-width:650px){.ip-3.ip-about .ip-rulebook>.ip-photo:last-child{aspect-ratio:1.6!important}.ip-3:is(.ip-whole-home-remodeling,.ip-kitchen-remodeling,.ip-bathroom-remodeling,.ip-home-additions,.ip-garage-construction) .ip-rulebook>.ip-block h2{min-height:0!important}}
/* Cedarfield: align paired editorial text while retaining the offset photography. */
.ip-5.ip-about .ip-editorial>.ip-block:nth-child(3),
.ip-5.ip-about .ip-editorial>.ip-block:nth-child(4),
.ip-5:is(.ip-whole-home-remodeling,.ip-kitchen-remodeling,.ip-bathroom-remodeling,.ip-home-additions,.ip-garage-construction) .ip-editorial>.ip-block:nth-child(5),
.ip-5:is(.ip-whole-home-remodeling,.ip-kitchen-remodeling,.ip-bathroom-remodeling,.ip-home-additions,.ip-garage-construction) .ip-editorial>.ip-block:nth-child(6){align-self:stretch;padding:28px 0;margin:0}
.ip-5.ip-about .ip-editorial>.ip-block:nth-child(3) h2,
.ip-5.ip-about .ip-editorial>.ip-block:nth-child(4) h2,
.ip-5:is(.ip-whole-home-remodeling,.ip-kitchen-remodeling,.ip-bathroom-remodeling,.ip-home-additions,.ip-garage-construction) .ip-editorial>.ip-block:nth-child(5) h2,
.ip-5:is(.ip-whole-home-remodeling,.ip-kitchen-remodeling,.ip-bathroom-remodeling,.ip-home-additions,.ip-garage-construction) .ip-editorial>.ip-block:nth-child(6) h2{min-height:2.24em}
@media(max-width:650px){.ip-5.ip-about .ip-editorial>.ip-block h2,.ip-5:is(.ip-whole-home-remodeling,.ip-kitchen-remodeling,.ip-bathroom-remodeling,.ip-home-additions,.ip-garage-construction) .ip-editorial>.ip-block h2{min-height:0}}
/* Collection alignment audit: paired text groups share a top edge and title space. */
.ip-traditional>.ip-block,.ip-architecture>.ip-block,.ip-contact-notes>.ip-block{align-self:stretch}
.ip-green-story>.ip-block h2,.ip-traditional>.ip-block h2,.ip-architecture>.ip-block h2,.ip-contact-notes>.ip-block h2{min-height:2.24em}
.ip-14 .ip-classic>.ip-block{align-self:stretch;padding:35px}
.ip-14 .ip-classic>.ip-block h2{min-height:2.24em}
.ip-capability>.ip-block h2,.ip-planning>.ip-block h2{font-size:28px;min-height:2.24em}
@media(max-width:650px){.ip-traditional>.ip-block h2,.ip-architecture>.ip-block h2,.ip-contact-notes>.ip-block h2,.ip-green-story>.ip-block h2,.ip-14 .ip-classic>.ip-block h2,.ip-capability>.ip-block h2,.ip-planning>.ip-block h2{min-height:0}.ip-14 .ip-classic>.ip-block{padding:25px}}
.ip-compact>.ip-block,.ip-2 .ip-cinema>.ip-block{align-self:stretch}
.ip-5.ip-service-area .ip-editorial>.ip-block:nth-child(n+3){align-self:stretch;padding:28px 0;margin:0}
@media(min-width:651px){
 .ip-compact>.ip-block h2,.ip-welcome>.ip-block h2,.ip-2 .ip-cinema>.ip-block h2,.ip-3.ip-about .ip-rulebook>.ip-block h2{min-height:2.24em}
}
@media(min-width:651px) and (max-width:1000px){
 .ip-1.ip-service-area .ip-open-grid>.ip-block h2{min-height:2.24em}
 .ip-2 .ip-cinema>.ip-block:nth-child(2) h2,.ip-2 .ip-cinema>.ip-block:nth-child(3) h2,.ip-3.ip-about .ip-rulebook>.ip-block h2{min-height:3.36em}
 .ip-planning{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(min-width:651px) and (max-width:1000px){.ip-2 .ip-cinema>.ip-block h2{min-height:3.36em}}
/* Service-card rows keep their headings, descriptions and detail links aligned. */
.svc-board>.svc-item,.svc-choices>.svc-item,
.svc-mosaic>.svc-item:nth-last-child(-n+2){display:flex;flex-direction:column;align-items:stretch}
.svc-board>.svc-item>.svc-copy,.svc-choices>.svc-item>.svc-copy,
.svc-mosaic>.svc-item:nth-last-child(-n+2)>.svc-copy{flex:1;display:flex;flex-direction:column;align-items:flex-start}
.svc-board .svc-copy h2,.svc-choices .svc-copy h2,
.svc-mosaic>.svc-item:nth-last-child(-n+2) .svc-copy h2{min-height:2.5em}
.svc-board .svc-link,.svc-choices .svc-link,
.svc-mosaic>.svc-item:nth-last-child(-n+2) .svc-link{margin-top:auto}
.svc-mosaic>.svc-item:nth-last-child(-n+2)>.svc-photo{height:300px;aspect-ratio:auto;flex:none}
@media(max-width:650px){.svc-board .svc-copy h2,.svc-choices .svc-copy h2,.svc-mosaic>.svc-item:nth-last-child(-n+2) .svc-copy h2{min-height:0}.svc-board .svc-link,.svc-choices .svc-link,.svc-mosaic>.svc-item:nth-last-child(-n+2) .svc-link{margin-top:12px}}
.svc-mosaic>.svc-item:last-child{gap:0}
.svc-catalog>.svc-item:not(:first-child){display:flex;flex-direction:column}
.svc-catalog>.svc-item:not(:first-child)>.svc-copy{display:flex;flex-direction:column;align-items:flex-start;flex:1}
.svc-catalog>.svc-item:not(:first-child) .svc-link{margin-top:auto}
@media(min-width:651px) and (max-width:1000px){
 .svc-mosaic>.svc-item{display:flex;flex-direction:column;gap:0;align-items:stretch}
 .svc-mosaic>.svc-item>.svc-photo{height:260px;aspect-ratio:auto;flex:none}
 .svc-mosaic>.svc-item>.svc-copy{display:flex;flex-direction:column;align-items:flex-start;flex:1}
 .svc-mosaic>.svc-item .svc-copy h2{min-height:2.5em}
 .svc-mosaic>.svc-item .svc-link{margin-top:auto}
}
@media(min-width:651px) and (max-width:1000px){.svc-mosaic>.svc-item:nth-last-child(-n+2)>.svc-photo{height:260px}}
/* Brookstead's two service groups share their header and card rows. */
@media(min-width:651px){
 .svc-14 .svc-spread{row-gap:35px}
 .svc-14 .svc-spread>section{display:grid;grid-template-rows:subgrid;grid-row:span 4;padding:30px;row-gap:35px}
 .svc-14 .svc-spread>section>h2{margin:0;min-height:2.24em}
 .svc-14 .svc-spread .svc-item{margin:0;display:flex;flex-direction:column}
 .svc-14 .svc-spread .svc-photo{aspect-ratio:4/3;flex:none}
 .svc-14 .svc-spread .svc-copy{display:flex;flex-direction:column;align-items:flex-start;flex:1}
 .svc-14 .svc-spread .svc-copy h2{min-height:2.5em}
 .svc-14 .svc-spread .svc-link{margin-top:auto}
}
.t14 .hero .widephoto img{object-position:center 53%}
@media(max-width:650px){.t14 .hero .widephoto img{object-position:46% center}}
