/*
 * ECHOLOGISTS Content System v0.2.13
 * Brand refinement layer. Loaded after frontend.css so existing content and
 * shortcode markup remain compatible while the visual system is upgraded.
 */

:root {
  --eco-cs-bg: #080a09;
  --eco-cs-bg2: #0b0e0c;
  --eco-cs-bg3: #0f1310;
  --eco-cs-bg4: #151a16;
  --eco-cs-panel: rgba(12, 16, 13, .96);
  --eco-cs-green: #4aff91;
  --eco-cs-green-strong: #73ffa8;
  --eco-cs-green-dim: rgba(74, 255, 145, .66);
  --eco-cs-green-faint: rgba(74, 255, 145, .065);
  --eco-cs-green-glow: rgba(74, 255, 145, .16);
  --eco-cs-border: rgba(74, 255, 145, .20);
  --eco-cs-border-strong: rgba(74, 255, 145, .38);
  --eco-cs-border-dim: rgba(232, 232, 232, .105);
  --eco-cs-text: #edf1ee;
  --eco-cs-text-mid: rgba(237, 241, 238, .74);
  --eco-cs-text-dim: rgba(237, 241, 238, .50);
  --eco-cs-text-faint: rgba(237, 241, 238, .30);
  --eco-cs-amber: #ffd86b;
  --eco-cs-red: #ff6a85;
  --eco-cs-blue: #7cc9ff;
  --eco-cs-purple: #b8a4ff;
  --eco-cs-mono: "JetBrains Mono", "IBM Plex Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --eco-cs-soft: "Space Grotesk", Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --eco-cs-display: "Space Grotesk", Inter, system-ui, sans-serif;
  --eco-cs-max: 1440px;
  --eco-cs-radius: 0px;
  --eco-cs-shadow: 0 20px 70px rgba(0, 0, 0, .34);
}

html[data-eco-theme="light"] {
  --eco-cs-bg: #f4f7f5;
  --eco-cs-bg2: #ffffff;
  --eco-cs-bg3: #edf2ef;
  --eco-cs-bg4: #e5ece8;
  --eco-cs-panel: rgba(255, 255, 255, .98);
  --eco-cs-green: #087d43;
  --eco-cs-green-strong: #056936;
  --eco-cs-green-dim: rgba(8, 125, 67, .72);
  --eco-cs-green-faint: rgba(8, 125, 67, .075);
  --eco-cs-green-glow: rgba(8, 125, 67, .10);
  --eco-cs-border: rgba(8, 125, 67, .20);
  --eco-cs-border-strong: rgba(8, 125, 67, .40);
  --eco-cs-border-dim: rgba(12, 30, 21, .13);
  --eco-cs-text: #101713;
  --eco-cs-text-mid: rgba(16, 23, 19, .74);
  --eco-cs-text-dim: rgba(16, 23, 19, .53);
  --eco-cs-text-faint: rgba(16, 23, 19, .34);
  --eco-cs-shadow: 0 20px 60px rgba(24, 48, 35, .10);
}

/* WordPress-theme normalization only on plugin-owned routes. */
body.eco-cs-plugin-page {
  background: var(--eco-cs-bg);
  color: var(--eco-cs-text);
}

body.eco-cs-plugin-page :where(.site, .site-content, .site-main, .content-area, .entry-content, .wp-site-blocks, main) {
  background-color: transparent;
}

body.eco-cs-plugin-page :where(.entry-header, .page-header > .entry-title, article.page > header:first-child) {
  display: none;
}

body.eco-cs-plugin-page :where(.entry-content, .site-main, .wp-block-post-content) {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

body.eco-cs-plugin-page :where(.entry-content > *, .wp-block-post-content > *) {
  max-width: none;
}

/* Shared visual shell. */
:where(
  .eco-cs-template-shell,
  .eco-cs-case-library,
  .eco-cs-education-library,
  .eco-cs-quiz-bank,
  .eco-cs-calculators,
  .eco-cs-learning-dashboard,
  .eco-cs-learn-feed
) {
  position: relative;
  width: min(100%, var(--eco-cs-max));
  margin-inline: auto;
  overflow: clip;
  border-inline: 1px solid var(--eco-cs-border-dim);
  background:
    linear-gradient(rgba(74, 255, 145, .014) 1px, transparent 1px),
    var(--eco-cs-bg);
  background-size: 100% 5px, auto;
  color: var(--eco-cs-text);
  font-family: var(--eco-cs-mono);
  font-size: 14px;
  line-height: 1.55;
  isolation: isolate;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

:where(
  .eco-cs-template-shell,
  .eco-cs-case-library,
  .eco-cs-education-library,
  .eco-cs-quiz-bank,
  .eco-cs-calculators,
  .eco-cs-learning-dashboard,
  .eco-cs-learn-feed
)::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0 auto auto 0;
  width: min(42vw, 680px);
  height: 300px;
  background: radial-gradient(circle at 0 0, var(--eco-cs-green-glow), transparent 68%);
  pointer-events: none;
}

:where(
  .eco-cs-template-shell,
  .eco-cs-case-library,
  .eco-cs-education-library,
  .eco-cs-quiz-bank,
  .eco-cs-calculators,
  .eco-cs-learning-dashboard,
  .eco-cs-learn-feed
) *,
:where(
  .eco-cs-template-shell,
  .eco-cs-case-library,
  .eco-cs-education-library,
  .eco-cs-quiz-bank,
  .eco-cs-calculators,
  .eco-cs-learning-dashboard,
  .eco-cs-learn-feed
) *::before,
:where(
  .eco-cs-template-shell,
  .eco-cs-case-library,
  .eco-cs-education-library,
  .eco-cs-quiz-bank,
  .eco-cs-calculators,
  .eco-cs-learning-dashboard,
  .eco-cs-learn-feed
) *::after {
  box-sizing: border-box;
}

:where(
  .eco-cs-template-shell,
  .eco-cs-case-library,
  .eco-cs-education-library,
  .eco-cs-quiz-bank,
  .eco-cs-calculators,
  .eco-cs-learning-dashboard,
  .eco-cs-learn-feed
) :where(h1, h2, h3, h4, p, ul, ol, dl, figure) {
  color: inherit;
}

:where(
  .eco-cs-template-shell,
  .eco-cs-case-library,
  .eco-cs-education-library,
  .eco-cs-quiz-bank,
  .eco-cs-calculators,
  .eco-cs-learning-dashboard,
  .eco-cs-learn-feed
) a {
  color: inherit;
  text-decoration: none;
}

:where(
  .eco-cs-template-shell,
  .eco-cs-case-library,
  .eco-cs-education-library,
  .eco-cs-quiz-bank,
  .eco-cs-calculators,
  .eco-cs-learning-dashboard,
  .eco-cs-learn-feed,
  .eco-learn-page
) :focus-visible {
  outline: 1px solid var(--eco-cs-green);
  outline-offset: 4px;
}

.eco-cs-template-shell {
  min-height: 72vh;
  padding: clamp(22px, 4vw, 56px);
}

.eco-cs-page-hero {
  position: relative;
  min-height: 270px;
  display: grid;
  align-content: end;
  padding: clamp(42px, 7vw, 90px) clamp(22px, 5vw, 72px) clamp(32px, 5vw, 58px);
  overflow: hidden;
  border-bottom: 1px solid var(--eco-cs-border-dim);
  background:
    linear-gradient(105deg, transparent 0 56%, rgba(74, 255, 145, .04) 56.1% 56.25%, transparent 56.35%),
    linear-gradient(180deg, var(--eco-cs-bg), var(--eco-cs-bg2));
}

.eco-cs-page-hero::before {
  content: "ECHO_SIGNAL / 01";
  position: absolute;
  top: 24px;
  right: clamp(22px, 5vw, 72px);
  color: var(--eco-cs-text-faint);
  font: 600 8px/1 var(--eco-cs-mono);
  letter-spacing: .22em;
}

.eco-cs-page-hero::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 1px;
  background: linear-gradient(90deg, transparent 2%, var(--eco-cs-green) 38%, rgba(74, 255, 145, .12) 78%, transparent);
  box-shadow: 0 0 18px var(--eco-cs-green-glow);
}

.eco-cs-kicker,
.eco-cs-section-label {
  margin: 0 0 15px;
  color: var(--eco-cs-green-dim) !important;
  font: 600 9px/1.4 var(--eco-cs-mono);
  letter-spacing: .25em;
  text-transform: uppercase;
}

.eco-cs-page-hero h1 {
  max-width: 900px;
  margin: 0 0 15px;
  color: var(--eco-cs-text) !important;
  font: 520 clamp(36px, 6vw, 76px)/.98 var(--eco-cs-display);
  letter-spacing: -.06em;
  text-wrap: balance;
}

.eco-cs-page-hero h1 span {
  color: var(--eco-cs-green) !important;
}

.eco-cs-page-hero > p:not(.eco-cs-kicker) {
  max-width: 760px;
  margin: 0;
  color: var(--eco-cs-text-mid) !important;
  font: 400 clamp(13px, 1.35vw, 16px)/1.72 var(--eco-cs-soft);
}

.eco-cs-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 34px;
  margin-top: 30px;
  color: var(--eco-cs-text-dim);
  font: 600 9px/1.35 var(--eco-cs-mono);
  letter-spacing: .12em;
  text-transform: uppercase;
}

.eco-cs-stats > span {
  min-width: 100px;
  padding-left: 12px;
  border-left: 1px solid var(--eco-cs-border);
}

.eco-cs-stats strong {
  display: block;
  margin-bottom: 3px;
  color: var(--eco-cs-green);
  font-size: 19px;
  letter-spacing: -.02em;
}

.eco-cs-disclaimer {
  margin: 0;
  padding: 20px clamp(20px, 4vw, 50px);
  border-top: 1px solid var(--eco-cs-border-dim);
  color: var(--eco-cs-text-faint) !important;
  background: var(--eco-cs-bg2);
  font: 500 9px/1.75 var(--eco-cs-mono);
  letter-spacing: .045em;
}

/* SVG icon system. */
.eco-cs-icon {
  display: block;
  width: 1em;
  height: 1em;
  overflow: visible;
  vector-effect: non-scaling-stroke;
}

.eco-learn-quick-icon,
.eco-learn-tool-icon,
.eco-learn-article-symbol,
.eco-learn-article-mini-icon {
  color: var(--eco-cs-text-faint);
}

.eco-learn-quick-icon .eco-cs-icon {
  width: 29px;
  height: 29px;
}

.eco-learn-tool-icon .eco-cs-icon {
  width: 18px;
  height: 18px;
}

.eco-learn-article-symbol .eco-cs-icon {
  width: 35px;
  height: 35px;
}

.eco-learn-article-mini-icon .eco-cs-icon {
  width: 19px;
  height: 19px;
}

.eco-learn-quick-link:hover .eco-learn-quick-icon,
.eco-learn-quick-link:focus-visible .eco-learn-quick-icon,
.eco-learn-tool-link:hover .eco-learn-tool-icon,
.eco-learn-tool-link:focus-visible .eco-learn-tool-icon {
  color: var(--eco-cs-green);
  filter: drop-shadow(0 0 8px var(--eco-cs-green-glow));
}

/* LEARN dynamic cards and destination cards. */
.eco-cs-learn-feed {
  padding: clamp(18px, 3vw, 36px);
}

.eco-cs-learn-feed .eco-learn-featured-grid,
.eco-cs-education-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.eco-cs-education-grid {
  padding: clamp(20px, 4vw, 52px);
}

.eco-cs-learn-feed .eco-learn-article-card,
.eco-cs-education-library .eco-learn-article-card {
  position: relative;
  display: block;
  min-height: 240px;
  padding: clamp(19px, 2.4vw, 28px);
  overflow: hidden;
  border: 1px solid var(--eco-cs-border-dim);
  background:
    linear-gradient(145deg, rgba(74, 255, 145, .032), transparent 48%),
    var(--eco-cs-bg2);
  color: var(--eco-cs-text);
  transition: transform .22s ease, border-color .22s ease, background-color .22s ease;
}

.eco-cs-learn-feed .eco-learn-article-card::after,
.eco-cs-education-library .eco-learn-article-card::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 1px;
  background: var(--eco-cs-green);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s ease;
}

.eco-cs-learn-feed .eco-learn-article-card:hover,
.eco-cs-education-library .eco-learn-article-card:hover {
  z-index: 1;
  transform: translateY(-3px);
  border-color: var(--eco-cs-border-strong);
  background-color: var(--eco-cs-bg3);
  box-shadow: var(--eco-cs-shadow);
}

.eco-cs-learn-feed .eco-learn-article-card:hover::after,
.eco-cs-education-library .eco-learn-article-card:hover::after {
  transform: scaleX(1);
}

.eco-cs-learn-feed .eco-learn-article-card--featured,
.eco-cs-education-library .eco-learn-article-card--featured {
  grid-column: 1 / -1;
  min-height: 260px;
  display: grid;
  grid-template-columns: 125px minmax(0, 1fr);
  align-items: stretch;
  gap: clamp(22px, 3vw, 40px);
}

.eco-learn-article-symbol {
  display: grid;
  place-items: center;
  min-height: 170px;
  border: 1px solid var(--eco-cs-border);
  background:
    linear-gradient(rgba(74, 255, 145, .028) 1px, transparent 1px),
    linear-gradient(90deg, rgba(74, 255, 145, .028) 1px, transparent 1px),
    var(--eco-cs-green-faint);
  background-size: 12px 12px;
  color: var(--eco-cs-green-dim);
}

.eco-learn-article-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 24px;
}

.eco-learn-article-mini-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid var(--eco-cs-border);
  background: var(--eco-cs-green-faint);
  color: var(--eco-cs-green-dim);
}

.eco-learn-status-badge {
  display: inline-flex;
  align-items: center;
  width: max-content;
  min-height: 24px;
  padding: 5px 8px;
  border: 1px solid var(--eco-cs-border);
  background: rgba(74, 255, 145, .02);
  color: var(--eco-cs-green-dim) !important;
  font: 650 8px/1 var(--eco-cs-mono);
  letter-spacing: .14em;
  text-transform: uppercase;
}

.eco-learn-article-category {
  margin: 13px 0 8px !important;
  color: var(--eco-cs-green-dim) !important;
  font: 650 9px/1.45 var(--eco-cs-mono);
  letter-spacing: .16em;
  text-transform: uppercase;
}

.eco-cs-learn-feed h3,
.eco-cs-education-library h3 {
  margin: 0 0 10px;
  color: var(--eco-cs-text) !important;
  font: 520 clamp(18px, 2.2vw, 26px)/1.18 var(--eco-cs-soft);
  letter-spacing: -.03em;
}

