/* =========================================================
   GeoTech Design Consultants — Service pages FINAL layer
   Loaded last on all 7 service pages (body.svc-pro)
   Goals: bigger images, compact content, tight section gaps,
          clean left-aligned text, consistent professional look
   ========================================================= */
body.svc-pro { --n:#001659; --n2:#0a2a7a; --o:#ff5e14; --o2:#ff8a4d; --ink:#4a5468; --line:#e1e6f0; --gap:3rem; }
body.svc-pro p, body.svc-pro li { text-align: left !important; }

/* ---------- 1. TIGHT SECTION SPACING ---------- */
body.svc-pro .container-fluid.py-5,
body.svc-pro section.py-5,
body.svc-pro .sv-intro, body.svc-pro .sv-stage, body.svc-pro .sv-dark, body.svc-pro .sv-cta {
    padding-top: var(--gap) !important; padding-bottom: var(--gap) !important; }
body.svc-pro .container-fluid.py-5 > .container.py-3,
body.svc-pro .container-fluid.py-5 > .container.py-4 { padding-top: 0 !important; padding-bottom: 0 !important; }
body.svc-pro .text-center.pb-5, body.svc-pro .text-center.pb-4 { padding-bottom: 1.5rem !important; }
body.svc-pro .gu-wrap p.gu-just { margin-bottom: .8rem; }
body.svc-pro .gu-h3 { margin: 1.4rem 0 1rem; }
body.svc-pro .gu-wrap p.gu-close { margin-top: 1.3rem; }
body.svc-pro .container-fluid.py-5.gu-areas { padding-top: 1.8rem !important; padding-bottom: 1.8rem !important; }
body.svc-pro .gu-areas-lead { margin-bottom: 1rem !important; }
body.svc-pro .sv-stage-head { margin-bottom: .4rem; }
body.svc-pro .sv-stage h2.t { margin-bottom: 1rem; }
body.svc-pro .sv-out { margin-top: 1.1rem; }
body.svc-pro .footer.py-5 { padding-top: 2.6rem !important; padding-bottom: 2.2rem !important; }

/* ---------- 2. HERO: compact text, BIG image ---------- */
.svp-hero { padding: 2.6rem 0 4rem; }
.svp-hero::after { height: 38px; }
.svp-crumb { margin-bottom: 1rem; }
.svp-hero h1 { font-size: clamp(1.9rem, 3.6vw, 2.9rem); margin-bottom: .7rem; }
.svp-sub { font-size: 1.15rem; margin-bottom: .6rem; }
.svp-lead { font-size: 1rem; line-height: 1.7; margin-bottom: 1.1rem; }
.svp-chips { margin-bottom: 1.3rem; }
.svp-media { padding: 0 0 1.4rem 1.4rem; }
.svp-media img { aspect-ratio: auto; height: 460px; }
@media (max-width: 1199px) { .svp-media img { height: 400px; } }
@media (max-width: 991px) { .svp-media img { height: 320px; } }
@media (max-width: 575px) { .svp-media img { height: 250px; } }

/* ---------- 3. SECTION HEADINGS ---------- */
body.svc-pro .gu-h2 { min-height: 0; padding: 0 0 .9rem 4.2rem; margin-bottom: 1rem; font-size: clamp(1.4rem, 2.4vw, 1.95rem); }
body.svc-pro .gu-h2::before { font-size: 3.2rem; -webkit-text-stroke: 1.6px rgba(255,94,20,.6); }
body.svc-pro .gu-h2::after { left: 4.2rem; }
body.svc-pro .gu-wrap > p.gu-just:first-child, body.svc-pro .gu-h2 + p.gu-just { font-size: 1.05rem; }
body.svc-pro .gu-wrap, body.svc-pro .gu-wrap p { font-size: 1rem; }
body.svc-pro .display-6 { font-size: clamp(1.45rem, 2.6vw, 2rem); }

/* ---------- 4. IMAGE + TEXT SPLIT ---------- */
.sf-split { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.1fr); gap: 2.4rem; align-items: stretch; margin-bottom: 1.4rem; }
.sf-split.rev { grid-template-columns: minmax(0,1.1fr) minmax(0,1fr); }
.sf-split.rev .sf-img { order: -1; }
.sf-text { align-self: center; min-width: 0; }
.sf-text .sf-h2 { color: var(--n); font-weight: 700; font-size: clamp(1.4rem, 2.4vw, 1.9rem); line-height: 1.25; margin: .2rem 0 1.1rem; }
.sf-img { position: relative; min-height: 400px; border-radius: 16px; overflow: hidden; box-shadow: 0 22px 46px rgba(0,22,89,.22); background: #dfe6f5; }
.sf-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .9s ease; }
.sf-img:hover img { transform: scale(1.05); }
.sf-img::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, transparent 58%, rgba(0,16,63,.6)); }
.sf-img::after { content: ""; position: absolute; left: 0; top: 0; width: 70px; height: 5px; z-index: 2; background: var(--o); }
.sf-cap { position: absolute; z-index: 2; left: 1rem; bottom: 1rem; background: #fff; color: var(--n); border-left: 4px solid var(--o); border-radius: 6px; padding: .5rem .95rem; font-weight: 700; font-size: .9rem; box-shadow: 0 10px 24px rgba(0,0,0,.25); }
@media (max-width: 991px) {
    .sf-split, .sf-split.rev { grid-template-columns: 1fr; gap: 1.2rem; }
    .sf-split.rev .sf-img { order: 2; }
    .sf-img { min-height: 270px; }
}

/* feasibility: covers 2x2 beside photo */
.sf-covers { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; }
.sf-covers .gu-cover { padding: 1rem 1.05rem; }
.sf-covers .gu-cover b { font-size: .98rem; }
@media (max-width: 575px) { .sf-covers { grid-template-columns: 1fr; } }

/* ---------- 5. CARDS: compact ---------- */
body.svc-pro .gu-caps { --bs-gutter-x: 1rem; --bs-gutter-y: 1rem; }
body.svc-pro .gu-cap { padding: 1.15rem 1.15rem 1rem; height: 100%; }
body.svc-pro .gu-cap .svp-ic { width: 40px; height: 40px; margin-bottom: .65rem; font-size: .95rem; }
body.svc-pro .gu-cap h6 { font-size: 1rem; margin-bottom: .35rem; line-height: 1.3; }
body.svc-pro .gu-cap p { font-size: .92rem; line-height: 1.55; margin: 0; }
body.svc-pro .gu-cap::after { font-size: 2.2rem; }
body.svc-pro .gu-lens { padding: 1.4rem 1.3rem; }
body.svc-pro .gu-lens h3 { font-size: 1.18rem; }
body.svc-pro .gu-lens p { font-size: .96rem; line-height: 1.6; }
body.svc-pro .gu-lens .ic { width: 48px; height: 48px; margin-bottom: .8rem; }
body.svc-pro .gu-report { padding: 2rem 1.8rem; }
body.svc-pro .gu-report h3 { font-size: 1.45rem; }
body.svc-pro .gu-area { padding: 1.5rem 1.5rem 1.2rem; }
body.svc-pro .gu-area h3 { font-size: 1.15rem; }
body.svc-pro .gu-area-n { font-size: 2.4rem; }
body.svc-pro .gu-step { padding: 1rem 1.2rem; }
body.svc-pro .gu-steps { gap: .9rem; }
body.svc-pro .gu-step h6 { font-size: 1rem; margin-bottom: .2rem; }
body.svc-pro .gu-step p { font-size: .93rem; line-height: 1.55; margin: 0; }
body.svc-pro .sector-card { padding: .8rem !important; }

/* ---------- 6. IMAGE-LED CARDS ---------- */
/* navy group cards: photo bleeds across the top */
body.svc-pro .gu-group { padding-top: 0; }
.sf-gimg { margin: 0 -1.6rem 1.2rem; height: 190px; overflow: hidden; position: relative; z-index: 1; }
.sf-gimg img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .8s; }
.gu-group:hover .sf-gimg img { transform: scale(1.06); }
.sf-gimg::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--o); }
body.svc-pro .gu-group h6 { font-size: 1.02rem; }
body.svc-pro .gu-group li { font-size: .94rem; }

