/* Public UX hotfix 2: clean catalog controls, shared contact modal and restrained hero motion. */

/* Catalog select: remove the browser arrow and draw one that matches Alex:PC. */
#sort.select {
  -webkit-appearance: none;
  appearance: none;
  padding-right: 42px !important;
  background-color: #22282B !important;
  background-image:
    linear-gradient(45deg,transparent 50%,#91A0A7 50%),
    linear-gradient(135deg,#91A0A7 50%,transparent 50%);
  background-position:
    calc(100% - 18px) 50%,
    calc(100% - 13px) 50%;
  background-size: 5px 5px,5px 5px;
  background-repeat: no-repeat;
}

#sort.select:focus {
  background-image:
    linear-gradient(45deg,transparent 50%,#79B9E5 50%),
    linear-gradient(135deg,#79B9E5 50%,transparent 50%);
}

/* Price fields: browser number spinners are visually noisy and unnecessary here. */
#min,
#max {
  -moz-appearance: textfield;
  appearance: textfield;
}

#min::-webkit-outer-spin-button,
#min::-webkit-inner-spin-button,
#max::-webkit-outer-spin-button,
#max::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Catalog question CTA is an anchor, so center it like the adjacent button. */
#contact-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100%;
  min-height: 48px;
  line-height: 1.2;
}

/* Hero: original ring geometry, now with a restrained neon treatment. */
.hero-main::before {
  content: "" !important;
  position: absolute !important;
  width: 260px !important;
  height: 260px !important;
  right: -124px !important;
  top: -134px !important;
  border: 0 !important;
  border-radius: 50% !important;
  background:
    radial-gradient(circle,
      rgba(61,148,209,.13) 0%,
      rgba(75,71,151,.08) 36%,
      rgba(61,148,209,.035) 56%,
      transparent 73%) !important;
  box-shadow: none !important;
  opacity: .72 !important;
  pointer-events: none !important;
  transform: scale(1) !important;
  animation: alexpc-hero-orb-glow 6.4s ease-in-out infinite !important;
}

.hero-main::after {
  content: "" !important;
  position: absolute !important;
  width: 330px !important;
  height: 330px !important;
  right: -160px !important;
  top: -170px !important;
  border: 0 !important;
  border-radius: 50% !important;
  clip-path: none !important;
  background: conic-gradient(
    from 212deg,
    rgba(61,148,209,.28) 0deg,
    #4aa9e8 58deg,
    #6a72d7 132deg,
    #6155c2 204deg,
    #3d94d1 292deg,
    rgba(61,148,209,.28) 360deg
  ) !important;
  -webkit-mask: radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3px)) !important;
  mask: radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3px)) !important;
  box-shadow: none !important;
  filter:
    drop-shadow(0 0 5px rgba(61,148,209,.42))
    drop-shadow(0 0 13px rgba(75,71,151,.22)) !important;
  opacity: .88 !important;
  pointer-events: none !important;
  transform: scale(1) !important;
  animation: alexpc-hero-orb-neon 6.4s ease-in-out infinite !important;
}

@keyframes alexpc-hero-orb-neon {
  0%,100% {
    transform: scale(1);
    opacity: .78;
    filter: drop-shadow(0 0 5px rgba(61,148,209,.34)) drop-shadow(0 0 12px rgba(75,71,151,.18)) hue-rotate(0deg);
  }
  50% {
    transform: scale(1.018);
    opacity: .98;
    filter: drop-shadow(0 0 8px rgba(61,148,209,.56)) drop-shadow(0 0 19px rgba(75,71,151,.30)) hue-rotate(10deg);
  }
}

@keyframes alexpc-hero-orb-glow {
  0%,100% { transform: scale(.97); opacity: .48; }
  50% { transform: scale(1.045); opacity: .78; }
}

@media (hover:hover) and (pointer:fine) {
  .hero-main:hover::before,
  .hero-main:hover::after {
    animation-play-state: running !important;
  }
}

/* Shared contact modal. */
.alexpc-contact-modal {
  position: fixed;
  inset: 0;
  z-index: 240;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(8,11,13,.76);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.alexpc-contact-modal.is-open { display: flex; }

.alexpc-contact-dialog {
  width: min(520px,100%);
  border: 1px solid #30393D;
  border-radius: 22px;
  background: #202629;
  box-shadow: 0 32px 90px rgba(0,0,0,.4);
  overflow: hidden;
}

.alexpc-contact-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 22px 16px;
  border-bottom: 1px solid #30393D;
}

.alexpc-contact-head h2 {
  margin: 0 0 5px;
  font-size: 27px;
  line-height: 1.05;
  letter-spacing: -.035em;
}