.eco-learn-article-excerpt {
  margin: 0 !important;
  color: var(--eco-cs-text-mid) !important;
  font: 400 13px/1.72 var(--eco-cs-soft);
}

.eco-learn-article-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 15px;
  margin-top: 20px;
  color: var(--eco-cs-text-faint);
  font: 550 8px/1.4 var(--eco-cs-mono);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.eco-learn-article-list {
  margin-top: 12px;
  border-top: 1px solid var(--eco-cs-border-dim);
}

.eco-learn-list-item {
  display: grid;
  grid-template-columns: minmax(130px, .4fr) minmax(0, 1fr) auto;
  gap: 20px;
  align-items: center;
  min-height: 58px;
  padding: 13px 16px;
  border-bottom: 1px solid var(--eco-cs-border-dim);
  color: var(--eco-cs-text-mid);
  font: 550 10px/1.45 var(--eco-cs-mono);
  transition: color .18s ease, background .18s ease;
}

.eco-learn-list-item:hover {
  color: var(--eco-cs-text);
  background: var(--eco-cs-green-faint);
}

.eco-learn-list-category {
  color: var(--eco-cs-green-dim);
  text-transform: uppercase;
}

.eco-learn-list-meta {
  color: var(--eco-cs-text-faint);
  text-transform: uppercase;
}

/* Refine the existing Elementor LEARN navigation icon containers. */
.eco-learn-page .eco-learn-quick-icon {
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  margin-bottom: 20px;
  border: 1px solid rgba(232, 232, 232, .08);
  background: rgba(232, 232, 232, .018);
  transition: color .22s ease, border-color .22s ease, background .22s ease;
}

.eco-learn-page .eco-learn-quick-link:hover .eco-learn-quick-icon,
.eco-learn-page .eco-learn-quick-link:focus-visible .eco-learn-quick-icon {
  border-color: var(--eco-cs-border);
  background: var(--eco-cs-green-faint);
}

.eco-learn-page .eco-learn-tool-icon {
  border-color: var(--eco-cs-border-dim);
}

/* Filters, search, and utility controls. */
.eco-cs-filter-bar {
  padding: 20px clamp(20px, 4vw, 50px);
  border-bottom: 1px solid var(--eco-cs-border-dim);
  background: var(--eco-cs-bg2);
}

.eco-cs-filter-group {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  margin: 0 0 14px;
}

.eco-cs-filter-group > span {
  margin-right: 7px;
  color: var(--eco-cs-text-faint);
  font: 600 8px/1 var(--eco-cs-mono);
  letter-spacing: .18em;
  text-transform: uppercase;
}

.eco-cs-filter-group button,
.eco-cs-filter-tabs button,
.eco-cs-calc-nav button {
  appearance: none;
  min-height: 31px;
  padding: 7px 11px;
  border: 1px solid var(--eco-cs-border-dim);
  border-radius: var(--eco-cs-radius);
  background: transparent;
  color: var(--eco-cs-text-dim);
  font: 600 8px/1 var(--eco-cs-mono);
  letter-spacing: .10em;
  text-transform: uppercase;
  cursor: pointer;
  transition: border-color .18s ease, color .18s ease, background .18s ease;
}

.eco-cs-filter-group button:hover,
.eco-cs-filter-group button.is-active,
.eco-cs-filter-tabs button.is-active,
.eco-cs-calc-nav button:hover,
.eco-cs-calc-nav button.is-active {
  border-color: var(--eco-cs-border-strong);
  background: var(--eco-cs-green-faint);
  color: var(--eco-cs-green);
}

.eco-cs-filter-tabs {
  flex-wrap: nowrap;
  overflow-x: auto;
  scrollbar-width: thin;
  border-bottom: 1px solid var(--eco-cs-border-dim);
}

.eco-cs-filter-tabs button {
  border: 0;
  border-bottom: 1px solid transparent;
  white-space: nowrap;
}

.eco-cs-filter-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 13px;
}

.eco-cs-search {
  display: flex;
  align-items: center;
  gap: 9px;
  flex: 1 1 260px;
  max-width: 390px;
  min-height: 38px;
  padding: 8px 12px;
  border: 1px solid var(--eco-cs-border-dim);
  background: var(--eco-cs-bg3);
  color: var(--eco-cs-green-dim);
}

.eco-cs-search input {
  width: 100%;
  min-width: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--eco-cs-text);
  font: 500 10px/1 var(--eco-cs-mono);
}

.eco-cs-search input::placeholder {
  color: var(--eco-cs-text-faint);
}

.eco-cs-results-count {
  margin-left: auto;
  color: var(--eco-cs-text-faint);
  font-size: 9px;
}

.eco-cs-results-count strong {
  color: var(--eco-cs-green);
}

/* Case library. */
.eco-cs-case-layout,
.eco-cs-quiz-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 290px;
}

.eco-cs-case-layout > main,
.eco-cs-quiz-layout > main {
  min-width: 0;
  padding: clamp(22px, 4vw, 50px);
  border-right: 1px solid var(--eco-cs-border-dim);
}

.eco-cs-case-layout > aside,
.eco-cs-quiz-layout > aside {
  padding: 30px 24px;
  background: rgba(15, 19, 16, .58);
}

.eco-cs-case-layout > aside h2,
.eco-cs-quiz-layout > aside h2 {
  margin: 0 0 13px;
  color: var(--eco-cs-green-dim) !important;
  font: 650 10px/1.4 var(--eco-cs-mono);
  letter-spacing: .18em;
  text-transform: lowercase;
}

.eco-cs-case-layout > aside p,
.eco-cs-quiz-layout > aside p {
  color: var(--eco-cs-text-dim) !important;
  font: 400 12px/1.75 var(--eco-cs-soft);
}

.eco-cs-case-layout > aside a {
  display: inline-block;
  margin-top: 15px;
  color: var(--eco-cs-green-dim);
  font-size: 9px;
}

.eco-cs-case-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.eco-cs-case-card {
  position: relative;
  display: flex;
  min-width: 0;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--eco-cs-border-dim);
  background: var(--eco-cs-bg2);
  color: var(--eco-cs-text);
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}

.eco-cs-case-card::before {
  content: "";
  position: absolute;
  z-index: 4;
  inset: 0 0 auto;
  height: 1px;
  background: var(--eco-cs-green);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s ease;
}

.eco-cs-case-card:hover {
  transform: translateY(-3px);
  border-color: var(--eco-cs-border-strong);
  box-shadow: var(--eco-cs-shadow);
}

.eco-cs-case-card:hover::before {
  transform: scaleX(1);
}

.eco-cs-case-card.is-featured {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(260px, .85fr) minmax(0, 1.5fr);
}

.eco-cs-case-media {
  position: relative;
  min-height: 210px;
  overflow: hidden;
  background: #020302;
}

.eco-cs-case-card.is-featured .eco-cs-case-media {
  min-height: 100%;
}

.eco-cs-case-media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 210px;
  object-fit: cover;
  filter: grayscale(.12) saturate(.72) contrast(1.12);
  transition: filter .24s ease, transform .4s ease;
}

.eco-cs-case-card:hover .eco-cs-case-media img {
  filter: grayscale(0) saturate(.88) contrast(1.08);
  transform: scale(1.015);
}

.eco-cs-media-badge {
  position: absolute;
  top: 12px;
  right: 12px;
  padding: 5px 8px;
  border: 1px solid var(--eco-cs-border);
  background: rgba(4, 6, 5, .84);
  color: var(--eco-cs-green);
  font: 650 8px/1 var(--eco-cs-mono);
  letter-spacing: .13em;
  text-transform: uppercase;
  backdrop-filter: blur(10px);
}

.eco-cs-case-content {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: clamp(20px, 3vw, 30px);
}

.eco-cs-case-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: var(--eco-cs-text-faint);
  font: 600 8px/1 var(--eco-cs-mono);
  letter-spacing: .12em;
  text-transform: uppercase;
}

.eco-cs-difficulty {
  padding: 4px 7px;
  border: 1px solid var(--eco-cs-border-dim);
}

.eco-cs-difficulty.is-beginner { color: var(--eco-cs-green); border-color: var(--eco-cs-border); }
.eco-cs-difficulty.is-intermediate { color: var(--eco-cs-blue); border-color: rgba(124, 201, 255, .28); }
.eco-cs-difficulty.is-advanced,
.eco-cs-difficulty.is-hard,
.eco-cs-difficulty.is-expert { color: var(--eco-cs-amber); border-color: rgba(255, 216, 107, .30); }

.eco-cs-case-anatomy {
  margin: 22px 0 7px !important;
  color: var(--eco-cs-green-dim) !important;
  font: 650 8px/1.4 var(--eco-cs-mono);
  letter-spacing: .17em;
  text-transform: uppercase;
}

.eco-cs-case-content h2 {
  margin: 0 0 10px;
  color: var(--eco-cs-text) !important;
  font: 520 clamp(20px, 2.4vw, 29px)/1.15 var(--eco-cs-soft);
  letter-spacing: -.035em;
}

.eco-cs-case-content > p:not(.eco-cs-case-anatomy) {
  margin: 0;
  color: var(--eco-cs-text-mid) !important;
  font: 400 13px/1.7 var(--eco-cs-soft);
}

.eco-cs-case-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 20px;
}

.eco-cs-case-tags span {
  padding: 4px 7px;
  border: 1px solid var(--eco-cs-border-dim);
  color: var(--eco-cs-text-faint);
  font-size: 8px;
}

.eco-cs-case-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 13px;
  align-items: center;
  margin-top: auto;
  padding-top: 22px;
  color: var(--eco-cs-text-faint);
  font-size: 8px;
  text-transform: uppercase;
}

.eco-cs-case-meta b {
  margin-left: auto;
  color: var(--eco-cs-green);
  font-size: 16px;
}

.eco-cs-echo-placeholder {
  min-height: inherit;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 12px;
  background:
    radial-gradient(circle at center, rgba(74, 255, 145, .08), transparent 50%),
    repeating-linear-gradient(0deg, transparent 0 4px, rgba(74, 255, 145, .022) 4px 5px),
    #030504;
  color: var(--eco-cs-green-dim);
}

.eco-cs-echo-placeholder span {
  font-size: 46px;
  filter: drop-shadow(0 0 12px var(--eco-cs-green-glow));
}

.eco-cs-echo-placeholder small {
  color: var(--eco-cs-text-faint);
  font: 600 8px/1 var(--eco-cs-mono);
  letter-spacing: .14em;
}

/* Quiz bank and active quiz. */
.eco-cs-quiz-hub {
  min-width: 0;
}

.eco-cs-quiz-topics {
  display: flex;
  gap: 7px;
  overflow-x: auto;
  padding: 18px clamp(20px, 4vw, 50px);
  border-bottom: 1px solid var(--eco-cs-border-dim);
  background: var(--eco-cs-bg2);
}

.eco-cs-quiz-topics button {
  appearance: none;
  min-height: 34px;
  padding: 8px 12px;
  border: 1px solid var(--eco-cs-border-dim);
  background: transparent;
  color: var(--eco-cs-text-dim);
  font: 600 8px/1 var(--eco-cs-mono);
  letter-spacing: .1em;
  cursor: pointer;
  white-space: nowrap;
}

.eco-cs-quiz-topics button.is-active,
.eco-cs-quiz-topics button:hover {
  border-color: var(--eco-cs-border-strong);
  background: var(--eco-cs-green-faint);
  color: var(--eco-cs-green);
}

.eco-cs-quiz-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.eco-cs-quiz-card {
  display: flex;
  min-height: 315px;
  flex-direction: column;
  padding: clamp(20px, 3vw, 30px);
  border: 1px solid var(--eco-cs-border-dim);
  background: linear-gradient(145deg, rgba(74, 255, 145, .025), transparent 45%), var(--eco-cs-bg2);
  color: var(--eco-cs-text);
}

.eco-cs-quiz-card.is-paid {
  background: linear-gradient(145deg, rgba(255, 216, 107, .045), transparent 48%), var(--eco-cs-bg2);
}

.eco-cs-card-badges {
  display: flex !important;
  flex-wrap: wrap;
  gap: 7px !important;
  margin: 0 0 22px !important;
}

.eco-cs-card-badges span {
  padding: 5px 8px !important;
  border: 1px solid var(--eco-cs-border-dim) !important;
  color: var(--eco-cs-text-dim);
  font: 650 8px/1 var(--eco-cs-mono) !important;
  letter-spacing: .09em;
}

.eco-cs-quiz-card.is-public .eco-cs-card-badges span:last-child { color: var(--eco-cs-green) !important; border-color: var(--eco-cs-border) !important; }
.eco-cs-quiz-card.is-authenticated .eco-cs-card-badges span:last-child { color: var(--eco-cs-blue) !important; border-color: rgba(124, 201, 255, .28) !important; }
.eco-cs-quiz-card.is-paid .eco-cs-card-badges span:last-child { color: var(--eco-cs-amber) !important; border-color: rgba(255, 216, 107, .30) !important; }

.eco-cs-quiz-card > p {
  margin: 0 0 13px;
  color: var(--eco-cs-text-faint) !important;
  font-size: 9px;
}

.eco-cs-quiz-card > p span {
  color: var(--eco-cs-green-dim);
}

.eco-cs-quiz-card h2 {
  margin: 0 0 12px;
  color: var(--eco-cs-text) !important;
  font: 520 clamp(21px, 2.5vw, 30px)/1.13 var(--eco-cs-soft);
  letter-spacing: -.035em;
}

.eco-cs-quiz-card > div:not(.eco-cs-card-badges):not(.eco-cs-quiz-card-actions) {
  color: var(--eco-cs-text-mid);
  font: 400 13px/1.7 var(--eco-cs-soft);
}

.eco-cs-quiz-card footer {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 15px;
  margin-top: auto;
  padding-top: 22px;
  color: var(--eco-cs-text-faint);
  font-size: 8px;
  text-transform: uppercase;
}

.eco-cs-quiz-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 19px;
}

.eco-cs-quiz-card-actions button,
.eco-cs-quiz-cta,
.eco-cs-primary-link,
.eco-cs-calc-button,
.eco-cs-next,
.eco-cs-score-actions button {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 11px 15px;
  border: 1px solid var(--eco-cs-green);
  border-radius: 0;
  background: var(--eco-cs-green);
  color: #041108 !important;
  font: 750 9px/1 var(--eco-cs-mono);
  letter-spacing: .07em;
  text-transform: lowercase;
  cursor: pointer;
  transition: filter .18s ease, transform .18s ease;
}

.eco-cs-quiz-card-actions button:hover,
.eco-cs-quiz-cta:hover,
.eco-cs-primary-link:hover,
.eco-cs-calc-button:hover,
.eco-cs-next:hover,
.eco-cs-score-actions button:hover {
  filter: brightness(1.08);
  transform: translateY(-1px);
}