/* feasibility / design vertical cards */
.sf-vimg { height: 230px; overflow: hidden; position: relative; }
.sf-vimg img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .8s; }
.gu-vert:hover .sf-vimg img { transform: scale(1.05); }
.gu-vert-head { padding: 1rem 1.4rem; }
.gu-vert-body { padding: 1.2rem 1.4rem; }

/* AMC: each maintenance block = photo + content */
body.svc-pro .gu-sub.sf-sub { display: grid; grid-template-columns: 300px minmax(0,1fr); gap: 0; padding: 0; overflow: hidden; margin-bottom: 1.1rem; }
.sf-sub-img { position: relative; min-height: 100%; }
.sf-sub-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sf-sub-body { padding: 1.4rem 1.6rem; }
.sf-sub-body h4 { font-size: 1.2rem; margin-bottom: .5rem; }
body.svc-pro .gu-sub .gu-cols { margin-top: .6rem; }
body.svc-pro .gu-sub .gu-cols li { padding-top: .2rem; padding-bottom: .2rem; font-size: .93rem; }
@media (max-width: 991px) {
    body.svc-pro .gu-sub.sf-sub { grid-template-columns: 1fr; }
    .sf-sub-img { height: 220px; min-height: 0; }
    body.svc-pro .gu-sub .gu-cols { columns: 1; }
}

