/* Отправка и подтверждение — одна сцена с карточкой заявки. */
.product-page .request-card {
  background: radial-gradient(ellipse 260px 240px at 50% 50%, #d7f94b12, transparent), #000;
}
.product-page .request-copy { background: transparent; }
.product-page .request-card > [hidden],
.request-feedback [hidden] { display: none !important; }
.product-page .request-card[data-request-state="sending"],
.product-page .request-card[data-request-state="success"] {
  display: block;
  background: #000;
}
.request-feedback {
  position: relative;
  isolation: isolate;
  display: flex;
  min-height: 570px;
  padding: 44px 28px 40px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  animation: requestSceneIn .45s cubic-bezier(.16,1,.3,1) both;
}
.request-sculpture {
  position: relative;
  flex: 0 0 258px;
  width: 310px;
  perspective: 800px;
}
.request-halo {
  position: absolute;
  inset: -35px -20px;
  z-index: -1;
  background: radial-gradient(ellipse, #d7f94b30, #d7f94b0e 38%, transparent 68%);
  opacity: .6;
  transition: opacity .8s ease, transform .8s ease;
}
.request-ticket {
  position: absolute;
  width: 188px;
  height: 218px;
  top: 9px;
  left: 56px;
  padding: 23px 21px;
  border: 1px solid #4a4a4a;
  border-radius: 26px;
  background: linear-gradient(140deg, #343434, #1c1c1c 50%, #101010);
  box-shadow: 1px 2px 0 #505050, 3px 5px 0 #252525, 6px 8px 0 #141414, 16px 28px 38px #0008, inset 0 1px 0 #ffffff20;
  transform: rotateX(10deg) rotateY(-16deg) rotateZ(-9deg);
  transition: transform .75s cubic-bezier(.16,1,.3,1);
}
.request-ticket-brand { display: flex; align-items: center; gap: 8px; color: #f4f6ef; font-size: 18px; font-weight: 750; letter-spacing: -.6px; }
.request-ticket-brand svg { width: 25px; height: 29px; color: var(--lime); }
.request-ticket-brand i { color: var(--lime); font-style: normal; }
.request-ticket-lines { display: grid; gap: 10px; margin-top: 29px; }
.request-ticket-lines i { height: 7px; border-radius: 5px; background: #555; }
.request-ticket-lines i:nth-child(2) { width: 80%; background: #404040; }
.request-ticket-lines i:nth-child(3) { width: 57%; background: #333; }
.request-ticket-footer { display: flex; align-items: center; justify-content: space-between; margin-top: 25px; padding-top: 15px; border-top: 1px solid #ffffff12; }
.request-ticket-footer span:first-child { width: 42px; height: 9px; border-radius: 4px; background: #d7f94b; }
.request-ticket-footer span:last-child { width: 22px; height: 9px; border-radius: 4px; background: #555; }
.request-seal {
  position: absolute;
  width: 96px;
  height: 96px;
  top: 139px;
  right: 27px;
  display: grid;
  place-items: center;
  border-radius: 30px;
  border: 1px solid #eaff8f;
  background: linear-gradient(140deg, #f1ffa7, #d7f94b 47%, #a6c32b);
  box-shadow: 2px 3px 0 #839e1c, 4px 6px 0 #526716, 6px 10px 0 #2b3710, 10px 19px 25px #0006, inset 1px 1px 2px #ffffdf;
  opacity: 0;
  transform: translateY(36px) scale(.65) rotate(-18deg);
}
.request-seal svg { width: 60px; height: 60px; fill: none; stroke: #182006; stroke-width: 7; stroke-linecap: round; stroke-linejoin: round; }
.request-seal path { stroke-dasharray: 50; stroke-dashoffset: 50; }
.request-spark { position: absolute; width: 10px; height: 10px; background: var(--lime); border-radius: 3px; opacity: 0; }
.request-spark-one { left: 17px; top: 170px; --spark-angle: -18deg; }
.request-spark-two { right: 35px; top: 33px; width: 7px; height: 7px; --spark-angle: 22deg; }
.request-spark-three { right: 6px; top: 111px; width: 5px; height: 5px; --spark-angle: 12deg; }
.request-feedback-copy { position: relative; max-width: 380px; }
.request-feedback-copy h2 { margin: 10px 0 14px; font-size: clamp(28px, 4vw, 38px); line-height: 1.12; letter-spacing: -1.2px; }
.request-feedback-copy h2:focus { outline: none; }
.request-feedback-copy p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.65; min-height: 50px; }
.request-feedback-action { display: grid; place-items: center; min-height: 48px; margin-top: 26px; }
.request-feedback-action .btn { min-width: 184px; padding: 14px 30px; }
.request-transfer { display: flex; align-items: center; gap: 6px; height: 48px; }
.request-transfer i { display: block; width: 26px; height: 7px; border-radius: 3px; background: var(--lime); animation: requestTransfer 1.1s ease-in-out infinite; }
.request-transfer i:nth-child(2) { animation-delay: .13s; }
.request-transfer i:nth-child(3) { animation-delay: .26s; }
[data-request-state="sending"] .request-ticket { animation: requestTransit 1.8s ease-in-out infinite; }
[data-request-state="success"] .request-transfer { display: none; }
[data-request-state="success"] .request-ticket { transform: translateX(-9px) rotateX(5deg) rotateY(-10deg) rotateZ(-12deg); }
[data-request-state="success"] .request-halo { opacity: 1; transform: scale(1.12); }
[data-request-state="success"] .request-seal { animation: requestSealIn .65s cubic-bezier(.16,1,.3,1) both; }
[data-request-state="success"] .request-seal path { animation: requestCheck .4s .18s ease both; }
[data-request-state="success"] .request-spark { animation: requestSparkIn .7s .1s cubic-bezier(.16,1,.3,1) both; }
[data-request-state="success"] .request-feedback-copy,
[data-request-state="success"] .request-feedback-action { animation: requestSceneIn .45s .06s ease both; }
.modal:not(.open) .request-feedback * { animation-play-state: paused; }
@keyframes requestSceneIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes requestTransit { 0%,100% { transform: translateY(0) rotateX(10deg) rotateY(-16deg) rotateZ(-9deg); } 50% { transform: translateY(-9px) rotateX(7deg) rotateY(-10deg) rotateZ(-6deg); } }
@keyframes requestTransfer { 0%,80%,100% { opacity: .22; transform: scaleX(.8); } 35% { opacity: 1; transform: scaleX(1); } }
@keyframes requestSealIn { to { opacity: 1; transform: translateY(0) scale(1) rotate(7deg); } }
@keyframes requestCheck { to { stroke-dashoffset: 0; } }
@keyframes requestSparkIn { to { opacity: .8; transform: translateY(-10px) rotate(var(--spark-angle)); } }
@media (max-width: 520px) {
  .request-feedback { min-height: 520px; padding: 42px 20px 30px; }
  .request-sculpture { width: 280px; flex-basis: 248px; transform: scale(.9); }
  .request-ticket { left: 40px; }
  .request-seal { right: 12px; }
  .request-feedback-copy p { font-size: 14px; }
}
@media (max-height: 600px) and (min-width: 521px) {
  .request-feedback { min-height: 390px; padding: 24px; }
  .request-sculpture { flex-basis: 175px; transform: scale(.68); transform-origin: center top; }
  .request-feedback-action { margin-top: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .request-feedback, .request-feedback * { animation: none !important; transition: none !important; }
  [data-request-state="success"] .request-seal { opacity: 1; transform: rotate(7deg); }
  [data-request-state="success"] .request-seal path { stroke-dashoffset: 0; }
  [data-request-state="success"] .request-spark { opacity: .8; }
  .request-transfer i { opacity: 1; }
}
