/* Downloads page - isolated from .vl-inner pour-line headings */

.vl-core-suite-dl {
  margin: 0 0 1.75rem;
}

.vl-core-suite-dl__card.vl-dl-card {
  margin-bottom: 0;
}

.vl-core-suite-dl__logo.vl-dl-card__icon {
  border-radius: 1rem;
  border: 1px solid rgba(160, 160, 165, 0.55);
  box-shadow: none;
  background: transparent;
}

body.vl-theme-middle .vl-core-suite-dl__logo.vl-dl-card__icon {
  border-color: rgba(120, 120, 125, 0.55);
}

.vl-core-suite-dl__text {
  margin-bottom: 1rem;
}

.vl-core-suite-dl__actions {
  margin: 0;
}

.vl-core-suite-dl__actions .vl-liquid-btn {
  display: inline-flex;
}

.vl-downloads-prose .vl-downloads-lead {
  margin: 0 0 1.25rem;
  max-width: 42rem;
  line-height: 1.55;
  opacity: 0.9;
}

.vl-downloads-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem 1.25rem;
  margin: 0 0 1.35rem;
}

.vl-downloads-search {
  position: relative;
  flex: 1 1 16rem;
  min-width: min(100%, 14rem);
  max-width: 28rem;
}

.vl-downloads-search__label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.vl-downloads-search__icon {
  position: absolute;
  left: 0.85rem;
  top: 50%;
  width: 1rem;
  height: 1rem;
  transform: translateY(-50%);
  opacity: 0.55;
  pointer-events: none;
  background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fafafa' stroke-width='2.25' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");
}

body.vl-theme-middle .vl-downloads-search__icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2.25' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");
}

.vl-downloads-search__input {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0.65rem 2.35rem 0.65rem 2.45rem;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, currentColor 22%, transparent);
  background: color-mix(in srgb, currentColor 6%, transparent);
  font: inherit;
  font-size: 0.9rem;
  color: inherit;
  box-sizing: border-box;
  transition:
    border-color 0.2s ease,
    background 0.2s ease;
}

.vl-downloads-search__input::placeholder {
  opacity: 0.55;
}

.vl-downloads-search__input:hover {
  border-color: color-mix(in srgb, currentColor 32%, transparent);
}

