/* Solutions page only: approved alternating service layouts. */
.solutions-page { --solutions-navy:#061f2b; }
.solutions-page .container { max-width:1440px; }
.solutions-page h2 { font-size:clamp(28px,2.3vw,40px); line-height:1.15; letter-spacing:-1.1px; margin:0 0 18px; }
.solutions-page h2 span { color:var(--red); display:block; }
.solutions-page p { line-height:1.55; }
.solutions-page .solution-label { display:flex; align-items:center; gap:12px; color:var(--red); font-size:11px; font-weight:700; text-transform:uppercase; margin:0 0 18px; }
.solution-label::before { content:''; height:3px; width:30px; background:var(--red); flex:none; }
.solutions-page .button { min-height:46px; padding:12px 26px; gap:32px; font-size:12px; }
.solutions-hero { height:440px; position:relative; color:white; background:var(--solutions-navy); overflow:hidden; }
.solutions-hero>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 42%; }
.solutions-hero::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(3,25,38,.98),rgba(3,25,38,.9) 33%,rgba(3,25,38,.2) 66%,transparent); }
.solutions-hero .container { height:100%; position:relative; z-index:1; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; animation:solutions-enter .45s ease-out; }
.solutions-hero h1 { font-size:clamp(40px,3.6vw,62px); line-height:1.04; letter-spacing:-1.5px; font-weight:800; margin:0 0 18px; }
.solutions-hero h1 span { color:var(--yellow); }
.solutions-hero .container>p:last-child { margin:0; max-width:540px; font-size:17px; }
.solutions-page .solutions-hero .solution-label,.solutions-page .solution-dark .solution-label,.solutions-page .solutions-cta .solution-label { color:white; }
.solutions-hero .solution-label::before,.solution-dark .solution-label::before,.solutions-cta .solution-label::before { width:3px; height:20px; background:var(--yellow); }
.service-nav { display:grid; grid-template-columns:repeat(4,1fr); gap:2px; padding-top:18px; padding-bottom:18px; }
.service-nav a { display:flex; justify-content:center; align-items:center; gap:16px; min-height:90px; padding:15px 20px; background:#f4f5f6; font-size:14px; font-weight:700; }
.service-nav a:first-child { background:var(--red); color:white; }
.service-nav a:hover { background:#e9ecef; color:var(--ink); }
.service-nav img,.service-nav .icon { width:36px; height:36px; object-fit:contain; flex:none; color:var(--red); }
.service-nav img { transform:scale(1.25); }
.service-nav a:first-child img { filter:brightness(0) invert(1); }
.service-nav a:first-child:hover { background:#c51017; color:white; }
.solutions-page section[id] { scroll-margin-top:0; }
.solution-light { display:grid; grid-template-columns:42fr 35fr 23fr; padding-top:8px; padding-bottom:20px; align-items:stretch; }
.solution-copy { padding:34px 32px 32px 0; align-self:center; }
.solution-copy>p:not(.solution-label) { font-size:15px; color:#62676b; margin:0 0 22px; }
.solution-photo { display:block; width:100%; height:100%; min-height:420px; max-height:500px; object-fit:cover; }
.solution-list { background:#f2f5f6; padding:36px 24px; }
.solution-list h3 { font-size:16px; margin:0 0 26px; line-height:1.4; }
.solution-list ul { list-style:none; padding:0; margin:0; }
.solution-list li { position:relative; padding-left:28px; margin:0 0 18px; font-size:13px; line-height:1.5; color:#62676b; }
.solution-list li::before { content:'✓'; position:absolute; left:0; top:1px; border:1px solid var(--red); color:var(--red); width:17px; height:17px; font-size:11px; border-radius:50%; text-align:center; line-height:15px; }
.solution-note { color:#62676b; font-size:12px; margin:22px 0 0; }
.solution-dark { display:grid; grid-template-columns:43fr 57fr; background:var(--solutions-navy); color:white; }
.solution-dark-content { display:grid; grid-template-columns:61fr 39fr; padding:38px max(28px,calc((100vw - 1440px)/2)) 38px 24px; align-items:center; }
.solution-dark .solution-copy { padding:0 28px 0 0; }
.solution-dark h2 { font-size:clamp(27px,2vw,35px); }
.solution-dark h2 span { color:var(--yellow); }
.solution-dark .solution-copy>p:not(.solution-label) { color:#e0e6e9; }
.solution-dark .solution-list { background:none; padding:12px 0 12px 26px; border-left:1px solid #ffffff30; }
.solution-dark .solution-list li { color:#e0e6e9; }
.solution-dark .solution-list li::before { color:var(--yellow); border-color:var(--yellow); }
.solution-dark>.solution-photo { max-height:none; object-position:center 20%; }
.solution-pending { min-height:420px; background:#e1e7ea; color:#53636e; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; padding:30px; }
.solution-pending>span { font-size:10px; text-transform:uppercase; letter-spacing:1px; }
.solution-pending>p { font-size:15px; margin:10px 0 0; }
.solution-light .solution-photo { width:100%; min-height:420px; object-fit:cover; }
#drainage-systems { padding-top:20px; }
.solutions-page .solutions-cta { background:var(--solutions-navy); }
.solutions-cta .container { min-height:220px; }
.solutions-page .solutions-cta h2 { text-transform:none; font-size:36px; margin:0; }
.solutions-cta p:not(.solution-label) { max-width:620px; }
.solutions-cta-actions { display:flex; gap:20px; flex:none; }
@keyframes solutions-enter { from { opacity:.65; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:1200px) {
 .solution-dark-content { padding:30px 28px; grid-template-columns:1fr; gap:24px; }
 .solution-dark .solution-copy { padding:0; }
 .solution-dark .solution-list { border-left:0; border-top:1px solid #ffffff30; padding:20px 0 0; }
 .solution-dark .solution-list ul { display:grid; grid-template-columns:1fr 1fr; gap:0 16px; }
 .solution-dark .solution-list h3 { margin-bottom:18px; }
 .solution-light { grid-template-columns:40fr 34fr 26fr; }
 .solution-list { padding:28px 18px; }
 .service-nav a { gap:12px; font-size:12px; padding:14px; }
 .solution-copy { padding-right:24px; }
}
@media(max-width:980px) {
 .solution-light { grid-template-columns:1fr 1fr; gap:0; }
 .solution-light .solution-list { grid-column:span 2; }
 .solution-light .solution-list ul { display:grid; grid-template-columns:1fr 1fr; gap:0 24px; }
 .solution-light .solution-list h3 { margin-bottom:18px; }
 .solution-photo { max-height:none; }
 .solution-dark { grid-template-columns:40fr 60fr; }
 .service-nav a { flex-direction:column; text-align:center; gap:12px; }
 .solutions-cta .container { flex-direction:column; align-items:flex-start; gap:24px; }
}
@media(max-width:600px) {
 .solutions-hero { height:440px; }
 .solutions-hero h1 { font-size:38px; letter-spacing:-1.4px; }
 .solutions-hero .container>p:last-child { font-size:15px; }
 .solutions-hero::after { background:linear-gradient(90deg,rgba(3,25,38,.94),rgba(3,25,38,.6)); }
 .service-nav { grid-template-columns:1fr 1fr; gap:4px; padding-top:14px; padding-bottom:14px; }
 .service-nav a { min-height:98px; font-size:12px; }
 .service-nav img,.service-nav .icon { width:30px; height:30px; }
 .solution-light,.solution-dark { grid-template-columns:1fr; }
 .solution-copy { padding:24px 0; }
 .solution-light .solution-list { grid-column:auto; }
 .solution-light .solution-list ul,.solution-dark .solution-list ul { grid-template-columns:1fr; }
 .solution-photo,.solution-pending { min-height:0; height:320px; }
 .solution-dark-content { padding:28px 18px; }
 .solution-dark>.solution-photo { height:360px; }
 .solution-list { padding:26px 20px; }
 .solution-list li { margin-bottom:15px; }
 .solutions-page h2 { font-size:29px; letter-spacing:-.9px; }
 .solutions-page .solutions-cta h2 { font-size:29px; }
 .solutions-cta-actions { gap:10px; flex-wrap:wrap; }
 .solutions-page .solutions-cta .button { padding:12px 18px; gap:14px; }
}
@media(prefers-reduced-motion:reduce) { .solutions-hero .container { animation:none; } }
.solution-dark-media { position:relative; min-height:420px; overflow:hidden; background:#0a1a22; }
.solution-dark-media .solution-photo { position:absolute; inset:0; width:100%; height:100%; min-height:0; max-height:none; object-fit:cover; object-position:center 40%; }
#bridge-construction .solution-dark-media .solution-photo { object-position:center 45%; }
#construction-works .solution-dark-media .solution-photo { object-position:center 35%; }
@media(max-width:600px) { .solution-dark-media { min-height:360px; } }
