/*!
 * RxTechExam State FAQs — plugin styles (v1.1.0).
 * All selectors prefixed with `.rxsf-` (RxTechExam State FAQ) to avoid
 * collisions with theme CSS and the sister plugin RxTechTalks v2 (.rxtt-*).
 * Palette and typography intentionally mirror RxTechTalks v2 so state
 * pages live in the same visual world as the blog.
 *
 * v1.1.0 changes:
 *  - Partnership mark: white circle that holds the RxTechExam logo image (was navy circle with "RxT" text)
 *  - Partnership "×" decoration removed
 *  - CTA eyebrow green dash hidden (so "RXTECHEXAM × PPA" stands alone)
 */

.rxsf {
  --rxsf-green:        #6EA029;
  --rxsf-green-2:      #5A8421;
  --rxsf-green-3:      #4A6E1B;
  --rxsf-green-soft:   #EEF5E1;
  --rxsf-green-soft-2: #DDEBC3;
  --rxsf-navy:         #112337;
  --rxsf-navy-2:       #1B3050;
  --rxsf-navy-soft:    #E6EAF0;
  --rxsf-ink:          #0F1B26;
  --rxsf-ink-2:        #2B3A48;
  --rxsf-muted:        #5C6470;
  --rxsf-soft:         #8A93A0;
  --rxsf-line:         #E6E8EC;
  --rxsf-line-2:       #F0F2F5;
  --rxsf-bg:           #FFFFFF;
  --rxsf-bg-warm:      #FAFBFC;
  --rxsf-bg-card:      #FFFFFF;
  --rxsf-shadow-sm:    0 1px 2px rgba(17,35,55,.04), 0 1px 3px rgba(17,35,55,.04);
  --rxsf-shadow-md:    0 6px 24px -8px rgba(17,35,55,.10), 0 2px 6px rgba(17,35,55,.04);
  --rxsf-shadow-lg:    0 24px 60px -24px rgba(17,35,55,.20), 0 8px 16px -8px rgba(17,35,55,.06);
  --rxsf-radius-sm:    8px;
  --rxsf-radius:       14px;
  --rxsf-radius-lg:    22px;

  font-family: 'Inter', system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  color: var(--rxsf-ink);
}
.rxsf * { box-sizing: border-box; }
.rxsf img { max-width: 100%; display: block; }
.rxsf a { color: inherit; }

/* ---- Partnership ribbon ---- */
.rxsf-ribbon {
  background: linear-gradient(135deg, var(--rxsf-green-soft) 0%, var(--rxsf-green-soft-2) 100%);
  border: 1px solid var(--rxsf-green-soft-2);
  border-radius: var(--rxsf-radius);
  padding: 12px 18px;
  margin: 0 0 22px;
}
.rxsf-ribbon-inner {
  display: flex; align-items: center; gap: 12px;
  flex-wrap: wrap;
  font-size: 13.5px; color: var(--rxsf-green-3); font-weight: 600;
  line-height: 1.45;
}
.rxsf-ribbon-badge {
  display: inline-flex; align-items: center; gap: 8px;
  background: #fff;
  border: 1px solid var(--rxsf-green-soft-2);
  padding: 5px 12px; border-radius: 999px;
  font-size: 11.5px; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--rxsf-green-3);
}
.rxsf-ribbon-badge::before {
  content: ''; width: 8px; height: 8px; border-radius: 50%;
  background: var(--rxsf-green); display: inline-block;
}
.rxsf-ribbon a { color: var(--rxsf-navy); text-decoration: underline; text-underline-offset: 2px; font-weight: 700; }

