#firmware_download,
#firmware_download main.content.firmwares {
  font-family: Roboto, Arial, sans-serif;
}

.review-layout:has(#firmware_download) {
  background-color: #f5f5f5;
  box-shadow: 0 0 0 100vmax #f5f5f5;
  clip-path: inset(0 -100vmax);
}

#firmware_download main.content.firmwares,
#firmware_download main.content.firmwares article,
#firmware_download main.content.firmwares section {
  margin: 0;
  padding: 0;
  background: none;
}

#firmware_download .container {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

/* Top */

#firmware_download .top-content .container {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

#firmware_download .top-content h1 {
  margin: 0;
  color: #121212;
  font-size: 40px;
  font-weight: 700;
  letter-spacing: -0.2px;
  line-height: 48px;
  text-align: center;
  text-transform: none;
}

#firmware_download .red-text {
  margin: 0;
  padding: 24px;
  background-color: #e0f2fe;
  border: 1px solid #e8e8e8;
  border-radius: 24px;
  color: #555;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
}

#firmware_download .red-text strong {
  font-weight: 400;
}

/* Select and release notes */

#firmware_download main.content.firmwares .firmware-content {
  margin-top: 24px;
}

#firmware_download .select-and-notes {
  display: flex;
  gap: 24px;
  align-items: flex-start;
  margin: 0;
  padding: 0;
  background: none;
}

#firmware_download .select-product,
#firmware_download .release-notes {
  box-sizing: border-box;
  margin: 0;
  padding: 28px;
  background-color: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 24px;
  box-shadow: none;
}

#firmware_download .select-product {
  display: flex;
  flex: 0 0 320px;
  flex-direction: column;
  gap: 24px;
  width: 320px;
  justify-content: flex-start;
}

/* Keep the model select on screen while the long release notes scroll.
   The legacy firmware-download.min.css stretches the card to the full row height
   and centres its content (align-self: stretch, justify-content: center), which
   leaves an empty gap above the select and makes sticky a no-op, so reset both.
   The offset clears the fixed site header (adjust if the header height changes). */
@media (min-width: 900px) {
  #firmware_download .select-product {
    position: sticky;
    top: 120px;
    align-self: flex-start;
  }
}

#firmware_download .select-product > *,
#firmware_download .download-button > * {
  margin-top: 0;
  margin-bottom: 0;
}

#firmware_download .select-wrapper {
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 100%;
  margin: 0;
  padding: 0;
}

#firmware_download .select-wrapper label {
  margin: 0;
  color: #121212;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.07px;
  line-height: 20px;
}

#firmware_download .select-wrapper select {
  width: 100%;
  height: 56px;
  padding: 16px 48px 16px 20px;
  appearance: none;
  background: #fff url("data:image/svg+xml,%3Csvg width=%2224%22 height=%2224%22 viewBox=%220 0 24 24%22 fill=%22none%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cg id=%22Icon / Chevron centered%22%3E%3Cpath id=%22Chevron%22 d=%22M6 9L12 15L18 9%22 stroke-width=%221.75%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 stroke=%22%23121212%22/%3E%3C/g%3E%3C/svg%3E") no-repeat right 16px center / 24px 24px;
  border: 1px solid #d4d4d4;
  border-radius: 16px;
  color: #555;
  font: inherit;
  font-size: 16px;
  line-height: 24px;
}

#firmware_download .select-product img {
  display: block;
  width: 100%;
  height: 183px;
  object-fit: contain;
}

#firmware_download .select-product p,
#firmware_download .download-button p {
  color: #555;
  font-size: 14px;
  letter-spacing: 0.07px;
  line-height: 20px;
  text-align: center;
}

#firmware_download .select-product p a,
#firmware_download .download-button p a {
  color: #0369a1;
  text-decoration: underline;
}

#firmware_download a.button-blue {
  display: flex;
  flex-direction: row-reverse;
  gap: 20px;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 100%;
  min-height: 52px;
  padding: 14px 16px;
  background-color: #38a2e7;
  border: 0;
  border-radius: 99px;
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.08px;
  line-height: 24px;
  text-align: center;
  text-decoration: none;
}

#firmware_download a.button-blue:not([disabled="true"]):hover {
  background-color: #3291cf;
}

#firmware_download a.button-blue[disabled="true"] {
  background-color: #e8e8e8;
  color: #555;
  pointer-events: none;
}

