/* ============================================================
   8FLiX — Mood & Tone Cards
   File: /css/efx-tone-cards.css
   Dark Theme v2
   ============================================================ */

.efx-tone-grid{
  --efx-accent: #D3239A;
  --efx-warm: #FF6A00;
  --efx-br: 16px;

  --efx-bg: #111827;
  --efx-bg-soft: #161F2E;
  --efx-bg-deep: #0B0F17;

  --efx-text: #F4F7FB;
  --efx-text-soft: #D6DCE7;
  --efx-muted: #AEB7C6;

  --efx-border: rgba(255,255,255,.12);
  --efx-border-hot: rgba(211,35,154,.42);
  --efx-ring: rgba(255,106,0,.32);

  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 1rem 0 2rem;
}

@media (max-width: 920px){
  .efx-tone-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px){
  .efx-tone-grid{
    grid-template-columns: 1fr;
  }

  .efx-tone-card .efx-p{
    padding-left: 10px !important;
  }
}

.efx-tone-card{
  position: relative;
  overflow: hidden;
  border-radius: var(--efx-br);
  border: 1px solid var(--efx-border);
  background:
    radial-gradient(circle at 0 0, rgba(211,35,154,.14), transparent 38%),
    linear-gradient(135deg, rgba(255,255,255,.055), rgba(255,255,255,.018)),
    var(--efx-bg-soft);
  color: var(--efx-text-soft);

  box-shadow: 0 10px 26px rgba(0,0,0,.20);

  transform: translateY(0);
  transition:
    transform .18s ease,
    box-shadow .18s ease,
    border-color .18s ease,
    filter .18s ease,
    background .18s ease;
  will-change: transform;
}

/* Gradient spine */
.efx-tone-card::before{
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 6px;
  background: linear-gradient(180deg, var(--efx-accent), var(--efx-warm));
  opacity: .45;
  transition: opacity .18s ease;
  pointer-events: none;
}

/* Subtle top highlight */
.efx-tone-card::after{
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255,255,255,.16),
    rgba(255,106,0,.14),
    transparent
  );
  pointer-events: none;
}

.efx-tone-card h3{
  margin: 0;
}

.efx-tone-card h3{
  margin: 0;
  padding: 1rem 1rem .6rem 1rem;
  color: var(--efx-text);
  font-weight: 900;
}

.efx-tone-card:hover h3,
.efx-tone-card:focus-visible h3,
.efx-tone-card:focus-within h3{
  color: #FFB15C;
}

.efx-tone-card h3 a:hover{
  color: #FFB15C;
}

.efx-tone-card p{
  margin: 0;
  padding: 0 1rem 1rem 1rem;
  line-height: 1.45;
  color: var(--efx-text-soft);
  opacity: 1;
}

.efx-tone-card a{
  color: inherit;
}

/* Hover + focus glow/lift */
.efx-tone-card:hover,
.efx-tone-card:focus-within{
  transform: translateY(-2px);
  border-color: rgba(255,106,0,.32);
  box-shadow:
    0 16px 34px rgba(0,0,0,.30),
    0 0 0 1px rgba(255,255,255,.06),
    0 0 24px rgba(211,35,154,.12),
    0 0 34px rgba(255,106,0,.08);
  filter: saturate(1.05) contrast(1.02);
}

.efx-tone-card:hover::before,
.efx-tone-card:focus-within::before{
  opacity: .95;
}

/* Calm on touch devices */
@media (hover: none){
  .efx-tone-card:hover{
    transform: none;
    box-shadow: 0 10px 26px rgba(0,0,0,.20);
    filter: none;
  }

  .efx-tone-card:hover::before{
    opacity: .45;
  }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .efx-tone-card,
  .efx-tone-card::before{
    transition: none;
  }
}

/* Whole-card link version */
.efx-tone-grid > a.efx-tone-card {
  display: block;
  text-decoration: none;
  color: var(--efx-text-soft);
}

.efx-tone-grid > a.efx-tone-card:visited {
  color: var(--efx-text-soft);
}

.efx-tone-grid > a.efx-tone-card:hover,
.efx-tone-grid > a.efx-tone-card:focus-visible {
  text-decoration: none;
}

