/* WellSourced Icon System - Global Styles */
/* Modern outline icons in brand colors (Light Aqua #5ec8d8 + White) */

:root {
  --icon-color: #5ec8d8;
  --icon-color-white: #ffffff;
  --icon-stroke-width: 1.5;
}

/* Base icon styles */
svg.icon,
svg[class*="icon"] {
  display: inline-block;
  width: 1.5rem;
  height: 1.5rem;
  stroke: var(--icon-color);
  stroke-width: var(--icon-stroke-width);
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  vertical-align: middle;
  flex-shrink: 0;
}

/* Size variants */
svg.icon.icon-lg,
svg[class*="icon"].icon-lg {
  width: 2rem;
  height: 2rem;
}

svg.icon.icon-sm,
svg[class*="icon"].icon-sm {
  width: 1rem;
  height: 1rem;
}

svg.icon.icon-xs,
svg[class*="icon"].icon-xs {
  width: 0.875rem;
  height: 0.875rem;
}

/* White variant for dark backgrounds */
svg.icon.icon-white,
svg[class*="icon"].icon-white {
  stroke: var(--icon-color-white);
}

/* Icon with text alignment */
.icon-with-text,
.icon-text {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

/* Icon in button */
button svg.icon,
.btn svg.icon,
[class*="btn"] svg.icon {
  margin-right: 0.375rem;
}

/* Icon in heading */
h1 svg.icon,
h2 svg.icon,
h3 svg.icon,
h4 svg.icon,
h5 svg.icon,
h6 svg.icon {
  margin-right: 0.5rem;
  vertical-align: -0.125em;
}

/* Icon animation - hover effect */
svg.icon,
svg[class*="icon"] {
  transition: stroke 0.2s ease, transform 0.2s ease;
}

a:hover svg.icon,
button:hover svg.icon,
[role="button"]:hover svg.icon {
  transform: translateY(-2px);
}

/* Icon in badge/pill */
.badge svg.icon,
.pill svg.icon,
.tag svg.icon,
[class*="badge"] svg.icon,
[class*="pill"] svg.icon,
[class*="tag"] svg.icon {
  width: 1rem;
  height: 1rem;
  margin-right: 0.25rem;
}

/* Icon as avatar/circle background */
.icon-avatar,
.icon-circle {
  width: 3rem;
  height: 3rem;
  padding: 0.75rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--aqua-pale, #e8f7fa);
}

.icon-avatar svg.icon,
.icon-circle svg.icon {
  width: 1.5rem;
  height: 1.5rem;
}

.icon-avatar.lg,
.icon-circle.lg {
  width: 4rem;
  height: 4rem;
  padding: 1rem;
}

.icon-avatar.lg svg.icon,
.icon-circle.lg svg.icon {
  width: 2rem;
  height: 2rem;
}

/* Icon in list/table */
td svg.icon,
li svg.icon,
.list-item svg.icon {
  margin-right: 0.75rem;
}

/* Icon loader/spinner animation */
@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

svg.icon.icon-spin,
svg[class*="icon"].icon-spin {
  animation: spin 1s linear infinite;
}

/* Responsive sizing */
@media (max-width: 768px) {
  svg.icon,
  svg[class*="icon"] {
    width: 1.25rem;
    height: 1.25rem;
  }

  svg.icon.icon-lg,
  svg[class*="icon"].icon-lg {
    width: 1.75rem;
    height: 1.75rem;
  }

  h1 svg.icon,
  h2 svg.icon,
  h3 svg.icon {
    width: 1.5rem;
    height: 1.5rem;
  }
}

/* Accessibility */
svg.icon,
svg[class*="icon"] {
  /* Icons are decorative - hide from screen readers by default */
  aria-hidden: true;
}

/* Icon with explicit label for a11y */
.icon-labeled {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.icon-labeled svg.icon,
.icon-labeled svg[class*="icon"] {
  aria-hidden: true;
}

/* High contrast mode support */
@media (prefers-contrast: more) {
  svg.icon,
  svg[class*="icon"] {
    stroke-width: 2;
  }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  svg.icon,
  svg[class*="icon"],
  a:hover svg.icon,
  button:hover svg.icon,
  [role="button"]:hover svg.icon {
    transition: none;
    animation: none;
    transform: none;
  }
}

/* ─────────────────────────────────────────────────────────────
   EXIT-INTENT POPUP
   ───────────────────────────────────────────────────────────── */
#ws-ei-popup {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.25s ease;
  font-family: 'DM Sans', Helvetica, Arial, sans-serif;
}

.ws-ei-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(31, 58, 74, 0.55);
  backdrop-filter: blur(3px);
}

.ws-ei-card {
  position: relative;
  z-index: 1;
  background: #ffffff;
  border-radius: 16px;
  padding: 44px 40px 40px;
  max-width: 520px;
  width: calc(100% - 40px);
  box-shadow: 0 24px 80px rgba(31, 58, 74, 0.28);
  border-top: 4px solid #5ec8d8;
  transform: scale(0.94) translateY(12px);
  transition: transform 0.3s cubic-bezier(0.34, 1.2, 0.64, 1);
  text-align: center;
}