.eco-cs-quiz-card.is-paid .eco-cs-quiz-cta {
  border-color: var(--eco-cs-amber);
  background: var(--eco-cs-amber);
  color: #171104 !important;
}

.eco-cs-quiz-preview,
.eco-cs-calc-reset {
  border-color: var(--eco-cs-border-dim) !important;
  background: transparent !important;
  color: var(--eco-cs-text-mid) !important;
}

.eco-cs-quiz-layout aside ol {
  display: grid;
  gap: 18px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.eco-cs-quiz-layout aside li {
  display: grid;
  gap: 5px;
  padding-left: 12px;
  border-left: 1px solid var(--eco-cs-border-strong);
}

.eco-cs-quiz-layout aside li b {
  color: var(--eco-cs-text);
  font: 650 9px/1.3 var(--eco-cs-mono);
}

.eco-cs-quiz-layout aside li span {
  color: var(--eco-cs-text-dim);
  font: 400 12px/1.55 var(--eco-cs-soft);
}

.eco-cs-quiz-active {
  padding: clamp(22px, 5vw, 64px);
}

.eco-cs-question,
.eco-cs-score,
.eco-cs-review-item,
.eco-cs-error,
.eco-cs-loading {
  max-width: 900px;
  margin-inline: auto;
  border: 1px solid var(--eco-cs-border-dim);
  background: var(--eco-cs-bg2);
}

.eco-cs-question > header,
.eco-cs-review-item > header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 17px;
  border-bottom: 1px solid var(--eco-cs-border-dim);
  color: var(--eco-cs-text-faint);
  font-size: 8px;
  letter-spacing: .12em;
}

.eco-cs-question > header b,
.eco-cs-review-item > header b {
  color: var(--eco-cs-green-dim);
}

.eco-cs-question-body {
  padding: clamp(22px, 4vw, 46px);
}

.eco-cs-question-body > h2 {
  margin: 0 0 25px;
  color: var(--eco-cs-text) !important;
  font: 520 clamp(22px, 3vw, 36px)/1.18 var(--eco-cs-soft);
  letter-spacing: -.035em;
}

.eco-cs-question-media {
  margin: 25px 0;
  overflow: hidden;
  border: 1px solid var(--eco-cs-border-dim);
  background: #020302;
}

.eco-cs-question-media img,
.eco-cs-question-media video {
  display: block;
  width: 100%;
  max-height: 660px;
  object-fit: contain;
  background: #000;
}

.eco-cs-question-media figcaption {
  display: grid;
  gap: 4px;
  padding: 10px 13px;
  border-top: 1px solid var(--eco-cs-border-dim);
  color: var(--eco-cs-text-mid);
  font-size: 9px;
}

.eco-cs-question-media figcaption small {
  color: var(--eco-cs-text-faint);
}

.eco-cs-answers {
  display: grid;
  gap: 8px;
}

.eco-cs-answer {
  appearance: none;
  display: grid;
  grid-template-columns: 35px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  width: 100%;
  min-height: 58px;
  padding: 11px 15px;
  border: 1px solid var(--eco-cs-border-dim);
  background: var(--eco-cs-bg3);
  color: var(--eco-cs-text-mid);
  text-align: left;
  cursor: pointer;
}

.eco-cs-answer span {
  display: grid;
  place-items: center;
  width: 31px;
  height: 31px;
  border: 1px solid var(--eco-cs-border-dim);
  color: var(--eco-cs-green-dim);
  font-size: 9px;
}

.eco-cs-answer b {
  font: 500 13px/1.5 var(--eco-cs-soft);
}

.eco-cs-answer:hover,
.eco-cs-answer.is-selected {
  border-color: var(--eco-cs-border-strong) !important;
  background: var(--eco-cs-green-faint);
  box-shadow: inset 2px 0 0 var(--eco-cs-green) !important;
  color: var(--eco-cs-text);
}

.eco-cs-feedback {
  margin-top: 18px;
  padding: 18px;
  border: 1px solid var(--eco-cs-border-dim);
  color: var(--eco-cs-text-mid);
  font: 400 13px/1.7 var(--eco-cs-soft);
}

.eco-cs-feedback.is-correct { border-color: var(--eco-cs-border-strong); background: var(--eco-cs-green-faint); }
.eco-cs-feedback.is-wrong { border-color: rgba(255, 106, 133, .32); background: rgba(255, 106, 133, .05); }

.eco-cs-hotspot-stage {
  position: relative;
  cursor: crosshair;
}

.eco-cs-hotspot-stage > [data-user-hotspot] {
  position: absolute;
  width: 20px;
  height: 20px;
  border: 2px solid #fff;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  background: rgba(255, 255, 255, .18);
  box-shadow: 0 0 0 5px rgba(255, 255, 255, .08);
  pointer-events: none;
}

.eco-cs-hotspot-stage > [data-correct-hotspot] {
  position: absolute;
  aspect-ratio: 1;
  border: 2px solid var(--eco-cs-green);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  background: var(--eco-cs-green-faint);
  box-shadow: 0 0 20px var(--eco-cs-green-glow);
  pointer-events: none;
}

.eco-cs-hotspot-instruction {
  margin: 12px 0;
  color: var(--eco-cs-green);
  font: 650 10px/1.4 var(--eco-cs-mono);
  letter-spacing: .08em;
}

/* Calculator suite. */
.eco-cs-calc-nav {
  display: flex;
  gap: 7px;
  padding: 18px clamp(20px, 4vw, 50px);
  overflow-x: auto;
  border-bottom: 1px solid var(--eco-cs-border-dim);
  background: var(--eco-cs-bg2);
}

.eco-cs-calc-nav button {
  flex: 0 0 auto;
}

.eco-cs-calc-panels {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: clamp(22px, 4vw, 50px);
}

.eco-cs-calc-card {
  overflow: hidden;
  border: 1px solid var(--eco-cs-border-dim);
  background: var(--eco-cs-bg2);
}

.eco-cs-calc-card > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(120px, .35fr);
  gap: 18px;
  padding: 22px;
  border-bottom: 1px solid var(--eco-cs-border-dim);
  background: linear-gradient(145deg, rgba(74, 255, 145, .028), transparent 60%);
}

.eco-cs-calc-card > header h2 {
  margin: 0 0 8px;
  color: var(--eco-cs-text) !important;
  font: 520 21px/1.2 var(--eco-cs-soft);
  letter-spacing: -.025em;
}

.eco-cs-calc-card > header p {
  margin: 0;
  color: var(--eco-cs-text-mid) !important;
  font: 400 12px/1.65 var(--eco-cs-soft);
}

.eco-cs-calc-card > header > span {
  color: var(--eco-cs-text-faint);
  font-size: 8px;
  line-height: 1.55;
  text-align: right;
}

.eco-cs-calc-body {
  padding: 22px;
}

.eco-cs-formula {
  margin-bottom: 20px;
  padding: 13px 15px;
  border-left: 2px solid var(--eco-cs-green);
  background: var(--eco-cs-green-faint);
  color: var(--eco-cs-green-strong);
  font: 600 11px/1.55 var(--eco-cs-mono);
}

.eco-cs-calc-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 13px;
}

.eco-cs-calc-grid label {
  display: grid;
  gap: 7px;
  color: var(--eco-cs-text-dim);
  font: 600 9px/1.4 var(--eco-cs-mono);
}

.eco-cs-calc-grid label small {
  color: var(--eco-cs-text-faint);
}

.eco-cs-calc-grid input {
  width: 100%;
  min-height: 42px;
  padding: 9px 11px;
  border: 1px solid var(--eco-cs-border-dim);
  border-radius: 0;
  outline: 0;
  background: var(--eco-cs-bg3);
  color: var(--eco-cs-text);
  font: 600 13px/1 var(--eco-cs-mono);
}

.eco-cs-calc-grid input:focus {
  border-color: var(--eco-cs-border-strong);
  box-shadow: 0 0 0 2px var(--eco-cs-green-faint);
}

.eco-cs-calc-button,
.eco-cs-calc-reset {
  margin-top: 18px;
  margin-right: 7px;
}

.eco-cs-calc-result {
  margin-top: 18px;
  padding: 18px;
  border: 1px solid var(--eco-cs-border-strong);
  background: var(--eco-cs-green-faint);
  color: var(--eco-cs-text);
}

.eco-cs-validation-gate {
  padding: 17px;
  border: 1px solid rgba(255, 216, 107, .28);
  background: rgba(255, 216, 107, .045);
}

.eco-cs-validation-gate strong {
  color: var(--eco-cs-amber);
  font-size: 9px;
}

.eco-cs-validation-gate p {
  margin: 8px 0 0;
  color: var(--eco-cs-text-mid) !important;
  font: 400 12px/1.65 var(--eco-cs-soft);
}

/* Single Education and Case templates. */
.eco-cs-single {
  max-width: 1220px;
  margin-inline: auto;
  color: var(--eco-cs-text);
}

.eco-cs-back {
  display: inline-flex;
  margin-bottom: 22px;
  color: var(--eco-cs-green-dim) !important;
  font: 600 9px/1.4 var(--eco-cs-mono);
  letter-spacing: .08em;
}

.eco-cs-single-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
  min-height: 430px;
  border: 1px solid var(--eco-cs-border-dim);
  background: var(--eco-cs-bg2);
}

.eco-cs-single-media {
  min-height: 430px;
  overflow: hidden;
  border-right: 1px solid var(--eco-cs-border-dim);
  background: #020302;
}

.eco-cs-single-media img,
.eco-cs-single-media video,
.eco-cs-single-media iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 430px;
  object-fit: contain;
  border: 0;
  background: #000;
}

.eco-cs-single-head {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(28px, 5vw, 60px);
}

.eco-cs-single-head > p {
  margin: 0 0 18px;
  color: var(--eco-cs-green-dim) !important;
  font: 650 9px/1 var(--eco-cs-mono);
  letter-spacing: .16em;
}

.eco-cs-single-head h1,
.eco-cs-article-head h1 {
  margin: 0;
  color: var(--eco-cs-text) !important;
  font: 520 clamp(34px, 5vw, 62px)/1.02 var(--eco-cs-display);
  letter-spacing: -.055em;
}

.eco-cs-single-head > div {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 26px;
}

.eco-cs-single-head > div span {
  padding: 5px 8px;
  border: 1px solid var(--eco-cs-border-dim);
  color: var(--eco-cs-text-dim);
  font-size: 8px;
  text-transform: uppercase;
}

.eco-cs-single-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin-top: 1px;
  background: var(--eco-cs-border-dim);
}

.eco-cs-single-grid > section,
.eco-cs-single-grid > aside {
  min-width: 0;
  padding: clamp(23px, 4vw, 46px);
  background: var(--eco-cs-bg2);
}

.eco-cs-single-grid > .is-full {
  grid-column: 1 / -1;
}

.eco-cs-single-grid h2,
.eco-cs-article-body h2 {
  margin: 0 0 18px;
  color: var(--eco-cs-green-dim) !important;
  font: 650 10px/1.4 var(--eco-cs-mono);
  letter-spacing: .18em;
  text-transform: lowercase;
}

.eco-cs-single-grid p,
.eco-cs-single-grid li,
.eco-cs-prose,
.eco-cs-article-body {
  color: var(--eco-cs-text-mid);
  font: 400 14px/1.82 var(--eco-cs-soft);
}

.eco-cs-single-grid dl {
  display: grid;
  gap: 1px;
  margin: 0;
  background: var(--eco-cs-border-dim);
}

.eco-cs-single-grid dl > div {
  display: grid;
  grid-template-columns: minmax(110px, .45fr) 1fr;
  gap: 15px;
  padding: 12px 14px;
  background: var(--eco-cs-bg3);
}

.eco-cs-single-grid dt {
  color: var(--eco-cs-text-faint);
  font-size: 9px;
  text-transform: uppercase;
}

.eco-cs-single-grid dd {
  margin: 0;
  color: var(--eco-cs-text);
  font-size: 10px;
}

.eco-cs-findings {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.eco-cs-findings > div {
  padding: 17px;
  border: 1px solid var(--eco-cs-border-dim);
  background: var(--eco-cs-bg3);
}

.eco-cs-findings strong {
  display: block;
  margin-bottom: 7px;
  color: var(--eco-cs-text);
  font: 650 9px/1.4 var(--eco-cs-mono);
}

.eco-cs-findings p {
  margin: 0;
}

.eco-cs-table-wrap {
  overflow-x: auto;
}

.eco-cs-table-wrap table {
  width: 100%;
  border-collapse: collapse;
  color: var(--eco-cs-text-mid);
  font-size: 10px;
}

.eco-cs-table-wrap th,
.eco-cs-table-wrap td {
  padding: 13px 15px;
  border: 1px solid var(--eco-cs-border-dim);
  text-align: left;
  vertical-align: top;
}

.eco-cs-table-wrap th {
  background: var(--eco-cs-bg3);
  color: var(--eco-cs-green-dim);
  font-size: 8px;
  letter-spacing: .10em;
  text-transform: uppercase;
}

.eco-cs-diagnosis {
  border-left: 2px solid var(--eco-cs-green);
  background: linear-gradient(90deg, var(--eco-cs-green-faint), transparent 45%), var(--eco-cs-bg2) !important;
}

.eco-cs-diagnosis h3 {
  margin: 0 0 8px;
  color: var(--eco-cs-text) !important;
  font: 520 clamp(25px, 3vw, 38px)/1.15 var(--eco-cs-soft);
  letter-spacing: -.035em;
}

.eco-cs-pearl {
  border-left: 2px solid var(--eco-cs-green);
  background: var(--eco-cs-green-faint) !important;
}

.eco-cs-pearl strong {
  color: var(--eco-cs-green);
  font-size: 9px;
  letter-spacing: .15em;
}

.eco-cs-teaching {
  counter-reset: teaching;
  display: grid;
  gap: 10px;
  padding: 0;
  list-style: none;
}

.eco-cs-teaching li {
  counter-increment: teaching;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 13px;
  padding: 14px;
  border: 1px solid var(--eco-cs-border-dim);
  background: var(--eco-cs-bg3);
}

.eco-cs-teaching li::before {
  content: counter(teaching, decimal-leading-zero);
  color: var(--eco-cs-green-dim);
  font: 650 9px/1.7 var(--eco-cs-mono);
}

.eco-cs-single-education {
  max-width: 1060px;
}

.eco-cs-article-head {
  padding: clamp(35px, 7vw, 84px) clamp(24px, 7vw, 82px);
  border: 1px solid var(--eco-cs-border-dim);
  background: linear-gradient(145deg, rgba(74, 255, 145, .045), transparent 45%), var(--eco-cs-bg2);
}

.eco-cs-article-head > p {
  color: var(--eco-cs-green-dim) !important;
  font: 650 9px/1.4 var(--eco-cs-mono);
  letter-spacing: .16em;
  text-transform: uppercase;
}

.eco-cs-article-head > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin-top: 25px;
  color: var(--eco-cs-text-faint);
  font-size: 8px;
}