.vl-downloads-search__input:focus {
  outline: none;
  border-color: var(--color-accent, #ff2b2b);
  background: color-mix(in srgb, var(--color-accent, #ff2b2b) 8%, transparent);
}

.vl-downloads-search__input::-webkit-search-cancel-button {
  display: none;
}

.vl-downloads-search__clear {
  position: absolute;
  right: 0.45rem;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  padding: 0;
  border: none;
  border-radius: 999px;
  font-size: 1.15rem;
  line-height: 1;
  color: inherit;
  background: color-mix(in srgb, currentColor 10%, transparent);
  cursor: pointer;
  opacity: 0.75;
}

.vl-downloads-search__clear:hover,
.vl-downloads-search__clear:focus-visible {
  opacity: 1;
  outline: none;
  background: color-mix(in srgb, currentColor 16%, transparent);
}

.vl-downloads-count {
  flex: 0 0 auto;
  margin: 0;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  opacity: 0.72;
  white-space: nowrap;
}

.vl-downloads-empty {
  margin: 0 0 2rem;
  padding: 1.25rem 1rem;
  border-radius: 12px;
  text-align: center;
  font-size: 0.92rem;
  opacity: 0.78;
  border: 1px dashed color-mix(in srgb, currentColor 22%, transparent);
}

.vl-downloads-jump {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.65rem;
  margin: 0 0 2rem;
  padding: 0;
}

.vl-downloads-jump__link {
  display: inline-block;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-decoration: none;
  color: inherit;
  border: 1px solid color-mix(in srgb, currentColor 22%, transparent);
  transition:
    border-color 0.2s ease,
    background 0.2s ease;
}

.vl-downloads-jump__link:hover,
.vl-downloads-jump__link:focus-visible {
  border-color: var(--color-accent, #ff2b2b);
  background: color-mix(in srgb, var(--color-accent, #ff2b2b) 12%, transparent);
  outline: none;
}

.vl-downloads-group {
  margin-bottom: 3.25rem;
  padding-bottom: 0.5rem;
}

.vl-downloads-group:not(:last-child) {
  border-bottom: 1px solid color-mix(in srgb, currentColor 14%, transparent);
}

.vl-downloads-group__title {
  margin: 0 0 1.35rem;
  font-size: clamp(1.15rem, 2.5vw, 1.45rem);
  font-weight: 600;
  letter-spacing: -0.02em;
}

.vl-downloads-group__list {
  display: flex;
  flex-direction: column;
  gap: 1.35rem;
}

/* Product card - bordered section with inner platform dividers */
.vl-dl-card {
  padding: clamp(1.1rem, 2.5vw, 1.5rem);
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: transparent;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

body.vl-theme-middle .vl-dl-card {
  border-color: rgba(0, 0, 0, 0.12);
}

.vl-dl-card__head {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.25rem;
  width: 100%;
  min-width: 0;
}

.vl-dl-card__icon {
  flex: 0 0 auto;
  width: 96px;
  height: 96px;
  object-fit: contain;
  border-radius: 22px;
}

.vl-dl-card__copy {
  flex: 1 1 auto;
  min-width: 0;
}

.vl-dl-card__meta {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem 1rem;
}

.vl-dl-card__cat {
  display: block;
  margin: 0 0 0.25rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  opacity: 0.65;
}

.vl-dl-card__legal {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.vl-dl-card__legal-link {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-decoration: none;
  color: color-mix(in srgb, currentColor 60%, transparent);
}

.vl-dl-card__legal-link:hover,
.vl-dl-card__legal-link:focus-visible {
  color: color-mix(in srgb, currentColor 82%, transparent);
  text-decoration: underline;
  text-underline-offset: 0.14em;
  outline: none;
}

.vl-dl-card__name {
  display: block;
  margin: 0 0 0.4rem;
  font-size: clamp(1.2rem, 2.4vw, 1.45rem);
  font-weight: 600;
  line-height: 1.15;
  text-decoration: none;
}

.vl-dl-card__desc {
  display: block;
  margin: 0 0 0.85rem;
  font-size: 0.92rem;
  font-weight: 500;
  line-height: 1.5;
  opacity: 0.82;
  max-width: 36rem;
}

.vl-dl-card__excerpt {
  margin-top: 0.15rem;
  max-width: 40rem;
}

.vl-dl-card__excerpt-p {
  margin: 0 0 0.65rem;
  font-size: 0.88rem;
  line-height: 1.55;
  color: rgba(240, 240, 240, 0.82);
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
}

.vl-dl-card__excerpt-p:last-of-type {
  margin-bottom: 0.75rem;
}

body.vl-theme-middle .vl-dl-card__excerpt-p {
  color: rgba(0, 0, 0, 0.66);
}

.vl-dl-card__read-more {
  display: inline-flex;
  align-items: center;
  padding: 0.4rem 0.9rem;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-decoration: none !important;
  color: inherit;
  border: 1px solid color-mix(in srgb, currentColor 22%, transparent);
  transition:
    border-color 0.2s ease,
    background 0.2s ease,
    color 0.2s ease;
}

.vl-dl-card__read-more:hover,
.vl-dl-card__read-more:focus-visible {
  border-color: var(--color-accent, #ff2b2b);
  color: var(--color-accent, #ff2b2b);
  background: color-mix(in srgb, var(--color-accent, #ff2b2b) 10%, transparent);
  outline: none;
}

.vl-dl-card__platforms {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.vl-dl-plat {
  padding-top: 1rem;
}

.vl-dl-plat:first-child {
  padding-top: 0;
}

.vl-dl-plat + .vl-dl-plat {
  margin-top: 1rem;
  padding-top: 1.15rem;
  border-top: 1px solid color-mix(in srgb, currentColor 12%, transparent);
}

@media (min-width: 720px) {
  .vl-dl-card__platforms {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0 2rem;
  }

  .vl-dl-plat {
    flex: 1 1 14rem;
    min-width: min(100%, 14rem);
    padding-top: 0;
  }

  .vl-dl-plat.is-open {
    flex: 1 1 100%;
    max-width: 100%;
    padding-left: 0;
    border-left: none;
  }

  .vl-dl-plat + .vl-dl-plat {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
    padding-left: 1.15rem;
    border-left: 1px solid color-mix(in srgb, currentColor 12%, transparent);
  }

  .vl-dl-plat.is-open + .vl-dl-plat,
  .vl-dl-plat + .vl-dl-plat.is-open {
    margin-top: 1rem;
    padding-top: 1.15rem;
    padding-left: 0;
    border-left: none;
    border-top: 1px solid color-mix(in srgb, currentColor 12%, transparent);
  }
}

.vl-dl-plat__label {
  margin: 0 0 0.75rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-accent, #ff2b2b);
}

.vl-dl-plat__triggers {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 0.85rem;
}

.vl-dl-trigger {
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  font: inherit;
  color: inherit;
  cursor: pointer;
  border-radius: 6px;
  transition:
    transform 0.2s ease,
    opacity 0.2s ease;
}

.vl-dl-trigger:hover,
.vl-dl-trigger:focus-visible {
  transform: translateY(-1px);
  outline: none;
}

.vl-dl-trigger.is-active {
  opacity: 0.88;
}

.vl-dl-trigger__text {
  font-size: 0.88rem;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.2em;
  text-decoration-color: color-mix(in srgb, currentColor 35%, transparent);
}

/* Store / desktop badge artwork - always dark badges */
.vl-dl-badge--img {
  display: block;
  line-height: 0;
}

.vl-dl-badge__img {
  display: block;
  height: 40px;
  width: auto;
}

.vl-dl-badge--mac .vl-dl-badge__img,
.vl-dl-badge--windows .vl-dl-badge__img {
  height: 36px;
}

.vl-dl-badge__label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.vl-dl-badge:not(.vl-dl-badge--img) {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 2.5rem;
  padding: 0.35rem 0.75rem 0.35rem 0.45rem;
  border-radius: 8px;
  color: #fff;
  background: #111;
}

.vl-dl-badge--testflight {
  background: #0d7ee8;
}

.vl-dl-badge__icon {
  flex-shrink: 0;
  width: 1.35rem;
  height: 1.35rem;
  background: center / contain no-repeat;
}

.vl-dl-badge--apple .vl-dl-badge__icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M18.71 19.5c-.83 1.24-1.71 2.45-3.05 2.47-1.34.03-1.77-.79-3.29-.79-1.53 0-2 .77-3.27.82-1.31.05-2.3-1.32-3.14-2.53C4.25 17 2.94 12.45 4.7 9.39c.87-1.52 2.43-2.48 4.12-2.51 1.28-.02 2.5.87 3.29.87.78 0 2.26-1.07 3.8-.91.65.03 2.47.26 3.64 1.98-.09.06-2.17 1.28-2.15 3.81.03 3.02 2.65 4.03 2.68 4.04-.03.07-.42 1.44-1.38 2.83M13 3.5c.73-.83 1.94-1.46 2.94-1.5.13 1.17-.34 2.35-1.04 3.19-.69.85-1.83 1.51-2.95 1.42-.15-1.15.41-2.35 1.05-3.11z'/%3E%3C/svg%3E");
}

.vl-dl-badge--google .vl-dl-badge__icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23EA4335' d='M3 20.5V3.5C3 2.91 3.34 2.39 3.84 2.15L13.66 12l-9.82 9.85A2 2 0 0 1 3 20.5z'/%3E%3Cpath fill='%234285F4' d='M20.16 10.81L16.13 14.84 13.66 12l2.47-2.47 1.04-1.04a1.5 1.5 0 0 1 2.12 0l.87.32z'/%3E%3Cpath fill='%2334A853' d='M3.84 2.15A2 2 0 0 1 3 3.5v17l10.66-9.85L3.84 2.15z'/%3E%3Cpath fill='%23FBBC05' d='M16.13 14.84l4.03 4.03a2 2 0 0 0 0-2.83l-3.16-3.16-1.04 1.04-2.47 2.47z'/%3E%3C/svg%3E");
}

.vl-dl-badge--testflight .vl-dl-badge__icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M12 2 2 7v10l10 5 10-5V7L12 2zm0 2.18 7.4 3.7L12 11.58 4.6 7.88 12 4.18zM4 9.27l7 3.5v7.46l-7-3.5V9.27zm9 10.96v-7.46l7-3.5v7.46l-7 3.5z'/%3E%3C/svg%3E");
}

.vl-dl-badge__text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1.1;
}

.vl-dl-badge__small {
  font-size: 0.55rem;
  font-weight: 500;
  opacity: 0.88;
}

.vl-dl-badge__large {
  font-size: 0.95rem;
  font-weight: 700;
}

/* Expandable drawer - full width under badge row, pushes content below */
.vl-dl-drawer {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.38s cubic-bezier(0.22, 1, 0.36, 1);
}

.vl-dl-plat.is-open .vl-dl-drawer {
  grid-template-rows: 1fr;
}

.vl-dl-drawer__clip {
  overflow: hidden;
  min-height: 0;
}

.vl-dl-drawer__panels {
  position: relative;
  padding-top: 0.85rem;
}

.vl-dl-drawer__panel {
  width: 100%;
}

.vl-dl-drawer__panel[hidden] {
  display: none !important;
}

.vl-dl-drawer__inner {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem 1.25rem;
  width: 100%;
  padding: 0.9rem 1rem;
  border-radius: 10px;
  border: 1px solid color-mix(in srgb, currentColor 14%, transparent);
  background: color-mix(in srgb, currentColor 6%, transparent);
  box-sizing: border-box;
}

body.vl-theme-middle .vl-dl-drawer__inner {
  background: color-mix(in srgb, currentColor 4%, transparent);
}

.vl-dl-drawer__details {
  flex: 1 1 12rem;
  min-width: 0;
}

.vl-dl-drawer__channel {
  display: block;
  margin: 0 0 0.25rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.6;
}

.vl-dl-drawer__message {
  margin: 0 0 0.35rem;
  font-size: 0.92rem;
  font-weight: 600;
}

.vl-dl-drawer__message--available {
  color: #3dd68c;
}

.vl-dl-drawer__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1rem;
  font-size: 0.8rem;
  line-height: 1.45;
  opacity: 0.78;
}

.vl-dl-drawer__meta-k {
  font-weight: 600;
  opacity: 0.65;
}

.vl-dl-drawer__meta-item--status {
  font-weight: 600;
}

.vl-dl-drawer__note {
  margin: 0.45rem 0 0;
  font-size: 0.78rem;
  opacity: 0.72;
  line-height: 1.45;
}

.vl-dl-drawer__action {
  flex: 0 0 auto;
  margin-left: auto;
}

.vl-dl-drawer__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 7.5rem;
  padding: 0.55rem 1.1rem;
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-decoration: none;
  color: #fafafa;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.7);
  box-sizing: border-box;
}

button.vl-dl-drawer__btn {
  cursor: pointer;
  font: inherit;
  appearance: none;
  -webkit-appearance: none;
}

.vl-dl-drawer__btn:hover,
.vl-dl-drawer__btn:focus-visible {
  border-color: rgba(255, 255, 255, 0.95);
  background: rgba(255, 255, 255, 0.06);
  outline: none;
}

.vl-dl-drawer__btn--disabled {
  cursor: default;
  pointer-events: none;
}

.vl-dl-drawer__btn--disabled:hover,
.vl-dl-drawer__btn--disabled:focus-visible {
  border-color: rgba(255, 255, 255, 0.7);
  background: transparent;
}

body.vl-theme-middle .vl-dl-drawer__btn {
  border-color: rgba(0, 0, 0, 0.28);
  color: rgba(0, 0, 0, 0.85);
}

body.vl-theme-middle .vl-dl-drawer__btn:hover,
body.vl-theme-middle .vl-dl-drawer__btn:focus-visible {
  border-color: rgba(0, 0, 0, 0.45);
  background: rgba(0, 0, 0, 0.04);
}

body.vl-theme-middle .vl-dl-drawer__btn--disabled {
  color: rgba(0, 0, 0, 0.55);
}

body.vl-theme-middle .vl-dl-drawer__btn--disabled:hover,
body.vl-theme-middle .vl-dl-drawer__btn--disabled:focus-visible {
  border-color: rgba(0, 0, 0, 0.28);
  background: transparent;
}

.vl-dl-card__empty {
  margin: 0;
  font-size: 0.9rem;
  opacity: 0.8;
}

.vl-downloads-footnote {
  margin: 2rem 0 0;
  padding-top: 1.25rem;
  border-top: 1px solid color-mix(in srgb, currentColor 12%, transparent);
  font-size: 0.88rem;
  opacity: 0.78;
  line-height: 1.55;
  max-width: 40rem;
}

@media (max-width: 559px) {
  .vl-dl-drawer__inner {
    flex-direction: column;
    align-items: stretch;
  }

  .vl-dl-drawer__action {
    margin-left: 0;
    width: 100%;
  }

  .vl-dl-drawer__btn {
    width: 100%;
  }
}
