* {
  box-sizing: border-box
}
html {
  scroll-behavior: smooth
}
body {
  margin: 0;
  background: #122C39;
  color: #F2F6F7;
  font: 18px/1.5 "JetBrains Mono",sans-serif
}
a {
  color: inherit;
  text-decoration: none
}
button,input,textarea {
  font: inherit
}
button,a,input,textarea,summary {
  outline-offset: 5px
}
header {
  padding: 28px 5%;
  display: flex;
  justify-content: space-between;
  gap: 30px;
  align-items: center;
  border-bottom: 1px solid #567986
}
.brand {
  font: 700 23px Play;
  display: flex;
  gap: 13px;
  align-items: center
}
.brand-ring {
  width: 32px;
  height: 32px;
  border: 7px solid #F3A66D;
  border-radius: 50%;
  display: inline-block
}
nav {
  display: flex;
  gap: 30px;
  font-size: 15px
}
.contact-link {
  font-size: 15px;
  border-bottom: 1px solid #F3A66D
}
.hero {
  min-height: 755px;
  padding: 70px 7% 100px;
  position: relative;
  overflow: hidden
}
.hero-copy {
  position: relative;
  z-index: 2;
  max-width: 630px
}
.hero-copy>p {
  font-size: 18px;
  color: #A9C2CB
}
.hero h1 {
  font: 400 74px/1.08 Play;
  letter-spacing: -3px;
  margin: 25px 0
}
.button {
  display: inline-block;
  background: #F3A66D;
  color: #122C39;
  padding: 16px 24px;
  margin-top: 20px;
  font-weight: 700
}
.pipe-object {
  position: absolute;
  right: 1%;
  top: 80px;
  width: 610px;
  height: 510px;
  transform: rotate(-15deg)
}
.pipe-back {
  position: absolute;
  width: 390px;
  height: 450px;
  left: 190px;
  top: 0;
  background: linear-gradient(90deg,#293F4A,#698590 50%,#233C48);
  border-radius: 50%
}
.pipe-end {
  position: absolute;
  width: 390px;
  height: 450px;
  left: 50px;
  top: 45px;
  border-radius: 50%;
  background: linear-gradient(110deg,#BED0D8,#6F8994 50%,#45636F);
  padding: 38px;
  box-shadow: inset 5px 5px 0 #D4E1E7
}
.pipe-core {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: radial-gradient(ellipse at 75% 50%,#091C26 35%,#233D49 70%,#526F7B);
  box-shadow: inset 15px 0 14px #06131B
}
.pipe-end:after {
  content: "";
  position: absolute;
  inset: 15px;
  border: 1px solid #D3E0E633;
  border-radius: 50%
}
.wall-label,.flow-label {
  position: absolute;
  transform: rotate(15deg);
  font-size: 15px;
  background: #122C39;
  padding: 5px 10px;
  border-left: 2px solid #F3A66D
}
.wall-label {
  left: 90px;
  bottom: 0
}
.flow-label {
  right: 0;
  top: 200px
}
.hero-bottom {
  display: flex;
  gap: 45px;
  position: absolute;
  bottom: 32px;
  left: 7%;
  right: 7%;
  border-top: 1px solid #567986;
  padding-top: 20px;
  font-size: 16px;
  color: #A9C2CB
}
section:not(.hero) {
  padding: 85px 7%
}
h2 {
  font: 400 45px/1.15 Play;
  letter-spacing: -1px;
  margin: 0 0 32px
}
h3 {
  font: 400 27px/1.2 Play;
  margin: 0 0 12px
}
.products {
  background: #F2F6F7;
  color: #122C39
}
.product-heading {
  display: flex;
  justify-content: space-between;
  gap: 50px
}
.product-heading p {
  max-width: 350px
}
.product-display {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 85px;
  align-items: center
}
.pipe-lines {
  display: grid;
  gap: 38px;
  padding: 30px 0 50px
}
.pipe-lines>div {
  position: relative;
  width: 90%;
  height: 65px;
  border-radius: 5px 35px 35px 5px;
  background: linear-gradient(#7895A3,#253F4D 45%,#395462 75%,#708F9E);
  border-left: 20px solid #122C39
}
.pipe-lines>div:after {
  content: "";
  position: absolute;
  right: -2px;
  top: 0;
  width: 32px;
  height: 65px;
  border-radius: 50%;
  border: 8px solid #6D8894;
  background: #122C39
}
.pipe-lines .corrugated {
  height: 75px;
  width: 80%;
  background: repeating-linear-gradient(90deg,#3B5968 0 7px,#8098A4 8px 13px,#243F4E 14px 20px)
}
.pipe-lines .corrugated:after {
  height: 75px
}
.pipe-lines .fitting {
  width: 55%;
  height: 85px
}
.pipe-lines .fitting:after {
  height: 85px
}
.pipe-lines span {
  position: absolute;
  bottom: -25px;
  left: 0;
  font-size: 14px;
  white-space: nowrap
}
.spec-list article {
  margin: 25px 0;
  padding-left: 20px;
  border-left: 3px solid #F3A66D
}
.spec-list p {
  margin: 0;
  font-size: 17px
}
.application {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 25px 70px
}
.application h2 {
  grid-row: 1/3
}
.media {
  display: flex;
  flex-wrap: wrap;
  gap: 10px
}
.media button {
  border: 1px solid #567986;
  color: #F2F6F7;
  background: transparent;
  padding: 12px 15px;
  cursor: pointer;
  font-size: 16px
}
.media button[aria-pressed=true] {
  background: #F3A66D;
  color: #122C39;
  border-color: #F3A66D
}
.application-result b {
  font-size: 24px
}
.application-result p {
  color: #A9C2CB
}
.joint {
  background: #203E4C
}
.joint-view {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 30px 0 45px
}
.joint-left,.joint-right {
  width: 35%;
  height: 72px;
  background: linear-gradient(#8DA6B0,#344E5B,#6B8794)
}
.coupling {
  width: 20%;
  height: 110px;
  background: repeating-linear-gradient(90deg,#738F9D 0 20px,#A3B7C0 21px 25px);
  border-radius: 10px;
  border: 8px solid #45626F
}
.joint-notes {
  display: flex;
  gap: 50px
}
.joint-notes p {
  flex: 1
}
.joint-notes b {
  font: 400 24px Play;
  display: block;
  margin-bottom: 12px
}
.joint-notes span {
  color: #C6D6DE;
  font-size: 17px
}
.work ol {
  list-style-position: inside;
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 40px;
  padding: 0
}
.work li::marker {
  color: #F3A66D
}
.work b {
  font: 400 23px Play;
  display: block;
  margin-top: 18px
}
.work p {
  font-size: 16px;
  color: #A9C2CB
}
.documents {
  background: #F2F6F7;
  color: #122C39
}
.note {
  font-size: 14px;
  color: #45626F
}
.doc-sleeves {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px
}
details {
  padding: 25px 0;
  border-top: 1px solid #A9C2CB
}
summary {
  font-size: 22px;
  cursor: pointer
}
details p {
  font-size: 17px
}
.contact {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 90px
}
.contact p {
  max-width: 440px;
  color: #A9C2CB
}
.contact a {
  overflow-wrap: anywhere;
  color: #F2F6F7
}
form {
  display: grid;
  gap: 16px
}
label {
  display: grid;
  gap: 5px
}
input,textarea {
  width: 100%;
  border: 1px solid #567986;
  border-radius: 0;
  background: #1B3745;
  color: white;
  padding: 12px
}
.consent {
  display: flex;
  gap: 10px;
  font-size: 14px
}
.consent input {
  width: 20px;
  height: 20px;
  flex: none
}
form button {
  padding: 17px;
  background: #F3A66D;
  color: #122C39;
  border: 0;
  font-weight: 700;
  cursor: pointer
}
.contact [role=status] {
  margin: 0;
  font-size: 15px;
  color: #F2F6F7
}
footer {
  padding: 35px 5%;
  border-top: 1px solid #567986;
  display: flex;
  justify-content: space-between;
  gap: 25px;
  font-size: 14px
}
footer>a:first-child {
  font: 400 22px Play
}
footer div {
  display: flex;
  gap: 20px
}
@media(max-width:850px) {
  header {
    padding: 22px 6%;
    flex-wrap: wrap;
    gap: 18px
  }
  .brand {
    font-size: 20px
  }
  .brand-ring {
    width: 26px;
    height: 26px;
    border-width: 6px
  }
  nav {
    order: 3;
    width: 100%;
    gap: 25px;
    font-size: 14px
  }
  .contact-link {
    display: none
  }
  .hero {
    min-height: 825px;
    padding: 25px 6% 80px
  }
  .hero h1 {
    font-size: 46px;
    letter-spacing: -2px;
    margin: 18px 0
  }
  .hero-copy>p {
    font-size: 16px
  }
  .hero-copy>p br {
    display: none
  }
  .hero .button {
    font-size: 16px;
    margin-top: 12px
  }
  .pipe-object {
    width: 400px;
    height: 320px;
    right: -50px;
    top: 450px;
    transform: rotate(-15deg) scale(.62);
    transform-origin: top left
  }
  .hero-bottom {
    font-size: 14px;
    gap: 15px;
    flex-wrap: wrap;
    bottom: 20px
  }
  .wall-label,.flow-label {
    font-size: 23px
  }
  .wall-label {
    bottom: -190px
  }
  .flow-label {
    right: -170px;
    top: 220px
  }
  section:not(.hero) {
    padding: 60px 6%
  }
  h2 {
    font-size: 32px
  }
  .product-heading {
    display: block
  }
  .product-heading p {
    margin-bottom: 30px
  }
  .product-display {
    grid-template-columns: 1fr;
    gap: 20px
  }
  .pipe-lines {
    padding-top: 10px;
    gap: 45px
  }
  .spec-list h3 {
    font-size: 25px
  }
  .application {
    grid-template-columns: 1fr;
    gap: 20px
  }
  .application h2 {
    grid-row: auto
  }
  .media button {
    font-size: 15px
  }
  .joint-notes {
    display: block
  }
  .joint-view {
    padding: 10px 0 20px
  }
  .joint-left,.joint-right {
    height: 45px
  }
  .coupling {
    height: 75px;
    border-width: 5px
  }
  .work ol {
    grid-template-columns: 1fr 1fr;
    gap: 25px
  }
  .doc-sleeves,.contact {
    grid-template-columns: 1fr;
    gap: 25px
  }
  .contact a {
    font-size: 16px
  }
  footer {
    flex-direction: column
  }
  footer div {
    flex-wrap: wrap
  }
}
@media(max-width:360px) {
  .hero h1 {
    font-size: 39px
  }
  .pipe-object {
    top: 430px
  }
  .hero {
    min-height: 820px
  }
  .work ol {
    grid-template-columns: 1fr
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior: auto
  }
}
.work li {
  min-width: 0;
  overflow-wrap: anywhere
}
@media(max-width:850px) {
  .pipe-object {
    width: 610px;
    height: 510px;
    left: 50%;
    right: auto;
    top: 435px;
    transform: translateX(-50%) rotate(-15deg) scale(.52);
    transform-origin: top center
  }
  .wall-label,.flow-label {
    display: none
  }
}
@media(max-width:360px) {
  .pipe-object {
    top: 415px
  }
}



/* Task 12 */
header{flex-wrap:wrap;gap:18px}nav{flex-wrap:wrap;gap:22px}.brand{font-size:25px}.hero{overflow:visible}.pipe-object{right:5%;transform:none;width:540px}.flow-label,.wall-label{transform:none}.flow-label{right:8px;top:220px;max-width:210px}.hero-copy>p{font-family:"Play"}.hero h1{letter-spacing:-2px}
@media(max-width:850px){.hero{overflow:visible;min-height:0;padding:22px 6% 24px}.hero h1 br{display:none}.hero h1{margin:14px 0}.hero .button{padding:10px 16px;margin-top:6px}.hero-copy>p{font-size:15px;margin:10px 0}.hero-bottom{position:static;margin-top:24px;padding-top:14px}.pipe-object{position:relative;left:0;top:auto;margin-top:20px;transform:none;right:auto;width:100%;height:270px}.pipe-back{width:70%;height:240px;left:25%}.pipe-end{width:70%;height:240px;left:0;top:15px;padding:25px}.flow-label{display:block;right:0;top:160px;font-size:14px;max-width:180px}.wall-label{display:block;left:15px;bottom:0;font-size:14px}.hero h1{font-size:45px}.hero-copy{max-width:100%}}

/* Этап 15: самостоятельная фотоподача */
.hero{grid-template-columns:1fr 1.15fr;gap:30px;overflow:hidden}.visual-hero{margin:0;height:570px;overflow:hidden}.visual-hero img{width:100%;height:100%;object-fit:cover}.products .visual-process{grid-column:1/-1;margin:40px 0 0}.visual-process img{width:100%;height:360px;object-fit:cover}.joint .visual-detail{grid-column:1/-1;margin:30px 0 0}.visual-detail img{width:100%;height:380px;object-fit:cover}.technical-inset{grid-column:1/-1;width:100%;height:390px;position:relative;overflow:hidden}.technical-inset .pipe-object{position:relative;inset:auto;max-width:650px;width:90%;height:340px;margin:20px auto}.visual-hero img{animation:pipe-revolve 20s ease-in-out infinite alternate}@keyframes pipe-revolve{to{transform:scale(1.06) translateX(-1%)}}@media(max-width:850px){.hero{display:flex;flex-direction:column;padding:30px 6%;gap:20px}.hero h1{font-size:48px}.visual-hero{height:310px;width:100%}.hero-bottom{position:static;display:flex;flex-wrap:wrap}.visual-process img,.visual-detail img{height:250px}}
.visual-process,.visual-detail{min-width:0}.visual-process img,.visual-detail img{display:block;max-width:100%}figcaption{font-size:14px;line-height:1.5;margin-top:10px}.visual-disclosure{font-size:14px;line-height:1.6;padding:20px 6%;margin:0}.technical-inset svg{width:100%;display:block}.technical-inset{min-width:0}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important}.visual-hero img{transform:none!important}}

@media(min-width:851px){.hero{display:grid;align-items:center}.hero-bottom{grid-column:1/-1;position:static;margin-top:0}.hero h1{font-size:76px;line-height:1}.hero-copy p{font-size:20px}}

/* Самокритика 15, проход 1 */
@media(min-width:851px){.hero{padding-top:55px;padding-bottom:85px}.visual-hero{height:540px}}@media(max-width:850px){.visual-hero{height:255px}}@media(max-width:360px){.visual-hero{height:210px}.hero h1{font-size:38px}.hero-copy>p{font-size:14px}.hero-bottom{margin-top:5px;gap:8px}}