.eco-cs-article-image {
  margin: 0;
  border-inline: 1px solid var(--eco-cs-border-dim);
  background: #020302;
}

.eco-cs-article-image img {
  display: block;
  width: 100%;
  max-height: 620px;
  object-fit: cover;
}

.eco-cs-article-body {
  padding: clamp(30px, 7vw, 82px);
  border: 1px solid var(--eco-cs-border-dim);
  background: var(--eco-cs-bg2);
}

.eco-cs-article-body :where(h2, h3, h4) {
  color: var(--eco-cs-text) !important;
  font-family: var(--eco-cs-soft);
  letter-spacing: -.025em;
}

.eco-cs-article-body h2 {
  margin-top: 2.5em;
  font-size: 27px;
  text-transform: none;
  letter-spacing: -.035em;
}

.eco-cs-article-body h2:first-child {
  margin-top: 0;
}

.eco-cs-article-body h3 {
  margin-top: 2em;
  font-size: 20px;
}

.eco-cs-article-body a {
  color: var(--eco-cs-green);
  text-decoration: underline;
  text-decoration-color: var(--eco-cs-border-strong);
  text-underline-offset: 3px;
}

.eco-cs-article-body blockquote {
  margin: 28px 0;
  padding: 18px 22px;
  border-left: 2px solid var(--eco-cs-green);
  background: var(--eco-cs-green-faint);
}

/* Dashboard. */
.eco-cs-learning-dashboard {
  min-height: 620px;
}

.eco-cs-dashboard-locked {
  align-content: center;
  justify-items: start;
  gap: 16px;
  padding: clamp(40px, 8vw, 100px);
}

.eco-cs-dashboard-locked h1 {
  margin: 0;
  color: var(--eco-cs-text) !important;
  font: 520 clamp(40px, 7vw, 82px)/.98 var(--eco-cs-display);
  letter-spacing: -.06em;
}

.eco-cs-dashboard-locked > p:not(.eco-cs-kicker) {
  max-width: 650px;
  color: var(--eco-cs-text-mid) !important;
  font: 400 15px/1.7 var(--eco-cs-soft);
}

.eco-cs-attempts {
  margin: clamp(22px, 4vw, 50px);
  padding: clamp(20px, 3vw, 32px);
  border: 1px solid var(--eco-cs-border-dim);
  background: var(--eco-cs-bg2);
}

.eco-cs-attempts h2 {
  margin: 0 0 18px;
  color: var(--eco-cs-green-dim) !important;
  font: 650 10px/1.4 var(--eco-cs-mono);
  letter-spacing: .16em;
}

/* Empty states. */
.eco-cs-no-results,
.eco-learn-no-results,
.eco-latest-case-empty {
  padding: 28px;
  border: 1px dashed var(--eco-cs-border);
  background: var(--eco-cs-green-faint);
  color: var(--eco-cs-text-dim) !important;
  font: 500 11px/1.65 var(--eco-cs-mono);
}

@media (max-width: 1050px) {
  .eco-cs-case-layout,
  .eco-cs-quiz-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .eco-cs-case-layout > main,
  .eco-cs-quiz-layout > main {
    border-right: 0;
  }

  .eco-cs-case-layout > aside,
  .eco-cs-quiz-layout > aside {
    border-top: 1px solid var(--eco-cs-border-dim);
  }

  .eco-cs-calc-panels {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 780px) {
  .eco-cs-page-hero {
    min-height: 235px;
  }

  .eco-cs-page-hero::before {
    display: none;
  }

  .eco-cs-page-hero h1 {
    font-size: clamp(34px, 12vw, 56px);
  }

  .eco-cs-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .eco-cs-case-grid,
  .eco-cs-quiz-grid,
  .eco-cs-education-grid,
  .eco-cs-learn-feed .eco-learn-featured-grid,
  .eco-cs-single-grid,
  .eco-cs-findings,
  .eco-cs-calc-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .eco-cs-case-card.is-featured,
  .eco-cs-single-hero {
    grid-template-columns: minmax(0, 1fr);
  }

  .eco-cs-single-media {
    min-height: 300px;
    border-right: 0;
    border-bottom: 1px solid var(--eco-cs-border-dim);
  }

  .eco-cs-single-media img,
  .eco-cs-single-media video,
  .eco-cs-single-media iframe {
    min-height: 300px;
  }

  .eco-cs-single-grid > .is-full {
    grid-column: auto;
  }

  .eco-cs-learn-feed .eco-learn-article-card--featured,
  .eco-cs-education-library .eco-learn-article-card--featured {
    grid-template-columns: minmax(0, 1fr);
  }

  .eco-learn-article-symbol {
    min-height: 110px;
  }

  .eco-cs-calc-card > header {
    grid-template-columns: minmax(0, 1fr);
  }

  .eco-cs-calc-card > header > span {
    text-align: left;
  }

  .eco-learn-list-item {
    grid-template-columns: minmax(0, 1fr);
    gap: 5px;
  }
}

@media (max-width: 520px) {
  .eco-cs-template-shell {
    padding: 14px;
  }

  .eco-cs-page-hero,
  .eco-cs-filter-bar,
  .eco-cs-case-layout > main,
  .eco-cs-quiz-layout > main,
  .eco-cs-calc-panels,
  .eco-cs-education-grid,
  .eco-cs-learn-feed,
  .eco-cs-quiz-active {
    padding-inline: 16px;
  }

  .eco-cs-stats {
    grid-template-columns: minmax(0, 1fr);
  }

  .eco-cs-question-media {
    margin-inline: -12px;
  }

  .eco-cs-question-body {
    padding-inline: 18px;
  }

  .eco-cs-single-grid dl > div {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
  }
}

@media (prefers-reduced-motion: reduce) {
  :where(.eco-cs-case-card, .eco-learn-article-card, .eco-cs-answer, .eco-cs-quiz-card-actions button, .eco-cs-primary-link) {
    scroll-behavior: auto;
    transition: none !important;
    animation: none !important;
  }
}

/* -------------------------------------------------------------------------
 * v0.2.2 account centre + session booking trial
 * ---------------------------------------------------------------------- */
.eco-cs-account-center,
.eco-cs-booking-center {
  position: relative;
  width: min(100%, var(--eco-cs-max));
  min-height: 70vh;
  margin-inline: auto;
  overflow: clip;
  border-inline: 1px solid var(--eco-cs-border-dim);
  background:
    linear-gradient(rgba(74,255,145,.014) 1px, transparent 1px),
    var(--eco-cs-bg);
  background-size: 100% 5px, auto;
  color: var(--eco-cs-text);
  font: 14px/1.55 var(--eco-cs-mono);
  isolation: isolate;
}
.eco-cs-account-center *,
.eco-cs-account-center *::before,
.eco-cs-account-center *::after,
.eco-cs-booking-center *,
.eco-cs-booking-center *::before,
.eco-cs-booking-center *::after { box-sizing: border-box; }
.eco-cs-account-center a,
.eco-cs-booking-center a { color: inherit; text-decoration: none; }
.eco-cs-account-center :where(h1,h2,h3,p),
.eco-cs-booking-center :where(h1,h2,h3,p) { color: inherit; }
.eco-cs-account-center::before,
.eco-cs-booking-center::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0 auto auto 0;
  width: min(48vw, 720px);
  height: 360px;
  background: radial-gradient(circle at 0 0, var(--eco-cs-green-glow), transparent 70%);
  pointer-events: none;
}

.eco-cs-auth-wrap,
.eco-cs-account-body,
.eco-cs-booking-body {
  width: min(100%, 1080px);
  margin-inline: auto;
  padding: clamp(28px, 5vw, 72px);
}
.eco-cs-auth-wrap { width: min(100%, 660px); }
.eco-cs-login-panel,
.eco-cs-register-disclosure,
.eco-cs-account-profile,
.eco-cs-account-actions > a,
.eco-cs-booking-step,
.eco-cs-booking-history,
.eco-cs-dashboard-bookings {
  border: 1px solid var(--eco-cs-border-dim);
  background: linear-gradient(145deg, var(--eco-cs-bg2), var(--eco-cs-bg3));
  box-shadow: var(--eco-cs-shadow);
}
.eco-cs-login-panel { padding: clamp(24px, 5vw, 44px); }
.eco-cs-login-panel h2,
.eco-cs-register-panel h2,
.eco-cs-booking-step h2,
.eco-cs-booking-history h2,
.eco-cs-dashboard-bookings h2 {
  margin: 7px 0 22px;
  font: 650 clamp(23px, 3vw, 34px)/1.05 var(--eco-cs-soft);
  letter-spacing: -.025em;
}
.eco-cs-section-label {
  margin: 0;
  color: var(--eco-cs-green);
  font: 700 10px/1.2 var(--eco-cs-mono);
  letter-spacing: .15em;
  text-transform: uppercase;
}

.eco-cs-login-panel #eco-cs-login-form { display: grid; gap: 17px; }
.eco-cs-login-panel #eco-cs-login-form p { margin: 0; }
.eco-cs-login-panel #eco-cs-login-form label,
.eco-cs-register-form label,
.eco-cs-booking-fields label {
  display: grid;
  gap: 8px;
  color: var(--eco-cs-text-mid);
  font: 700 11px/1.3 var(--eco-cs-mono);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.eco-cs-login-panel input[type="text"],
.eco-cs-login-panel input[type="password"],
.eco-cs-register-form input,
.eco-cs-booking-fields :where(input,select,textarea) {
  width: 100%;
  min-height: 48px;
  border: 1px solid var(--eco-cs-border-dim);
  border-radius: 0;
  background: var(--eco-cs-bg);
  color: var(--eco-cs-text);
  padding: 11px 13px;
  font: 500 14px/1.4 var(--eco-cs-mono);
  box-shadow: none;
}
.eco-cs-booking-fields textarea,
.eco-cs-register-form textarea { min-height: 110px; resize: vertical; }
.eco-cs-login-panel input:focus,
.eco-cs-register-form input:focus,
.eco-cs-booking-fields :where(input,select,textarea):focus {
  outline: 0;
  border-color: var(--eco-cs-green);
  box-shadow: 0 0 0 2px var(--eco-cs-green-glow);
}
.eco-cs-login-panel .login-remember label {
  display: inline-flex !important;
  align-items: center;
  gap: 9px;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
.eco-cs-login-panel input[type="checkbox"] { accent-color: var(--eco-cs-green); }
.eco-cs-login-panel input[type="submit"],
.eco-cs-register-form button,
.eco-cs-booking-submit button {
  min-height: 48px;
  border: 1px solid var(--eco-cs-green);
  border-radius: 0;
  background: var(--eco-cs-green);
  color: #061009;
  padding: 12px 18px;
  font: 800 12px/1 var(--eco-cs-mono);
  letter-spacing: .035em;
  cursor: pointer;
}
.eco-cs-login-panel input[type="submit"]:hover,
.eco-cs-register-form button:hover,
.eco-cs-booking-submit button:hover { filter: brightness(1.08); }
.eco-cs-forgot-link {
  display: inline-block;
  margin-top: 18px;
  color: var(--eco-cs-text-dim) !important;
  font-size: 12px;
}
.eco-cs-forgot-link:hover { color: var(--eco-cs-green) !important; }

.eco-cs-register-disclosure { margin-top: 14px; box-shadow: none; }
.eco-cs-register-disclosure summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 20px;
  cursor: pointer;
  list-style: none;
}
.eco-cs-register-disclosure summary::-webkit-details-marker { display: none; }
.eco-cs-register-disclosure summary > span { display: grid; flex: 1 1 auto; min-width: 0; gap: 3px; }
.eco-cs-register-disclosure summary strong { font-family: var(--eco-cs-soft); font-size: 16px; }
.eco-cs-register-disclosure summary small { color: var(--eco-cs-text-dim); }
.eco-cs-register-disclosure summary b { color: var(--eco-cs-green); font-size: 11px; }
.eco-cs-register-disclosure[open] summary { border-bottom: 1px solid var(--eco-cs-border-dim); }
.eco-cs-register-panel { padding: 24px; }
.eco-cs-register-form { display: grid; gap: 16px; }
.eco-cs-register-form p { margin: 0; color: var(--eco-cs-text-dim); font-size: 12px; }
.eco-cs-honeypot { position: absolute !important; left: -9999px !important; }

.eco-cs-auth-message {
  margin-bottom: 16px;
  border: 1px solid var(--eco-cs-border-dim);
  border-left-width: 3px;
  padding: 13px 15px;
  background: var(--eco-cs-bg2);
}
.eco-cs-auth-message.is-success { border-left-color: var(--eco-cs-green); }
.eco-cs-auth-message.is-error { border-left-color: var(--eco-cs-red); }

.eco-cs-account-profile {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 24px;
  box-shadow: none;
}
.eco-cs-account-avatar {
  display: grid;
  place-items: center;
  width: 60px;
  aspect-ratio: 1;
  flex: 0 0 auto;
  border: 1px solid var(--eco-cs-green);
  background: var(--eco-cs-green-faint);
  color: var(--eco-cs-green);
  font: 700 26px/1 var(--eco-cs-soft);
}
.eco-cs-account-profile > div { display: grid; gap: 3px; min-width: 0; }
.eco-cs-account-profile small { color: var(--eco-cs-green); font-size: 10px; letter-spacing: .12em; }
.eco-cs-account-profile strong { overflow-wrap: anywhere; font: 650 22px/1.15 var(--eco-cs-soft); }
.eco-cs-account-profile span { color: var(--eco-cs-text-dim); overflow-wrap: anywhere; }
.eco-cs-account-actions { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; margin-top: 14px; }
.eco-cs-account-actions > a {
  display: grid;
  align-content: start;
  min-height: 180px;
  padding: 22px;
  box-shadow: none;
  transition: border-color .18s ease, transform .18s ease, background .18s ease;
}
.eco-cs-account-actions > a:hover { border-color: var(--eco-cs-green); transform: translateY(-2px); background: var(--eco-cs-green-faint); }
.eco-cs-account-actions strong { font: 650 19px/1.15 var(--eco-cs-soft); }
.eco-cs-account-actions span { margin-top: 12px; color: var(--eco-cs-text-dim); }
.eco-cs-account-actions b { align-self: end; margin-top: 24px; color: var(--eco-cs-green); font-size: 11px; }
.eco-cs-account-logout { text-align: right; margin: 22px 0 0; }
.eco-cs-account-logout a { color: var(--eco-cs-text-dim); }
.eco-cs-account-logout a:hover { color: var(--eco-cs-green); }

.eco-cs-booking-body { width: min(100%, 1220px); }
.eco-cs-booking-form { display: grid; gap: 16px; }
.eco-cs-booking-step { padding: clamp(22px, 4vw, 36px); box-shadow: none; }
.eco-cs-booking-step > header {
  display: flex;
  align-items: flex-start;
  gap: 17px;
  margin-bottom: 25px;
  border-bottom: 1px solid var(--eco-cs-border-dim);
  padding-bottom: 20px;
}
.eco-cs-booking-step > header > span { color: var(--eco-cs-green); font: 750 12px/1 var(--eco-cs-mono); }
.eco-cs-booking-step > header h2 { margin: -4px 0 5px; }
.eco-cs-booking-step > header p { margin: 0; color: var(--eco-cs-text-dim); }
.eco-cs-course-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.eco-cs-course-grid label { display: block; position: relative; cursor: pointer; }
.eco-cs-course-grid input { position: absolute; opacity: 0; pointer-events: none; }
.eco-cs-course-grid label > span {
  display: grid;
  align-content: start;
  min-height: 205px;
  border: 1px solid var(--eco-cs-border-dim);
  padding: 20px;
  background: var(--eco-cs-bg);
  transition: border-color .18s ease, background .18s ease, transform .18s ease;
}
.eco-cs-course-grid label:hover > span,
.eco-cs-course-grid label.is-selected > span,
.eco-cs-course-grid input:checked + span { border-color: var(--eco-cs-green); background: var(--eco-cs-green-faint); transform: translateY(-2px); }
.eco-cs-course-grid svg { width: 32px; height: 32px; margin-bottom: 25px; color: var(--eco-cs-text-dim); }
.eco-cs-course-grid input:checked + span svg { color: var(--eco-cs-green); }
.eco-cs-course-grid strong { font: 650 18px/1.18 var(--eco-cs-soft); }
.eco-cs-course-grid small { margin-top: 11px; color: var(--eco-cs-text-dim); line-height: 1.55; }
.eco-cs-booking-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 17px; }
.eco-cs-booking-fields .is-full { grid-column: 1 / -1; }
.eco-cs-booking-submit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border: 1px solid var(--eco-cs-border-strong);
  padding: 20px;
  background: var(--eco-cs-green-faint);
}
.eco-cs-booking-submit > div { display: grid; gap: 2px; }
.eco-cs-booking-submit small { color: var(--eco-cs-green); letter-spacing: .1em; }
.eco-cs-booking-submit span { color: var(--eco-cs-text-dim); }
.eco-cs-booking-history { margin-top: 30px; padding: clamp(22px,4vw,34px); box-shadow: none; }
.eco-cs-booking-list { display: grid; gap: 8px; }
.eco-cs-booking-list article {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border: 1px solid var(--eco-cs-border-dim);
  padding: 15px 17px;
  background: var(--eco-cs-bg);
}
.eco-cs-booking-list article > div { display: grid; gap: 2px; }
.eco-cs-booking-list small { color: var(--eco-cs-green); font-size: 9px; letter-spacing: .12em; }
.eco-cs-booking-list strong { font-family: var(--eco-cs-soft); }
.eco-cs-booking-list span { color: var(--eco-cs-text-dim); }
.eco-cs-booking-list a { color: var(--eco-cs-green); font-size: 11px; }
.eco-cs-booking-status { border: 1px solid var(--eco-cs-border-dim); padding: 5px 8px; font-size: 10px; }

