/*
 * Press Releases — theme-agnostic styles.
 *
 * Type and text color inherit from the theme. To re-brand on another site,
 * put a press-releases/press-releases.css file in the (child) theme — it loads
 * after this one — and set any of these on :root, plus any selector overrides:
 *   --pr-accent, --pr-accent-hover, --pr-accent-text, --pr-header-offset,
 *   --pr-muted, --pr-border, --pr-surface, --pr-shell, --pr-gutter, --pr-radius,
 *   --pr-media-max-height (featured image on single releases)
 * Crownline theme tokens (--cl-*) are used as fallbacks automatically.
 *
 * Link colors are scoped under .pr so they outrank Elementor's kit rule
 * (.elementor-kit-N a), which is printed after this file. Site overrides
 * of link colors should use the same .pr prefix.
 */
:where(.pr, .pr-button) {
  --_accent: var(--pr-accent, var(--cl-accent, #1d4ed8));
  --_accent-hover: var(--pr-accent-hover, var(--cl-accent-light, var(--_accent)));
  --_accent-text: var(--pr-accent-text, var(--cl-dark, #fff));
  --_border: var(--pr-border, color-mix(in srgb, currentColor 16%, transparent));
  --_muted: var(--pr-muted, color-mix(in srgb, currentColor 70%, transparent));
  --_surface: var(--pr-surface, color-mix(in srgb, currentColor 6%, transparent));
  --_radius: var(--pr-radius, 0);
}

.pr {
  padding-top: calc(var(--pr-header-offset, var(--cl-header, 0px)) + clamp(3rem, 7vw, 6rem));
  padding-bottom: clamp(4rem, 9vw, 8rem);
}
.pr-shell {
  width: min(100%, var(--pr-shell, var(--cl-shell, 80rem)));
  margin-inline: auto;
  padding-inline: var(--pr-gutter, var(--cl-gutter, clamp(1rem, 4vw, 3rem)));
}
.pr-shell--narrow { --pr-shell: 56rem; }
/* Block margins only: the figure keeps .pr-shell's auto inline margins, which center it. */
.pr :where(h1, h2, p, figure) { margin-block: 0; }
.pr :where(a:focus-visible) { outline: 2px solid var(--_accent); outline-offset: 3px; }
.pr .screen-reader-text:not(:focus) {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* Shared pieces --------------------------------------------------------- */
.pr-eyebrow,
.pr-back,
.pr-meta,
.pr-link,
.pr-button {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: 1.3;
  text-transform: uppercase;
}
.pr-eyebrow { color: var(--_accent); }
.pr .pr-back { display: inline-flex; align-items: center; gap: 0.5rem; color: var(--_muted); text-decoration: none; }
.pr .pr-back:hover { color: var(--_accent); }

.pr-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 0.85rem; color: var(--_muted); }
.pr-meta > * + *::before {
  display: inline-block;
  width: 0.3rem;
  height: 0.3rem;
  margin-right: 0.85rem;
  border-radius: 50%;
  background: currentColor;
  content: "";
  vertical-align: middle;
}
.pr .pr-meta a { color: inherit; text-decoration: none; }
.pr .pr-meta a:hover { color: var(--_accent); }

:is(.pr, body) .pr-button {
  display: inline-flex;
  min-height: 3.25rem;
  align-items: center;
  gap: 0.65rem;
  padding: 0.85rem 1.5rem;
  border-radius: var(--_radius);
  background: var(--_accent);
  color: var(--_accent-text);
  text-decoration: none;
  transition: background-color 200ms ease, transform 200ms ease;
}
:is(.pr, body) .pr-button:hover,
:is(.pr, body) .pr-button:focus-visible { background: var(--_accent-hover); color: var(--_accent-text); transform: translateY(-1px); }
:is(.pr, body) .pr-button--ghost { border: 1px solid var(--_border); background: transparent; color: inherit; }
:is(.pr, body) .pr-button--ghost:hover,
:is(.pr, body) .pr-button--ghost:focus-visible { border-color: var(--_accent); background: transparent; color: inherit; }
.pr-button__icon { flex: none; }
.pr-button__meta { font-weight: 600; letter-spacing: 0.06em; opacity: 0.7; }

.pr .pr-link { display: inline-flex; align-items: center; gap: 0.45rem; color: var(--_accent); text-decoration: none; }
.pr .pr-link:hover { color: var(--_accent-hover); }

/* Single ---------------------------------------------------------------- */
.pr-single__header { display: grid; justify-items: start; gap: 1.25rem; }
.pr-single__header .pr-meta { margin-top: clamp(1rem, 3vw, 2rem); }
.pr-single__title {
  font-size: clamp(2.1rem, 4vw, 3.5rem);
  font-weight: 800;
  letter-spacing: -0.025em;
  line-height: 1.08;
  text-wrap: balance;
}
.pr-single__dek { max-width: 42rem; color: var(--_muted); font-size: clamp(1.1rem, 1.8vw, 1.35rem); line-height: 1.5; text-wrap: pretty; }
.pr-actions { margin-top: 0.75rem; }

.pr-single__media { margin-top: clamp(2.5rem, 6vw, 4.5rem); }
.pr-single__media img {
  display: block;
  width: 100%;
  height: auto;
  max-height: var(--pr-media-max-height, 55vh);
  object-fit: contain; /* a capped image scales down, centered, never cropped */
  border-radius: var(--_radius);
}
.pr-single__media figcaption { margin-top: 0.75rem; color: var(--_muted); font-size: 0.85rem; }

.pr-prose { margin-top: clamp(2.5rem, 6vw, 4.5rem); font-size: clamp(1.05rem, 1.3vw, 1.15rem); line-height: 1.75; }
.pr-prose > * { margin-block: 0 1.25em; }
.pr-prose > :last-child { margin-bottom: 0; }
.pr-prose :where(h2, h3, h4) { margin-top: 2em; line-height: 1.2; letter-spacing: -0.01em; }
.pr-prose h2 { font-size: 1.6em; }
.pr-prose h3 { font-size: 1.25em; }
.pr .pr-prose a { color: var(--_accent); text-decoration: underline; text-underline-offset: 0.2em; }
.pr .pr-prose a:hover { color: var(--_accent-hover); }
.pr-prose :where(ul, ol) { padding-left: 1.4em; }
.pr-prose li + li { margin-top: 0.4em; }
.pr-prose blockquote { margin-inline: 0; padding-left: 1.5rem; border-left: 3px solid var(--_accent); }
.pr-prose hr { margin-block: 2.5em; border: 0; border-top: 1px solid var(--_border); }
.pr-prose img { max-width: 100%; height: auto; }
.pr-prose .aligncenter, .pr-prose .has-text-align-center { margin-inline: auto; text-align: center; }
.pr-prose .alignright { float: right; margin: 0.4em 0 1em 1.5em; }
.pr-prose .alignleft { float: left; margin: 0.4em 1.5em 1em 0; }

.pr-single__footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  margin-top: clamp(3rem, 7vw, 5rem);
  padding-top: 2rem;
  border-top: 1px solid var(--_border);
}

/* Archive --------------------------------------------------------------- */
.pr-archive__header { padding-bottom: clamp(2rem, 5vw, 3.5rem); }
.pr-archive__title {
  margin-top: 0.85rem;
  font-size: clamp(2.75rem, 7vw, 5.5rem);
  font-weight: 900;
  letter-spacing: -0.04em;
  line-height: 0.95;
}
.pr-archive__intro { max-width: 42rem; margin-top: 1.25rem; color: var(--_muted); font-size: 1.1rem; line-height: 1.6; }
.pr-archive__intro > :last-child { margin-bottom: 0; }

.pr-filters { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: clamp(1.5rem, 4vw, 2.5rem); }
.pr .pr-filters a {
  padding: 0.6rem 1.05rem;
  border: 1px solid var(--_border);
  border-radius: var(--pr-pill-radius, 999px);
  color: inherit;
  font-size: 0.8rem;
  font-weight: 650;
  line-height: 1.2;
  text-decoration: none;
  transition: border-color 200ms ease, background-color 200ms ease;
}
.pr .pr-filters a:hover { border-color: var(--_accent); color: inherit; }
.pr .pr-filters a[aria-current] { border-color: var(--_accent); background: var(--_accent); color: var(--_accent-text); }

.pr-feature {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid var(--_border);
  border-radius: var(--_radius);
  background: var(--_surface);
}
.pr-feature--no-media { grid-template-columns: minmax(0, 1fr); }
.pr-feature__media { position: relative; display: block; min-height: 28rem; overflow: hidden; }
.pr-feature__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 600ms ease; }
.pr-feature:hover .pr-feature__media img { transform: scale(1.03); }
.pr-feature__body { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 1rem; padding: clamp(1.75rem, 4vw, 3.5rem); }
.pr-feature__body .pr-meta { margin-top: -0.25rem; }
.pr-feature__title { font-size: clamp(1.75rem, 2.6vw, 2.4rem); font-weight: 800; letter-spacing: -0.025em; line-height: 1.1; text-wrap: balance; }
.pr .pr-feature__title a { color: inherit; text-decoration: none; }
.pr .pr-feature__title a:hover { color: var(--_accent); }
.pr-feature__dek { font-size: clamp(1.05rem, 1.4vw, 1.2rem); line-height: 1.5; text-wrap: pretty; }
.pr-feature__lede { color: var(--_muted); line-height: 1.65; }
.pr-feature__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 0.75rem; }

.pr-list__heading { margin: clamp(3rem, 7vw, 5rem) 0 1.25rem; color: var(--_muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.pr-list { border-top: 1px solid var(--_border); }
.pr-card {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  align-items: center;
  gap: clamp(1.25rem, 3.5vw, 3rem);
  padding-block: clamp(1.75rem, 3.5vw, 2.75rem);
  border-bottom: 1px solid var(--_border);
}
.pr-card--no-media { grid-template-columns: minmax(0, 1fr); }
.pr-card__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; border-radius: var(--_radius); background: var(--_surface); }
.pr-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 500ms ease; }
.pr-card:hover .pr-card__media img { transform: scale(1.03); }
.pr-card__title {
  margin-top: 0.7rem;
  font-size: clamp(1.4rem, 2.4vw, 2rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.15;
  text-wrap: balance;
}
.pr .pr-card__title a { color: inherit; text-decoration: none; }
.pr .pr-card__title a:hover { color: var(--_accent); }
.pr-card__summary { max-width: 42rem; margin-top: 0.85rem; color: var(--_muted); line-height: 1.6; }
.pr-card__links { display: flex; flex-wrap: wrap; gap: 0.75rem 1.75rem; margin-top: 1.25rem; }

.pr-pagination { margin-top: clamp(2rem, 5vw, 3.5rem); }
.pr-pagination .nav-links { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.pr-pagination .page-numbers {
  display: inline-flex;
  min-width: 2.75rem;
  height: 2.75rem;
  align-items: center;
  justify-content: center;
  padding-inline: 0.9rem;
  border: 1px solid var(--_border);
  border-radius: var(--_radius);
  color: inherit;
  font-size: 0.85rem;
  font-weight: 650;
  text-decoration: none;
}
.pr-pagination a.page-numbers:hover { border-color: var(--_accent); }
.pr-pagination .page-numbers.current { border-color: var(--_accent); background: var(--_accent); color: var(--_accent-text); }
.pr-pagination .page-numbers.dots { border-color: transparent; }

.pr-empty { padding-block: 3rem; border-top: 1px solid var(--_border); color: var(--_muted); }

@media (max-width: 64rem) {
  .pr-feature { grid-template-columns: minmax(0, 1fr); }
  .pr-feature__media { min-height: 0; aspect-ratio: 16 / 10; }
}

@media (max-width: 48rem) {
  .pr-card { grid-template-columns: minmax(0, 1fr); align-items: start; }
  .pr-feature__body { padding: 1.5rem 1.25rem 1.75rem; }
  .pr-feature__body .pr-meta { letter-spacing: 0.1em; }
  .pr-feature__dek + .pr-feature__lede { display: none; }
  .pr-feature__actions { flex-direction: column; align-items: stretch; width: 100%; }
  .pr-feature__actions .pr-button { justify-content: center; }
  .pr-single__footer { flex-direction: column-reverse; align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  :is(.pr, body) .pr-button, .pr-card__media img, .pr-feature__media img { transition: none; }
  .pr-card:hover .pr-card__media img, .pr-feature:hover .pr-feature__media img, :is(.pr, body) .pr-button:hover { transform: none; }
}