/* ---- Hero ---- */
.rxsf-hero {
  padding: 32px 0 36px;
  border-bottom: 1px solid var(--rxsf-line);
  margin-bottom: 36px;
}
.rxsf-eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 12px; font-weight: 700;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--rxsf-green-3);
  margin: 0 0 18px;
}
.rxsf-eyebrow::before {
  content: ''; width: 28px; height: 2px;
  background: var(--rxsf-green); border-radius: 2px;
}
.rxsf .rxsf-h1 {
  font-weight: 800;
  font-size: clamp(32px, 4.4vw, 48px);
  line-height: 1.05;
  letter-spacing: -0.035em;
  color: var(--rxsf-navy);
  margin: 0 0 18px;
  max-width: 24ch;
}
.rxsf-accent { color: var(--rxsf-green); }
.rxsf-lede {
  font-size: 17px; line-height: 1.55;
  color: var(--rxsf-ink-2);
  max-width: 64ch; margin: 0 0 22px;
}

/* ---- Alert (e.g., PA deadline) ---- */
.rxsf-alert {
  display: flex; align-items: flex-start; gap: 14px;
  background: #FFF7E6;
  border: 1px solid #F2D08E;
  border-left: 4px solid #B7791F;
  padding: 14px 18px;
  border-radius: 12px;
  margin: 0 0 22px;
}
.rxsf-alert-icon {
  width: 30px; height: 30px; flex-shrink: 0;
  border-radius: 50%; background: #B7791F; color: #fff;
  display: grid; place-items: center;
  font-weight: 800; font-size: 16px; line-height: 1;
}
.rxsf-alert-body { color: #7B5212; font-size: 14.5px; line-height: 1.5; }
.rxsf-alert-body strong { display: block; color: #7B5212; font-weight: 700; margin-bottom: 4px; }

/* ---- Stats strip ---- */
.rxsf-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin: 22px 0 0;
}
.rxsf-stat {
  background: var(--rxsf-bg-card);
  border: 1px solid var(--rxsf-line);
  border-radius: var(--rxsf-radius);
  padding: 16px 18px;
  box-shadow: var(--rxsf-shadow-sm);
}
.rxsf-stat-num {
  font-size: 24px;
  font-weight: 800;
  color: var(--rxsf-navy);
  letter-spacing: -0.02em;
  line-height: 1.1;
  display: block;
}
.rxsf-stat-num.is-green { color: var(--rxsf-green); }
.rxsf-stat-label {
  font-size: 12px;
  color: var(--rxsf-muted);
  margin-top: 4px;
  font-weight: 500;
}

/* ---- Meta line (now sits above sources, after FAQ) ---- */
.rxsf-meta {
  display: flex; flex-wrap: wrap; gap: 10px 14px;
  align-items: center;
  padding: 16px 0;
  margin: 8px 0 28px;
  border-top: 1px solid var(--rxsf-line);
  border-bottom: 1px solid var(--rxsf-line);
}
.rxsf-meta-item {
  font-size: 13px;
  color: var(--rxsf-muted);
  display: inline-flex; align-items: center; gap: 6px;
}
.rxsf-meta-item strong { color: var(--rxsf-navy); font-weight: 700; }
.rxsf-dot { width: 3px; height: 3px; border-radius: 50%; background: var(--rxsf-soft); }

/* ---- Section ---- */
.rxsf-section { padding: 0 0 16px; }
.rxsf-section-head { margin-bottom: 28px; }
.rxsf-section-head h2 {
  font-weight: 800;
  font-size: clamp(26px, 3.2vw, 36px);
  line-height: 1.08;
  letter-spacing: -0.025em;
  color: var(--rxsf-navy);
  margin: 0 0 8px;
}
.rxsf-section-head p {
  color: var(--rxsf-muted);
  margin: 0;
  max-width: 64ch;
  font-size: 15px;
}

/* ---- Partnership card ---- */
.rxsf-partnership-card {
  display: grid;
  grid-template-columns: 84px 1fr auto;
  gap: 22px;
  align-items: center;
  padding: 20px 24px;
  background: linear-gradient(135deg, #fff 0%, var(--rxsf-green-soft) 100%);
  border: 1px solid var(--rxsf-green-soft-2);
  border-radius: var(--rxsf-radius);
  margin-bottom: 28px;
  box-shadow: var(--rxsf-shadow-sm);
}
.rxsf-partnership-mark {
  width: 84px; height: 84px;
  border-radius: 50%;
  background: #fff;
  color: var(--rxsf-navy);
  display: grid; place-items: center;
  font-weight: 800; font-size: 22px;
  letter-spacing: -0.02em;
  position: relative;
  box-shadow: var(--rxsf-shadow-md);
  border: 1px solid var(--rxsf-line);
  overflow: hidden;
}
.rxsf-partnership-mark img,
.rxsf-partnership-mark svg {
  width: 78%; height: 78%;
  object-fit: contain;
  display: block;
}
.rxsf-partnership-body h4 {
  font-size: 17px; font-weight: 700;
  color: var(--rxsf-navy); margin: 0 0 4px;
  letter-spacing: -0.015em;
}
.rxsf-partnership-body p {
  color: var(--rxsf-ink-2); font-size: 14px;
  margin: 0; max-width: 56ch; line-height: 1.55;
}
.rxsf-partnership-mark-secondary {
  display: inline-flex; align-items: center; justify-content: center;
  height: 84px; padding: 0 20px;
  background: #fff;
  border: 2px solid var(--rxsf-green-soft-2);
  border-radius: var(--rxsf-radius);
  font-weight: 800; font-size: 17px;
  color: var(--rxsf-green-3);
  letter-spacing: 0.04em;
}

/* ---- FAQ list ---- */
.rxsf-faq {
  display: flex; flex-direction: column;
  gap: 10px;
  margin-bottom: 28px;
}
.rxsf-faq-item {
  background: var(--rxsf-bg-card);
  border: 1px solid var(--rxsf-line);
  border-radius: var(--rxsf-radius);
  overflow: hidden;
  transition: border-color .2s, box-shadow .2s;
}
.rxsf-faq-item[open],
.rxsf-faq-item:hover {
  border-color: var(--rxsf-green-soft-2);
  box-shadow: var(--rxsf-shadow-md);
}
.rxsf-faq-item summary {
  list-style: none;
  cursor: pointer;
  padding: 20px 60px 20px 24px;
  position: relative;
  font-size: 16.5px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -0.012em;
  color: var(--rxsf-navy);
}
.rxsf-faq-item summary::-webkit-details-marker { display: none; }
.rxsf-faq-item summary::after {
  content: '+';
  position: absolute;
  right: 22px; top: 50%;
  transform: translateY(-50%);
  width: 30px; height: 30px;
  border-radius: 50%;
  background: var(--rxsf-green-soft);
  color: var(--rxsf-green-3);
  display: grid; place-items: center;
  font-size: 20px; font-weight: 600;
  line-height: 1;
  transition: transform .2s, background .2s, color .2s;
}
.rxsf-faq-item[open] summary::after {
  content: '\2212';
  background: var(--rxsf-green);
  color: #fff;
  transform: translateY(-50%) rotate(180deg);
}
.rxsf-faq-num {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--rxsf-green-3);
  background: var(--rxsf-green-soft);
  padding: 3px 9px;
  border-radius: 999px;
  margin-right: 10px;
  vertical-align: 2px;
}
.rxsf-faq-answer {
  padding: 0 24px 22px 24px;
  color: var(--rxsf-ink-2);
  font-size: 15.5px;
  line-height: 1.65;
}
.rxsf-faq-answer p { margin: 0 0 10px; }
.rxsf-faq-answer p:last-child { margin-bottom: 0; }
.rxsf-cite {
  display: inline-block;
  margin-top: 10px;
  font-size: 12.5px;
  color: var(--rxsf-muted);
  background: var(--rxsf-bg-warm);
  border: 1px solid var(--rxsf-line);
  padding: 6px 10px;
  border-radius: 8px;
  font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
}

.rxsf-faq-item.is-partnership {
  border-color: var(--rxsf-green-soft-2);
  background: linear-gradient(180deg, #fff 0%, rgba(238,245,225,.4) 100%);
}
.rxsf-faq-item.is-partnership summary::before {
  display: inline-block;
  font-size: 10px; font-weight: 800;
  letter-spacing: 0.12em;
  background: var(--rxsf-green); color: #fff;
  padding: 3px 8px; border-radius: 4px;
  margin-right: 10px;
  vertical-align: 2px;
  text-transform: uppercase;
  content: 'PARTNER';
}
.rxsf-state-pennsylvania .rxsf-faq-item.is-partnership summary::before { content: 'PPA'; }
.rxsf-state-south-carolina .rxsf-faq-item.is-partnership summary::before { content: 'SCPHA'; }
.rxsf-state-north-carolina .rxsf-faq-item.is-partnership summary::before { content: 'NCAP'; }
.rxsf-state-louisiana .rxsf-faq-item.is-partnership summary::before { content: 'LIPA'; }
.rxsf-state-alabama .rxsf-faq-item.is-partnership summary::before { content: 'ALBOP'; }

/* ---- Sources footer ---- */
.rxsf-sources {
  margin: 0 0 28px;
  font-size: 12.5px;
  color: var(--rxsf-muted);
  line-height: 1.6;
}
.rxsf-sources strong { color: var(--rxsf-navy); font-weight: 700; }

/* ---- CTA ---- */
.rxsf-cta {
  margin: 28px 0 0;
  padding: 44px 36px;
  background:
    radial-gradient(circle at 85% 10%, rgba(110,160,41,.20), transparent 50%),
    radial-gradient(circle at 5% 90%, rgba(110,160,41,.10), transparent 40%),
    linear-gradient(135deg, var(--rxsf-navy) 0%, #061421 100%);
  color: #fff;
  border-radius: var(--rxsf-radius-lg);
  position: relative; overflow: hidden;
  text-align: center;
}
.rxsf-cta .rxsf-eyebrow { color: var(--rxsf-green); }
.rxsf-cta .rxsf-eyebrow::before { display: none; }
.rxsf-cta h3 {
  font-weight: 800;
  font-size: clamp(24px, 3vw, 32px);
  line-height: 1.1;
  letter-spacing: -0.025em;
  color: #fff;
  margin: 10px auto 12px;
  max-width: 28ch;
}
.rxsf-cta p {
  color: rgba(255,255,255,.78);
  max-width: 56ch;
  margin: 0 auto 20px;
  font-size: 15px;
}

.rxsf-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 24px;
  border-radius: 999px;
  font-size: 14.5px; font-weight: 600; letter-spacing: 0.01em;
  border: 1.5px solid transparent;
  cursor: pointer;
  font-family: inherit; line-height: 1;
  transition: transform .15s, box-shadow .15s, background .15s;
  text-decoration: none !important;
  color: #fff !important;
}
.rxsf-btn-primary { background: var(--rxsf-green); }
.rxsf-btn-primary:hover {
  background: var(--rxsf-green-2);
  transform: translateY(-1px);
  box-shadow: 0 8px 20px -8px rgba(110,160,41,.5);
  color: #fff !important;
}
.rxsf-btn-primary::after { content: '\2192'; transition: transform .2s; }
.rxsf-btn-primary:hover::after { transform: translateX(3px); }

@media (max-width: 768px) {
  .rxsf-stats { grid-template-columns: repeat(2, 1fr); }
  .rxsf-faq-item summary { font-size: 15.5px; padding: 18px 54px 18px 20px; }
  .rxsf-faq-item summary::after { right: 18px; }
  .rxsf-faq-answer { padding: 0 20px 20px 20px; font-size: 15px; }
  .rxsf-partnership-card { grid-template-columns: 64px 1fr; gap: 14px; padding: 16px 18px; }
  .rxsf-partnership-mark { width: 64px; height: 64px; font-size: 18px; }
  .rxsf-partnership-mark-secondary { display: none; }
  .rxsf .rxsf-h1 { font-size: clamp(28px, 8vw, 36px); }
  .rxsf-cta { padding: 36px 24px; }
}

@media print {
  .rxsf-cta { display: none; }
  .rxsf-faq-item { break-inside: avoid; }
  .rxsf-faq-item .rxsf-faq-answer { display: block !important; }
  .rxsf-faq-item summary::after { display: none; }
}