.eco-cs-dashboard-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 16px clamp(22px,5vw,72px);
  border-bottom: 1px solid var(--eco-cs-border-dim);
  background: var(--eco-cs-bg2);
}
.eco-cs-dashboard-links a {
  border: 1px solid var(--eco-cs-border-dim);
  padding: 9px 11px;
  color: var(--eco-cs-text-mid);
  font-size: 11px;
}
.eco-cs-dashboard-links a:hover { border-color: var(--eco-cs-green); color: var(--eco-cs-green); }
.eco-cs-dashboard-bookings {
  margin: 0 clamp(22px,5vw,72px) clamp(34px,5vw,64px);
  padding: clamp(22px,4vw,34px);
  box-shadow: none;
}
.eco-cs-dashboard-bookings > header { display: flex; justify-content: space-between; gap: 20px; align-items: end; margin-bottom: 20px; }
.eco-cs-dashboard-bookings > header h2 { margin-bottom: 0; }
.eco-cs-dashboard-bookings > header > a { color: var(--eco-cs-green); font-size: 11px; }
.eco-cs-account-menu-item > a,
a[data-eco-account-nav="authenticated"] { color: var(--eco-cs-green) !important; }

.eco-cs-booking-locked {
  width: min(100%, 900px);
  min-height: 420px;
  display: grid;
  place-content: center;
  padding: clamp(30px,7vw,90px);
  text-align: center;
}
.eco-cs-booking-locked h1 { font: 650 clamp(34px,6vw,64px)/1 var(--eco-cs-soft); }
.eco-cs-booking-locked .eco-cs-primary-link { justify-self: center; margin-top: 18px; }

@media (max-width: 900px) {
  .eco-cs-account-actions,
  .eco-cs-course-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .eco-cs-auth-wrap,
  .eco-cs-account-body,
  .eco-cs-booking-body { padding: 22px 14px 44px; }
  .eco-cs-account-actions,
  .eco-cs-course-grid,
  .eco-cs-booking-fields { grid-template-columns: 1fr; }
  .eco-cs-booking-fields .is-full { grid-column: auto; }
  .eco-cs-booking-submit,
  .eco-cs-booking-list article,
  .eco-cs-dashboard-bookings > header { align-items: stretch; flex-direction: column; }
  .eco-cs-booking-submit button { width: 100%; }
  .eco-cs-course-grid label > span { min-height: 175px; }
}

/* -------------------------------------------------------------------------
 * v0.2.3 account experience + active session state
 * ---------------------------------------------------------------------- */

/* Authenticated nav state. The primary access control becomes a logout action. */
.eco-cs-account-menu-item.is-end-session > a,
a[data-eco-account-nav="end-session"] {
  border-color: rgba(255, 106, 133, .34) !important;
  background: rgba(255, 106, 133, .055) !important;
  color: var(--eco-cs-red) !important;
}
.eco-cs-account-menu-item.is-end-session > a:hover,
a[data-eco-account-nav="end-session"]:hover {
  border-color: var(--eco-cs-red) !important;
  background: rgba(255, 106, 133, .11) !important;
}
[data-eco-presence-label="authenticated"] {
  color: var(--eco-cs-green) !important;
  cursor: pointer;
  outline: none;
}
[data-eco-presence-label="authenticated"]:focus-visible {
  outline: 1px solid var(--eco-cs-green);
  outline-offset: 5px;
}

/* WooCommerce My Account shell. */
body.eco-cs-woocommerce-account .woocommerce {
  color: var(--eco-cs-text);
  font-family: var(--eco-cs-mono);
}
body.eco-cs-woocommerce-account .woocommerce :where(h1,h2,h3,h4,p,label,li,td,th) { color: inherit; }
body.eco-cs-woocommerce-account .woocommerce a { color: inherit; }

/* Convert WooCommerce's two-column login/register layout into one focused login
   panel followed by an accessible registration disclosure. The first rules also
   provide a no-JavaScript stacked fallback, preventing the side-by-side flash. */
body.eco-cs-woocommerce-auth #customer_login {
  display: block !important;
  width: min(100%, 720px) !important;
  max-width: 720px !important;
  margin-inline: auto !important;
}
body.eco-cs-woocommerce-auth #customer_login::before,
body.eco-cs-woocommerce-auth #customer_login::after { display: none !important; }
body.eco-cs-woocommerce-auth #customer_login > :where(.u-column1,.u-column2,.col-1,.col-2) {
  float: none !important;
  width: 100% !important;
  max-width: none !important;
}
body.eco-cs-woocommerce-auth #customer_login > :where(.u-column2,.col-2) { margin-top: 14px !important; }
#customer_login.eco-cs-woo-auth-enhanced {
  display: block !important;
  width: min(100%, 720px) !important;
  max-width: 720px !important;
  margin: 0 auto !important;
}
#customer_login.eco-cs-woo-auth-enhanced::before,
#customer_login.eco-cs-woo-auth-enhanced::after { display: none !important; }
#customer_login.eco-cs-woo-auth-enhanced > .eco-cs-woo-login-primary,
#customer_login.eco-cs-woo-auth-enhanced > .eco-cs-woo-register-disclosure {
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}
#customer_login.eco-cs-woo-auth-enhanced > .eco-cs-woo-login-primary {
  border: 1px solid var(--eco-cs-border-dim);
  border-top-color: var(--eco-cs-green);
  background: linear-gradient(145deg, var(--eco-cs-bg2), var(--eco-cs-bg3));
  padding: clamp(24px, 4vw, 42px) !important;
  box-shadow: var(--eco-cs-shadow);
}
#customer_login.eco-cs-woo-auth-enhanced .woocommerce-form-login,
#customer_login.eco-cs-woo-auth-enhanced .woocommerce-form-register {
  border: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
#customer_login.eco-cs-woo-auth-enhanced .eco-cs-woo-login-primary > h2,
#customer_login.eco-cs-woo-auth-enhanced .eco-cs-woo-register-panel > h2 {
  margin: 0 0 26px !important;
  color: var(--eco-cs-text) !important;
  font: 650 clamp(25px, 3vw, 35px)/1.05 var(--eco-cs-soft) !important;
  letter-spacing: -.025em;
}
#customer_login.eco-cs-woo-auth-enhanced .form-row { margin: 0 0 17px !important; }
#customer_login.eco-cs-woo-auth-enhanced label {
  display: block;
  margin-bottom: 8px;
  color: var(--eco-cs-text-mid) !important;
  font: 700 11px/1.35 var(--eco-cs-mono) !important;
  letter-spacing: .08em;
  text-transform: uppercase;
}
#customer_login.eco-cs-woo-auth-enhanced :where(input[type="text"],input[type="email"],input[type="password"]) {
  width: 100%;
  min-height: 52px;
  border: 1px solid var(--eco-cs-border-dim) !important;
  border-radius: 0 !important;
  background: var(--eco-cs-bg) !important;
  color: var(--eco-cs-text) !important;
  padding: 12px 14px !important;
  box-shadow: none !important;
}
#customer_login.eco-cs-woo-auth-enhanced :where(input[type="text"],input[type="email"],input[type="password"]):focus {
  outline: 0 !important;
  border-color: var(--eco-cs-green) !important;
  box-shadow: 0 0 0 2px var(--eco-cs-green-glow) !important;
}
#customer_login.eco-cs-woo-auth-enhanced .woocommerce-button {
  min-height: 50px;
  border: 1px solid var(--eco-cs-green) !important;
  border-radius: 0 !important;
  background: var(--eco-cs-green-faint) !important;
  color: var(--eco-cs-green) !important;
  padding: 13px 22px !important;
  font: 800 11px/1 var(--eco-cs-mono) !important;
  letter-spacing: .12em;
  text-transform: uppercase;
  box-shadow: none !important;
}
#customer_login.eco-cs-woo-auth-enhanced .woocommerce-button:hover {
  background: var(--eco-cs-green) !important;
  color: #061009 !important;
}
.eco-cs-woo-register-disclosure {
  margin-top: 14px !important;
  border: 1px solid var(--eco-cs-border-dim);
  background: linear-gradient(145deg, var(--eco-cs-bg2), var(--eco-cs-bg3));
}
.eco-cs-woo-register-disclosure > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  min-height: 84px;
  padding: 19px 22px;
  color: var(--eco-cs-text);
  cursor: pointer;
  list-style: none;
}
.eco-cs-woo-register-disclosure > summary::-webkit-details-marker { display: none; }
.eco-cs-woo-register-disclosure > summary > span { display: grid; flex: 1 1 auto; min-width: 0; gap: 4px; }
.eco-cs-woo-register-disclosure > summary strong {
  font: 650 17px/1.2 var(--eco-cs-soft);
}
.eco-cs-woo-register-disclosure > summary small {
  color: var(--eco-cs-text-dim);
  font-size: 11px;
  line-height: 1.5;
}
.eco-cs-woo-register-disclosure > summary b {
  color: var(--eco-cs-green);
  font: 800 10px/1 var(--eco-cs-mono);
  letter-spacing: .1em;
  white-space: nowrap;
}
.eco-cs-woo-register-disclosure[open] > summary {
  border-bottom: 1px solid var(--eco-cs-border-dim);
  background: var(--eco-cs-green-faint);
}
.eco-cs-woo-register-panel {
  padding: clamp(24px, 4vw, 38px) !important;
}
.eco-cs-woo-register-panel .woocommerce-privacy-policy-text {
  color: var(--eco-cs-text-dim);
  font-size: 12px;
}

/* Personalized member workspace shared by the plugin and Woo dashboard. */
.eco-cs-member-workspace {
  width: 100%;
  color: var(--eco-cs-text);
  font: 14px/1.55 var(--eco-cs-mono);
}
.eco-cs-member-workspace * { box-sizing: border-box; }
.eco-cs-member-workspace a { color: inherit; text-decoration: none; }
.eco-cs-member-welcome {
  display: grid;
  gap: 22px;
  border: 1px solid var(--eco-cs-border-dim);
  border-top-color: var(--eco-cs-green);
  padding: clamp(24px, 4vw, 38px);
  background:
    radial-gradient(circle at 100% 0, var(--eco-cs-green-glow), transparent 44%),
    linear-gradient(145deg, var(--eco-cs-bg2), var(--eco-cs-bg3));
}
.eco-cs-member-welcome .eco-cs-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin: 0;
  color: var(--eco-cs-green);
  font: 750 9px/1 var(--eco-cs-mono);
  letter-spacing: .17em;
  text-transform: uppercase;
}
.eco-cs-member-welcome .eco-cs-kicker > span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--eco-cs-green);
  box-shadow: 0 0 16px var(--eco-cs-green);
  animation: eco-cs-presence-pulse 1.8s ease-in-out infinite;
}
@keyframes eco-cs-presence-pulse {
  0%, 100% { opacity: .45; transform: scale(.82); }
  50% { opacity: 1; transform: scale(1); }
}
.eco-cs-member-welcome small {
  color: var(--eco-cs-green);
  font-size: 9px;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.eco-cs-member-welcome h1 {
  margin: 10px 0 12px !important;
  color: var(--eco-cs-text) !important;
  font: 650 clamp(30px, 4vw, 48px)/1 var(--eco-cs-soft) !important;
  letter-spacing: -.035em;
}
.eco-cs-member-welcome h1 span { color: var(--eco-cs-green); }
.eco-cs-member-welcome p:last-child { margin: 0; color: var(--eco-cs-text-mid); }

.eco-cs-member-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}
.eco-cs-member-stats article {
  display: grid;
  min-height: 120px;
  border: 1px solid var(--eco-cs-border-dim);
  padding: 17px;
  background: var(--eco-cs-bg2);
}
.eco-cs-member-stats small { color: var(--eco-cs-green); font-size: 9px; }
.eco-cs-member-stats strong {
  margin-top: 13px;
  color: var(--eco-cs-text);
  font: 650 32px/1 var(--eco-cs-soft);
}
.eco-cs-member-stats span { align-self: end; margin-top: 8px; color: var(--eco-cs-text-dim); font-size: 10px; }