.ws-ei-close {
  position: absolute;
  top: 16px;
  right: 16px;
  background: none;
  border: none;
  cursor: pointer;
  color: #94a3b8;
  font-size: 1.1rem;
  line-height: 1;
  padding: 6px 8px;
  border-radius: 6px;
  transition: color 0.15s, background 0.15s;
}
.ws-ei-close:hover { color: #1f3a4a; background: #f0f8fb; }

.ws-ei-icon {
  width: 52px;
  height: 52px;
  background: rgba(94, 200, 216, 0.1);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 18px;
}

.ws-ei-eyebrow {
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: #5ec8d8;
  margin: 0 0 10px;
}

.ws-ei-headline {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(1.5rem, 4vw, 2rem);
  font-weight: 700;
  color: #1f3a4a;
  line-height: 1.15;
  margin: 0 0 14px;
}
.ws-ei-headline em { font-style: italic; color: #5ec8d8; font-weight: 400; }

.ws-ei-body {
  font-size: 0.92rem;
  color: #64748b;
  line-height: 1.7;
  margin: 0 0 24px;
  max-width: 380px;
  margin-left: auto;
  margin-right: auto;
}

.ws-ei-form {
  display: flex;
  gap: 0;
  max-width: 400px;
  margin: 0 auto 10px;
}

.ws-ei-input {
  flex: 1;
  min-width: 0;
  padding: 13px 18px;
  border: 1.5px solid #d1d5db;
  border-right: none;
  border-radius: 100px 0 0 100px;
  font-size: 0.9rem;
  font-family: 'DM Sans', sans-serif;
  outline: none;
  color: #1f3a4a;
  background: #fff;
  transition: border-color 0.2s;
}
.ws-ei-input:focus { border-color: #5ec8d8; }
.ws-ei-input::placeholder { color: #9ca3af; }

.ws-ei-btn {
  background: #5ec8d8;
  color: #fff;
  border: none;
  padding: 13px 22px;
  border-radius: 0 100px 100px 0;
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  font-family: 'DM Sans', sans-serif;
  white-space: nowrap;
  transition: background 0.2s;
}
.ws-ei-btn:hover:not(:disabled) { background: #4ab5c4; }
.ws-ei-btn:disabled { opacity: 0.65; cursor: not-allowed; }

.ws-ei-msg {
  font-size: 0.82rem;
  color: #5ec8d8;
  min-height: 1.2em;
  margin: 0 0 8px;
  text-align: left;
  max-width: 400px;
  margin-left: auto;
  margin-right: auto;
}

.ws-ei-note {
  font-size: 0.75rem;
  color: #94a3b8;
  margin: 0;
}

.ws-ei-course-link {
  font-size: 0.78rem;
  color: #94a3b8;
  margin: 10px 0 0;
}
.ws-ei-course-link a {
  color: #5ec8d8;
  text-decoration: none;
  font-weight: 500;
}
.ws-ei-course-link a:hover { text-decoration: underline; }

@media (max-width: 480px) {
  .ws-ei-card { padding: 36px 24px 32px; }
  .ws-ei-form { flex-direction: column; gap: 0; }
  .ws-ei-input { border-right: 1.5px solid #d1d5db; border-bottom: none; border-radius: 12px 12px 0 0; }
  .ws-ei-btn { border-radius: 0 0 12px 12px; }
}

/* ─────────────────────────────────────────────────────────────
   MID-ARTICLE COURSE CTA BANNER
   ───────────────────────────────────────────────────────────── */
.ws-article-course-cta {
  background: var(--aqua-subtle, #f0f8fb);
  border: 1.5px solid var(--aqua-light, #d4f0f5);
  border-left: 4px solid #5ec8d8;
  border-radius: 10px;
  padding: 24px 28px;
  margin: 2.5em 0;
  display: flex;
  align-items: center;
  gap: 20px;
}

.ws-article-course-cta-icon {
  flex-shrink: 0;
  width: 42px;
  height: 42px;
  background: rgba(94, 200, 216, 0.12);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ws-article-course-cta-text {
  flex: 1;
  min-width: 0;
}

.ws-article-course-cta-label {
  font-size: 0.68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #5ec8d8;
  margin: 0 0 4px;
}

.ws-article-course-cta-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 1.25rem;
  font-weight: 700;
  color: #1f3a4a;
  margin: 0 0 6px;
  line-height: 1.2;
}

.ws-article-course-cta-desc {
  font-size: 0.85rem;
  color: #64748b;
  margin: 0 0 12px;
  line-height: 1.55;
}

.ws-article-course-cta-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #5ec8d8;
  color: #fff;
  padding: 9px 20px;
  border-radius: 100px;
  font-size: 0.82rem;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s, transform 0.15s;
  white-space: nowrap;
}
.ws-article-course-cta-link:hover {
  background: #4ab5c4;
  transform: translateY(-1px);
  text-decoration: none;
  color: #fff;
}

@media (max-width: 600px) {
  .ws-article-course-cta {
    flex-direction: column;
    align-items: flex-start;
    padding: 20px;
    gap: 14px;
  }
  .ws-article-course-cta-link { align-self: flex-start; }
}
