/* =============================================================================
   Asherfield — Sponsor units
   Used by SponsorPlacementService::render_unit() on article, listing, and
   landing page contexts. Three style variants: card | inset | strip.
   Depends on ash-tokens.css (registered as dependency in WP).
   No hardcoded hex values.

   Class names match PHP output from SponsorPlacementService::render_unit():
   .ash-sponsor-unit  .ash-sponsor-unit--{card|inset|strip}
   .ash-sponsor-disclosure  .ash-sponsor-logo  .ash-sponsor-name
   .ash-sponsor-tagline  .ash-sponsor-cta
   ============================================================================= */

/* ── Local aliases ───────────────────────────────────────────────────────────── */
:root {
  --su-ring:       var(--ash-ring);
  --su-border:     var(--border);
  --su-bg:         var(--background);
  --su-muted:      var(--muted-foreground);
  --su-serif:      var(--font-serif);
  --su-sans:       var(--font-sans);
  --su-radius-md:  var(--radius-md);
  --su-radius-lg:  var(--radius-lg);
  --su-shadow:     var(--shadow-whisper);
}

/* ── Shared base ─────────────────────────────────────────────────────────────── */

.ash-sponsor-unit {
  font-family: var(--su-sans);
  position: relative;
  box-sizing: border-box;
}

/* Disclosure label — always present, always visible */
.ash-sponsor-unit .ash-sponsor-disclosure {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--su-muted);
  line-height: 1;
  margin-bottom: 0.5rem;
}

.ash-sponsor-unit .ash-sponsor-logo {
  display: block;
  max-height: 36px;
  max-width: 140px;
  width: auto;
  object-fit: contain;
  object-position: left center;
}

.ash-sponsor-unit .ash-sponsor-name {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--foreground);
  display: block;
}

.ash-sponsor-unit .ash-sponsor-tagline {
  font-size: 0.875rem;
  color: var(--foreground);
  line-height: 1.45;
  margin: 0;
}

.ash-sponsor-unit .ash-sponsor-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--su-ring);
  text-decoration: none;
  line-height: 1;
}
.ash-sponsor-unit .ash-sponsor-cta:hover {
  opacity: 0.8;
}

/* ── Card variant (listing detail sidebar) ───────────────────────────────────── */

.ash-sponsor-unit--card {
  background: #fff;
  border: 1px solid var(--su-border);
  border-radius: var(--su-radius-lg);
  padding: 1.125rem 1.25rem;
  box-shadow: var(--su-shadow);
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.ash-sponsor-unit--card .ash-sponsor-logo {
  max-height: 32px;
}

/* ── Inset variant (article right rail) ──────────────────────────────────────── */

.ash-sponsor-unit--inset {
  background: var(--muted);
  border: 1px solid var(--su-border);
  border-radius: var(--su-radius-md);
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.ash-sponsor-unit--inset .ash-sponsor-logo {
  max-height: 28px;
}

/* ── Strip variant (landing page between sections) ───────────────────────────── */

.ash-sponsor-strip {
  padding-block: 1.125rem;
  border-top: 1px solid var(--su-border);
  border-bottom: 1px solid var(--su-border);
  background: var(--su-bg);
}

.ash-sponsor-strip__inner {
  max-width: 1140px;
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 3rem);
}

.ash-sponsor-unit--strip {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  flex-wrap: wrap;
}

.ash-sponsor-unit--strip .ash-sponsor-disclosure {
  margin-bottom: 0;
}

.ash-sponsor-unit--strip .ash-sponsor-logo {
  max-height: 28px;
}

.ash-sponsor-unit--strip .ash-sponsor-tagline {
  font-size: 0.875rem;
  flex: 1;
  min-width: 140px;
}

/* ── Reduced motion ──────────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .ash-sponsor-unit .ash-sponsor-cta {
    transition: none;
  }
}
