/* ============================================================
   DJC_NoFormDownload
   ungated download / print controls. token-driven with hex
   fallbacks so it re-tints from a page's campaign-base palette
   and still renders on a page that never loaded it.
   ============================================================ */
.djc-nfd {
  /* local knobs -- override per page by setting these on the mount */
  --nfd-accent: var(--gradientX3, linear-gradient(to right, #f9a825, #ef6c00));
  --nfd-accent-ink: var(--color-2b, #0f172a);
  --nfd-link: var(--color-1, #2a5298);
  --nfd-link-hover: var(--color-1b, #1a3a6e);
  --nfd-icon-ink: var(--color-1, #2a5298);
  --nfd-surface: #ffffff;
  --nfd-radius: 12px;
  --nfd-icon-size: 44px;

  font-family: var(--font-2, 'proxima-nova', system-ui, sans-serif);
}

.djc-nfd__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 22px;
}

.djc-nfd__action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border: none;
  background: none;
  padding: 0;
  cursor: pointer;
  font-family: inherit;
  transition: all 0.3s ease;
}

/* label kept in the dom for screen readers when the icon configs hide it */
.djc-nfd__label--sr {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ========================================
   BUTTONS CONFIG
   gold pill for the download, quiet text link for print, so the
   two never read as competing primaries
   ======================================== */
.djc-nfd__actions--buttons .djc-nfd__action--download {
  height: 47px;
  padding: 0 25px;
  border-radius: 40px;
  background: var(--nfd-accent);
  color: var(--nfd-accent-ink);
  font-size: 20px;
  font-weight: 600;
  box-shadow: var(--btnshadow, 0 4px 15px rgb(249 168 37 / 0.3));
}

.djc-nfd__actions--buttons .djc-nfd__action--download:hover {
  transform: translateY(-2px);
  box-shadow: var(--btnshadow-hover, 0 8px 25px rgb(239 108 0 / 0.4));
}

.djc-nfd__actions--buttons .djc-nfd__action--print {
  font-size: 16px;
  font-weight: 600;
  color: var(--nfd-link);
  border-bottom: 1px solid rgb(42 82 152 / 0.3);
}

.djc-nfd__actions--buttons .djc-nfd__action--print:hover {
  color: var(--nfd-link-hover);
  border-bottom-color: var(--nfd-link-hover);
}

/* ========================================
   ICONS CONFIG
   compact translucent circles -- readable over artwork without a
   plate behind them
   ======================================== */
.djc-nfd__actions--icons {
  gap: 10px;
}

.djc-nfd__actions--icons .djc-nfd__action {
  width: var(--nfd-icon-size);
  height: var(--nfd-icon-size);
  border-radius: 50%;
  background: rgb(255 255 255 / 0.92);
  border: 1px solid rgb(15 23 42 / 0.14);
  color: var(--nfd-icon-ink);
  font-size: 17px;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  box-shadow: 0 2px 10px rgb(15 23 42 / 0.14);
}

.djc-nfd__actions--icons .djc-nfd__action:hover {
  background: #ffffff;
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgb(15 23 42 / 0.22);
}

/* ========================================
   IMAGE CONFIG
   the component owns the figure so it can place the icons on the
   artwork. no aspect-ratio is pinned on purpose -- art at an
   unexpected ratio would letterbox or crop, so the image sizes
   naturally and the overlay positions against whatever box results.
   ======================================== */
.djc-nfd--image {
  position: relative;
  display: inline-block;
  width: 100%;
  border-radius: var(--nfd-radius);
  overflow: hidden;
  background: var(--nfd-surface);
  box-shadow: var(--boxshadow, 0 4px 6px rgb(0 0 0 / 0.02), 0 12px 40px rgb(26 58 110 / 0.1));
}

.djc-nfd__img {
  display: block;
  width: 100%;
  height: auto;
}

.djc-nfd--image .djc-nfd__actions {
  position: absolute;
  z-index: 2;
}

.djc-nfd--top-right .djc-nfd__actions {
  top: 16px;
  right: 16px;
}

/* a translucent circle is legible over the top-right of most art (sky, margin)
   but often is not over the centre of the bottom edge -- so this variant gets a
   scrim to sit on */
.djc-nfd--bottom-center .djc-nfd__actions {
  left: 0;
  right: 0;
  bottom: 0;
  justify-content: center;
  padding: 30px 16px 16px;
  background: linear-gradient(to top, rgb(15 23 42 / 0.45), transparent);
}

@media only screen and (max-width: 700px) {
  .djc-nfd {
    --nfd-icon-size: 40px;
  }

  .djc-nfd__actions--buttons .djc-nfd__action--download {
    height: 44px;
    font-size: 18px;
  }

  .djc-nfd--top-right .djc-nfd__actions {
    top: 10px;
    right: 10px;
  }
}
