:root {
  --ink: #102634;
  --muted: #637581;
  --navy: #0b1823;
  --navy-soft: #132935;
  --sky: #9bdef0;
  --sky-dark: #4fa9c5;
  --paper: #f6f8f8;
  --white: #ffffff;
  --line: #dce6e9;
  --ease: cubic-bezier(.2,.8,.2,1);
}
*,*::before,*::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body { margin: 0; font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif; color: var(--ink); background: var(--paper); -webkit-font-smoothing: antialiased; }
body.nav-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible { outline: 3px solid #53b8d6; outline-offset: 4px; }
img,svg { max-width: 100%; }
::selection { background: #8ad3e8; color: #07141d; }
.container { width: min(1240px, calc(100% - 84px)); margin-inline: auto; }
.skip-link { position: fixed; top: -100px; left: 15px; z-index: 500; padding: 12px 20px; background: var(--sky); color: var(--navy); font-weight: 800; }
.skip-link:focus { top: 12px; }

.topbar { background: #07141d; border-bottom: 1px solid #20323b; color: #b4c6cf; font-size: 11px; font-weight: 700; letter-spacing: .075em; }
.topbar__inner { min-height: 39px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.topbar__location { display: inline-flex; align-items: center; gap: 9px; }
.tiny-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--sky); box-shadow: 0 0 0 4px #9bdef016; }
.topbar__contacts { display: flex; align-items: center; gap: 20px; letter-spacing: .015em; font-size: 12px; }
.topbar__contacts a:hover { color: var(--sky); }
.topbar__divider { height: 13px; width: 1px; background: #536571; opacity: .65; }

.site-header { position: sticky; top: 0; background: #0d1b26; color: white; border-bottom: 1px solid rgba(228,244,248,.10); z-index: 80; backdrop-filter: blur(15px); }
.header__inner { min-height: 88px; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.brand { display: inline-flex; align-items: center; gap: 13px; flex: 0 0 auto; }
.brand__symbol { font-family: Arial, Helvetica, sans-serif; font-size: 39px; font-weight: 900; line-height: .84; letter-spacing: -.13em; color: white; white-space: nowrap; padding-right: .18em; }
.brand__slash { color: var(--sky); margin-inline: .055em; font-size: .95em; }
.brand__dot { color: var(--sky); }
.brand__text { display: flex; flex-direction: column; gap: 5px; border-left: 1px solid #54616a; padding-left: 14px; }
.brand__text strong { font-size: 22px; letter-spacing: .18em; line-height: 1; font-weight: 850; }
.brand__text small { color: #9daeb8; font-weight: 700; font-size: 8.5px; letter-spacing: .2em; white-space: nowrap; }
.main-nav { display: flex; align-items: center; gap: clamp(22px, 2.5vw, 39px); font-size: 13px; font-weight: 700; }
.main-nav > a:not(.nav-cta) { color: #d3dee3; transition: color .2s; }
.main-nav > a:not(.nav-cta):hover { color: var(--sky); }
.nav-cta { display: inline-flex; align-items: center; gap: 22px; margin-left: 3px; color: var(--navy); background: var(--sky); padding: 15px 19px; font-weight: 800; transition: background .2s, transform .2s; }
.nav-cta:hover { background: #b5effa; transform: translateY(-1px); }
.nav-cta span { font-size: 19px; }
.nav-toggle { display: none; background: transparent; border: 1px solid #49616d; border-radius: 0; padding: 12px; width: 48px; height: 45px; color: white; flex-direction: column; justify-content: center; gap: 6px; }
.nav-toggle span { display: block; width: 100%; height: 2px; background: var(--sky); transition: transform .2s, opacity .2s; }

.hero { position: relative; overflow: hidden; background: linear-gradient(109deg,#0b1823 0%,#101f2b 70%,#172d3a 100%); color: white; }
.hero__texture { position: absolute; inset: 0; pointer-events: none; opacity: .35; background-image: linear-gradient(to right,rgba(173,215,228,.05) 1px,transparent 1px), linear-gradient(to bottom,rgba(173,215,228,.05) 1px,transparent 1px); background-size: 70px 70px; mask-image: linear-gradient(to right,transparent 5%,black 75%); }
.hero::before { content: ""; position: absolute; width: 600px; height: 600px; border-radius: 100%; background: #4897af; filter: blur(175px); opacity: .09; top: -300px; right: -210px; pointer-events: none; }
.hero__grid { display: grid; grid-template-columns: 1.02fr .98fr; align-items: center; gap: 42px; min-height: 688px; padding-top: 46px; padding-bottom: 53px; position: relative; }
.hero__copy { padding-top: 13px; position: relative; z-index: 2; }
.eyebrow { display: flex; align-items: center; gap: 13px; font-size: 11px; font-weight: 850; color: #42778a; letter-spacing: .18em; line-height: 1.5; margin: 0 0 23px; text-transform: uppercase; }
.eyebrow__line { width: 28px; flex: 0 0 28px; height: 2px; background: currentColor; }
.eyebrow--light { color: var(--sky); }
.hero h1 { font-size: clamp(46px,4.85vw,72px); font-weight: 850; letter-spacing: -.054em; line-height: 1.07; max-width: 720px; margin: 0; }
.hero h1 em { font-style: normal; color: var(--sky); }
.hero__lead { font-size: clamp(16px,1.35vw,18px); line-height: 1.8; max-width: 530px; color: #b9cbd4; margin: 28px 0 31px; }
.hero__buttons { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 22px; font-size: 13px; font-weight: 800; border: 1px solid transparent; padding: 17px 22px; min-height: 55px; transition: background .22s, color .22s, border .22s, transform .22s; }
.btn:hover { transform: translateY(-2px); }
.btn span:last-child { font-size: 19px; line-height: .8; }
.btn--accent { color: var(--navy); background: var(--sky); }
.btn--accent:hover { background: #c1f1ff; }
.btn--outline { color: #fff; border-color: #637988; background: transparent; gap: 12px; }
.btn--outline:hover { background: rgba(255,255,255,.1); }
.hero__facts { margin-top: 62px; display: flex; flex-wrap: wrap; gap: 25px; }
.hero__facts > div { display: flex; align-items: center; gap: 9px; font-size: 9px; font-weight: 800; color: #abbfc8; letter-spacing: .12em; white-space: nowrap; }
.hero__fact-mark { display: inline-flex; color: var(--sky); font-size: 11px; font-weight: 900; border: 1px solid #446575; padding: 7px 7px; letter-spacing: 0; }
.hero__art { position: relative; width: 100%; height: 563px; background: radial-gradient(circle at 48% 47%,#234354 0%,#122d3b 47%,#102532 90%); border: 1px solid #436074; border-radius: 2px; overflow: hidden; box-shadow: 0 25px 100px rgba(0,0,0,.20); isolation: isolate; }
.hero__art::before { content: ""; position: absolute; inset: 12px; border: 1px solid rgba(179,226,240,.15); pointer-events: none; }
.hero__art::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(0deg,#0b202ca6 0%, transparent 24%, transparent 76%,#0c243348 100%); }
.art__top { position: absolute; left: 33px; right: 32px; top: 33px; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 20px; font-size: 9px; font-weight: 900; color: #a6d6e5; letter-spacing: .12em; }
.art__top > span:first-child { display: flex; align-items: center; gap: 10px; }
.art__top i { width: 7px; height: 7px; background: var(--sky); border-radius: 50%; }
.art__halo { position: absolute; width: 73%; aspect-ratio: 1; top: 18%; left: 15%; border: 1px solid #9ddff029; border-radius: 100%; box-shadow: inset 0 0 65px #b2edff08,0 0 90px #b2edff0a; z-index: 0; }
.art__halo::before,.art__halo::after { content: ""; position: absolute; inset: 9%; border: 1px solid #9ddff029; border-radius: 50%; }
.art__halo::after { inset: 24%; }
.pylon-art { position: absolute; z-index: 1; width: 112%; max-width: none; height: 100%; left: -6%; bottom: -2%; opacity: .98; }
.art__note { display: flex; align-items: center; gap: 12px; position: absolute; left: 32px; bottom: 33px; z-index: 3; color: white; }
.art__note-marker { display: grid; place-items: center; background: var(--sky); color: #072436; width: 37px; height: 37px; font-size: 22px; }
.art__note > span:last-child { display: flex; flex-direction: column; gap: 5px; }
.art__note strong { font-size: 12px; letter-spacing: .14em; }
.art__note small { color: #a0bccb; font-size: 9px; letter-spacing: .12em; font-weight: 700; }
.art__index { position: absolute; right: 31px; bottom: 34px; z-index: 3; font-size: 23px; font-weight: 850; letter-spacing: -.06em; }
.art__index span { color: #86a5b5; font-size: 13px; }
.hero__bottomline { position: absolute; bottom: 0; left: 0; right: 0; height: 30px; border-top: 1px solid rgba(169,218,237,.12); display: flex; justify-content: space-evenly; align-items: center; color: #6e8a98; font-size: 9px; letter-spacing: .26em; font-weight: 850; }

.intro-strip { background: #e9f0f2; border-bottom: 1px solid #d7e2e7; }
.intro-strip__grid { display: grid; grid-template-columns: repeat(3,1fr); }
.intro-strip__item { padding: 32px 29px; display: flex; align-items: center; gap: 19px; border-left: 1px solid #d6e0e5; }
.intro-strip__item:first-child { border-left: 0; padding-left: 0; }
.intro-strip__item:last-child { padding-right: 0; }
.intro-strip__icon { display: grid; place-items: center; width: 54px; height: 54px; background: #d8eaf0; color: #2f718a; flex: 0 0 54px; }
.intro-strip__icon svg { width: 25px; height: 25px; }
.intro-strip__item strong,.intro-strip__item span:not(.intro-strip__icon) { display: block; }
.intro-strip__item strong { font-size: 14px; margin-bottom: 5px; }
.intro-strip__item div > span { color: var(--muted); font-size: 12px; }

.section { padding: 117px 0; }
.section-heading { margin-bottom: 48px; }
.section-heading--split { display: flex; justify-content: space-between; align-items: end; gap: 65px; }
.section-heading h2,.about__copy h2,.contact__copy h2 { font-size: clamp(35px,4.2vw,54px); line-height: 1.12; letter-spacing: -.05em; margin: 0; font-weight: 850; }
.text-blue { color: #3c849c; }
.section-heading--split > p { margin: 0 0 3px; color: #647884; font-size: 16px; line-height: 1.75; max-width: 380px; }
.service-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; }
.service-card { display: flex; flex-direction: column; min-height: 434px; background: white; border: 1px solid #dce6ea; padding: 28px; transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s; }
.service-card:hover,.service-card:focus-visible { transform: translateY(-4px); box-shadow: 0 21px 45px #152c3c12; border-color: #53b8d6; }
.service-card__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: #7f929a; letter-spacing: .13em; font-size: 9px; font-weight: 850; }
.service-card__top > span:last-child { color: #4e9eb5; font-size: 22px; font-weight: 600; transition: transform .22s var(--ease); }
.service-card:hover .service-card__top > span:last-child,.service-card:focus-visible .service-card__top > span:last-child { transform: translate(4px,-2px); }
.service-card__icon { width: 116px; height: 116px; display: grid; place-items: center; margin: 32px 0 16px; background: #e5f3f7; color: #327a94; border-radius: 100%; }
.service-card__icon svg { width: 78px; height: 78px; }
.service-card__content { margin-top: auto; }
.service-card h3 { font-size: 23px; letter-spacing: -.035em; margin: 0 0 10px; }
.service-card p { font-size: 14px; line-height: 1.75; color: #637680; margin: 0 0 22px; }
.text-link { display: inline-flex; align-items: center; gap: 13px; color: #286d87; font-size: 13px; font-weight: 850; border-bottom: 1px solid #7bb2c4; padding-bottom: 7px; transition: gap .2s; }
.text-link:hover { gap: 22px; }
.service-card:hover .text-link,.service-card:focus-visible .text-link,.additional:hover .text-link,.additional:focus-visible .text-link { gap: 21px; }
.text-link span { font-size: 17px; }
.additional { background: #e8f1f3; border: 1px solid #d5e3e8; margin-top: 18px; padding: 23px 29px; display: flex; align-items: center; justify-content: space-between; gap: 25px; transition: transform .3s var(--ease), border-color .3s, box-shadow .3s var(--ease); }
.additional:hover,.additional:focus-visible { transform: translateY(-3px); border-color: #53b8d6; box-shadow: 0 13px 30px #152c3c0f; }
.additional__lead { display: flex; align-items: center; gap: 19px; }
.additional__star { display: grid; place-items: center; font-size: 24px; color: #2e788e; width: 49px; height: 49px; border: 1px solid #acd0dc; flex: 0 0 49px; }
.additional strong { font-size: 14px; }
.additional p { font-size: 13px; color: #73838a; margin: 6px 0 0; }
.additional .text-link { white-space: nowrap; }

.equipment { color: white; background: #0b1c27; position: relative; overflow: hidden; }
.equipment::before { content: ""; position: absolute; width: 570px; height: 570px; border: 1px solid #8ddbf01b; border-radius: 50%; right: -200px; top: -250px; pointer-events: none; }
.equipment::after { content: ""; position: absolute; width: 560px; height: 560px; border-radius: 50%; right: -270px; top: -250px; border: 1px solid #8ddbf013; pointer-events: none; }
.equipment .container { position: relative; z-index: 1; }
.equipment .section-heading h2 > span { color: var(--sky); }
.equipment .section-heading--split > p { color: #afc1ca; }
.equipment-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 17px; }
.equipment-card { background: #172b37; border: 1px solid #33515f; display: flex; flex-direction: column; overflow: hidden; transition: transform .3s var(--ease), border-color .3s; }
.equipment-card:hover,.equipment-card:focus-visible { transform: translateY(-4px); border-color: #9bdef0; }
.equipment-card__visual { position: relative; background: radial-gradient(circle at 49% 52%,#2b586c 0%,#204356 43%,#193341 100%); height: 241px; overflow: hidden; border-bottom: 1px solid #345769; }
.equipment-card__visual::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(#a0e0ef0d 1px,transparent 1px),linear-gradient(90deg,#a0e0ef0d 1px,transparent 1px); background-size: 34px 34px; }
.equipment-card__visual::after { content: ""; position: absolute; width: 250px; height: 250px; top: 30px; left: calc(50% - 125px); border: 1px solid #9bdef01e; border-radius: 50%; pointer-events: none; }
.equipment-card__visual img { position: absolute; width: 100%; max-width: none; height: 100%; object-fit: contain; top: 0; left: 0; filter: drop-shadow(0 10px 12px #07121d70); z-index: 1; transition: transform .5s var(--ease); }
.equipment-card:hover .equipment-card__visual img { transform: translateY(-5px) scale(1.025); }
.equipment-card__code { position: absolute; left: 20px; top: 18px; z-index: 2; font-size: 9px; font-weight: 900; letter-spacing: .13em; color: #b1d7e1; }
.equipment-card__body { padding: 27px 26px 0; display: flex; flex-direction: column; flex: 1; }
.equipment-card__label { font-size: 9px; font-weight: 850; color: var(--sky); letter-spacing: .19em; }
.equipment-card h3 { font-size: 26px; letter-spacing: -.04em; margin: 10px 0 10px; }
.equipment-card p { font-size: 14px; line-height: 1.7; color: #b4c8d0; margin: 0 0 22px; min-height: 48px; }
.equipment-card__meta { color: #c2d4dc; font-size: 11px; letter-spacing: .055em; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 25px; font-weight: 750; }
.equipment-card__meta span { width: 3px; height: 3px; border-radius: 50%; background: var(--sky); }
.equipment-card__action { margin: auto -26px 0; min-height: 56px; padding: 16px 26px; display: flex; justify-content: space-between; align-items: center; color: var(--sky); font-size: 13px; font-weight: 800; border-top: 1px solid #3a5968; background: #1a323f; transition: background .2s; }
.equipment-card__action:hover,.equipment-card:hover .equipment-card__action,.equipment-card:focus-visible .equipment-card__action { background: #244655; }
.equipment-card__action span { font-size: 18px; transition: transform .22s var(--ease); }
.equipment-card:hover .equipment-card__action span,.equipment-card:focus-visible .equipment-card__action span { transform: translate(4px,-2px); }
.equipment__note { margin-top: 23px; padding: 21px 26px; display: flex; justify-content: space-between; align-items: center; gap: 25px; border: 1px solid #365364; background: #102732; }
.equipment__note > div { display: flex; align-items: center; gap: 15px; }
.equipment__note-symbol { border: 1px solid #7fb9c9; display: grid; place-items: center; width: 32px; height: 32px; flex: 0 0 32px; color: var(--sky); font-weight: 900; border-radius: 50%; font-size: 14px; }
.equipment__note p { margin: 0; font-size: 13px; color: #bcd1db; line-height: 1.7; }
.equipment__note strong { color: white; }
.equipment__note > a { color: var(--sky); font-size: 14px; font-weight: 850; white-space: nowrap; }
.equipment__note > a span { padding-left: 9px; }

.about { background: #f8faf9; }
.about__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(55px,8vw,130px); align-items: center; }
.about__visual { height: 566px; background: radial-gradient(circle at 58% 43%,#3a7185 0%,#1d4052 48%,#102734 100%); color: white; position: relative; overflow: hidden; border: 12px solid #e5eef1; }
.about__visual-grid { position: absolute; inset: 0; background-image: linear-gradient(#a6dfee12 1px,transparent 1px),linear-gradient(90deg,#a6dfee12 1px,transparent 1px); background-size: 40px 40px; }
.about__visual::before { content: ""; position: absolute; width: 80%; aspect-ratio: 1; border: 1px solid #a6e4f025; border-radius: 50%; left: 10%; top: 9%; box-shadow: inset 0 0 90px #88d7ef10; }
.about__visual::after { content: ""; position: absolute; width: 55%; aspect-ratio: 1; border: 1px solid #a6e4f02b; border-radius: 50%; left: 22.5%; top: 22%; }
.about__monogram { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-52%); font-family: Arial, Helvetica, sans-serif; font-size: clamp(125px,15vw,223px); letter-spacing: -.18em; line-height: 1; font-weight: 900; display: flex; align-items: center; z-index: 2; text-shadow: 0 14px 40px #081c2860; }
.about__monogram i { color: var(--sky); font-size: .46em; font-weight: 400; font-style: normal; align-self: flex-start; transform: translate(.1em,.1em); }
.about__monogram span:last-child { color: var(--sky); padding-right: .18em; }
.about__visual-footer { display: flex; justify-content: space-between; position: absolute; left: 25px; right: 25px; bottom: 25px; color: #cae7ee; font-size: 10px; font-weight: 850; letter-spacing: .14em; z-index: 4; }
.about__visual-tag { position: absolute; left: 24px; top: 24px; font-size: 9px; font-weight: 850; letter-spacing: .16em; color: var(--sky); }
.about__copy { padding: 12px 0; }
.about__copy h2 { margin-bottom: 25px; }
.about__copy p:not(.eyebrow) { color: #667782; line-height: 1.85; font-size: 15px; margin: 0 0 19px; }
.about__copy p.about__lead { color: #2b4757; font-size: 18px; line-height: 1.75; font-weight: 500; }
.about__signature { display: flex; align-items: center; gap: 15px; border-top: 1px solid #dce6ea; border-bottom: 1px solid #dce6ea; padding: 22px 0; margin: 33px 0 29px; }
.about__signature-mark { width: 54px; height: 54px; background: #d7edf4; display: grid; place-items: center; font-size: 20px; letter-spacing: -.055em; font-weight: 900; color: #2f748b; }
.about__signature-mark span { color: #0f2734; }
.about__signature > div { display: flex; flex-direction: column; gap: 5px; }
.about__signature strong { font-size: 14px; }
.about__signature > div > span { font-size: 12px; color: #81919a; }

.gallery { background: #eef3f4; }
.gallery__grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 16px; }
.gallery__tile { min-width: 0; position: relative; height: 318px; }
.gallery__scene { height: 100%; overflow: hidden; position: relative; display: grid; place-items: center; color: white; }
.gallery__scene::before { content: ""; position: absolute; width: 330px; aspect-ratio: 1; border: 1px solid #b8e6f536; border-radius: 50%; top: -90px; right: -60px; box-shadow: 0 0 0 44px #b8e6f50a,0 0 0 92px #b8e6f509; }
.gallery__scene::after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(#b8e6f508 1px,transparent 1px),linear-gradient(90deg,#b8e6f508 1px,transparent 1px); background-size: 29px 29px; }
.gallery__scene--grid { background: linear-gradient(135deg,#102833,#214658); }
.gallery__scene--blue { background: linear-gradient(145deg,#285e73,#5895a8); }
.gallery__scene--light { background: linear-gradient(135deg,#37596a,#23404f); }
.gallery__placeholder { text-align: center; z-index: 1; padding: 25px 15px 45px; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.gallery__placeholder-icon { display: grid; place-items: center; width: 47px; height: 47px; border: 1px dashed #b3e6f3a0; border-radius: 50%; font-size: 24px; margin-bottom: 5px; color: #b5e9f5; }
.gallery__placeholder strong { font-size: 17px; letter-spacing: -.02em; }
.gallery__placeholder small { font-size: 9px; letter-spacing: .13em; color: #bfdae3; font-weight: 750; }
.gallery__counter { position: absolute; bottom: 21px; left: 23px; z-index: 3; font-size: 9px; font-weight: 900; letter-spacing: .12em; color: #d8eaf1; }

.contact { background: #dfeef3; }
.contact__grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(40px,7vw,100px); align-items: start; }
.contact__copy { padding-top: 19px; }
.contact__copy .eyebrow { color: #2c718b; }
.contact__copy h2 { color: #102b39; font-size: clamp(39px,4.5vw,59px); }
.contact__copy h2 span { color: #397f97; }
.contact__copy > p:not(.eyebrow) { color: #506d7a; font-size: 16px; line-height: 1.8; max-width: 350px; margin: 25px 0 42px; }
.contact__methods { display: flex; flex-direction: column; border-top: 1px solid #bdd3db; }
.contact__methods > a { display: flex; align-items: center; gap: 16px; padding: 20px 0; border-bottom: 1px solid #bdd3db; }
.contact__method-icon { display: grid; place-items: center; width: 43px; height: 43px; background: #c3e1ea; border: 1px solid #abd1de; color: #246c87; flex: 0 0 43px; font-size: 20px; transition: background .2s; }
.contact__methods > a:hover .contact__method-icon { background: #9bdcf0; }
.contact__methods a > span:last-child { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.contact__methods small { color: #4b8192; font-size: 10px; font-weight: 900; letter-spacing: .16em; }
.contact__methods strong { color: #143240; font-size: 15px; overflow-wrap: anywhere; }
.contact__form-wrap { background: white; border: 1px solid #c3dbe3; padding: clamp(25px,3.2vw,43px); box-shadow: 0 20px 50px rgba(17,57,75,.065); }
.contact__form-heading { display: flex; justify-content: space-between; align-items: center; color: #54889a; font-weight: 900; font-size: 10px; letter-spacing: .14em; }
.contact__form-heading span:last-child { font-size: 20px; }
.contact__form-wrap h3 { margin: 17px 0 4px; font-size: 29px; letter-spacing: -.035em; }
.form-intro { font-size: 13px; line-height: 1.6; color: #738792; margin: 0 0 26px; }
#contact-form { display: flex; flex-direction: column; gap: 17px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
#contact-form label { display: block; color: #244858; font-size: 12px; font-weight: 800; }
#contact-form label > span { color: #3285a2; }
#contact-form input,#contact-form select,#contact-form textarea { width: 100%; min-width: 0; margin-top: 9px; border: 1px solid #cadde3; border-radius: 0; background: #f9fbfb; color: #1b3747; padding: 13px 14px; min-height: 49px; font-size: 14px; font-weight: 400; transition: border .2s,background .2s; }
#contact-form select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%23537080' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 17px center; padding-right: 42px; }
#contact-form input::placeholder,#contact-form textarea::placeholder { color: #9babb2; }
#contact-form input:focus,#contact-form select:focus,#contact-form textarea:focus { border-color: #4ca4bd; background: white; }
#contact-form textarea { resize: vertical; min-height: 118px; }
.form-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.form-bottom > p { font-size: 10px; line-height: 1.6; color: #758995; max-width: 220px; margin: 0; }
.btn--dark { background: #163645; color: white; border: 1px solid #163645; white-space: nowrap; }
.btn--dark:hover { background: #285a6c; }
.form-status { margin: 0; color: #24536b; font-size: 12px; line-height: 1.6; }
.form-status:empty { display: none; }
.form-status a { text-decoration: underline; }

.footer { background: #091822; color: #deecf0; }
.footer__upper { padding: 75px 0 57px; display: flex; justify-content: space-between; gap: 50px; }
.brand--footer .brand__text strong { font-size: 20px; }
.brand--footer .brand__symbol { font-size: 35px; }
.footer__upper > div:first-child > p { max-width: 320px; font-size: 13px; line-height: 1.7; color: #93aab5; margin: 21px 0 0; }
.footer__links { display: flex; gap: clamp(55px,8vw,125px); }
.footer__links > div { display: flex; flex-direction: column; gap: 13px; align-items: flex-start; }
.footer__links strong { color: var(--sky); font-size: 10px; letter-spacing: .15em; margin-bottom: 10px; }
.footer__links a,.footer__links span { color: #a9bec7; font-size: 13px; }
.footer__links a:hover { color: var(--sky); }
.footer__bottom { min-height: 69px; border-top: 1px solid #2a3a45; display: flex; align-items: center; justify-content: space-between; gap: 20px; font-size: 11px; color: #819ba8; }
.footer__bottom a { color: #bfd5df; letter-spacing: .09em; font-size: 10px; font-weight: 800; }
.footer__bottom a:hover { color: var(--sky); }

@media (max-width: 1150px) {
  .container { width: min(1150px, calc(100% - 56px)); }
  .header__inner { min-height: 79px; }
  .main-nav { gap: 19px; }
  .hero__grid { gap: 20px; min-height: 635px; }
  .hero__art { height: 490px; }
  .hero h1 { font-size: clamp(44px,4.8vw,61px); }
  .hero__facts { gap: 13px; }
  .hero__facts > div { font-size: 8px; }
  .hero__fact-mark { padding: 6px; }
  .intro-strip__item { padding-inline: 18px; gap: 11px; }
  .intro-strip__icon { width: 44px; height: 44px; flex-basis: 44px; }
  .intro-strip__item strong { font-size: 13px; }
  .service-card { padding: 23px; }
  .about__grid { gap: 58px; }
  .gallery__grid { grid-template-columns: 1.15fr 1fr 1fr; }
}
@media (max-width: 900px) {
  .brand__symbol { font-size: 33px; }
  .brand__text strong { font-size: 18px; }
  .brand__text small { font-size: 7px; }
  .main-nav { gap: 13px; font-size: 12px; }
  .nav-cta { gap: 8px; padding: 13px 12px; }
  .hero__grid { min-height: 605px; }
  .hero__art { height: 430px; }
  .hero__lead { font-size: 15px; }
  .hero__facts { margin-top: 38px; }
  .art__top { top: 22px; left: 22px; right: 22px; }
  .art__top > span:last-child { display: none; }
  .intro-strip__item div > span { line-height: 1.5; }
  .section { padding: 92px 0; }
  .service-card h3 { font-size: 21px; }
  .equipment-card__body { padding-inline: 17px; }
  .equipment-card__action { margin-inline: -17px; padding-inline: 17px; }
  .equipment-card__visual { height: 190px; }
  .equipment-card h3 { font-size: 23px; }
  .equipment-card p { font-size: 13px; }
  .about__visual { height: 470px; }
  .gallery__tile { height: 275px; }
  .contact__grid { gap: 37px; }
  .contact__form-wrap { padding: 25px; }
}
@media (max-width: 800px) {
  html { scroll-padding-top: 75px; }
  .topbar__contacts a:first-child,.topbar__divider { display: none; }
  .header__inner { min-height: 76px; }
  .nav-toggle { display: flex; }
  .nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
  .main-nav { display: flex; flex-direction: column; align-items: stretch; gap: 0; position: absolute; z-index: 85; top: 76px; left: 0; right: 0; background: #0d1b26; padding: 15px 28px 30px; box-shadow: 0 21px 30px #07111c90; border-top: 1px solid #2d4351; transform: translateY(-15px); opacity: 0; visibility: hidden; pointer-events: none; transition: transform .22s, opacity .22s, visibility .22s; }
  .main-nav.is-open { transform: translateY(0); opacity: 1; visibility: visible; pointer-events: auto; }
  .main-nav a:not(.nav-cta) { border-bottom: 1px solid #2b4652; padding: 18px 0; font-size: 16px; }
  .nav-cta { margin: 20px 0 0; padding: 17px 20px; display: flex; justify-content: space-between; font-size: 15px; }
  .hero__grid { grid-template-columns: 1fr; padding-top: 73px; padding-bottom: 67px; gap: 47px; }
  .hero__copy { padding-top: 0; }
  .hero h1 { font-size: clamp(47px,8vw,75px); max-width: 660px; }
  .hero__lead { font-size: 17px; max-width: 610px; }
  .hero__facts { margin-top: 38px; gap: 25px; }
  .hero__facts > div { font-size: 9px; }
  .hero__art { height: 460px; max-width: 700px; }
  .pylon-art { height: 110%; bottom: -7%; }
  .intro-strip__grid { grid-template-columns: 1fr; }
  .intro-strip__item,.intro-strip__item:first-child,.intro-strip__item:last-child { border-left: 0; border-bottom: 1px solid #d6e0e5; padding: 20px 0; }
  .intro-strip__item:last-child { border-bottom: 0; }
  .intro-strip__item strong { font-size: 14px; }
  .intro-strip__item div > span { font-size: 12px; }
  .section-heading--split { align-items: flex-start; flex-direction: column; gap: 17px; }
  .section-heading--split > p { max-width: 600px; }
  .service-grid { grid-template-columns: 1fr 1fr; }
  .service-card { min-height: 408px; }
  .service-card:last-child { grid-column: 1 / -1; min-height: 360px; }
  .service-card:last-child .service-card__icon { margin-top: 24px; }
  .equipment-grid { grid-template-columns: 1fr 1fr; }
  .equipment-card:last-child { grid-column: 1 / -1; }
  .equipment-card:last-child .equipment-card__visual { height: 230px; }
  .equipment-card__visual { height: 230px; }
  .about__grid { grid-template-columns: 1fr; gap: 45px; }
  .about__visual { height: 480px; max-width: 650px; width: 100%; }
  .about__monogram { font-size: 210px; }
  .about__copy { max-width: 650px; }
  .gallery__grid { grid-template-columns: 1fr 1fr; }
  .gallery__tile--wide { grid-column: 1 / -1; }
  .contact__grid { grid-template-columns: 1fr; gap: 45px; }
  .contact__copy > p:not(.eyebrow) { max-width: 590px; }
  .contact__methods { max-width: 650px; }
  .contact__form-wrap { max-width: 710px; padding: 35px; }
  .footer__upper { flex-direction: column; }
  .footer__links { justify-content: flex-start; }
}
@media (max-width: 540px) {
  .container { width: calc(100% - 36px); }
  .topbar { font-size: 9px; }
  .topbar__inner { min-height: 36px; }
  .topbar__contacts { font-size: 10px; }
  .brand { gap: 9px; }
  .brand__symbol { font-size: 30px; }
  .brand__text { padding-left: 10px; gap: 4px; }
  .brand__text strong { font-size: 17px; letter-spacing: .11em; }
  .brand__text small { font-size: 6px; letter-spacing: .17em; }
  .nav-toggle { width: 42px; height: 40px; padding: 10px; }
  .hero__grid { padding-top: 55px; padding-bottom: 57px; gap: 35px; }
  .hero h1 { font-size: clamp(42px,11.2vw,60px); }
  .eyebrow { font-size: 9px; letter-spacing: .11em; margin-bottom: 20px; gap: 9px; }
  .eyebrow__line { flex-basis: 20px; width: 20px; }
  .hero__lead { font-size: 15px; line-height: 1.75; margin-top: 24px; }
  .hero__buttons { align-items: stretch; }
  .hero__buttons .btn { flex: 1 1 auto; min-width: 145px; padding: 14px 14px; font-size: 12px; gap: 10px; }
  .hero__facts { margin-top: 30px; gap: 13px; }
  .hero__facts > div { font-size: 8px; }
  .hero__fact-mark { font-size: 9px; }
  .hero__art { height: 365px; }
  .art__top { left: 19px; right: 19px; top: 22px; }
  .art__note { left: 18px; bottom: 20px; }
  .art__note-marker { width: 30px; height: 30px; font-size: 17px; }
  .art__note strong { font-size: 10px; }
  .art__note small { font-size: 7px; }
  .art__index { right: 19px; bottom: 23px; font-size: 18px; }
  .hero__bottomline { font-size: 7px; }
  .section { padding: 77px 0; }
  .section-heading { margin-bottom: 33px; }
  .section-heading h2,.about__copy h2 { font-size: 40px; }
  .section-heading--split > p { font-size: 14px; }
  .service-grid,.equipment-grid { grid-template-columns: 1fr; gap: 14px; }
  .service-card,.service-card:last-child { min-height: 365px; grid-column: auto; padding: 25px; }
  .service-card__icon { margin-top: 23px; width: 95px; height: 95px; }
  .service-card__icon svg { width: 63px; height: 63px; }
  .service-card__content { margin-top: 11px; }
  .service-card h3 { font-size: 22px; }
  .additional { padding: 20px; flex-direction: column; align-items: flex-start; }
  .additional__lead { align-items: flex-start; }
  .equipment-card:last-child { grid-column: auto; }
  .equipment-card__visual,.equipment-card:last-child .equipment-card__visual { height: 224px; }
  .equipment__note { flex-direction: column; align-items: flex-start; gap: 12px; padding: 21px; }
  .equipment__note > div { align-items: flex-start; }
  .about__visual { height: 365px; border-width: 8px; }
  .about__monogram { font-size: 150px; }
  .about__visual-footer { left: 14px; right: 14px; bottom: 15px; font-size: 8px; }
  .about__visual-tag { left: 14px; top: 16px; font-size: 8px; }
  .about__copy p.about__lead { font-size: 16px; }
  .gallery__grid { grid-template-columns: 1fr; }
  .gallery__tile--wide { grid-column: auto; }
  .gallery__tile { height: 242px; }
  .contact__copy h2 { font-size: 44px; }
  .contact__form-wrap { padding: 24px 18px; }
  .contact__form-wrap h3 { font-size: 25px; }
  .form-row { grid-template-columns: 1fr; gap: 17px; }
  .form-bottom { flex-direction: column; align-items: stretch; }
  .form-bottom > p { max-width: none; }
  .btn--dark { align-self: flex-start; }
  .footer__upper { padding: 62px 0 48px; }
  .footer__links { flex-wrap: wrap; gap: 45px; }
  .footer__bottom { padding: 23px 0; align-items: flex-start; flex-direction: column; gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
/* Keep contact content within narrow 320 px screens. */
@media (max-width: 540px) {
  .contact__grid { grid-template-columns: minmax(0,1fr); }
  .contact__copy,.contact__form-wrap { min-width: 0; }
  .btn--dark { white-space: normal; }
}
@media (max-width: 360px) {
  .contact__copy h2 { font-size: 39px; }
}

/* OVH version 2: direct PHP form, privacy page and anti-spam field */
.form-trap { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.form-bottom a { text-decoration: underline; text-underline-offset: 2px; }
#contact-form button:disabled { opacity: .56; cursor: wait; }
.form-status.is-success { color: #126147; }
.form-status.is-error { color: #9d3427; }
.footer__utility { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; }
.privacy-page { background: #eef5f7; min-height: 75vh; padding: clamp(70px,10vw,130px) 0; }
.privacy-card { background: white; max-width: 900px; margin: 0 auto; padding: clamp(26px,6vw,74px); border: 1px solid #d3e4e9; }
.privacy-card h1 { font-size: clamp(34px,4vw,53px); letter-spacing: -.045em; margin: 20px 0; }
.privacy-card h2 { font-size: 20px; margin: 36px 0 12px; }
.privacy-card p,.privacy-card li { color: #45606e; font-size: 15px; line-height: 1.82; }
.privacy-card li { margin-bottom: 9px; }
.privacy-card a { color: #1b788f; text-decoration: underline; }
.privacy-card .privacy-back { margin-top: 32px; display: inline-block; font-weight: 800; }

/* V4: whole-card native links (mouse, touch, keyboard and screen reader). */
.service-card,.equipment-card,.additional { cursor: pointer; }
.service-card:focus-visible,.equipment-card:focus-visible,.additional:focus-visible {
  outline: 3px solid #53b8d6;
  outline-offset: 3px;
}
@media (hover: none) {
  .service-card:hover,.equipment-card:hover,.additional:hover { transform: none; }
  .equipment-card:hover .equipment-card__visual img { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .service-card:hover,.service-card:focus-visible,
  .equipment-card:hover,.equipment-card:focus-visible,
  .additional:hover,.additional:focus-visible,
  .equipment-card:hover .equipment-card__visual img,
  .service-card:hover .service-card__top > span:last-child,
  .service-card:focus-visible .service-card__top > span:last-child,
  .equipment-card:hover .equipment-card__action span,
  .equipment-card:focus-visible .equipment-card__action span { transform: none !important; }
}