#firmware_download a.button-blue[disabled="true"] svg path {
  fill: #555;
}

#firmware_download .release-notes {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 24px;
  min-width: 0;
}

#firmware_download .release-notes h3 {
  margin: 0;
  color: #121212;
  font-size: 24px;
  font-weight: 500;
  line-height: 32px;
  text-align: left;
}

#firmware_download .release-notes h3 span {
  display: inline;
}

#firmware_download .release-new {
  margin: 0;
  padding: 0;
}

#firmware_download .release-new,
#firmware_download .features,
#firmware_download .features * {
  color: #555;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 24px;
}

#firmware_download .features p,
#firmware_download .features ul,
#firmware_download .features ol {
  margin: 0 0 24px;
}

#firmware_download .features > :last-child {
  margin-bottom: 0;
}

#firmware_download .features ul,
#firmware_download .features ol {
  padding-left: 24px;
}

#firmware_download .instruction-info {
  margin: 0;
  color: #555;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.18px;
  line-height: 16px;
}

/* Instructions */

#firmware_download .product-and-instructions {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin: 24px 0 0;
  padding: 0;
}

#firmware_download .product-and-instructions > h2 {
  margin: 0;
  color: #121212;
  font-size: 32px;
  font-weight: 500;
  line-height: 40px;
  text-align: center;
}

#firmware_download .product-and-instructions > img {
  display: block;
  width: 100%;
  height: 184px;
  object-fit: cover;
  border-radius: 24px;
}

#firmware_download .update-instructions {
  display: flex;
  flex-direction: column;
  gap: 24px;
  box-sizing: border-box;
  margin: 0;
  padding: 32px;
  background-color: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 24px;
  box-shadow: none;
  counter-reset: phase;
}

#firmware_download .update-instructions h3,
#firmware_download .update-instructions h5 {
  margin: 0;
  color: #121212;
  font-size: 24px;
  font-weight: 500;
  line-height: 32px;
  text-align: center;
}

#firmware_download .update-instructions h5 {
  font-size: 20px;
  line-height: 28px;
  text-transform: none;
}

#firmware_download .update-instructions > div:not(.contact):not(.download-button) {
  padding: 20px;
  background-color: #f5f5f5;
  border-radius: 16px;
  color: #555;
  font-size: 16px;
  line-height: 24px;
}

#firmware_download .update-instructions > div:not(.contact):not(.download-button) > :first-child {
  margin-top: 0;
}

#firmware_download .update-instructions > div:not(.contact):not(.download-button) > :last-child {
  margin-bottom: 0;
}

#firmware_download .update-instructions h4 {
  display: flex;
  gap: 12px;
  align-items: center;
  margin: 24px 0 16px;
  color: #121212;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.08px;
  line-height: 24px;
  text-transform: none;
  counter-increment: phase;
}

#firmware_download .update-instructions h4::before {
  display: flex;
  flex: 0 0 32px;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  background-color: #38a2e7;
  border-radius: 99px;
  color: #fff;
  content: counter(phase);
}

#firmware_download .update-instructions ul,
#firmware_download .update-instructions ol {
  margin: 0 0 16px;
  padding-left: 24px;
}

#firmware_download .update-instructions li {
  margin: 0 0 12px;
  list-style: none;
}

#firmware_download .update-instructions ol {
  list-style: none;
  counter-reset: step;
}

#firmware_download .update-instructions ol > li {
  counter-increment: step;
}

#firmware_download .update-instructions ol > li::before {
  content: counter(step) '. ';
}

#firmware_download .update-instructions ul > li::before {
  content: '\2022\00a0';
}

#firmware_download .update-instructions li:has(> u:first-child)::before {
  content: none;
}

#firmware_download .update-instructions ul,
#firmware_download .update-instructions ol {
  padding-left: 0;
}

#firmware_download .update-instructions p {
  margin: 0 0 16px;
}

#firmware_download .update-instructions p:has(> u:first-child),
#firmware_download .update-instructions li:has(> u:first-child) {
  padding: 12px;
  background-color: #fefce8;
  border-radius: 10px;
}

#firmware_download .update-instructions u {
  text-decoration: none;
}

#firmware_download .update-instructions p > u:first-child {
  display: block;
  margin-bottom: 8px;
}

#firmware_download .update-instructions .contact {
  display: flex;
  flex-direction: column;
  gap: 24px;
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 20px;
  background-color: #f5f5f5;
  border-radius: 16px;
  color: #555;
}