.eco-cs-member-action-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 10px;
  margin-top: 12px;
}
.eco-cs-member-action-grid > a {
  display: grid;
  align-content: start;
  min-height: 165px;
  border: 1px solid var(--eco-cs-border-dim);
  padding: 20px;
  background: linear-gradient(145deg, var(--eco-cs-bg2), var(--eco-cs-bg3));
  transition: border-color .18s ease, background .18s ease, transform .18s ease;
}
.eco-cs-member-action-grid > a.is-primary { border-color: var(--eco-cs-border-strong); background: var(--eco-cs-green-faint); }
.eco-cs-member-action-grid > a:hover { border-color: var(--eco-cs-green); background: var(--eco-cs-green-faint); transform: translateY(-2px); }
.eco-cs-member-action-grid small { color: var(--eco-cs-green); font-size: 9px; letter-spacing: .12em; }
.eco-cs-member-action-grid strong { margin-top: 12px; font: 650 19px/1.2 var(--eco-cs-soft); }
.eco-cs-member-action-grid span { margin-top: 8px; color: var(--eco-cs-text-dim); }
.eco-cs-member-action-grid b { align-self: end; margin-top: 20px; color: var(--eco-cs-green); font-size: 10px; }

.eco-cs-member-panels {
  display: grid;
  grid-template-columns: minmax(0,1.35fr) minmax(280px,.65fr);
  gap: 10px;
  margin-top: 12px;
}
.eco-cs-member-panel,
.eco-cs-account-endpoint {
  border: 1px solid var(--eco-cs-border-dim);
  padding: clamp(20px, 3vw, 30px);
  background: linear-gradient(145deg, var(--eco-cs-bg2), var(--eco-cs-bg3));
}
.eco-cs-member-panel > header,
.eco-cs-account-endpoint > header {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 20px;
  margin-bottom: 19px;
  border-bottom: 1px solid var(--eco-cs-border-dim);
  padding-bottom: 17px;
}
.eco-cs-member-panel h2,
.eco-cs-account-endpoint h2 {
  margin: 6px 0 0 !important;
  color: var(--eco-cs-text) !important;
  font: 650 clamp(22px, 3vw, 30px)/1.05 var(--eco-cs-soft) !important;
}
.eco-cs-member-panel > header > a,
.eco-cs-account-endpoint > header > a { color: var(--eco-cs-green); font-size: 10px; }
.eco-cs-member-activity-list { display: grid; gap: 7px; }
.eco-cs-member-activity-list > a {
  display: grid;
  grid-template-columns: minmax(80px,.28fr) minmax(0,1fr) auto;
  align-items: center;
  gap: 14px;
  border: 1px solid var(--eco-cs-border-dim);
  padding: 12px 14px;
  background: var(--eco-cs-bg);
}
.eco-cs-member-activity-list > a:hover { border-color: var(--eco-cs-green); }
.eco-cs-member-activity-list small { color: var(--eco-cs-green); font-size: 9px; }
.eco-cs-member-activity-list strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: var(--eco-cs-soft); }
.eco-cs-member-activity-list span { color: var(--eco-cs-text-dim); font-size: 10px; white-space: nowrap; }
.eco-cs-account-empty,
.eco-cs-upcoming-session {
  display: grid;
  gap: 7px;
  border: 1px dashed var(--eco-cs-border-dim);
  padding: 20px;
  background: var(--eco-cs-bg);
}
.eco-cs-account-empty strong,
.eco-cs-upcoming-session strong { font: 650 18px/1.2 var(--eco-cs-soft); }
.eco-cs-account-empty span,
.eco-cs-upcoming-session span { color: var(--eco-cs-text-dim); }
.eco-cs-upcoming-session small { color: var(--eco-cs-green); font-size: 9px; letter-spacing: .12em; }
.eco-cs-upcoming-session a { margin-top: 9px; color: var(--eco-cs-green); font-size: 10px; }
.eco-cs-member-footer {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-top: 12px;
  border-top: 1px solid var(--eco-cs-border-dim);
  padding: 17px 2px 0;
  color: var(--eco-cs-text-faint);
  font-size: 9px;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.eco-cs-member-footer b { margin-left: auto; color: var(--eco-cs-green); }
.eco-cs-member-footer a { color: var(--eco-cs-red); }
.eco-cs-account-manage-link { margin-top: 14px; text-align: right; }
.eco-cs-account-manage-link a { color: var(--eco-cs-green); font-size: 10px; }

/* Hide the pre-existing generic Woo dashboard after the personalized workspace
   is inserted, while preserving notices and every non-dashboard endpoint. */
.woocommerce-MyAccount-content.eco-cs-member-dashboard-active > .eco-cs-legacy-dashboard-content { display: none !important; }
.woocommerce-MyAccount-content.eco-cs-member-dashboard-active > .eco-cs-member-workspace { margin: 0; }

/* Woo account menu additions. */
.woocommerce-MyAccount-navigation-link--learning-progress a::after,
.woocommerce-MyAccount-navigation-link--session-bookings a::after { color: var(--eco-cs-green); }
.woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--eco-cs-red) !important; }

.eco-cs-account-endpoint { width: 100%; }
.eco-cs-account-endpoint > header { display: block; }
.eco-cs-account-endpoint > header p:last-child { margin: 10px 0 0; color: var(--eco-cs-text-dim); }
.eco-cs-account-progress-stats {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 8px;
  margin-bottom: 16px;
}
.eco-cs-account-progress-stats span {
  display: grid;
  gap: 5px;
  border: 1px solid var(--eco-cs-border-dim);
  padding: 15px;
  color: var(--eco-cs-text-dim);
  font-size: 9px;
}
.eco-cs-account-progress-stats strong { color: var(--eco-cs-green); font: 650 25px/1 var(--eco-cs-soft); }
.eco-cs-account-learning-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.eco-cs-account-learning-grid > section { border: 1px solid var(--eco-cs-border-dim); padding: 18px; background: var(--eco-cs-bg); }
.eco-cs-account-learning-grid h3 { margin: 0 0 14px; font: 650 18px/1.2 var(--eco-cs-soft); }

@media (max-width: 900px) {
  .eco-cs-member-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .eco-cs-member-panels,
  .eco-cs-account-learning-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  #customer_login.eco-cs-woo-auth-enhanced { width: 100% !important; }
  .eco-cs-woo-register-disclosure > summary { align-items: flex-start; }
  .eco-cs-member-action-grid,
  .eco-cs-member-stats,
  .eco-cs-account-progress-stats { grid-template-columns: 1fr; }
  .eco-cs-member-activity-list > a { grid-template-columns: 1fr; gap: 4px; }
  .eco-cs-member-activity-list strong { white-space: normal; }
  .eco-cs-member-footer { align-items: flex-start; flex-direction: column; }
  .eco-cs-member-footer b { margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .eco-cs-member-welcome .eco-cs-kicker > span { animation: none; }
  .eco-cs-member-action-grid > a { transition: none; }
}

/* -------------------------------------------------------------------------
 * v0.2.4 mobile shell, member navigation, dashboard + quiz card polish
 * ---------------------------------------------------------------------- */

/* Preserve brand casing inside otherwise mixed-case authentication copy. */
.eco-cs-brand-word {
  color: var(--eco-cs-text);
  font: inherit;
  letter-spacing: .035em;
  text-transform: uppercase;
}

/* The front-end script measures a truly fixed mobile header and sets this
   variable. Padding is applied only when an overlaying header is detected. */
@media (max-width: 900px) {
  body.eco-cs-fixed-header-active:not(.elementor-editor-active) {
    padding-top: var(--eco-cs-mobile-header-offset, 92px) !important;
  }
  body.eco-cs-fixed-header-active.admin-bar:not(.elementor-editor-active) {
    padding-top: max(0px, calc(var(--eco-cs-mobile-header-offset, 92px) - 46px)) !important;
  }
  html { scroll-padding-top: var(--eco-cs-mobile-header-offset, 92px); }
  :where(.eco-cs-page-hero, .eco-cs-auth-hero, .eco-cs-account-center, .eco-cs-booking-center) {
    scroll-margin-top: var(--eco-cs-mobile-header-offset, 92px);
  }
}

/* Authenticated controls injected into Elementor/mobile menu surfaces. */
.eco-cs-nav-dashboard-item { list-style: none !important; }
.eco-cs-nav-dashboard-shortcut {
  display: flex !important;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 54px;
  margin: 10px 0 !important;
  border: 1px solid var(--eco-cs-border-strong) !important;
  background: var(--eco-cs-green-faint) !important;
  color: var(--eco-cs-green) !important;
  padding: 13px 17px !important;
  font: 750 11px/1 var(--eco-cs-mono) !important;
  letter-spacing: .12em;
  text-decoration: none !important;
  text-transform: uppercase;
}
.eco-cs-nav-dashboard-shortcut svg { width: 21px; height: 21px; flex: 0 0 auto; }
.eco-cs-nav-dashboard-shortcut span { min-width: 0; }
.eco-cs-nav-dashboard-shortcut b { margin-left: auto; font: inherit; }
.eco-cs-nav-dashboard-shortcut:hover,
.eco-cs-nav-dashboard-shortcut:focus-visible {
  border-color: var(--eco-cs-green) !important;
  background: rgba(74,255,145,.12) !important;
  outline: none;
}
.elementor-location-popup a[data-eco-account-nav="end-session"],
.elementor-popup-modal a[data-eco-account-nav="end-session"],
[class*="offcanvas"] a[data-eco-account-nav="end-session"],
[class*="off-canvas"] a[data-eco-account-nav="end-session"],
[class*="menu-drawer"] a[data-eco-account-nav="end-session"],
[class*="mobile-menu"] a[data-eco-account-nav="end-session"] {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 54px;
  margin-top: 8px !important;
  border: 1px solid rgba(255,106,133,.42) !important;
  background: rgba(255,106,133,.055) !important;
  color: var(--eco-cs-red) !important;
  padding: 13px 17px !important;
  font: 750 11px/1 var(--eco-cs-mono) !important;
  letter-spacing: .12em;
  text-transform: uppercase;
}

/* WooCommerce account layout: maintain predictable gutters and equal columns. */
body.eco-cs-woocommerce-member .woocommerce.eco-cs-woo-account-shell {
  display: grid !important;
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
  align-items: stretch;
  gap: clamp(18px, 2.5vw, 30px);
  width: min(calc(100% - 40px), 1440px);
  margin-inline: auto !important;
  padding: clamp(24px, 4vw, 52px) 0 clamp(50px, 7vw, 90px) !important;
}
body.eco-cs-woocommerce-member .woocommerce.eco-cs-woo-account-shell > .woocommerce-MyAccount-navigation,
body.eco-cs-woocommerce-member .woocommerce.eco-cs-woo-account-shell > .woocommerce-MyAccount-content {
  float: none !important;
  width: 100% !important;
  min-width: 0;
  margin: 0 !important;
}
body.eco-cs-woocommerce-member .woocommerce-MyAccount-navigation {
  border: 1px solid var(--eco-cs-border-dim);
  background: linear-gradient(145deg, var(--eco-cs-bg2), var(--eco-cs-bg3));
}
body.eco-cs-woocommerce-member .woocommerce-MyAccount-navigation ul { margin: 0 !important; padding: 0 !important; }
body.eco-cs-woocommerce-member .woocommerce-MyAccount-navigation li { margin: 0 !important; border-bottom: 1px solid var(--eco-cs-border-dim); }
body.eco-cs-woocommerce-member .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
body.eco-cs-woocommerce-member .woocommerce-MyAccount-navigation a {
  display: flex !important;
  align-items: center;
  min-height: 54px;
  padding: 14px 17px !important;
  color: var(--eco-cs-text-dim) !important;
  font: 700 9px/1.25 var(--eco-cs-mono) !important;
  letter-spacing: .12em;
  text-transform: uppercase;
}
body.eco-cs-woocommerce-member .woocommerce-MyAccount-navigation .is-active a,
body.eco-cs-woocommerce-member .woocommerce-MyAccount-navigation a:hover {
  background: var(--eco-cs-green-faint) !important;
  color: var(--eco-cs-green) !important;
}
body.eco-cs-woocommerce-member .woocommerce-MyAccount-content {
  border: 1px solid var(--eco-cs-border-dim);
  background: linear-gradient(145deg, rgba(74,255,145,.015), transparent 46%), var(--eco-cs-bg2);
  padding: clamp(22px, 3.5vw, 42px) !important;
}

/* More intentional personalized workspace spacing and typography. */
.eco-cs-member-presence-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}
.eco-cs-member-presence-row .eco-cs-kicker { margin: 0; }
.eco-cs-member-profile-link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  border: 1px solid var(--eco-cs-border-dim);
  padding: 7px 10px;
  color: var(--eco-cs-text-mid) !important;
  font-size: 9px;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.eco-cs-member-profile-link i {
  display: grid;
  place-items: center;
  width: 26px;
  aspect-ratio: 1;
  border: 1px solid var(--eco-cs-border-strong);
  border-radius: 50%;
  color: var(--eco-cs-green);
  font: 750 9px/1 var(--eco-cs-mono);
  font-style: normal;
}
.eco-cs-member-profile-link:hover { border-color: var(--eco-cs-green); color: var(--eco-cs-green) !important; }
.eco-cs-member-stats,
.eco-cs-member-action-grid,
.eco-cs-member-panels { gap: 12px; margin-top: 12px; }
.eco-cs-member-stats { grid-auto-rows: 1fr; }
.eco-cs-member-stats article { min-height: 132px; padding: 20px; }
.eco-cs-member-stats span { line-height: 1.45; }
.eco-cs-member-action-grid { grid-auto-rows: 1fr; }
.eco-cs-member-action-grid > a {
  height: 100%;
  min-height: 180px;
  padding: clamp(20px, 2.6vw, 27px);
}
.eco-cs-member-action-grid strong { font-size: clamp(18px, 2vw, 22px); }
.eco-cs-member-action-grid span { max-width: 42ch; line-height: 1.65; }
.eco-cs-member-panels { align-items: stretch; }
.eco-cs-member-panel { height: 100%; min-height: 265px; padding: clamp(23px, 3vw, 32px); }
.eco-cs-member-panel > header { align-items: center; }
.eco-cs-member-footer { min-height: 48px; padding-inline: 4px; }