/* steps beside a sticky photo */
.sf-stepsgrid { display: grid; grid-template-columns: 340px minmax(0,1fr); gap: 2.2rem; align-items: start; margin-top: .6rem; }
.sf-sticky { position: sticky; top: 150px; }
.sf-sticky .sf-img { min-height: 520px; }
@media (max-width: 991px) {
    .sf-stepsgrid { grid-template-columns: 1fr; }
    .sf-sticky { position: static; } .sf-sticky .sf-img { min-height: 260px; }
}

/* Design & Drawing: A / B / C blocks with photo side */
body.svc-pro .gu-abc { margin-bottom: 1.3rem; overflow: hidden; }
body.svc-pro .gu-abc .row { min-height: 280px; }
body.svc-pro .gu-abc-side { justify-content: flex-end; padding: 1.6rem 1.5rem;
    background: linear-gradient(180deg, rgba(0,22,89,.15) 0%, rgba(0,16,63,.55) 45%, rgba(0,16,63,.95) 100%), var(--bg) center/cover no-repeat, #001659; }
body.svc-pro .gu-abc-side .let { font-size: 3.4rem; }
body.svc-pro .gu-abc-side h3 { font-size: 1.3rem; margin: .3rem 0 .7rem; }
body.svc-pro .gu-abc-body { padding: 1.6rem 1.8rem; display: flex; flex-direction: column; justify-content: center; }
body.svc-pro .gu-abc-body p { font-size: .98rem; line-height: 1.65; margin-bottom: .7rem; }
body.svc-pro .gu-abc-body p:last-child { margin-bottom: 0; }
@media (max-width: 991px) { body.svc-pro .gu-abc .row { min-height: 0; } body.svc-pro .gu-abc-side { min-height: 220px; } }

/* ---------- 7. SLOPE / GEO-ENV PAGES: bigger photos, tighter blocks ---------- */
@media (min-width: 992px) {
    body.svc-pro .sv-stage .row.g-5 > .col-lg-7 { flex: 0 0 44%; max-width: 44%; align-self: center; }
    body.svc-pro .sv-stage .row.g-5 > .col-lg-5 { flex: 0 0 56%; max-width: 56%; }
    body.svc-pro .sv-stage .row.g-5 { --bs-gutter-x: 2rem; --bs-gutter-y: 1rem; align-items: stretch !important; }
}
body.svc-pro .sv-stage img.sv-img { width: 100%; height: 100%; min-height: 360px; max-height: 480px; object-fit: cover; }
body.svc-pro .sv-stage p { font-size: 1rem; line-height: 1.7; }
body.svc-pro .sv-box { padding: 1.2rem 1.4rem; }
body.svc-pro .sv-list li { padding-top: .2rem; padding-bottom: .2rem; font-size: .94rem; }
body.svc-pro .sv-intro h2 { font-size: clamp(1.45rem, 2.6vw, 2rem); margin-bottom: 1rem !important; }
body.svc-pro .sv-faq .accordion-button { padding: .9rem 1.2rem; font-size: .98rem; }
body.svc-pro .sv-faq h5.grp { margin: 1.4rem 0 .8rem; }

/* ---------- 8. CTA band ---------- */
.svp-cta { padding: 2.8rem 0; }
.svp-cta h2 { font-size: clamp(1.45rem, 2.6vw, 2rem); }

/* scroll-margin for sticky nav */
body.svc-pro .container-fluid.py-5, body.svc-pro .sv-stage { scroll-margin-top: 140px; }

/* ---------- 9. small refinements ---------- */
body.svc-pro .gu-step h6, body.svc-pro .gu-step p, body.svc-pro .gu-cap h6, body.svc-pro .gu-group h6, body.svc-pro .gu-lens h3 { text-align: left !important; }
body.svc-pro .sf-sub-body p.gu-close { padding: .85rem 1rem .85rem 3rem; margin-top: .9rem; box-shadow: none; font-size: .93rem; }
body.svc-pro .sf-sub-body p.gu-close::before { left: 1rem; top: .85rem; font-size: 1.05rem; }
body.svc-pro .gu-wrap p.gu-close { padding: 1rem 1.2rem 1rem 3.2rem; }
body.svc-pro .gu-wrap p.gu-close::before { top: 1rem; }
body.svc-pro .sv-stage .row.g-5 > .col-lg-7 p { font-size: 1.06rem; line-height: 1.75; color: #3b465e; }
body.svc-pro .sv-box h6 { font-size: .8rem; }
