/* GeoProScan landing — self-contained styles */
:root {
    --navy-950: #05111d;
    --navy-900: #071725;
    --navy-850: #0a1d2d;
    --navy-800: #10283b;
    --ink: #101d28;
    --muted: #687783;
    --line: #dbe4e9;
    --paper: #f4f7f8;
    --white: #ffffff;
    --teal: #20d7c9;
    --teal-dark: #0aa99e;
    --orange: #ff9757;
    --orange-dark: #ec7f3e;
    --shadow: 0 24px 70px rgba(5, 17, 29, .12);
    --radius: 20px;
    --container: 1240px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 98px; }
body {
    margin: 0;
    color: var(--ink);
    background: var(--white);
    font-family: Inter, Manrope, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}
body.modal-open { overflow: hidden; }
img { display: block; max-width: 100%; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
p, h1, h2, h3 { margin-top: 0; }
::selection { color: var(--navy-950); background: var(--teal); }

.container { width: min(calc(100% - 48px), var(--container)); margin-inline: auto; }
.skip-link { position: fixed; z-index: 1000; top: 12px; left: 12px; transform: translateY(-150%); padding: 10px 16px; background: var(--white); border-radius: 8px; }
.skip-link:focus { transform: translateY(0); }

.topbar { color: #aebcc5; background: var(--navy-950); border-bottom: 1px solid rgba(255,255,255,.08); font-size: 12px; letter-spacing: .035em; }
.topbar__inner { min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.topbar p { margin: 0; }
.topbar__links { display: flex; align-items: center; gap: 25px; }
.topbar a { color: var(--white); transition: color .25s ease; }
.topbar a:hover { color: var(--teal); }
.status-dot { display: inline-block; width: 6px; height: 6px; margin-right: 8px; background: var(--teal); border-radius: 50%; box-shadow: 0 0 0 4px rgba(32,215,201,.12); }

.header { position: sticky; z-index: 100; top: 0; color: var(--white); background: rgba(7, 23, 37, .92); border-bottom: 1px solid rgba(255,255,255,.1); backdrop-filter: blur(15px); transition: box-shadow .25s ease, background .25s ease; }
.header.is-scrolled { background: rgba(5,17,29,.97); box-shadow: 0 12px 36px rgba(0,0,0,.16); }
.header__inner { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.logo { display: inline-flex; align-items: center; gap: 10px; flex: 0 0 auto; color: var(--white); }
.logo__mark { width: 38px; height: 38px; color: var(--teal); }
.logo__text { position: relative; display: block; line-height: .95; font-size: 19px; letter-spacing: -.04em; white-space: nowrap; }
.logo__text b { font-weight: 800; }
.logo__text i { color: var(--teal); font-style: normal; font-weight: 500; }
.logo__text small { display: block; margin-top: 7px; color: #8fa0aa; font-size: 7px; font-weight: 700; letter-spacing: .23em; text-transform: uppercase; }
.nav { display: flex; align-items: center; justify-content: center; gap: clamp(18px, 2vw, 32px); margin-left: auto; }
.nav a { position: relative; color: #c9d2d8; font-size: 13px; font-weight: 600; }
.nav a::after { position: absolute; right: 0; bottom: -8px; left: 0; height: 1px; content: ""; background: var(--teal); transform: scaleX(0); transform-origin: right; transition: transform .25s ease; }
.nav a:hover { color: var(--white); }
.nav a:hover::after { transform: scaleX(1); transform-origin: left; }
.header__contacts { display: flex; align-items: center; gap: 16px; }
.header__phone { display: flex; flex-direction: column; align-items: flex-end; font-size: 15px; font-weight: 750; line-height: 1.25; white-space: nowrap; }
.header__phone span { color: #91a1aa; font-size: 9px; font-weight: 500; letter-spacing: .06em; }
.menu-toggle { display: none; width: 44px; height: 44px; padding: 11px; background: transparent; border: 1px solid rgba(255,255,255,.2); border-radius: 10px; cursor: pointer; }
.menu-toggle span { display: block; width: 100%; height: 1px; margin: 5px 0; background: var(--white); transition: transform .25s ease, opacity .25s ease; }
.menu-toggle.is-active span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.menu-toggle.is-active span:nth-child(2) { opacity: 0; }
.menu-toggle.is-active span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.button { display: inline-flex; min-height: 48px; padding: 0 21px; align-items: center; justify-content: center; gap: 10px; color: var(--ink); background: var(--white); border: 1px solid transparent; border-radius: 8px; font-size: 13px; font-weight: 750; line-height: 1.2; cursor: pointer; transition: transform .2s ease, background .2s ease, border-color .2s ease, color .2s ease, box-shadow .2s ease; }
.button:hover { transform: translateY(-2px); }
.button svg { width: 19px; height: 19px; }
.button--small { min-height: 40px; padding-inline: 17px; font-size: 12px; }
.button--large { min-height: 58px; padding-inline: 26px; }
.button--outline { color: var(--white); background: transparent; border-color: rgba(255,255,255,.27); }
.button--outline:hover { color: var(--navy-950); background: var(--teal); border-color: var(--teal); }
.button--accent { color: var(--navy-950); background: var(--orange); box-shadow: 0 12px 30px rgba(255,151,87,.2); }
.button--accent:hover { background: #ffab77; box-shadow: 0 16px 35px rgba(255,151,87,.28); }
.button--glass { color: var(--white); background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.19); backdrop-filter: blur(10px); }
.button--glass:hover { background: rgba(255,255,255,.14); }
.button--dark { color: var(--white); background: var(--navy-900); }
.button--dark:hover { background: var(--navy-800); }

.hero { position: relative; min-height: 750px; display: flex; flex-direction: column; color: var(--white); background: var(--navy-950); overflow: hidden; }
.hero__bg { position: absolute; inset: 0 0 0 31%; background: url("hero-scan.jpg") center center / cover no-repeat; }
.hero__bg::after { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg, var(--navy-950) 0, rgba(5,17,29,.82) 13%, rgba(5,17,29,.18) 50%, rgba(5,17,29,.02) 100%), linear-gradient(0deg, rgba(5,17,29,.78) 0, transparent 30%); }
.hero::before { position: absolute; inset: 0; z-index: 1; content: ""; background: linear-gradient(90deg, var(--navy-950) 0, var(--navy-950) 30%, rgba(5,17,29,.65) 48%, transparent 74%); pointer-events: none; }
.hero__grid { position: absolute; z-index: 1; inset: 0; opacity: .08; background-image: linear-gradient(rgba(255,255,255,.5) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.5) 1px, transparent 1px); background-size: 72px 72px; mask-image: linear-gradient(90deg, #000, transparent 54%); }
.hero__inner { position: relative; z-index: 2; flex: 1; min-height: 610px; display: flex; align-items: center; justify-content: space-between; gap: 50px; padding-top: 68px; padding-bottom: 88px; }
.hero__content { width: min(100%, 705px); }
.eyebrow, .kicker { display: flex; align-items: center; gap: 10px; margin-bottom: 20px; color: var(--teal-dark); font-size: 11px; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; }
.eyebrow { color: #9be9e3; }
.eyebrow span { width: 28px; height: 1px; background: var(--teal); box-shadow: 0 0 14px var(--teal); }
h1 { max-width: 780px; margin-bottom: 26px; font-size: clamp(48px, 5.2vw, 76px); font-weight: 350; letter-spacing: -.052em; line-height: 1.01; }
h1 em, h2 em { color: var(--teal); font-style: normal; font-weight: 680; }
.hero__lead { max-width: 655px; margin-bottom: 34px; color: #c5d1d8; font-size: 19px; line-height: 1.65; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 32px; }
.hero__checks { display: flex; flex-wrap: wrap; gap: 12px 25px; margin: 0; padding: 0; color: #adbbc4; font-size: 12px; list-style: none; }
.hero__checks li { position: relative; padding-left: 20px; }
.hero__checks li::before { position: absolute; top: 6px; left: 0; width: 10px; height: 5px; content: ""; border-bottom: 1.5px solid var(--teal); border-left: 1.5px solid var(--teal); transform: rotate(-45deg); }
.hero__panel { width: 206px; margin-top: 280px; padding: 18px; background: rgba(5,17,29,.62); border: 1px solid rgba(255,255,255,.17); border-radius: 12px; backdrop-filter: blur(15px); box-shadow: 0 24px 60px rgba(0,0,0,.2); }
.scan-badge { display: flex; align-items: flex-start; gap: 12px; }
.scan-badge__pulse { position: relative; width: 9px; height: 9px; margin-top: 5px; background: var(--teal); border-radius: 50%; }
.scan-badge__pulse::before, .scan-badge__pulse::after { position: absolute; inset: -5px; content: ""; border: 1px solid var(--teal); border-radius: 50%; animation: pulse 2s infinite; }
.scan-badge__pulse::after { animation-delay: 1s; }
@keyframes pulse { 0% { opacity: .7; transform: scale(.5); } 100% { opacity: 0; transform: scale(2.4); } }
.scan-badge div { display: flex; flex-direction: column; line-height: 1.2; }
.scan-badge small, .hero__panel p { color: #8fa1ad; font-size: 9px; text-transform: uppercase; letter-spacing: .09em; }
.scan-badge strong { margin-top: 3px; font-size: 17px; }
.scan-badge div span { color: #b9c6ce; font-size: 10px; }
.hero__panel-line { height: 1px; margin: 15px 0; background: rgba(255,255,255,.12); }
.hero__panel p { margin-bottom: 10px; line-height: 1.5; }
.format-row { display: flex; flex-wrap: wrap; gap: 5px; }
.format-row span { padding: 3px 6px; color: #d6e0e6; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.11); border-radius: 4px; font-size: 8px; font-weight: 700; }
.hero__foot { position: relative; z-index: 2; border-top: 1px solid rgba(255,255,255,.12); background: rgba(5,17,29,.5); backdrop-filter: blur(10px); }
.hero__stats { display: grid; grid-template-columns: repeat(4, 1fr); min-height: 112px; }
.hero__stats > div { display: flex; flex-direction: column; justify-content: center; padding: 20px 32px; border-left: 1px solid rgba(255,255,255,.1); }
.hero__stats > div:last-child { border-right: 1px solid rgba(255,255,255,.1); }
.hero__stats strong { font-size: 22px; letter-spacing: -.02em; }
.hero__stats span { color: #93a4af; font-size: 11px; }

.trust-line { color: #7a8992; background: #eef3f5; border-bottom: 1px solid var(--line); }
.trust-line__inner { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 16px; font-size: 9px; font-weight: 800; letter-spacing: .13em; }
.trust-line__inner > span { color: #99a6ae; font-weight: 500; text-transform: uppercase; }
.trust-line i { width: 3px; height: 3px; background: #aeb8be; border-radius: 50%; }

.section { padding: 116px 0; }
.section-head { margin-bottom: 52px; }
.section-head--split { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(280px, .72fr); align-items: end; gap: 70px; }
.section-head--split > p { margin-bottom: 6px; color: var(--muted); font-size: 15px; }
.section-head--center { max-width: 780px; margin-right: auto; margin-left: auto; text-align: center; }
.section-head--center .kicker { justify-content: center; }
.section-head--center > p { max-width: 690px; margin: 18px auto 0; color: var(--muted); }
h2 { margin-bottom: 0; font-size: clamp(35px, 4vw, 54px); font-weight: 380; letter-spacing: -.045em; line-height: 1.1; }
h3 { line-height: 1.25; }
.kicker::before { width: 22px; height: 1px; content: ""; background: currentColor; }
.kicker--light { color: #89e5df; }

.services { background: var(--white); }
.service-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.service-card { min-height: 430px; display: flex; flex-direction: column; padding: 28px; background: var(--paper); border: 1px solid #e3eaed; border-radius: 14px; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.service-card:hover { z-index: 2; border-color: #cbdade; box-shadow: var(--shadow); transform: translateY(-7px); }
.service-card--featured { color: var(--white); background: var(--navy-850); border-color: var(--navy-850); }
.service-card__top { display: flex; min-height: 72px; align-items: flex-start; justify-content: space-between; }
.service-card__top svg { width: 46px; height: 46px; color: var(--teal-dark); }
.service-card--featured .service-card__top svg { color: var(--teal); }
.service-card__number { color: #99a7ae; font-size: 10px; font-weight: 700; letter-spacing: .13em; }
.service-card h3 { margin: 28px 0 14px; font-size: 23px; letter-spacing: -.025em; }
.service-card p { margin-bottom: 21px; color: var(--muted); font-size: 14px; }
.service-card--featured p { color: #afbec7; }
.service-card ul { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 26px; padding: 0; list-style: none; }
.service-card li { padding: 4px 8px; color: #62717a; background: rgba(12,36,53,.05); border: 1px solid rgba(12,36,53,.1); border-radius: 4px; font-size: 9px; font-weight: 700; text-transform: uppercase; }
.service-card--featured li { color: #bdd0d8; background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.12); }
.text-link { display: inline-flex; align-items: center; gap: 8px; width: fit-content; margin-top: auto; padding: 0; color: var(--ink); background: none; border: 0; border-bottom: 1px solid #aab7bd; font-size: 12px; font-weight: 750; line-height: 1.8; cursor: pointer; transition: color .2s ease, border-color .2s ease; }
.text-link span { color: var(--teal-dark); font-size: 15px; }
.text-link:hover { color: var(--teal-dark); border-color: var(--teal-dark); }
.service-card--featured .text-link { color: var(--white); border-color: rgba(255,255,255,.35); }
.service-card--wide { min-height: 190px; display: grid; grid-template-columns: 60px 1fr auto; grid-column: span 2; align-items: center; column-gap: 24px; }
.service-card--wide .service-card__top { display: block; min-height: auto; }
.service-card--wide .service-card__top svg { display: block; margin-top: 24px; }
.service-card--wide h3 { margin: 0 0 9px; }
.service-card--wide p { max-width: 480px; margin: 0; }
.service-card--wide .text-link { align-self: center; margin-top: 0; }

.result { color: var(--white); background: var(--navy-900); overflow: hidden; }
.result__grid { display: grid; grid-template-columns: .9fr 1fr; align-items: center; gap: 85px; }
.result__visual { position: relative; min-height: 590px; display: grid; place-items: center; }
.result__visual::before { position: absolute; width: 430px; height: 430px; content: ""; background: radial-gradient(circle, rgba(32,215,201,.14), transparent 68%); }
.result__visual > svg { position: relative; z-index: 2; width: 100%; }
.result__orbit { position: absolute; inset: 4% 3%; border: 1px solid rgba(255,255,255,.08); border-radius: 50%; transform: rotate(-17deg); }
.result__orbit span { position: absolute; width: 5px; height: 5px; background: var(--teal); border-radius: 50%; box-shadow: 0 0 15px var(--teal); }
.result__orbit span:nth-child(1) { top: 8%; left: 32%; }
.result__orbit span:nth-child(2) { right: 4%; bottom: 35%; }
.result__orbit span:nth-child(3) { bottom: 7%; left: 25%; background: var(--orange); box-shadow: 0 0 15px var(--orange); }
.result__tag { position: absolute; z-index: 3; display: flex; flex-direction: column; padding: 10px 14px; background: rgba(10,29,45,.82); border: 1px solid rgba(255,255,255,.13); border-radius: 7px; box-shadow: 0 12px 30px rgba(0,0,0,.2); backdrop-filter: blur(10px); }
.result__tag small { color: #81939f; font-size: 8px; letter-spacing: .07em; text-transform: uppercase; }
.result__tag b { font-size: 11px; }
.result__tag--one { top: 16%; right: 2%; }
.result__tag--two { bottom: 19%; left: 2%; }
.result__content h2 { max-width: 620px; }
.result__intro { max-width: 620px; margin: 25px 0 38px; color: #9fb0ba; }
.deliverables article { display: grid; grid-template-columns: 42px 1fr; gap: 18px; padding: 22px 0; border-top: 1px solid rgba(255,255,255,.11); }
.deliverables article > span { padding-top: 2px; color: var(--teal); font-size: 10px; font-weight: 750; letter-spacing: .1em; }
.deliverables h3 { margin: 0 0 5px; font-size: 18px; }
.deliverables p { margin: 0 0 7px; color: #94a6b1; font-size: 13px; }
.deliverables b { color: #d8e2e7; font-size: 9px; letter-spacing: .11em; }

.benefits { background: #f1f5f6; }
.benefit-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.benefit-grid article { padding: 34px 28px 28px; background: var(--white); border: 1px solid #e0e8eb; border-radius: 12px; }
.benefit-icon { width: 54px; height: 54px; display: grid; place-items: center; margin-bottom: 50px; color: var(--teal-dark); background: #e8f8f6; border-radius: 50%; font-size: 21px; font-weight: 450; }
.benefit-grid h3 { margin-bottom: 12px; font-size: 19px; }
.benefit-grid p { margin: 0; color: var(--muted); font-size: 13px; }

.case { color: var(--white); background: #061522; }
.case__top { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 43px; }
.case__place { display: flex; align-items: center; gap: 12px; min-width: 230px; padding: 15px 18px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); border-radius: 8px; font-size: 13px; line-height: 1.25; }
.case__place svg { width: 25px; color: var(--teal); }
.case__place small { color: #8799a4; }
.case__media { position: relative; aspect-ratio: 1.82; overflow: hidden; border-radius: 14px; box-shadow: 0 25px 80px rgba(0,0,0,.3); }
.case__media::after { position: absolute; inset: 0; content: ""; border: 1px solid rgba(255,255,255,.12); border-radius: inherit; pointer-events: none; }
.case__media img { width: 100%; height: 100%; object-fit: cover; }
.case__label { position: absolute; right: 20px; bottom: 20px; display: flex; align-items: center; gap: 9px; padding: 8px 11px; background: rgba(5,17,29,.72); border: 1px solid rgba(255,255,255,.15); border-radius: 5px; backdrop-filter: blur(8px); font-size: 8px; font-weight: 800; letter-spacing: .13em; }
.case__label i { width: 22px; height: 1px; background: var(--teal); }
.case__facts { display: grid; grid-template-columns: repeat(4, .66fr) 2fr; gap: 0; margin-top: 1px; border: 1px solid rgba(255,255,255,.1); border-radius: 10px; overflow: hidden; }
.case__facts > div, .case__facts > p { min-height: 120px; display: flex; flex-direction: column; justify-content: center; margin: 0; padding: 24px; border-right: 1px solid rgba(255,255,255,.1); }
.case__facts > p { color: #9eafb8; font-size: 12px; border-right: 0; }
.case__facts small { color: #778b97; font-size: 9px; text-transform: uppercase; letter-spacing: .1em; }
.case__facts strong { margin-top: 5px; font-size: 17px; }

.equipment { background: var(--white); }
.equipment-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.equipment-grid > article { position: relative; min-height: 500px; padding: 28px; background: #f1f5f6; border: 1px solid #e1e8eb; border-radius: 14px; overflow: hidden; }
.equipment-grid > article::before { position: absolute; inset: 0; content: ""; opacity: .36; background-image: linear-gradient(#c9d5da 1px, transparent 1px), linear-gradient(90deg,#c9d5da 1px,transparent 1px); background-size: 35px 35px; mask-image: linear-gradient(#000, transparent 62%); }
.equipment-grid > article > * { position: relative; }
.equipment-grid > .equipment-card--accent { color: var(--white); background: var(--navy-850); border-color: var(--navy-850); }
.equipment-grid > .equipment-card--accent::before { opacity: .1; background-image: linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px); }
.equipment-card__index { text-align: right; color: #82929b; font-size: 9px; font-weight: 700; letter-spacing: .12em; }
.equipment-card__drawing { height: 230px; }
.scanner-drawing span { position: absolute; top: 56px; left: calc(50% - 43px); width: 86px; height: 72px; background: linear-gradient(145deg,#172c3d,#071522); border: 2px solid #61717c; border-radius: 10px 10px 5px 5px; box-shadow: 0 18px 30px rgba(5,17,29,.25); }
.scanner-drawing span::before { position: absolute; top: 14px; left: 17px; width: 49px; height: 28px; content: ""; background: #0a1721; border: 2px solid #4a5d68; border-radius: 4px; }
.scanner-drawing span::after { position: absolute; top: 20px; left: 23px; width: 16px; height: 16px; content: ""; border: 3px solid var(--teal); border-radius: 50%; box-shadow: 0 0 15px rgba(32,215,201,.6); }
.scanner-drawing i { position: absolute; top: 127px; left: calc(50% - 4px); width: 8px; height: 30px; background: #435461; }
.scanner-drawing b, .scanner-drawing b::before, .scanner-drawing b::after { position: absolute; top: 148px; left: 50%; width: 3px; height: 91px; content: ""; background: #334957; border-radius: 2px; transform-origin: top; }
.scanner-drawing b { transform: rotate(0deg); }
.scanner-drawing b::before { top: 0; left: 0; transform: rotate(26deg); }
.scanner-drawing b::after { top: 0; left: 0; transform: rotate(-26deg); }
.scanner-drawing--sx span { width: 76px; left: calc(50% - 38px); background: linear-gradient(145deg,#efda57,#988521); border-color: #827415; border-radius: 28px 28px 8px 8px; }
.scanner-drawing--sx span::before { background: #1a252c; border-color: #3c4a52; }
.scanner-drawing--faro span { width: 68px; left: calc(50% - 34px); height: 86px; background: linear-gradient(145deg,#e8eaec,#929ca2); border-color: #7f8a90; }
.scanner-drawing--faro span::before { width: 37px; height: 36px; left: 13px; background: #111c23; }
.equipment-card__type { display: block; margin-bottom: 6px; color: var(--teal-dark); font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.equipment-card--accent .equipment-card__type { color: var(--teal); }
.equipment-grid h3 { margin-bottom: 12px; font-size: 25px; }
.equipment-grid p { min-height: 66px; margin-bottom: 25px; color: var(--muted); font-size: 13px; }
.equipment-card--accent p { color: #9eafb8; }
.equipment-grid dl { display: grid; grid-template-columns: 1fr 1fr; margin: 0; border-top: 1px solid rgba(100,120,130,.24); }
.equipment-grid dl div { padding-top: 15px; }
.equipment-grid dt { color: #8a999f; font-size: 9px; }
.equipment-grid dd { margin: 3px 0 0; font-size: 12px; font-weight: 750; }

.process { background: #f1f5f6; }
.process-list { display: grid; grid-template-columns: repeat(5, 1fr); margin: 0; padding: 0; list-style: none; counter-reset: steps; }
.process-list li { position: relative; min-height: 320px; padding: 25px 22px; background: var(--white); border-top: 1px solid #dbe5e8; border-bottom: 1px solid #dbe5e8; border-left: 1px solid #dbe5e8; }
.process-list li:first-child { border-radius: 12px 0 0 12px; }
.process-list li:last-child { border-right: 1px solid #dbe5e8; border-radius: 0 12px 12px 0; }
.process-list li > span { display: block; margin-bottom: 58px; color: #9daab1; font-size: 9px; font-weight: 700; letter-spacing: .1em; }
.process-list__icon { width: 48px; height: 48px; display: grid; place-items: center; margin-bottom: 28px; color: var(--teal-dark); background: #e9f8f7; border: 1px solid #d7efed; border-radius: 50%; font-size: 13px; font-weight: 700; }
.process-list h3 { margin-bottom: 10px; font-size: 17px; }
.process-list p { margin: 0; color: var(--muted); font-size: 12px; }
.process-list li::after { position: absolute; z-index: 2; top: 50%; right: -8px; width: 15px; height: 15px; content: ""; background: var(--white); border-top: 1px solid #dbe5e8; border-right: 1px solid #dbe5e8; transform: translateY(-50%) rotate(45deg); }
.process-list li:last-child::after { display: none; }

.estimate { position: relative; padding: 100px 0; color: var(--white); background: var(--navy-900); overflow: hidden; }
.estimate::before { position: absolute; top: -250px; left: -150px; width: 650px; height: 650px; content: ""; background: radial-gradient(circle, rgba(32,215,201,.12), transparent 65%); }
.estimate__grid { position: absolute; inset: 0; opacity: .05; background-image: linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px); background-size: 70px 70px; }
.estimate__inner { position: relative; display: grid; grid-template-columns: .8fr 1.2fr; align-items: center; gap: 85px; }
.estimate__copy h2 { max-width: 510px; }
.estimate__copy > p { max-width: 500px; margin: 25px 0 35px; color: #a3b2bc; }
.estimate__manager { display: flex; align-items: center; gap: 13px; }
.manager-avatar { width: 44px; height: 44px; display: grid; place-items: center; color: var(--navy-950); background: var(--teal); border-radius: 50%; font-size: 12px; font-weight: 800; }
.estimate__manager > div:last-child { display: flex; flex-direction: column; }
.estimate__manager b { font-size: 12px; }
.estimate__manager span { color: #8598a3; font-size: 10px; }
.lead-form { padding: 34px; color: var(--ink); background: var(--white); border-radius: 14px; box-shadow: 0 25px 70px rgba(0,0,0,.22); }
.lead-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.lead-form label:not(.checkbox), .modal-form label:not(.checkbox) { display: block; margin-bottom: 14px; }
.lead-form label > span, .modal-form label > span { display: block; margin-bottom: 6px; color: #64747e; font-size: 9px; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }
input, textarea, select { width: 100%; color: var(--ink); background: #f4f7f8; border: 1px solid #dce4e7; border-radius: 7px; outline: 0; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; }
input, select { height: 49px; padding: 0 14px; }
textarea { min-height: 82px; padding: 12px 14px; resize: vertical; }
input::placeholder, textarea::placeholder { color: #9aa7ae; }
input:focus, textarea:focus, select:focus { background: var(--white); border-color: var(--teal-dark); box-shadow: 0 0 0 3px rgba(10,169,158,.1); }
.lead-form__bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 5px; }
.checkbox { display: flex; align-items: flex-start; gap: 9px; cursor: pointer; }
.checkbox input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.checkbox > span { flex: 0 0 auto; width: 17px; height: 17px; display: block; margin: 1px 0 0 !important; background: var(--white); border: 1px solid #b6c3c9; border-radius: 4px; }
.checkbox input:checked + span { position: relative; background: var(--teal-dark); border-color: var(--teal-dark); }
.checkbox input:checked + span::after { position: absolute; top: 3px; left: 4px; width: 7px; height: 4px; content: ""; border-bottom: 1.5px solid white; border-left: 1.5px solid white; transform: rotate(-45deg); }
.checkbox input:focus + span { box-shadow: 0 0 0 3px rgba(10,169,158,.14); }
.checkbox small { max-width: 220px; color: #8a979e; font-size: 9px; line-height: 1.4; }
.checkbox a { border-bottom: 1px solid #b9c4c9; }
.form-message { margin-top: 18px; padding: 11px 14px; border-radius: 7px; font-size: 12px; }
.form-message--success { color: #0a655e; background: #e6f8f6; border: 1px solid #bce9e5; }
.form-message--error { color: #9a3e32; background: #fff0ed; border: 1px solid #f4cbc4; }
.honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

.seo { background: var(--white); }
.seo__grid { display: grid; grid-template-columns: .62fr 1.38fr; align-items: start; gap: 85px; }
.seo__aside { position: sticky; top: 125px; padding: 34px; background: #eef4f5; border: 1px solid #dfe8eb; border-radius: 13px; }
.seo__aside h2 { font-size: 33px; }
.seo__aside > p { margin: 18px 0 26px; color: var(--muted); font-size: 13px; }
.location-cloud { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 30px; }
.location-cloud span { padding: 6px 9px; color: #55666f; background: var(--white); border: 1px solid #d9e4e7; border-radius: 5px; font-size: 10px; }
.seo__article { max-width: 760px; }
.seo__article h2 { margin-bottom: 28px; }
.seo__article h3 { margin: 36px 0 12px; font-size: 22px; letter-spacing: -.025em; }
.seo__article p { color: #52636d; font-size: 15px; line-height: 1.85; }
.seo__article strong { color: var(--ink); }

.faq { background: #f1f5f6; }
.faq__grid { display: grid; grid-template-columns: .7fr 1.3fr; align-items: start; gap: 80px; }
.faq__intro { position: sticky; top: 125px; }
.faq__intro > p { max-width: 400px; margin: 24px 0 28px; color: var(--muted); }
.accordion { border-top: 1px solid #cfdadd; }
.accordion details { border-bottom: 1px solid #cfdadd; }
.accordion summary { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 25px 52px 25px 0; font-size: 16px; font-weight: 700; cursor: pointer; list-style: none; }
.accordion summary::-webkit-details-marker { display: none; }
.accordion summary span, .accordion summary span::after { position: absolute; right: 8px; width: 18px; height: 1px; content: ""; background: var(--ink); transition: transform .25s ease; }
.accordion summary span::after { right: 0; transform: rotate(90deg); }
.accordion details[open] summary span::after { transform: rotate(0); }
.accordion details > div { max-width: 680px; padding: 0 45px 23px 0; }
.accordion p { margin: 0; color: var(--muted); font-size: 13px; }

.contacts { padding: 105px 0; color: var(--white); background: #071725; }
.contacts__grid { display: grid; grid-template-columns: .72fr 1.28fr; align-items: stretch; gap: 65px; }
.contacts__info h2 { margin-bottom: 18px; }
.contacts__info > p { max-width: 390px; margin-bottom: 28px; color: #95a7b2; }
.contacts__phone { display: block; width: fit-content; margin-bottom: 4px; font-size: clamp(25px,3vw,39px); font-weight: 700; letter-spacing: -.035em; }
.contacts__mail { display: block; width: fit-content; color: var(--teal); font-size: 15px; border-bottom: 1px solid rgba(32,215,201,.35); }
.contacts__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 33px; }
.contacts__card { display: grid; grid-template-rows: 1fr auto; background: #0b2132; border: 1px solid rgba(255,255,255,.1); border-radius: 14px; overflow: hidden; }
.contacts__map { position: relative; min-height: 270px; color: #426074; background: radial-gradient(circle at 54% 54%, rgba(32,215,201,.15), transparent 12%), linear-gradient(135deg,#0b2234,#091b2a); overflow: hidden; }
.contacts__map::after { position: absolute; inset: 0; content: ""; opacity: .12; background-image: linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px); background-size: 35px 35px; }
.contacts__map svg { position: absolute; width: 100%; height: 100%; }
.map-pin { position: absolute; z-index: 2; top: 46%; left: 53%; display: flex; flex-direction: column; padding-left: 30px; line-height: 1.25; transform: translate(-50%,-50%); }
.map-pin > span { position: absolute; top: 0; left: 0; width: 19px; height: 19px; background: var(--orange); border: 5px solid #fff; border-radius: 50% 50% 50% 0; box-shadow: 0 0 0 8px rgba(255,151,87,.14), 0 8px 18px rgba(0,0,0,.4); transform: rotate(-45deg); }
.map-pin b { font-size: 12px; }
.map-pin small { color: #89a0ae; font-size: 9px; }
.contacts__details { display: grid; grid-template-columns: 1.4fr 1fr .8fr; }
.contacts__details > div { padding: 20px; border-top: 1px solid rgba(255,255,255,.1); border-right: 1px solid rgba(255,255,255,.1); }
.contacts__details > div:last-child { border-right: 0; }
.contacts__details small { display: block; margin-bottom: 5px; color: #748b98; font-size: 8px; text-transform: uppercase; letter-spacing: .1em; }
.contacts__details p { margin: 0; color: #d4dfe4; font-size: 10px; }

.footer { color: #82949e; background: var(--navy-950); border-top: 1px solid rgba(255,255,255,.08); }
.footer__top { min-height: 110px; display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.logo--footer { color: var(--white); }
.footer__top nav { display: flex; flex-wrap: wrap; gap: 26px; font-size: 11px; }
.footer__top nav a:hover { color: var(--teal); }
.to-top { width: 42px; height: 42px; flex: 0 0 auto; color: var(--white); background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.13); border-radius: 50%; cursor: pointer; }
.to-top:hover { color: var(--navy-950); background: var(--teal); }
.footer__bottom { min-height: 62px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid rgba(255,255,255,.08); font-size: 9px; }
.footer__bottom a { border-bottom: 1px solid rgba(255,255,255,.2); }

.floating-actions { position: fixed; z-index: 80; right: 18px; bottom: 18px; display: flex; flex-direction: column; gap: 8px; }
.floating-actions a, .floating-actions button { width: 48px; height: 48px; display: grid; place-items: center; color: var(--white); background: var(--teal-dark); border: 0; border-radius: 50%; box-shadow: 0 8px 25px rgba(5,17,29,.25); cursor: pointer; transition: transform .2s ease; }
.floating-actions button { color: var(--navy-950); background: var(--orange); }
.floating-actions a:hover, .floating-actions button:hover { transform: translateY(-3px) scale(1.03); }
.floating-actions svg { width: 23px; height: 23px; }

.modal { position: fixed; z-index: 500; inset: 0; display: grid; place-items: center; padding: 24px; visibility: hidden; opacity: 0; transition: opacity .25s ease, visibility .25s ease; }
.modal.is-open { visibility: visible; opacity: 1; }
.modal__backdrop { position: absolute; inset: 0; background: rgba(3,12,19,.78); backdrop-filter: blur(7px); }
.modal__dialog { position: relative; width: min(100%, 510px); max-height: calc(100vh - 40px); padding: 38px; background: var(--white); border-radius: 15px; box-shadow: 0 30px 90px rgba(0,0,0,.4); overflow-y: auto; transform: translateY(18px) scale(.98); transition: transform .25s ease; }
.modal.is-open .modal__dialog { transform: translateY(0) scale(1); }
.modal__close { position: absolute; top: 14px; right: 14px; width: 37px; height: 37px; color: #6f7e87; background: #eef3f5; border: 0; border-radius: 50%; font-size: 24px; font-weight: 300; cursor: pointer; }
.modal__dialog h2 { margin: 0 35px 13px 0; font-size: 34px; }
.modal__dialog > p { margin-bottom: 25px; color: var(--muted); font-size: 13px; }
.modal-form .button { width: 100%; margin-top: 18px; }
.modal-form .checkbox { margin-top: 4px; }

@media (max-width: 1180px) {
    .header__inner { gap: 18px; }
    .nav { gap: 16px; }
    .nav a { font-size: 12px; }
    .header__phone { display: none; }
    .service-grid { grid-template-columns: repeat(2, 1fr); }
    .service-card { min-height: 380px; }
    .service-card--wide { min-height: 190px; }
    .case__facts { grid-template-columns: repeat(4, 1fr); }
    .case__facts > p { grid-column: 1 / -1; min-height: auto; border-top: 1px solid rgba(255,255,255,.1); }
}

@media (max-width: 960px) {
    :root { --container: 860px; }
    .section { padding: 90px 0; }
    .topbar { display: none; }
    .header__inner { min-height: 70px; }
    .menu-toggle { display: block; }
    .header__contacts { margin-left: auto; }
    .header__contacts .button { display: none; }
    .nav { position: absolute; top: calc(100% + 1px); right: 0; left: 0; display: flex; max-height: 0; flex-direction: column; align-items: stretch; gap: 0; margin: 0; padding: 0 24px; background: rgba(5,17,29,.98); overflow: hidden; transition: max-height .35s ease, padding .35s ease; }
    .nav.is-open { max-height: 480px; padding-top: 14px; padding-bottom: 18px; box-shadow: 0 20px 35px rgba(0,0,0,.25); }
    .nav a { padding: 11px 0; border-bottom: 1px solid rgba(255,255,255,.08); font-size: 14px; }
    .nav a::after { display: none; }
    .hero { min-height: 760px; }
    .hero__bg { left: 15%; opacity: .78; }
    .hero::before { background: linear-gradient(90deg,var(--navy-950) 0,rgba(5,17,29,.9) 43%,rgba(5,17,29,.22) 100%); }
    .hero__inner { min-height: 615px; }
    .hero__content { width: min(100%, 650px); }
    .hero__panel { display: none; }
    .hero__stats > div { padding-inline: 18px; }
    .hero__stats strong { font-size: 18px; }
    .trust-line { display: none; }
    .section-head--split { grid-template-columns: 1fr; gap: 18px; }
    .section-head--split > p { max-width: 600px; }
    .result__grid { grid-template-columns: 1fr; gap: 30px; }
    .result__visual { min-height: 480px; max-width: 600px; margin: 0 auto; }
    .result__content { max-width: 720px; margin: 0 auto; }
    .benefit-grid { grid-template-columns: repeat(2, 1fr); }
    .case__top { align-items: flex-start; }
    .case__place { min-width: 200px; }
    .equipment-grid { grid-template-columns: 1fr; }
    .equipment-grid > article { min-height: 330px; display: grid; grid-template-columns: 240px 1fr; grid-template-rows: auto auto auto 1fr; column-gap: 30px; }
    .equipment-card__index { position: absolute; top: 25px; right: 25px; }
    .equipment-card__drawing { grid-row: 1 / span 4; height: 280px; }
    .equipment-card__type { padding-top: 30px; }
    .equipment-grid p { min-height: 0; }
    .process-list { grid-template-columns: 1fr 1fr; gap: 12px; }
    .process-list li, .process-list li:first-child, .process-list li:last-child { min-height: 250px; border: 1px solid #dbe5e8; border-radius: 10px; }
    .process-list li > span { margin-bottom: 28px; }
    .process-list li::after { display: none; }
    .process-list li:last-child { grid-column: 1 / -1; }
    .estimate__inner { grid-template-columns: 1fr; gap: 45px; }
    .estimate__copy { max-width: 700px; }
    .seo__grid { grid-template-columns: 1fr; gap: 45px; }
    .seo__aside { position: static; }
    .seo__article { max-width: none; }
    .faq__grid { grid-template-columns: 1fr; gap: 45px; }
    .faq__intro { position: static; }
    .contacts__grid { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
    .container { width: min(calc(100% - 32px), var(--container)); }
    html { scroll-padding-top: 74px; }
    .section { padding: 72px 0; }
    h1 { font-size: clamp(41px, 12.2vw, 60px); }
    h2 { font-size: clamp(32px, 9.5vw, 44px); }
    .header__inner { min-height: 66px; }
    .logo__mark { width: 34px; }
    .logo__text { font-size: 17px; }
    .hero { min-height: 850px; }
    .hero__bg { inset: 0; background-position: 61% center; opacity: .65; }
    .hero::before { background: linear-gradient(180deg,rgba(5,17,29,.75) 0,var(--navy-950) 74%); }
    .hero__grid { display: none; }
    .hero__inner { min-height: 670px; align-items: flex-start; padding-top: 80px; padding-bottom: 55px; }
    .eyebrow { font-size: 9px; }
    .hero__lead { font-size: 16px; line-height: 1.55; }
    .hero__actions { display: grid; }
    .hero__actions .button { width: 100%; }
    .hero__checks { display: grid; gap: 9px; }
    .hero__stats { grid-template-columns: 1fr 1fr; padding: 8px 0; }
    .hero__stats > div, .hero__stats > div:last-child { min-height: 72px; padding: 10px 16px; border: 0; }
    .hero__stats > div:nth-child(odd) { border-right: 1px solid rgba(255,255,255,.1); }
    .hero__stats strong { font-size: 17px; }
    .section-head { margin-bottom: 35px; }
    .service-grid { grid-template-columns: 1fr; }
    .service-card, .service-card--wide { min-height: auto; display: flex; grid-column: auto; padding: 24px; }
    .service-card__top { min-height: 52px; display: flex; }
    .service-card--wide .service-card__top { display: flex; }
    .service-card--wide .service-card__top svg { margin: 0; }
    .service-card h3 { margin-top: 22px; }
    .service-card--wide h3 { margin-top: 22px; }
    .service-card p { min-height: auto; }
    .result__visual { min-height: 370px; }
    .result__tag--one { top: 9%; }
    .result__tag--two { bottom: 12%; }
    .benefit-grid { grid-template-columns: 1fr; }
    .benefit-grid article { display: grid; grid-template-columns: 58px 1fr; column-gap: 18px; }
    .benefit-icon { grid-row: span 2; margin: 0; }
    .benefit-grid h3 { margin-top: 2px; }
    .case__top { flex-direction: column; }
    .case__place { width: 100%; }
    .case__media { aspect-ratio: 1.05; }
    .case__media img { object-position: center; }
    .case__facts { grid-template-columns: 1fr 1fr; }
    .case__facts > div { min-height: 95px; padding: 18px; }
    .case__facts > div:nth-child(2) { border-right: 0; }
    .case__facts > div:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.1); }
    .equipment-grid > article { min-height: 520px; display: block; }
    .equipment-card__drawing { height: 260px; }
    .equipment-card__type { padding-top: 0; }
    .process-list { grid-template-columns: 1fr; }
    .process-list li:last-child { grid-column: auto; }
    .process-list li { min-height: auto; display: grid; grid-template-columns: 45px 1fr; column-gap: 16px; padding: 20px; }
    .process-list li > span { grid-row: 1 / span 3; margin: 0; }
    .process-list__icon { margin-bottom: 14px; }
    .process-list h3, .process-list p { grid-column: 2; }
    .estimate { padding: 72px 0; }
    .lead-form { padding: 24px 18px; }
    .lead-form__row { grid-template-columns: 1fr; gap: 0; }
    .lead-form__bottom { flex-direction: column; align-items: stretch; }
    .lead-form__bottom .button { width: 100%; }
    .seo__aside { padding: 25px; }
    .seo__aside h2 { font-size: 29px; }
    .accordion summary { padding-block: 20px; font-size: 14px; }
    .contacts { padding: 72px 0; }
    .contacts__grid { gap: 45px; }
    .contacts__details { grid-template-columns: 1fr 1fr; }
    .contacts__details > div:first-child { grid-column: 1 / -1; border-right: 0; }
    .contacts__details > div:nth-child(2) { border-right: 1px solid rgba(255,255,255,.1); }
    .footer__top { padding: 30px 0; flex-wrap: wrap; }
    .footer__top nav { order: 3; width: 100%; gap: 17px; }
    .footer__bottom { padding: 20px 0; flex-direction: column; align-items: flex-start; gap: 8px; }
    .floating-actions { right: 12px; bottom: 12px; }
    .floating-actions a, .floating-actions button { width: 44px; height: 44px; }
    .modal { padding: 12px; }
    .modal__dialog { padding: 30px 20px 22px; }
    .modal__dialog h2 { font-size: 29px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
