/* Service layouts reuse site tokens, buttons, forms, navigation and footer. */
.service-picture{display:block;min-width:0}.service-picture img{display:block;width:100%;height:auto;object-fit:cover}
.services-scene{position:relative;isolation:isolate;overflow:hidden}.services-backdrop{position:absolute;inset:0;z-index:-2}.services-backdrop .service-picture,.services-backdrop img{width:100%;height:100%;object-fit:cover}.services-scene::after{content:'';position:absolute;inset:0;background:#001524b3;z-index:-1;pointer-events:none}
.service-label{display:flex;align-items:center;gap:1rem;color:var(--color-muted);margin-bottom:1.5rem}.service-label::after{content:'';width:3.5rem;height:1px;background:var(--color-teal)}.services-page .header .asset-brand{width:11rem}.services-page .nav [aria-current=page]{color:var(--color-cyan);text-decoration:underline;text-underline-offset:.75rem}
.services-hero-copy{gap:1.5rem}.services-hero h1{font-size:var(--text-h2)}.services-hero-copy>.button{width:fit-content}.services-hero-copy>.button .icon{width:1.5rem;height:1.5rem}.services-hero-copy>p{max-width:43ch}.hero-values{list-style:none;margin:0;padding:0 var(--gutter) 2rem;display:grid;grid-template-columns:1fr 1fr;gap:1rem}.hero-values li{border-left:1px solid var(--color-cyan);padding-left:1rem}
.services-product,.services-offers{position:relative;isolation:isolate;overflow:hidden;background:#f9faf9}.service-leaf{position:absolute;right:0;top:1rem;width:min(28%,24rem);height:auto;z-index:-1;opacity:.13}.product-benefits{margin-block:3rem}.product-benefits article{border-left:1px solid var(--color-line);padding-left:1.25rem;gap:1rem}.product-benefits h3{font-size:var(--text-lead)}.services-signature{display:flex;align-items:center;justify-content:flex-end;gap:1rem;max-width:none;color:var(--color-muted)}.services-signature::before{content:'';flex:1;height:1px;background:var(--color-line)}.services-signature::after{content:'';width:3rem;height:1px;background:var(--color-teal)}
.system-chain{display:grid;gap:2rem}.system-part{position:relative;display:grid;gap:1rem;padding-left:1.5rem;border-left:2px solid var(--color-cyan)}.system-part>.stack{gap:.5rem}.system-part h3{font-size:1.5rem}.system-part .number{font-size:2.5rem}.system-part .service-picture{max-width:30rem}.system-part img{aspect-ratio:273/207;border-radius:.5rem}.system-arrow{display:none}.system-part p{font-size:var(--text-sm)}
.offer-grid{margin-top:3rem}.offer-grid article{gap:1rem}.offer-icon{width:4rem;height:4rem;stroke-width:1.1}.offer-grid h3{font-size:var(--text-lead)}.services-offers h2{font-size:var(--text-h2)}
.custom-copy{gap:1.5rem}.services-custom .custom-copy p{max-width:48ch}.services-custom h2{font-size:var(--text-h3)}.custom-factors{display:grid;gap:1.5rem;margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--color-line)}.custom-factors article{gap:.5rem}.custom-factors h3{font-family:var(--font-body)}.custom-factors p{font-size:var(--text-sm)}
.services-work{background:#faf9f7}.services-work>.split>.quote{font-family:var(--font-body);font-size:var(--text-lead);line-height:1.4;color:var(--color-muted);max-width:38ch}.work-slide{display:grid;gap:2rem}.work-copy{align-content:start;gap:1rem}.work-number{font:clamp(3.5rem,6vw,7rem)/1 var(--font-display)}.work-number small{font-size:.35em;color:var(--color-muted)}.work-copy .rule::before{margin-block:0 1rem}.work-slide .service-picture{border-radius:var(--radius);overflow:hidden}.work-slide img{aspect-ratio:3/2}.service-slider-controls{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;margin-top:1.75rem}.service-slider-controls>.row{gap:.75rem;flex-wrap:nowrap}.service-slider-controls .button:first-child{border-color:var(--color-muted);color:var(--color-muted)}.service-slider-controls>[data-service-count]{font-size:var(--text-sm);font-variant-numeric:tabular-nums}.service-pagination{display:flex;gap:.4rem;flex:1;justify-content:center;min-width:0}.service-pagination button{padding:0;border:0;background:transparent;min-height:2.75rem;flex:1;max-width:5rem;display:flex;align-items:center}.service-pagination button span{height:2px;background:var(--color-line);width:100%;border-radius:2px}.service-pagination [aria-current=true] span{background:var(--color-teal);height:3px}.service-slider-controls .button{min-width:2.75rem;min-height:2.75rem}
.services-portfolio>.container .quote{font-family:var(--font-body);font-size:var(--text-lead);line-height:1.4}.service-project-track{display:flex;gap:1rem;align-items:center;padding-inline:var(--gutter)}.service-project{padding:0;background:transparent;border:1px solid #ffffff55;border-radius:var(--radius);overflow:hidden;flex:0 0 100%;min-width:0;display:block}.service-project img{aspect-ratio:3/2;object-fit:cover;transition:filter 180ms}.service-project:hover img{filter:brightness(1.1)}.services-portfolio .service-slider-controls{padding-inline:var(--gutter)}.service-portfolio-slider{overflow:hidden}.service-lightbox{width:min(94vw,80rem)}.service-lightbox-content img{max-height:75svh;object-fit:contain}.service-lightbox-content .service-picture{background:var(--color-night)}
.service-faq details{border-bottom:1px solid var(--color-line)}.service-faq summary{list-style:none;display:grid;grid-template-columns:2rem 1fr 1.5rem;align-items:center;gap:1rem;min-height:3rem;padding:.8rem 0;cursor:pointer}.service-faq summary::-webkit-details-marker{display:none}.faq-sign{position:relative;width:1.2rem;height:1.2rem}.faq-sign::before,.faq-sign::after{content:'';position:absolute;left:0;top:50%;width:100%;height:1px;background:currentColor}.faq-sign::after{transform:rotate(90deg)}.service-faq details[open] .faq-sign::after{transform:none}.faq-answer{padding:1rem 0 2rem 3rem;gap:1rem;color:var(--color-muted)}.faq-contact{display:flex;align-items:center;gap:2rem;margin-top:2rem;font:italic var(--text-h3)/1.2 var(--font-display)}.faq-contact a{text-decoration:none}.faq-contact>span{flex:1;height:1px;background:var(--color-line)}
.services-estimate .estimate-copy{gap:1.5rem}.services-estimate h2{font-size:var(--text-h2)}.services-estimate .estimate-copy>.stack{gap:.5rem}.estimate-form{background:transparent!important;box-shadow:none;border:0;padding:0;max-width:42rem;gap:1rem}.estimate-form .field input{background:#00232d70;border-color:#ffffff70;color:var(--color-paper);border-radius:3rem}.estimate-form .field input::placeholder{color:#c2cdd2}.estimate-form .about-input .icon{color:#c2cdd2}.estimate-form .button{background:var(--color-cyan);color:var(--color-night);font-weight:600;text-transform:uppercase;border:0}.estimate-form .check,.estimate-form .request-note{font-size:var(--text-sm)}.estimate-form .error{color:#ffb4bc}.director-name{border-left:2px solid var(--color-cyan);padding:1rem;background:#001524b0;width:fit-content;margin-top:2rem;border-radius:0 .5rem .5rem 0}.director-name small{display:block;margin-top:.5rem;color:var(--color-muted)}.estimate-signature{display:flex;flex-wrap:wrap;gap:1rem;margin-top:3rem}.estimate-signature>span{color:var(--color-cyan)}
@media(min-width:48rem){
 .system-chain{grid-template-columns:repeat(2,minmax(0,1fr))}.custom-factors{grid-template-columns:repeat(3,minmax(0,1fr))}.work-slide{grid-template-columns:.8fr 1.8fr}.work-copy h3{font-size:var(--text-h3)}.work-copy p{font-size:var(--text-sm)}
 .service-project-track{padding-inline:0;gap:2rem;justify-content:center}.service-project{flex-basis:56%}.service-project:not(.is-current){flex-basis:26%;opacity:.75}.service-project:not(.is-current) img{aspect-ratio:1/1}.service-portfolio-slider .service-pagination{max-width:44rem}.service-portfolio-slider .service-slider-controls{gap:2rem}.estimate-form{grid-template-columns:1fr 1fr}.estimate-form>*:not(.field){grid-column:1/-1}
}
@media(min-width:64rem){
 .services-page{--service-unit:calc(100vw / 1693);--font-display:'Times New Roman',serif;--gutter:calc(65 * var(--service-unit));--section-space:calc(75 * var(--service-unit))}
 .services-page .header{position:absolute;inset:0 0 auto;min-height:5rem;padding-block:calc(25 * var(--service-unit));background:#00152445;gap:1.25rem}.services-page .header .asset-brand{width:calc(235 * var(--service-unit));padding-right:calc(35 * var(--service-unit));border-right:1px solid #ffffff50}.services-page .header .nav{gap:calc(30 * var(--service-unit))}.services-page .header .nav a{font-size:clamp(.625rem,.8vw,.875rem)}.services-page .header-contact{font-size:var(--text-sm)}.services-page .header-contact .eyebrow{font-size:.625rem}.services-page .header>.button{padding:.7rem 1rem;white-space:nowrap}
 .services-hero{min-height:calc(950 * var(--service-unit));display:flex;align-items:center}.services-hero::after{background:linear-gradient(90deg,#001524ce,transparent 75%)}.services-hero-copy{padding-top:calc(195 * var(--service-unit));padding-bottom:calc(55 * var(--service-unit));gap:calc(35 * var(--service-unit));width:52%}.services-hero h1{font-size:clamp(3.25rem,5.15vw,6.5rem);line-height:1.02}.services-hero-copy>p{font-size:clamp(1rem,1.28vw,1.5rem);line-height:1.5;max-width:43ch}.services-hero-copy>.service-label{font-size:var(--text-xs);margin-bottom:0}.services-hero .about-scroll{margin-top:calc(20 * var(--service-unit))}.services-hero .about-scroll-icon{width:3rem;height:3rem}.hero-values{position:absolute;right:var(--gutter);bottom:calc(115 * var(--service-unit));grid-template-columns:1fr;padding:0;gap:1.5rem}
 .services-product{min-height:calc(705 * var(--service-unit))}.services-product>.split{grid-template-columns:1fr 1fr;align-items:start}.services-product h2{font-size:clamp(3rem,6.1vw,7.5rem);line-height:.95}.services-product .split>.stack{width:65%;font-size:clamp(1rem,1.13vw,1.4rem);line-height:1.45}.product-benefits{margin-top:calc(85 * var(--service-unit));gap:calc(65 * var(--service-unit))}.product-benefits article{padding-left:calc(35 * var(--service-unit))}.product-benefits h3{font-size:clamp(1.5rem,1.85vw,2.25rem)}.product-benefits p{font-size:clamp(1rem,1.12vw,1.35rem)}
 .services-system{min-height:calc(805 * var(--service-unit));padding-top:calc(45 * var(--service-unit));padding-bottom:calc(120 * var(--service-unit))}.services-system::after{background:#00152435}.services-system>.split{grid-template-columns:1fr 1fr;gap:5rem;align-items:center}.services-system h2{font-size:clamp(2.75rem,5.1vw,6.25rem);line-height:.95}.services-system>.split p{max-width:40ch;font-size:clamp(1rem,1.1vw,1.35rem)}
 .system-chain{grid-template-columns:repeat(5,minmax(0,1fr));gap:calc(28 * var(--service-unit));position:relative}.system-chain::after{content:'';position:absolute;left:8%;right:8%;bottom:-3rem;height:2rem;border:3px solid var(--color-cyan);border-top:0;border-radius:0 0 1rem 1rem;box-shadow:0 4px 12px #00c4e580;z-index:-1}.system-part{border-left:1px solid #ffffff50;padding-left:calc(23 * var(--service-unit));gap:1.5rem;grid-template-rows:1fr auto}.system-part:first-child{border-left:0;padding-left:0}.system-part::after{content:'';position:absolute;left:50%;bottom:-3rem;width:3px;height:3rem;background:var(--color-cyan);box-shadow:0 0 10px var(--color-cyan);z-index:-1}.system-part>.stack{gap:.6rem}.system-part h3{font-size:clamp(1.125rem,1.7vw,2rem)}.system-part p{font-size:clamp(.875rem,1.05vw,1.25rem);line-height:1.35}.system-part .number{font-size:clamp(2rem,3vw,3.5rem)}.system-arrow{display:block;position:absolute;right:0;top:3.2rem;color:var(--color-cyan);font-size:1.6rem}.system-part h3{padding-right:.7rem}
 .services-offers{min-height:calc(650 * var(--service-unit))}.services-offers h2{font-size:clamp(2.5rem,4.3vw,5.25rem);line-height:1}.offer-grid{gap:calc(45 * var(--service-unit));margin-top:calc(55 * var(--service-unit))}.offer-grid article+article{border-left:1px solid var(--color-line);padding-left:calc(30 * var(--service-unit))}.offer-grid h3{font-size:clamp(1.25rem,1.75vw,2rem)}.offer-grid p{font-size:clamp(1rem,1.12vw,1.3rem);line-height:1.45}
 .services-custom{min-height:calc(775 * var(--service-unit));padding-top:calc(55 * var(--service-unit));padding-bottom:calc(45 * var(--service-unit));display:flex;flex-direction:column;justify-content:space-between}.services-custom::after{background:linear-gradient(90deg,#00152455,transparent 85%)}.custom-copy{gap:calc(30 * var(--service-unit))}.services-custom h2{font-size:clamp(2rem,4vw,4.8rem);line-height:1;max-width:27ch}.services-custom .custom-copy p:not(.eyebrow){font-size:clamp(1rem,1.23vw,1.5rem);line-height:1.45;width:43%}.custom-factors{grid-template-columns:repeat(5,minmax(0,1fr));gap:calc(45 * var(--service-unit));margin-top:calc(45 * var(--service-unit));padding-top:calc(30 * var(--service-unit))}.custom-factors article+article{border-left:1px solid #ffffff55;padding-left:calc(35 * var(--service-unit))}.custom-factors p{font-size:clamp(.875rem,1.05vw,1.25rem)}
 .services-work{padding-right:0}.services-work>.split{grid-template-columns:.8fr 1.8fr;gap:2rem;align-items:center;padding-right:var(--gutter)}.services-work h2{font-size:clamp(3.25rem,6.8vw,8rem);line-height:.85}.services-work .quote{font-size:clamp(1.125rem,1.5vw,1.8rem)}.work-slide{grid-template-columns:.8fr 1.8fr}.work-slide .service-picture{border-radius:1rem 0 0 1rem;max-height:calc(530 * var(--service-unit))}.work-slide img{width:100%;height:100%;object-position:center}.work-copy{padding-right:calc(50 * var(--service-unit));gap:calc(15 * var(--service-unit))}.work-number{font-size:clamp(4rem,6.5vw,8rem)}.work-copy h3{font-size:clamp(1.75rem,3vw,3.6rem);max-width:13ch;line-height:1}.work-copy p.muted{font-size:clamp(1rem,1.2vw,1.5rem);line-height:1.45}.services-work .service-slider-controls{padding-right:var(--gutter)}
 .services-portfolio{padding-top:calc(50 * var(--service-unit));padding-bottom:calc(35 * var(--service-unit))}.services-portfolio::after{background:#00152420}.services-portfolio h2{font-size:clamp(2.75rem,5.75vw,7rem);line-height:.95}.services-portfolio .quote{font-size:clamp(1.125rem,1.3vw,1.6rem)!important;max-width:35ch}.service-project-track{gap:calc(30 * var(--service-unit))}.service-project{flex-basis:56%;}.service-project img{aspect-ratio:1.95}.service-project:not(.is-current){flex-basis:23%;}.service-project:not(.is-current) img{aspect-ratio:1.05}.service-portfolio-slider .service-slider-controls{margin-top:calc(40 * var(--service-unit))}.service-portfolio-slider .service-pagination button{max-width:2.2rem}
 .services-questions h2{font-size:clamp(2.75rem,5.4vw,6.5rem);line-height:.95}.service-faq summary{font-size:clamp(1rem,1.2vw,1.5rem);grid-template-columns:4rem 1fr 1.5rem}.faq-answer{padding-left:5rem}.faq-contact{font-size:clamp(1.5rem,1.9vw,2.25rem)}
 .services-estimate{min-height:calc(1140 * var(--service-unit));padding-top:calc(70 * var(--service-unit));display:flex;flex-direction:column;justify-content:space-between}.services-estimate::after{background:linear-gradient(90deg,#00152460,transparent 75%)}.estimate-copy{width:59%;gap:calc(35 * var(--service-unit))!important}.services-estimate h2{font-size:clamp(2.75rem,5.45vw,6.5rem);line-height:1.02}.services-estimate .lead{font-size:clamp(1.125rem,1.75vw,2.1rem);line-height:1.4}.estimate-form{width:85%;margin-top:calc(25 * var(--service-unit));gap:1rem}.estimate-form .field input,.estimate-form .button{min-height:clamp(3rem,4.7vw,5rem)}.director-name{position:absolute;right:1rem;top:25%;font-size:clamp(1rem,1.25vw,1.5rem);padding:1.25rem;max-width:24ch;margin:0}.director-name small{font-size:.85em}.estimate-signature{font-size:clamp(.625rem,.95vw,1rem)}
}
@media(max-width:63.999rem){
 .services-hero>.services-backdrop,.services-estimate>.services-backdrop{position:relative;inset:auto;z-index:auto;aspect-ratio:16/9}.services-hero>.services-backdrop img,.services-estimate>.services-backdrop img{object-fit:cover}.services-hero::after,.services-estimate::after{display:none}.services-hero-copy{padding-top:2rem}.services-estimate{padding-top:0}.services-estimate>.services-backdrop{margin-inline:calc(-1 * var(--gutter));margin-bottom:2rem;aspect-ratio:1.5}.services-estimate>.services-backdrop img{object-position:right center}.services-custom .services-backdrop{opacity:.5}.services-system .services-backdrop{opacity:.65}.services-product .split>.stack{max-width:55ch}
}
@media(max-width:47.999rem){
 .service-pagination{order:3;flex-basis:100%}.service-portfolio-slider .service-pagination{gap:.5rem;display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.service-portfolio-slider .service-pagination button{max-width:none;min-height:2.75rem}.service-project-track{display:block}.service-project:not(.is-current){display:none}.service-project{width:100%}.faq-answer{padding-left:0}.faq-contact{font-size:1.35rem}.services-custom h2 br{display:none}.services-custom h2{line-height:1.2}.services-custom h2 .accent{display:block;margin-top:.5rem}.estimate-signature{font-size:.625rem}.services-hero .about-scroll{font-size:.625rem}
}
/* Keep the large stage counter independent of paragraph typography. */
@media(min-width:48rem){.work-copy .work-number{font-size:clamp(3.5rem,6vw,7rem)}}
@media(min-width:64rem){
 .work-copy .work-number{font-size:clamp(4rem,6.5vw,8rem)}
 .system-part,.system-part:first-child{padding-left:0;border-left:0}.system-part:not(:first-child)::before{content:'';position:absolute;left:calc(-14 * var(--service-unit));top:0;bottom:0;width:1px;background:#ffffff55}
 .system-part h3{font-size:clamp(1.125rem,1.6vw,1.9rem)}
 .estimate-form .button{font-size:1rem}.estimate-signature{max-width:none}
}
@media(max-width:47.999rem){.services-system>.services-backdrop{height:42rem;opacity:.4}.services-system::after{background:linear-gradient(#00152470,#001524 42rem)}}
@media(max-width:63.999rem){.work-slide img{aspect-ratio:4/3}}
@media(max-width:47.999rem){.service-project img{aspect-ratio:4/3}}

/* Service estimate forms: keep the card readable over the dark photo background. */
.services-estimate .inline-request {
 background:transparent!important;
 border:0;
 border-radius:0;
 padding:0;
 color:var(--color-paper);
 box-shadow:none;
 backdrop-filter:none;
 width:min(100%,42rem);
}
.services-estimate .inline-request .estimate-form {
 width:100%;
 max-width:none;
 margin-top:0;
}
.services-estimate .inline-request .field input {
 background:#08212dcc;
 border-color:#ffffff55;
 color:var(--color-paper);
}
.services-estimate .inline-request .field input:focus {
 border-color:var(--color-cyan);
 box-shadow:0 0 0 .2rem #00c4e533;
 outline:0;
}
.services-estimate .inline-request .field input::placeholder {color:#c2cdd2cc}
.services-estimate .inline-request .check {
 color:var(--color-muted);
 font-size:var(--text-sm);
 line-height:1.4;
}
.services-estimate .inline-request .check a {
 color:var(--color-cyan);
 text-decoration:underline;
 text-underline-offset:.2em;
}
.services-estimate .inline-request .button {width:100%}
.services-estimate .inline-request .form-status {color:var(--color-paper)}
@media(max-width:47.999rem){
 .services-estimate .inline-request .estimate-form {grid-template-columns:1fr}
 .services-estimate .inline-request .estimate-form>.field {grid-column:1/-1}
}

/* Full-screen estimate with a 16:9 minimum height on wide monitors. */
#estimate .estimate-form{gap:.75rem 1rem}
#estimate .estimate-form>.button{margin-top:1rem}
@media(min-width:100rem){
 #estimate{min-height:max(100svh,56.25vw);padding-block:clamp(2.5rem,4vw,6rem)}
 #estimate .estimate-copy{gap:clamp(1.5rem,2vw,3rem)!important}
 #estimate .service-label{margin-bottom:0}
 #estimate h2{font-size:clamp(3.5rem,5.45vw,6.5rem)}
 #estimate .lead{font-size:clamp(1.125rem,1.75vw,2.1rem)}
 #estimate .estimate-form{margin-top:.5rem}
 #estimate .estimate-form .field input,
 #estimate .estimate-form .button{min-height:3.75rem}
 #estimate .estimate-signature{margin-top:2rem}
}
@media(min-width:100rem){
 #estimate .services-backdrop img{object-position:center top}
}

/* Progressive reveal for service detail pages. Content remains visible without JS. */
.services-page :is(.button,.text-link,.about-scroll,.service-faq summary):focus-visible{outline:2px solid currentColor;outline-offset:4px}
@media(prefers-reduced-motion:no-preference){
 .services-page .service-reveal-pending{opacity:0;transform:translate3d(0,28px,0)}
 .services-page :is(.header>*,.services-hero-copy,.hero-values,.services-backdrop img,.product-benefits>article,.system-part,.offer-grid>article,.custom-factors>article,.lighting-cards>article,.lighting-stages>*,.water-cards>article,.water-stages>*,.work-slider,.service-portfolio-slider,.service-faq>details,.estimate-copy){will-change:opacity,transform}
 .service-faq .faq-answer{will-change:height,opacity;overflow:hidden}
 .service-faq .faq-sign::after{transition:transform .45s cubic-bezier(.16,1,.3,1)}
}
@media(prefers-reduced-motion:reduce){
 html:has(body.services-page){scroll-behavior:auto}
 .services-page .service-reveal-pending{opacity:1;transform:none}
 .service-faq .faq-sign::after{transition:none}
}