/* Bookings endpoint and history cards use the same account rhythm. */
.eco-cs-account-bookings { padding: clamp(24px, 3.5vw, 40px); }
.eco-cs-account-bookings > p { margin: 0 0 22px; }
.eco-cs-account-bookings .eco-cs-primary-link { min-height: 46px; }
.eco-cs-account-bookings .eco-cs-booking-history {
  margin: 22px 0 0;
  border: 0;
  padding: 0;
  background: transparent;
}
.eco-cs-account-bookings .eco-cs-booking-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.eco-cs-account-bookings .eco-cs-booking-list article {
  display: grid;
  align-content: space-between;
  align-items: start;
  min-height: 170px;
  padding: 22px;
}
.eco-cs-account-bookings .eco-cs-booking-list article > div { gap: 7px; }
.eco-cs-account-bookings .eco-cs-booking-list strong {
  color: var(--eco-cs-text);
  font: 650 19px/1.25 var(--eco-cs-soft);
}
.eco-cs-account-bookings .eco-cs-booking-list span { line-height: 1.55; }
.eco-cs-account-bookings .eco-cs-booking-status { justify-self: start; margin-top: 18px; }

/* Semantic topic icons replace repeated glyphs. */
.eco-cs-quiz-topics button { min-width: 165px; min-height: 118px; justify-content: center; }
.eco-cs-quiz-topics .eco-cs-topic-icon {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  margin-bottom: 3px;
  border: 1px solid var(--eco-cs-border-dim);
  color: var(--eco-cs-text-dim);
}
.eco-cs-quiz-topics .eco-cs-topic-icon svg { width: 22px; height: 22px; }
.eco-cs-quiz-topics button:is(:hover,.is-active) .eco-cs-topic-icon {
  border-color: var(--eco-cs-border-strong);
  background: var(--eco-cs-green-faint);
  color: var(--eco-cs-green);
}

/* Compact, even quiz identity badges. Explicit resets beat theme/global span rules. */
.eco-cs-quiz-card > .eco-cs-card-badges {
  display: flex !important;
  align-items: center !important;
  align-self: flex-start;
  flex-wrap: wrap;
  min-height: 0 !important;
  height: auto !important;
  gap: 8px !important;
  margin: 0 0 24px !important;
  color: inherit !important;
  font: inherit !important;
}
.eco-cs-card-badges .eco-cs-quiz-badge {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  min-width: 0 !important;
  min-height: 31px !important;
  height: 31px !important;
  margin: 0 !important;
  border: 1px solid var(--eco-cs-border-dim) !important;
  background: rgba(255,255,255,.012);
  padding: 0 11px !important;
  color: var(--eco-cs-text-dim);
  font: 700 8px/1 var(--eco-cs-mono) !important;
  letter-spacing: .1em;
  white-space: nowrap;
}
.eco-cs-card-badges .eco-cs-quiz-badge b { color: inherit; font: inherit; letter-spacing: inherit; }
.eco-cs-card-badges .eco-cs-quiz-badge i {
  display: block;
  width: 6px;
  height: 6px;
  border: 1px solid currentColor;
  transform: rotate(45deg);
}
.eco-cs-quiz-card.is-public .eco-cs-quiz-badge--access { color: var(--eco-cs-green) !important; border-color: var(--eco-cs-border-strong) !important; }
.eco-cs-quiz-card.is-authenticated .eco-cs-quiz-badge--access { color: var(--eco-cs-blue) !important; border-color: rgba(124,201,255,.34) !important; }
.eco-cs-quiz-card.is-paid .eco-cs-quiz-badge--access { color: var(--eco-cs-amber) !important; border-color: rgba(255,216,107,.36) !important; }
.eco-cs-quiz-card .eco-cs-quiz-badge--access i { border-radius: 50%; transform: none; background: currentColor; }

@media (max-width: 980px) {
  body.eco-cs-woocommerce-member .woocommerce.eco-cs-woo-account-shell {
    grid-template-columns: 1fr;
    width: min(calc(100% - 28px), 900px);
  }
  body.eco-cs-woocommerce-member .woocommerce-MyAccount-navigation ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  body.eco-cs-woocommerce-member .woocommerce-MyAccount-navigation li { border-right: 1px solid var(--eco-cs-border-dim); }
}

@media (max-width: 620px) {
  body.eco-cs-woocommerce-auth #customer_login,
  #customer_login.eco-cs-woo-auth-enhanced { width: 100% !important; }
  #customer_login.eco-cs-woo-auth-enhanced > .eco-cs-woo-login-primary { padding: 25px 20px !important; }
  .eco-cs-woo-register-disclosure > summary { padding: 18px; gap: 14px; }
  .eco-cs-woo-register-disclosure > summary strong { font-size: 16px; }
  .eco-cs-woo-register-disclosure > summary small { max-width: 32ch; }
  body.eco-cs-woocommerce-member .woocommerce.eco-cs-woo-account-shell {
    width: min(calc(100% - 22px), 680px);
    gap: 14px;
    padding-top: 22px !important;
  }
  body.eco-cs-woocommerce-member .woocommerce-MyAccount-navigation ul { grid-template-columns: 1fr; }
  body.eco-cs-woocommerce-member .woocommerce-MyAccount-navigation li { border-right: 0; }
  body.eco-cs-woocommerce-member .woocommerce-MyAccount-content { padding: 15px !important; }
  .eco-cs-member-welcome { padding: 22px 18px; }
  .eco-cs-member-presence-row { align-items: flex-start; }
  .eco-cs-member-profile-link span { display: none; }
  .eco-cs-member-welcome h1 { font-size: clamp(29px, 10vw, 40px) !important; }
  .eco-cs-member-stats article { min-height: 112px; }
  .eco-cs-member-action-grid > a { min-height: 158px; }
  .eco-cs-member-panel { min-height: 0; }
  .eco-cs-member-panel > header { align-items: flex-start; flex-direction: column; }
  .eco-cs-account-bookings { padding: 20px 16px; }
  .eco-cs-account-bookings .eco-cs-booking-list { grid-template-columns: 1fr; }
  .eco-cs-account-bookings .eco-cs-booking-list article { min-height: 150px; }
  .eco-cs-quiz-topics button { min-width: 145px; min-height: 104px; padding: 15px; }
  .eco-cs-card-badges .eco-cs-quiz-badge { min-height: 29px !important; height: 29px !important; padding-inline: 9px !important; }
}


/* -------------------------------------------------------------------------
 * v0.2.5 authenticated drawer + dashboard cleanup
 * ---------------------------------------------------------------------- */

/* The custom drawer footer becomes a complete authenticated account control. */
.eco-drawer-footer.eco-cs-drawer-account-footer {
  display: grid !important;
  grid-template-columns: 1fr;
  gap: 10px;
  width: 100%;
  margin: 0 !important;
  padding: 18px 0 0 !important;
  border-top: 1px solid var(--eco-cs-border-dim);
  color: var(--eco-cs-text-mid);
  font: 750 10px/1 var(--eco-cs-mono);
  letter-spacing: .13em;
  text-transform: uppercase;
}
.eco-cs-drawer-dashboard,
.eco-cs-drawer-end-session {
  display: flex !important;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 52px;
  border: 1px solid var(--eco-cs-border-dim) !important;
  padding: 13px 15px !important;
  text-decoration: none !important;
}
.eco-cs-drawer-dashboard {
  background: var(--eco-cs-green-faint) !important;
  border-color: var(--eco-cs-border-strong) !important;
  color: var(--eco-cs-green) !important;
}
.eco-cs-drawer-dashboard svg {
  width: 21px;
  height: 21px;
  flex: 0 0 auto;
}
.eco-cs-drawer-dashboard b,
.eco-cs-drawer-end-session b {
  margin-left: auto;
  color: inherit;
  font: inherit;
}
.eco-cs-drawer-dashboard:hover,
.eco-cs-drawer-dashboard:focus-visible {
  border-color: var(--eco-cs-green) !important;
  background: rgba(74,255,145,.12) !important;
  outline: none;
}
.eco-cs-drawer-presence {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 38px;
  padding: 7px 4px;
  color: var(--eco-cs-green);
  cursor: pointer;
  overflow-wrap: anywhere;
}
.eco-cs-drawer-presence .eco-online-dot {
  display: block;
  flex: 0 0 auto;
}
.eco-cs-drawer-presence:focus-visible {
  outline: 1px solid var(--eco-cs-green);
  outline-offset: 3px;
}
.eco-cs-drawer-end-session {
  border-color: rgba(255,106,133,.38) !important;
  background: rgba(255,106,133,.045) !important;
  color: var(--eco-cs-red) !important;
}
.eco-cs-drawer-end-session:hover,
.eco-cs-drawer-end-session:focus-visible {
  border-color: var(--eco-cs-red) !important;
  background: rgba(255,106,133,.09) !important;
  outline: none;
}

/* The dashboard's four primary action cards are the navigation layer. The
   duplicate activity/booking snapshots and status footer were removed in PHP. */
.eco-cs-member-workspace .eco-cs-member-action-grid {
  margin-bottom: 0;
}
.eco-cs-member-workspace.is-embedded .eco-cs-member-action-grid {
  padding-bottom: 0;
}
.eco-cs-member-workspace .eco-cs-account-manage-link {
  margin: 16px 0 0;
  border-top: 1px solid var(--eco-cs-border-dim);
  padding-top: 14px;
}


/* -------------------------------------------------------------------------
 * v0.2.7 merged account identity + dashboard-route navigation cleanup
 * ---------------------------------------------------------------------- */

/* The profile shortcut now carries the live username status, eliminating the
   former separate username_online row on ordinary signed-in pages. */
.eco-cs-drawer-dashboard [data-eco-presence-label],
.eco-cs-nav-dashboard-shortcut [data-eco-presence-label] {
  min-width: 0;
}
.eco-cs-drawer-dashboard span,
.eco-cs-nav-dashboard-shortcut span {
  overflow-wrap: anywhere;
}

/* On the current account dashboard the return-to-dashboard button is omitted;
   retain only a quiet identity indicator and the protected logout control. */
.eco-drawer-footer.eco-cs-drawer-account-footer.is-account-dashboard {
  grid-template-columns: 1fr;
}
.eco-drawer-footer.eco-cs-drawer-account-footer.is-account-dashboard .eco-cs-drawer-presence {
  cursor: default;
  min-height: 34px;
  padding: 6px 4px;
}
.eco-drawer-footer.eco-cs-drawer-account-footer.is-account-dashboard .eco-cs-drawer-presence:focus-visible {
  outline: none;
}

/* Avoid flashes from an Elementor-auth button while dashboard-route JS removes
   redundant account-access controls. */
body.eco-cs-woocommerce-member .eco-cs-nav-dashboard-item[hidden],
body.eco-cs-woocommerce-member [data-eco-account-nav][hidden] {
  display: none !important;
}

/* -------------------------------------------------------------------------
 * v0.2.7 canonical learning route + authenticated navigation cleanup
 * ---------------------------------------------------------------------- */

/* The old dashboard profile chip was removed from the member welcome area. */
.eco-cs-member-profile-link {
  display: none !important;
}

/* Logged-in authentication controls are account controls, never guest CTAs. */
body.logged-in [data-eco-account-nav="guest"],
body.logged-in .eco-cs-account-menu-item.is-account-access {
  display: none !important;
}

/* Server-rendered WordPress menu fallback before the Elementor connector runs. */
.eco-cs-account-menu-item.is-member-profile > a {
  display: inline-flex !important;
  align-items: center;
  gap: 10px;
  color: var(--eco-cs-green) !important;
}
.eco-cs-account-menu-item.is-member-profile > a::before {
  content: "";
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  border: 1px solid currentColor;
  border-radius: 50%;
  background: radial-gradient(circle, currentColor 0 2px, transparent 3px);
  animation: eco-cs-profile-pulse 2.8s ease-in-out infinite;
}

/* Give the real username_online account control a restrained live-state pulse. */
.eco-cs-drawer-dashboard svg,
.eco-cs-nav-dashboard-shortcut svg {
  box-sizing: content-box;
  border: 1px solid rgba(74,255,145,.48);
  border-radius: 50%;
  padding: 3px;
  animation: eco-cs-profile-pulse 2.8s ease-in-out infinite;
}

@keyframes eco-cs-profile-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(74,255,145,0), 0 0 8px rgba(74,255,145,.06); }
  50% { box-shadow: 0 0 0 5px rgba(74,255,145,.055), 0 0 15px rgba(74,255,145,.16); }
}

@media (prefers-reduced-motion: reduce) {
  .eco-cs-account-menu-item.is-member-profile > a::before,
  .eco-cs-drawer-dashboard svg,
  .eco-cs-nav-dashboard-shortcut svg {
    animation: none !important;
  }
}

/* -------------------------------------------------------------------------
 * v0.2.9 authenticated nav reliability + learning dashboard theme pass
 * ---------------------------------------------------------------------- */

/* Keep the brand phrase together. The prior descendant selector also turned
   the nested ECHOLOGISTS span into a grid, causing the question mark to fall
   onto a third line. */
.eco-cs-woo-register-disclosure > summary > span > strong,
.eco-cs-register-disclosure > summary > span > strong {
  display: block;
  min-width: 0;
  color: var(--eco-cs-text) !important;
  white-space: nowrap;
}
.eco-cs-woo-register-disclosure .eco-cs-brand-word,
.eco-cs-register-disclosure .eco-cs-brand-word {
  display: inline !important;
  color: inherit !important;
  white-space: nowrap;
}
.eco-cs-woo-register-disclosure > summary > span > small,
.eco-cs-register-disclosure > summary > span > small {
  display: block;
  max-width: 640px;
}

/* Hard CSS fallback after authentication. JavaScript adds this marker to any
   Elementor/custom CTA it removes, including popup content mounted later. */
body.logged-in [data-eco-auth-guest-hidden="1"] {
  display: none !important;
}