.efx-tone-grid > a.efx-tone-card:focus-visible {
  outline: none;
  box-shadow:
    0 0 0 3px var(--efx-ring),
    0 16px 34px rgba(0,0,0,.30),
    0 0 24px rgba(211,35,154,.12),
    0 0 34px rgba(255,106,0,.08);
}
.efx-tone-nav {
  margin: 1rem 0 2rem;
}

.efx-tone-nav .efx-tone-grid {
  margin: 0;
}

.efx-tone-nav .efx-tone-card {
  display: block;
  text-decoration: none;
  color: var(--efx-text-soft);
}
/* ============================================================
   8FLiX Mood & Tone Nav — Whole Card Link Fix
   Forces card-grid layout and neutralizes global link styles.
   ============================================================ */

.efx-tone-nav {
  display: block;
  width: 100%;
  margin: 1rem 0 2rem;
}

.efx-tone-nav .efx-tone-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 14px !important;
  width: 100%;
  margin: 1rem 0 2rem !important;
}

.efx-tone-nav .efx-tone-card,
.efx-tone-nav .efx-tone-card:link,
.efx-tone-nav .efx-tone-card:visited,
.efx-tone-nav .efx-tone-card:hover,
.efx-tone-nav .efx-tone-card:focus,
.efx-tone-nav .efx-tone-card:active {
  display: block !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;

  color: var(--efx-text-soft) !important;
  text-decoration: none !important;
  border-bottom: 0 !important;
  box-shadow: 0 10px 26px rgba(0,0,0,.20);
}

.efx-tone-nav .efx-tone-card h3,
.efx-tone-nav .efx-tone-card .efx-h3 {
  margin: 0 !important;
  padding: 1rem 1rem .6rem 1rem !important;
  color: var(--efx-text) !important;
  font-weight: 900;
}

.efx-tone-nav .efx-tone-card p,
.efx-tone-nav .efx-tone-card .efx-p {
  margin: 0 !important;
  padding: 0 1rem 1rem 1rem !important;
  color: var(--efx-text-soft) !important;
  text-decoration: none !important;
}

.efx-tone-nav .efx-tone-card:hover h3,
.efx-tone-nav .efx-tone-card:focus-visible h3,
.efx-tone-nav .efx-tone-card:hover .efx-h3,
.efx-tone-nav .efx-tone-card:focus-visible .efx-h3 {
  color: #FFB15C !important;
}

@media (max-width: 920px) {
  .efx-tone-nav .efx-tone-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 560px) {
  .efx-tone-nav .efx-tone-grid {
    grid-template-columns: 1fr !important;
  }
}
/* ============================================================
   8FLiX Tone Nav — Astra Archive Isolation
   Prevent Astra archive/grid styles from messing with nav cards.
   ============================================================ */

body.archive .ast-archive-description .efx-tone-nav {
  display: block !important;
  width: 100% !important;
  max-width: 1200px !important;
  margin: 1rem auto 2rem !important;
  padding: 0 !important;
  overflow: visible !important;
}

body.archive .ast-archive-description .efx-tone-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 14px !important;
  width: 100% !important;
  max-width: none !important;
  margin: 1rem 0 2rem !important;
  padding: 0 !important;
  border: 0 !important;
}

body.archive .ast-archive-description .efx-tone-card {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  height: 100% !important;
  margin: 0 !important;
  text-decoration: none !important;
  border-bottom: 0 !important;
}

/* Kill Astra/theme link decorations only inside this nav */
body.archive .ast-archive-description .efx-tone-card::after {
  content: none !important;
  display: none !important;
}

/* Keep our gradient spine alive */
body.archive .ast-archive-description .efx-tone-card::before {
  content: "" !important;
  display: block !important;
}

/* Responsive */
@media (max-width: 920px) {
  body.archive .ast-archive-description .efx-tone-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 560px) {
  body.archive .ast-archive-description .efx-tone-grid {
    grid-template-columns: 1fr !important;
  }
}
/* ============================================================
   8FLiX Mood & Tone Nav — Kill wpautop ghost paragraphs
   Astra/archive descriptions may inject empty <p> tags between cards.
   ============================================================ */

.efx-tone-nav .efx-tone-grid > p,
.efx-tone-nav .efx-tone-grid > br {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  height: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
}

.efx-tone-nav .efx-tone-grid > :not(.efx-tone-card) {
  display: none !important;
}