/* Service vertical pages (slope-protection.html, geo-environmental.html) */
.sv-hero { position: relative; padding: 4.5rem 0; background: var(--bs-light); overflow: hidden; }
.sv-hero .sv-label { letter-spacing: .18em; font-size: .8rem; font-weight: 700; color: var(--bs-secondary); text-transform: uppercase; }
.sv-hero h2 { color: var(--bs-primary); font-weight: 700; line-height: 1.2; }
.sv-hero .sv-sub { font-size: 1.1rem; }
.sv-hero img { width: 100%; height: 100%; min-height: 340px; max-height: 460px; object-fit: cover; border-radius: .5rem; box-shadow: 0 18px 40px rgba(0,22,89,.18); }
.sv-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.25rem 0 1.75rem; }
.sv-chips span { background: #fff; border: 1px solid #dee2e6; border-radius: 50px; padding: .3rem .9rem; font-size: .9rem; color: var(--bs-primary); }
.sv-intro h2 { color: var(--bs-primary); font-weight: 700; }
.sv-index a { display: block; height: 100%; background: #fff; border: 1px solid #dee2e6; border-top: 3px solid var(--bs-secondary); border-radius: .35rem; padding: 1.1rem 1.2rem; text-decoration: none; transition: transform .25s, box-shadow .25s; }
.sv-index a:hover { transform: translateY(-4px); box-shadow: 0 12px 26px rgba(0,22,89,.12); }
.sv-index .n { color: var(--bs-secondary); font-weight: 700; font-size: .85rem; letter-spacing: .1em; }
.sv-index h5 { color: var(--bs-primary); margin: .2rem 0 .3rem; font-size: 1.05rem; }
.sv-index p { color: #6c757d; font-size: .9rem; margin: 0; }
.sv-stage { padding: 4.5rem 0; scroll-margin-top: 90px; }
.sv-stage.alt { background: var(--bs-light); }
.sv-stage-head { display: flex; align-items: center; gap: 1rem; margin-bottom: .75rem; }
.sv-stage-head .no { color: var(--bs-secondary); font-weight: 700; letter-spacing: .18em; font-size: .85rem; text-transform: uppercase; }
.sv-stage-head .of { color: #6c757d; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; }
.sv-stage-head::after { content: ""; flex: 1; height: 1px; background: #dee2e6; }
.sv-stage h2.t { color: var(--bs-primary); font-weight: 700; font-size: clamp(1.5rem, 2.6vw, 2.15rem); line-height: 1.25; margin-bottom: 1.5rem; }
.sv-stage p { font-size: 1.02rem; line-height: 1.75; }
.sv-stage strong { color: var(--bs-primary); }
.sv-img { width: 100%; height: 100%; min-height: 260px; max-height: 420px; object-fit: cover; border-radius: .5rem; }
.sv-box { background: #fff; border: 1px solid #dee2e6; border-top: 3px solid var(--bs-secondary); border-radius: .35rem; padding: 1.4rem 1.5rem; height: 100%; }
.sv-stage.alt .sv-box { background: #fff; }
.sv-box h6 { color: var(--bs-secondary); text-transform: uppercase; letter-spacing: .14em; font-size: .78rem; font-weight: 700; margin-bottom: .9rem; }
.sv-box p { font-size: .98rem; line-height: 1.65; margin: 0; }
.sv-list { list-style: none; padding: 0; margin: 0; }
.sv-list li { position: relative; padding: .28rem 0 .28rem 1.35rem; font-size: .96rem; line-height: 1.55; }
.sv-list li::before { content: "\f0da"; font-family: "Font Awesome 5 Free"; font-weight: 900; position: absolute; left: .2rem; top: .3rem; color: var(--bs-secondary); }
.sv-out { display: flex; gap: 1.25rem; align-items: flex-start; margin-top: 1.75rem; background: #fff4ee; border-left: 4px solid var(--bs-secondary); padding: 1.1rem 1.4rem; border-radius: .25rem; }
.sv-out .k { color: var(--bs-secondary); font-weight: 700; letter-spacing: .18em; font-size: .78rem; text-transform: uppercase; padding-top: .2rem; }
.sv-out p { margin: 0; font-size: 1rem; }
.sv-note { border-left: 4px solid var(--bs-primary); background: #fff; padding: 1rem 1.3rem; margin-top: 1.5rem; }
.sv-note p { margin: 0; }
.sv-dark { background: var(--bs-primary); color: #fff; padding: 4.5rem 0; }
.sv-dark h2.t { color: #fff; }
.sv-dark .sv-stage-head::after { background: rgba(255,255,255,.25); }
.sv-dark .sv-stage-head .of { color: rgba(255,255,255,.7); }
.sv-dark p { color: rgba(255,255,255,.88); }
.sv-energy { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.2); border-radius: .35rem; padding: 1.4rem 1.5rem; height: 100%; }
.sv-energy .k { color: var(--bs-secondary); font-weight: 700; letter-spacing: .16em; font-size: .75rem; text-transform: uppercase; }
.sv-energy .v { font-size: 1.6rem; font-weight: 700; margin: .25rem 0 .5rem; color: #fff; }
.sv-energy p { margin: 0; font-size: .95rem; }
.sv-dark .sv-out { background: rgba(255,255,255,.08); }
.sv-dark .sv-out p { color: #fff; }
.sv-tablegrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: .6rem; margin-top: .25rem; }
.sv-tablegrid div { background: #fff; border: 1px solid #dee2e6; border-radius: .3rem; padding: .7rem .9rem; font-size: .93rem; color: var(--bs-primary); }
.sv-sector { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.18); border-radius: .35rem; padding: 1.4rem; height: 100%; }
.sv-sector h5 { color: #fff; margin-bottom: .5rem; }
.sv-sector p { color: rgba(255,255,255,.85); font-size: .95rem; margin: 0; }
.sv-sectors-strip { display: flex; flex-wrap: wrap; gap: .5rem .6rem; }
.sv-sectors-strip span { background: #fff; border: 1px solid #dee2e6; border-radius: 50px; padding: .35rem 1rem; color: var(--bs-primary); font-weight: 500; }
.sv-cta { background: var(--bs-light); padding: 4.5rem 0; }
.sv-form { background: #fff; border-radius: .5rem; padding: 2rem; box-shadow: 0 14px 34px rgba(0,22,89,.12); }
.sv-form h4 { color: var(--bs-primary); }
.sv-form label { font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--bs-primary); margin-bottom: .25rem; }
.sv-faq .accordion-button { font-weight: 600; color: var(--bs-primary); }
.sv-faq .accordion-button:not(.collapsed) { color: var(--bs-secondary); background: #fff4ee; box-shadow: none; }
.sv-faq .accordion-item { border: 1px solid #dee2e6; }
.sv-faq h5.grp { color: var(--bs-primary); margin: 2rem 0 1rem; display: flex; align-items: center; gap: 1rem; }
.sv-faq h5.grp::after { content: ""; flex: 1; height: 1px; background: #dee2e6; }
.sv-faq h5.grp small { color: #6c757d; font-weight: 400; font-size: .8rem; order: 2; }
@media (max-width: 991px) { .sv-tablegrid { grid-template-columns: repeat(2, 1fr); } .sv-hero, .sv-stage, .sv-dark, .sv-cta { padding: 3rem 0; } }
@media (max-width: 575px) { .sv-tablegrid { grid-template-columns: 1fr; } .sv-out { flex-direction: column; gap: .4rem; } }

@media (max-width: 575px) { .sv-list { columns: 1 !important; } }