/* Learning dashboard typography and component normalization. */
.eco-cs-learning-dashboard[data-eco-learning-dashboard] {
  padding: 0 !important;
  color: var(--eco-cs-text) !important;
  font-family: var(--eco-cs-mono) !important;
}
.eco-cs-learning-dashboard[data-eco-learning-dashboard] :where(h1,h2,h3,p,span,strong,small,th,td,a) {
  color: inherit;
}
.eco-cs-learning-dashboard[data-eco-learning-dashboard] a,
.eco-cs-learning-dashboard[data-eco-learning-dashboard] a:visited,
.eco-cs-learning-dashboard[data-eco-learning-dashboard] a:hover,
.eco-cs-learning-dashboard[data-eco-learning-dashboard] a:focus {
  text-decoration: none !important;
  text-decoration-line: none !important;
}
.eco-cs-learning-dashboard .eco-cs-learning-hero {
  min-height: 330px;
  padding: clamp(64px, 9vw, 118px) clamp(34px, 7vw, 92px) clamp(40px, 6vw, 68px);
}
.eco-cs-learning-dashboard .eco-cs-learning-hero h1 {
  margin-bottom: 14px;
  color: var(--eco-cs-text) !important;
  font-family: var(--eco-cs-soft) !important;
  font-size: clamp(44px, 6vw, 78px) !important;
  font-weight: 560 !important;
  line-height: .98 !important;
  letter-spacing: -.055em !important;
  text-transform: none !important;
}
.eco-cs-learning-dashboard .eco-cs-learning-hero h1 span {
  color: var(--eco-cs-green) !important;
}
.eco-cs-learning-dashboard .eco-cs-dashboard-identity {
  color: var(--eco-cs-text-mid) !important;
  font: 430 14px/1.65 var(--eco-cs-soft) !important;
}
.eco-cs-learning-dashboard .eco-cs-stats {
  gap: 18px 38px;
  margin-top: 30px;
}
.eco-cs-learning-dashboard .eco-cs-stats > span {
  min-width: 130px;
  color: var(--eco-cs-text-dim) !important;
  font: 700 9px/1.4 var(--eco-cs-mono) !important;
  letter-spacing: .13em;
}
.eco-cs-learning-dashboard .eco-cs-stats strong {
  color: var(--eco-cs-green) !important;
  font: 700 22px/1 var(--eco-cs-mono) !important;
}
.eco-cs-dashboard-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 20px clamp(24px, 5vw, 70px);
  border-bottom: 1px solid var(--eco-cs-border-dim);
  background: var(--eco-cs-bg2);
}
.eco-cs-dashboard-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 38px;
  border: 1px solid var(--eco-cs-border-dim);
  padding: 10px 13px;
  background: rgba(74,255,145,.025);
  color: var(--eco-cs-text-mid) !important;
  font: 700 10px/1 var(--eco-cs-mono) !important;
  letter-spacing: .045em;
  text-transform: lowercase;
}
.eco-cs-dashboard-links a span { color: var(--eco-cs-green) !important; }
.eco-cs-dashboard-links a:hover,
.eco-cs-dashboard-links a:focus-visible {
  border-color: var(--eco-cs-green);
  background: var(--eco-cs-green-faint);
  color: var(--eco-cs-green) !important;
}
.eco-cs-learning-dashboard .eco-cs-attempts,
.eco-cs-learning-dashboard .eco-cs-dashboard-bookings {
  margin: clamp(26px, 5vw, 58px) clamp(24px, 5vw, 70px) 0 !important;
  border: 1px solid var(--eco-cs-border-dim) !important;
  background: linear-gradient(145deg, var(--eco-cs-bg2), var(--eco-cs-bg3)) !important;
  box-shadow: none !important;
}
.eco-cs-learning-dashboard .eco-cs-attempts {
  padding: clamp(22px, 4vw, 36px) !important;
}
.eco-cs-learning-dashboard .eco-cs-attempts h2,
.eco-cs-learning-dashboard .eco-cs-section-label {
  color: var(--eco-cs-green) !important;
  font: 750 10px/1.35 var(--eco-cs-mono) !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
}
.eco-cs-learning-dashboard .eco-cs-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--eco-cs-border-dim);
}
.eco-cs-learning-dashboard table {
  width: 100%;
  min-width: 680px;
  border: 0 !important;
  border-collapse: collapse !important;
  background: rgba(0,0,0,.10);
  color: var(--eco-cs-text-mid) !important;
  font: 600 11px/1.55 var(--eco-cs-mono) !important;
}
.eco-cs-learning-dashboard th,
.eco-cs-learning-dashboard td {
  border: 0 !important;
  border-right: 1px solid var(--eco-cs-border-dim) !important;
  border-bottom: 1px solid var(--eco-cs-border-dim) !important;
  padding: 15px 18px !important;
  background: transparent !important;
  color: var(--eco-cs-text-mid) !important;
  text-align: left !important;
  vertical-align: middle;
}
.eco-cs-learning-dashboard th:last-child,
.eco-cs-learning-dashboard td:last-child { border-right: 0 !important; }
.eco-cs-learning-dashboard tbody tr:last-child td { border-bottom: 0 !important; }
.eco-cs-learning-dashboard th {
  color: var(--eco-cs-green-dim) !important;
  font-size: 9px !important;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.eco-cs-learning-dashboard .eco-cs-attempt-status {
  display: inline-flex;
  border: 1px solid var(--eco-cs-border);
  padding: 4px 7px;
  color: var(--eco-cs-green) !important;
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.eco-cs-learning-dashboard .eco-cs-dashboard-empty {
  margin: 0;
  color: var(--eco-cs-text-dim) !important;
  font: 500 12px/1.7 var(--eco-cs-soft) !important;
}
.eco-cs-learning-dashboard .eco-cs-dashboard-bookings {
  margin-bottom: clamp(42px, 7vw, 90px) !important;
  padding: clamp(22px, 4vw, 36px) !important;
}
.eco-cs-learning-dashboard .eco-cs-dashboard-bookings > header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 18px;
}
.eco-cs-learning-dashboard .eco-cs-dashboard-bookings h2 {
  margin: 5px 0 0 !important;
  color: var(--eco-cs-text) !important;
  font: 560 clamp(22px, 3vw, 32px)/1.05 var(--eco-cs-soft) !important;
  letter-spacing: -.03em !important;
}
.eco-cs-learning-dashboard .eco-cs-dashboard-bookings > header > a {
  color: var(--eco-cs-green) !important;
  font: 750 10px/1 var(--eco-cs-mono) !important;
  white-space: nowrap;
}
.eco-cs-learning-dashboard .eco-cs-dashboard-bookings > p {
  margin: 0;
  color: var(--eco-cs-text-mid) !important;
  font: 430 13px/1.7 var(--eco-cs-soft) !important;
}

@media (max-width: 680px) {
  .eco-cs-woo-register-disclosure > summary,
  .eco-cs-register-disclosure > summary {
    gap: 12px;
    padding: 17px 18px;
  }
  .eco-cs-woo-register-disclosure > summary > span > strong,
  .eco-cs-register-disclosure > summary > span > strong {
    font-size: 16px !important;
  }
  .eco-cs-learning-dashboard .eco-cs-learning-hero {
    min-height: 285px;
    padding: 58px 22px 36px;
  }
  .eco-cs-learning-dashboard .eco-cs-learning-hero h1 {
    font-size: clamp(40px, 13vw, 58px) !important;
  }
  .eco-cs-learning-dashboard .eco-cs-stats {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .eco-cs-dashboard-links {
    display: grid;
    grid-template-columns: 1fr;
    padding: 16px 20px;
  }
  .eco-cs-dashboard-links a { justify-content: space-between; }
  .eco-cs-learning-dashboard .eco-cs-attempts,
  .eco-cs-learning-dashboard .eco-cs-dashboard-bookings {
    margin-inline: 18px !important;
  }
  .eco-cs-learning-dashboard .eco-cs-dashboard-bookings > header {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
  }
}


/* =========================================================
 * v0.2.9 single authenticated drawer account entry
 * The footer account control is canonical; never show a second injected
 * profile/account shortcut in the primary drawer menu below Contact.
 * ========================================================= */
body.logged-in .eco-drawer:not(.eco-cs-drawer-account-footer) .eco-cs-nav-dashboard-item,
body.logged-in .eco-drawer:not(.eco-cs-drawer-account-footer) > .eco-cs-nav-dashboard-shortcut,
body.logged-in .elementor-location-popup .eco-cs-nav-dashboard-item,
body.logged-in .elementor-popup-modal .eco-cs-nav-dashboard-item,
body.logged-in [class*="menu-drawer"] .eco-cs-nav-dashboard-item,
body.logged-in [class*="offcanvas"] .eco-cs-nav-dashboard-item,
body.logged-in [class*="off-canvas"] .eco-cs-nav-dashboard-item {
  display: none !important;
}
body.logged-in .elementor-location-popup .eco-cs-nav-dashboard-shortcut:not(.eco-cs-drawer-dashboard),
body.logged-in .elementor-popup-modal .eco-cs-nav-dashboard-shortcut:not(.eco-cs-drawer-dashboard),
body.logged-in [class*="menu-drawer"] .eco-cs-nav-dashboard-shortcut:not(.eco-cs-drawer-dashboard),
body.logged-in [class*="offcanvas"] .eco-cs-nav-dashboard-shortcut:not(.eco-cs-drawer-dashboard),
body.logged-in [class*="off-canvas"] .eco-cs-nav-dashboard-shortcut:not(.eco-cs-drawer-dashboard) {
  display: none !important;
}

/* =========================================================
 * v0.2.10 cohesive Education articles + footer fallback
 * ========================================================= */

/* One continuous article frame instead of unrelated boxes of changing widths. */
.eco-cs-single-education {
  width: min(100%, 1080px);
  max-width: 1080px;
}

.eco-cs-article-frame {
  width: 100%;
  overflow: hidden;
  border: 1px solid var(--eco-cs-border-dim);
  background: var(--eco-cs-bg2);
}

.eco-cs-article-frame > :where(
  .eco-cs-article-head,
  .eco-cs-article-image,
  .eco-cs-article-body,
  .eco-cs-pearl,
  .eco-cs-references,
  .eco-cs-disclaimer
) {
  width: 100%;
  max-width: none !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.eco-cs-article-frame > :where(
  .eco-cs-article-image,
  .eco-cs-article-body,
  .eco-cs-pearl,
  .eco-cs-references,
  .eco-cs-disclaimer
) {
  border-top: 1px solid var(--eco-cs-border-dim) !important;
}

.eco-cs-article-frame .eco-cs-article-head {
  padding: clamp(42px, 7vw, 82px) clamp(28px, 7vw, 82px);
  background:
    linear-gradient(145deg, rgba(74,255,145,.055), transparent 48%),
    var(--eco-cs-bg2);
}

.eco-cs-article-frame .eco-cs-article-head > p:not(.eco-cs-kicker) {
  max-width: 780px;
  margin-top: 16px;
}

.eco-cs-article-frame .eco-cs-article-image {
  background: #020302;
}

.eco-cs-article-frame .eco-cs-article-body {
  padding: clamp(38px, 7vw, 82px);
  background: var(--eco-cs-bg2);
}

.eco-cs-article-frame .eco-cs-article-body > * {
  width: min(100%, 780px);
  margin-right: auto;
  margin-left: auto;
}

.eco-cs-article-frame .eco-cs-article-body > :where(ul, ol) {
  padding-left: 1.4rem;
}

.eco-cs-article-frame > .eco-cs-pearl,
.eco-cs-article-frame > .eco-cs-references,
.eco-cs-article-frame > .eco-cs-disclaimer {
  padding: clamp(24px, 4vw, 38px) clamp(28px, 7vw, 82px) !important;
}

.eco-cs-article-frame > .eco-cs-pearl {
  border-left: 0 !important;
  background:
    linear-gradient(90deg, rgba(74,255,145,.085), transparent 62%),
    var(--eco-cs-bg3) !important;
}

.eco-cs-article-frame > .eco-cs-pearl::before {
  content: "";
  display: block;
  width: 32px;
  height: 1px;
  margin-bottom: 15px;
  background: var(--eco-cs-green);
}

.eco-cs-article-frame > .eco-cs-pearl > :where(strong, p),
.eco-cs-article-frame > .eco-cs-references > :where(h2, ol),
.eco-cs-article-frame > .eco-cs-disclaimer {
  max-width: 780px;
  margin-right: auto !important;
  margin-left: auto !important;
}

.eco-cs-article-frame > .eco-cs-references {
  background: var(--eco-cs-bg2);
}

.eco-cs-article-frame > .eco-cs-references h2 {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px !important;
  color: var(--eco-cs-green) !important;
  font: 750 9px/1.4 var(--eco-cs-mono);
  letter-spacing: .16em;
  text-transform: uppercase;
}

.eco-cs-article-frame > .eco-cs-references h2::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--eco-cs-border-dim);
}

.eco-cs-article-frame > .eco-cs-references ol {
  padding-left: 1.25rem;
}

.eco-cs-article-frame > .eco-cs-disclaimer {
  padding-top: 22px !important;
  padding-bottom: 22px !important;
  background: rgba(0,0,0,.14);
  color: var(--eco-cs-text-faint) !important;
  font: 650 8px/1.7 var(--eco-cs-mono);
  letter-spacing: .065em;
}

/* v0.2.12 reuses the live theme footer from Theme Builder or the configured reference page.
   No plugin-authored approximation styles are required or applied. */

@media (max-width: 780px) {
  .eco-cs-article-frame .eco-cs-article-head,
  .eco-cs-article-frame .eco-cs-article-body,
  .eco-cs-article-frame > .eco-cs-pearl,
  .eco-cs-article-frame > .eco-cs-references,
  .eco-cs-article-frame > .eco-cs-disclaimer {
    padding-right: 22px !important;
    padding-left: 22px !important;
  }
}

/* -------------------------------------------------------------------------
 * v0.2.13 measured mobile route clearance + imported footer accordions
 * ---------------------------------------------------------------------- */
@media (max-width: 900px) {
  /* Applied only when JavaScript confirms that the live header is physically
     overlapping the plugin shell. This also covers sticky/absolute Elementor
     headers that are not reported as position:fixed. */
  :where(
    .eco-cs-case-library,
    .eco-cs-quiz-bank,
    .eco-cs-calculators
  ).eco-cs-route-needs-clearance {
    padding-block-start: var(--eco-cs-route-top-clearance, 96px) !important;
  }

  /* The exact homepage footer is imported, but its original page script is not.
     Make the rebound accordion heading rows visibly interactive. */
  [data-eco-theme-footer-live] [data-eco-footer-toggle="1"] {
    cursor: pointer !important;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
  }

  [data-eco-theme-footer-live] [data-eco-footer-toggle="1"]:focus-visible {
    outline: 1px solid var(--eco-cs-green) !important;
    outline-offset: 4px;
  }
}