#firmware_download .update-instructions .contact p {
  margin: 0;
  color: #121212;
  font-size: 16px;
  line-height: 24px;
}

#firmware_download .contact-list {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}

#firmware_download .contact-list li {
  margin: 0;
  font-size: 16px;
  line-height: 24px;
}

#firmware_download .contact-list li {
  list-style: none;
}

#firmware_download .contact-list li::before {
  content: '\2022\00a0';
}

#firmware_download .contact-list a {
  color: #0369a1;
  text-decoration: underline;
}

#firmware_download .update-instructions .download-button {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: center;
  margin: 0;
}

#firmware_download .download-button a.button-blue {
  width: 264px;
  max-width: 100%;
}

#firmware_download .download-button .error {
  color: #d32f2f;
  font-size: 14px;
  line-height: 20px;
  text-align: center;
}

/* Recovery */

#firmware_download .restore-firmware {
  margin: 24px 0 0;
  padding: 0;
  background: none;
}

#firmware_download .restore-firmware .container.info {
  display: flex;
  gap: 32px;
  align-items: center;
  box-sizing: border-box;
  padding: 32px;
  background-color: #121212;
  border-radius: 24px;
}

#firmware_download .restore-firmware img {
  display: block;
  flex: 1;
  min-width: 0;
  height: 387px;
  object-fit: contain;
}

#firmware_download .restore-firmware .description {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 16px;
  align-items: stretch;
  min-width: 0;
  margin: 0;
  padding: 0;
  color: #f5f5f5;
}

#firmware_download .restore-firmware .description::before {
  padding-left: 28px;
  background: url("data:image/svg+xml,%3Csvg width=%2221.8502%22 height=%2220%22 viewBox=%220 0 21.8502 20%22 fill=%22none%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cg id=%22Icon / Recovery%22%3E%3Cpath id=%22Vector%22 d=%22M20.2135 5C19.0884 3.67984 17.2791 2.64803 15.093 2.07985C12.9069 1.51168 10.4788 1.44219 8.22122 1.88319C5.96364 2.32418 4.01583 3.24847 2.70871 4.49902C1.40158 5.74957 0.815754 7.24925 1.05076 8.74328C1.28576 10.2373 2.32709 11.6335 3.99785 12.6948C5.6686 13.756 7.86573 14.4168 10.216 14.5648C12.5662 14.7129 14.9246 14.3391 16.8904 13.507C18.8563 12.6748 20.3084 11.4357 21 10M13.9218 5H20.2135V1%22 stroke-width=%221.7%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 stroke=%22%236CC9FF%22/%3E%3C/g%3E%3C/svg%3E") no-repeat left center / 22px 20px;
  color: #fff;
  content: 'DEVICE RECOVERY';
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.18px;
  line-height: 20px;
}

#firmware_download .restore-firmware .frf-header {
  margin: 0;
  color: #fff;
  font-size: 32px;
  font-weight: 500;
  line-height: 40px;
  text-transform: none;
}

#firmware_download .restore-firmware .frf-header.red {
  align-self: stretch;
  padding: 8px 12px;
  background-color: rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  color: #f5f5f5;
  font-size: 12px;
  letter-spacing: 0.18px;
  line-height: 16px;
  text-transform: capitalize;
}

#firmware_download .restore-firmware p {
  margin: 0;
  color: #f5f5f5;
  font-size: 16px;
  line-height: 24px;
}

#firmware_download .restore-firmware a.button-gray {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 100%;
  min-height: 52px;
  padding: 14px 24px;
  background-color: #f5f5f5;
  border: 0;
  border-radius: 99px;
  color: #555;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.08px;
  line-height: 24px;
  text-align: center;
  text-decoration: none;
}

@media (max-width: 899px) {
  #firmware_download .top-content h1 {
    font-size: 32px;
    line-height: 40px;
  }

  #firmware_download .select-and-notes {
    flex-direction: column;
  }

  #firmware_download .select-product {
    flex-basis: auto;
    width: 100%;
  }

  #firmware_download .select-and-notes > * {
    align-self: stretch;
  }

  #firmware_download .update-instructions {
    padding: 20px 16px;
  }

  #firmware_download .restore-firmware .container.info {
    flex-direction: column;
    padding: 24px 16px;
  }

  #firmware_download .restore-firmware img {
    flex: none;
    width: 100%;
    height: auto;
  }
}