.alexpc-contact-head p {
  margin: 0;
  color: #A8B2B7;
  font-size: 13px;
  line-height: 1.5;
}

.alexpc-contact-close {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  border: 1px solid #364044;
  border-radius: 11px;
  background: #252C30;
  color: #fff;
  font: inherit;
  font-size: 20px;
  cursor: pointer;
}

.alexpc-contact-form {
  display: grid;
  gap: 11px;
  padding: 20px 22px 22px;
}

.alexpc-contact-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
}

.alexpc-contact-field,
.alexpc-contact-message {
  width: 100%;
  border: 1px solid #323B3F;
  border-radius: 12px;
  background: #1A1F22;
  color: #fff;
  outline: none;
  font: inherit;
  font-size: 14px;
}

.alexpc-contact-field { min-height: 48px; padding: 0 13px; }
.alexpc-contact-message { min-height: 108px; padding: 12px 13px; resize: vertical; }

.alexpc-contact-field:focus,
.alexpc-contact-message:focus {
  border-color: #476D88;
  box-shadow: 0 0 0 3px rgba(61,148,209,.09);
}

.alexpc-contact-consent {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  color: #9FA9AE;
  font-size: 12px;
  line-height: 1.45;
}

.alexpc-contact-consent input { margin-top: 3px; }
.alexpc-contact-consent a { color: #B9DCF5; text-decoration: underline; text-underline-offset: 2px; }

.alexpc-contact-submit {
  min-height: 49px;
  border: 0;
  border-radius: 13px;
  background: linear-gradient(135deg,#3D94D1,#4B4797);
  color: #fff;
  font: inherit;
  font-size: 14px;
  font-weight: 850;
  cursor: pointer;
}

.alexpc-contact-submit:disabled { opacity: .55; cursor: wait; }
.alexpc-contact-status { min-height: 19px; color: #A8B2B7; font-size: 12px; }
.alexpc-contact-status.is-ok { color: #8FCBFF; }
.alexpc-contact-status.is-error { color: #FFAAA8; }

body.alexpc-contact-open { overflow: hidden; }

@media (max-width: 560px) {
  .hero-main::before {
    width: 190px !important;
    height: 190px !important;
    right: -98px !important;
    top: -108px !important;
  }

  .hero-main::after {
    width: 245px !important;
    height: 245px !important;
    right: -126px !important;
    top: -132px !important;
    opacity: .76 !important;
  }

  .alexpc-contact-modal { padding: 10px; align-items: flex-end; }
  .alexpc-contact-dialog { border-radius: 20px 20px 12px 12px; }
  .alexpc-contact-row { grid-template-columns: 1fr; }
  .alexpc-contact-head { padding: 19px 17px 14px; }
  .alexpc-contact-form { padding: 17px; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-main::before,
  .hero-main::after {
    animation: none !important;
    transform: none !important;
  }
}

/* Canonical Alex:PC header branding. The server renders the mark directly;
   disable the legacy pseudo-logo and pin the real mark against generic img rules. */
.alexpc-public-logo::before {
  display: none !important;
  content: none !important;
  width: 0 !important;
  height: 0 !important;
  flex: 0 0 0 !important;
  background: none !important;
  box-shadow: none !important;
}

.alexpc-public-logo {
  display: inline-flex !important;
  align-items: center !important;
  gap: 9px !important;
  line-height: 1 !important;
  text-decoration: none !important;
}

.alexpc-public-logo .alexpc-brand-mark {
  display: block !important;
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  max-width: 34px !important;
  min-height: 34px !important;
  max-height: 34px !important;
  flex: 0 0 34px !important;
  object-fit: contain !important;
  border-radius: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.alexpc-brand-word {
  display: inline-flex !important;
  align-items: baseline !important;
  color: #E7DFD2 !important;
  font-size: 22px !important;
  font-weight: 950 !important;
  line-height: 1 !important;
  letter-spacing: -.045em !important;
  white-space: nowrap !important;
}

.alexpc-brand-word > span {
  color: #3D94D1 !important;
}

.alexpc-brand-word > b {
  font: inherit !important;
  font-weight: 950 !important;
  background: linear-gradient(135deg,#3D94D1,#4B4797) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  color: transparent !important;
}

@media (max-width: 820px) {
  .alexpc-public-logo .alexpc-brand-mark {
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    max-width: 30px !important;
    min-height: 30px !important;
    max-height: 30px !important;
    flex-basis: 30px !important;
  }
  .alexpc-brand-word { font-size: 20px !important; }
}
