/* ============================================================
   CARL DESIGN SYSTEM — COMPONENTS
   All consume tokens.css. Brand-swap via .theme-carl / .theme-compass.
   Zero !important.
   ============================================================ */

/* ---------- Typography scale ---------- */
.carl-h1 { font: 700 clamp(2rem, 4.5vw, 3.25rem)/var(--carl-heading-line) var(--carl-font); color: var(--carl-text); margin: 0 0 .4em; letter-spacing: -.02em; }
.carl-h2 { font: 700 clamp(1.6rem, 3vw, 2.4rem)/var(--carl-heading-line) var(--carl-font); color: var(--carl-text); margin: 0 0 .4em; letter-spacing: -.015em; }
.carl-h3 { font: 600 clamp(1.15rem, 2vw, 1.4rem)/1.25 var(--carl-font); color: var(--carl-text); margin: 0 0 .4em; }
.carl-lead { font: 400 clamp(1.05rem, 1.6vw, 1.25rem)/1.6 var(--carl-font); color: var(--carl-text-muted); margin: 0; }
.carl-body { font: 400 1rem/var(--carl-body-line) var(--carl-font); color: var(--carl-text); }

/* ---------- Eyebrow (label-with-dot above titles) ---------- */
.carl-eyebrow {
  display: inline-flex; align-items: center; gap: .55em;
  font: 600 .8rem/1 var(--carl-font);
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--carl-text-muted);
}
.carl-eyebrow::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--brand, #00E5D3); }

/* ---------- Section system ---------- */
.carl-section { padding-block: var(--carl-section-y); padding-inline: clamp(1.25rem, 4vw, 2rem); }
.carl-section__inner { max-width: var(--carl-container); margin-inline: auto; }
.carl-section--narrow .carl-section__inner { max-width: var(--carl-container-narrow); }
.carl-section--tint { background: color-mix(in srgb, var(--brand) 7%, var(--carl-off-white)); }
.carl-section--navy { background: var(--gradient-navy); color: #fff; }
.carl-section--navy .carl-h1, .carl-section--navy .carl-h2, .carl-section--navy .carl-h3 { color: #fff; }
.carl-section--navy .carl-lead { color: rgba(255,255,255,.75); }
.carl-section--navy .carl-eyebrow { color: rgba(255,255,255,.7); }

/* Centered section header: eyebrow + title + lead */
.carl-section__head { max-width: 720px; margin: 0 auto clamp(2rem, 4vw, 3rem); text-align: center; display: flex; flex-direction: column; align-items: center; gap: .85rem; }

/* ---------- Cards (signature = left accent, color-coded) ---------- */
.carl-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--carl-gap); }
.carl-card {
  position: relative;
  background: var(--carl-surface); border: 1px solid var(--carl-hairline);
  border-left: 5px solid var(--card-accent, var(--carl-border));
  border-radius: var(--carl-radius);
  padding: clamp(1.4rem, 2.5vw, 2rem);
  box-shadow: var(--carl-inset-hi), var(--carl-shadow-card);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.carl-card:hover { transform: translateY(-4px); box-shadow: var(--carl-inset-hi), var(--carl-shadow-card-hover); border-left-color: var(--card-accent, var(--brand)); }
/* color variants set the accent (left border + number circle) */
.carl-card--blue  { --card-accent: var(--accent-blue); }
.carl-card--teal  { --card-accent: var(--accent-teal); }
.carl-card--lime  { --card-accent: var(--accent-lime); }
.carl-card--coral { --card-accent: var(--accent-coral); }
.carl-card--pink  { --card-accent: var(--accent-pink); }
.carl-card--amber { --card-accent: var(--accent-amber); }
.carl-card--brand { --card-accent: var(--brand); }
/* step variant: top accent + numbered circle (the "flow" steps) */
.carl-card--step { border-left: 1px solid var(--carl-hairline); border-top: 5px solid var(--card-accent, var(--brand)); }
/* alternate accent treatments — vary the device so cards don't all read the same */
.carl-card--top   { border-left: 1px solid var(--carl-hairline); border-top: 4px solid var(--card-accent, var(--brand)); }
.carl-card--plain { border-left: 1px solid var(--carl-hairline); }
.carl-card--plain:hover { border-left-color: var(--carl-hairline); }
.carl-card--tint {
  border: 1px solid color-mix(in srgb, var(--card-accent, var(--brand)) 30%, transparent);
  border-left-width: 1px;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--card-accent, var(--brand)) 10%, #fff),
                            color-mix(in srgb, var(--card-accent, var(--brand)) 4%, #fff));
}
.carl-card--tint:hover { border-left-color: color-mix(in srgb, var(--card-accent, var(--brand)) 30%, transparent); }
.carl-card__num { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; font: 700 1.2rem/1 var(--carl-font); color: var(--carl-navy-deep); background: var(--card-accent, var(--brand)); margin-bottom: 1.1rem; box-shadow: var(--carl-inset-hi), 0 6px 14px -5px color-mix(in srgb, var(--card-accent, var(--brand)) 55%, transparent); }
/* icon tile — navy by default (signature), now with depth; --accent for a soft colored tile */
.carl-card__icon { width: 48px; height: 48px; border-radius: 12px; background: linear-gradient(160deg, var(--carl-navy), var(--carl-navy-deep)); display: grid; place-items: center; color: #fff; margin-bottom: 1.1rem; box-shadow: inset 0 1px 0 rgba(255,255,255,.14), 0 6px 14px -5px rgba(0,45,76,.5); }
.carl-card__icon--accent { background: color-mix(in srgb, var(--card-accent, var(--brand)) 16%, #fff); color: color-mix(in srgb, var(--card-accent, var(--brand)) 45%, var(--carl-navy-deep)); box-shadow: var(--carl-inset-hi); }
.carl-card__title { font: 600 1.2rem/1.3 var(--carl-font); color: var(--carl-text); margin: 0 0 .5rem; }
.carl-card__text { font: 400 .98rem/1.6 var(--carl-font); color: var(--carl-text-muted); margin: 0; }

/* ---------- Tags / pills ---------- */
.carl-tag {
  display: inline-flex; align-items: center; gap: .4em;
  font: 500 .8rem/1 var(--carl-font); color: var(--carl-text);
  background: color-mix(in srgb, var(--brand) 14%, #fff);
  border: 1px solid color-mix(in srgb, var(--brand) 32%, #fff);
  border-radius: 999px; padding: .55em .95em;
}

/* Accent pills (subject/category color-coding) — tint bg + accessible dark text */
.carl-pill { display: inline-flex; align-items: center; gap: .4em; font: 600 .78rem/1 var(--carl-font); border-radius: 999px; padding: .5em .9em; }
.carl-pill--blue  { background: var(--tint-blue);  color: var(--pill-text-blue); }
.carl-pill--teal  { background: var(--tint-teal);  color: var(--pill-text-teal); }
.carl-pill--lime  { background: var(--tint-lime);  color: var(--pill-text-lime); }
.carl-pill--coral { background: var(--tint-coral); color: var(--pill-text-coral); }
.carl-pill--pink  { background: var(--tint-pink);  color: var(--pill-text-pink); }
.carl-pill--amber { background: var(--tint-amber); color: var(--pill-text-amber); }
.carl-pill--sage  { background: var(--tint-sage);  color: var(--accent-sage); }
.carl-pill--bluepurple { background: var(--tint-bluepurple); color: var(--accent-bluepurple); }
.carl-pill--pinkpurple { background: var(--tint-pinkpurple); color: var(--accent-pinkpurple); }

/* ---------- CTA band ---------- */
.carl-cta { border-radius: var(--carl-radius); padding: clamp(2rem, 5vw, 3.5rem); text-align: center; display: flex; flex-direction: column; align-items: center; gap: 1.25rem; }
.carl-cta--brand { background: var(--brand-grad); color: var(--brand-ink); }
.carl-cta--navy { background: var(--gradient-navy); color: #fff; }
.carl-cta__title { font: 700 clamp(1.5rem, 3vw, 2.2rem)/1.15 var(--carl-font); margin: 0; }
.carl-cta__row { display: flex; gap: .75rem; flex-wrap: wrap; justify-content: center; }

/* NOTE: nav + footer now live entirely in chrome.css.
   The old v1 header/footer rules were removed from here to prevent cascade conflicts
   (a leftover .carl-footer__brand{display:flex} was overriding the stacked layout). */

/* ---------- Tabs (Plan / Teach / Assess) ---------- */
.carl-tabs__nav { display: flex; gap: .6rem; flex-wrap: wrap; margin-bottom: 1.6rem; }
.carl-tab { display: flex; align-items: center; gap: .75rem; padding: .85rem 1.15rem; border: 1px solid var(--carl-border); border-radius: var(--carl-radius); background: #fff; cursor: pointer; text-align: left; font-family: var(--carl-font); transition: border-color .15s, box-shadow .15s; }
.carl-tab:hover { border-color: var(--brand); }
.carl-tab.is-active { border-color: var(--brand); box-shadow: inset 0 0 0 1px var(--brand), var(--carl-shadow-card); }
.carl-tab__icon { width: 40px; height: 40px; border-radius: 10px; background: var(--carl-navy); color: #fff; display: grid; place-items: center; flex: 0 0 auto; }
.carl-tab.is-active .carl-tab__icon { background: var(--brand-grad); color: var(--brand-ink); }
.carl-tab__title { display: block; font: 600 1rem/1.1 var(--carl-font); color: var(--carl-navy); }
.carl-tab__sub { display: block; font: 400 .8rem/1.2 var(--carl-font); color: var(--carl-text-muted); margin-top: 2px; }
.carl-tabs__panel { display: none; }
.carl-tabs__panel.is-active { display: block; }

/* ---------- FAQ accordion ---------- */
.carl-faq { display: flex; flex-direction: column; gap: .75rem; max-width: 800px; }
.carl-faq__item { border: 1px solid var(--carl-border); border-radius: var(--carl-radius); background: #fff; box-shadow: var(--carl-shadow-card); transition: box-shadow .15s; }
.carl-faq__item:hover { box-shadow: var(--carl-shadow-card-hover); }
.carl-faq__item.is-open { box-shadow: var(--carl-shadow-card-hover); }
.carl-faq__q { display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; padding: 1.1rem 1.3rem; font: 600 1.02rem/1.4 var(--carl-font); color: var(--carl-navy); background: none; border: 0; cursor: pointer; text-align: left; }
.carl-faq__q svg { flex: 0 0 auto; color: var(--brand-deep); transition: transform .2s; }
.carl-faq__item.is-open .carl-faq__q svg { transform: rotate(45deg); }
.carl-faq__a { display: none; padding: 0 1.3rem 1.2rem; font: 400 .98rem/1.65 var(--carl-font); color: var(--carl-text-muted); }
.carl-faq__item.is-open .carl-faq__a { display: block; }

/* ---------- Callouts ---------- */
.carl-callout { display: flex; gap: 1rem; padding: 1.2rem 1.4rem; border-radius: var(--carl-radius); background: color-mix(in srgb, var(--callout-accent, var(--accent-blue)) 9%, #fff); border: 1px solid color-mix(in srgb, var(--callout-accent, var(--accent-blue)) 28%, #fff); }
.carl-callout__icon { width: 32px; height: 32px; border-radius: 8px; background: var(--callout-accent, var(--accent-blue)); color: var(--carl-navy-deep); display: grid; place-items: center; flex: 0 0 auto; }
.carl-callout__body { font: 400 .96rem/1.6 var(--carl-font); color: var(--carl-text); }
.carl-callout__body strong { color: var(--carl-navy); font-weight: 600; }
.carl-callout--blue  { --callout-accent: var(--accent-blue); }
.carl-callout--teal  { --callout-accent: var(--accent-teal); }
.carl-callout--lime  { --callout-accent: var(--accent-lime); }
.carl-callout--amber { --callout-accent: var(--accent-amber); }
.carl-callout--coral { --callout-accent: var(--accent-coral); }

/* ---------- Hero ---------- */
.carl-hero { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(2rem,5vw,4rem); align-items: center; padding: clamp(2rem,4vw,3rem) clamp(1.25rem,3vw,2rem); }
.carl-hero__headline { font: 700 clamp(2.2rem,5vw,3.4rem)/1.08 var(--carl-font); color: var(--carl-navy-deep); letter-spacing: -.02em; margin: .7rem 0 1rem; }
.carl-hero__lead { font: 400 clamp(1.05rem,1.6vw,1.2rem)/1.6 var(--carl-font); color: var(--carl-text-muted); max-width: 46ch; margin: 0 0 1.6rem; }
.carl-hero__ctas { display: flex; gap: .75rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.carl-hero__tags { display: flex; gap: .6rem; flex-wrap: wrap; }
.carl-hero__visual { position: relative; overflow: hidden; background: linear-gradient(158deg, #023a5e 0%, var(--carl-navy) 46%, var(--carl-navy-deep) 100%); border: 1px solid rgba(255,255,255,.07); border-radius: var(--radius-lg); aspect-ratio: 4 / 3; display: grid; place-items: center; padding: clamp(1.1rem, 3vw, 2rem); box-shadow: var(--carl-shadow-heavy), inset 0 1px 0 rgba(255,255,255,.10); }
.carl-hero__visual img { width: 84px; height: 84px; }
@media (max-width: 820px) { .carl-hero { grid-template-columns: 1fr; } }

/* ---------- Quote / testimonial cards ---------- */
.carl-quote { background: var(--carl-surface); border: 1px solid var(--carl-hairline); border-left: 5px solid var(--card-accent, var(--accent-teal)); border-radius: var(--carl-radius); padding: clamp(1.4rem,2.5vw,1.8rem); box-shadow: var(--carl-inset-hi), var(--carl-shadow-card); display: flex; flex-direction: column; gap: 1.1rem; transition: transform .18s, box-shadow .18s, border-color .18s; }
.carl-quote:hover { transform: translateY(-4px); box-shadow: var(--carl-inset-hi), var(--carl-shadow-card-hover); border-left-color: var(--card-accent, var(--accent-teal)); }
.carl-quote__text { font: 400 1.02rem/1.6 var(--carl-font); color: var(--carl-text); margin: 0; }
.carl-quote__foot { display: flex; align-items: center; gap: .8rem; }
.carl-quote__avatar { width: 44px; height: 44px; border-radius: 50%; background: var(--card-accent, var(--accent-teal)); color: var(--carl-navy-deep); display: grid; place-items: center; font: 700 .95rem/1 var(--carl-font); flex: 0 0 auto; }
.carl-quote__name { display: block; font: 600 .95rem/1.2 var(--carl-font); color: var(--carl-navy); }
.carl-quote__role { display: block; font: 400 .82rem/1.2 var(--carl-font); color: var(--carl-text-muted); margin-top: 2px; }

/* ---------- Coverage bar (Compass signature) ---------- */
.carl-coverage { display: flex; align-items: center; gap: 1rem; padding: .55rem 0; }
.carl-coverage__name { flex: 0 0 10rem; font: 600 .92rem/1.3 var(--carl-font); color: var(--carl-navy); }
.carl-coverage__track { flex: 1; display: block; height: 12px; border-radius: 999px; background: var(--gray-200); overflow: hidden; box-shadow: inset 0 1px 2px rgba(0,45,76,.12); }
.carl-coverage__fill { display: block; height: 100%; border-radius: 999px; background: var(--brand-grad); box-shadow: inset 0 1px 0 rgba(255,255,255,.4); }
.carl-coverage__pct { flex: 0 0 3rem; text-align: right; font: 700 .92rem/1 var(--carl-font); color: var(--brand-deep); }

/* ---------- Pricing tiers ---------- */
.carl-price-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px,1fr)); gap: var(--carl-gap); align-items: start; }
.carl-price { position: relative; background: var(--carl-surface); border: 1px solid var(--carl-hairline); border-radius: var(--carl-radius); padding: 1.8rem; box-shadow: var(--carl-inset-hi), var(--carl-shadow-card); display: flex; flex-direction: column; gap: 1rem; transition: transform .18s ease, box-shadow .18s ease; }
.carl-price:hover { transform: translateY(-4px); box-shadow: var(--carl-inset-hi), var(--carl-shadow-card-hover); }
.carl-price--featured { border: 1.5px solid color-mix(in srgb, var(--brand) 55%, #fff); box-shadow: var(--carl-inset-hi), var(--carl-shadow-card-hover); transform: translateY(-8px); }
.carl-price--featured:hover { transform: translateY(-11px); }
.carl-price__ribbon { position: absolute; top: -.8rem; left: 50%; transform: translateX(-50%); background: var(--brand-grad); color: var(--brand-ink); font: 700 .68rem/1 var(--carl-font); text-transform: uppercase; letter-spacing: .08em; padding: .5em .9em; border-radius: 999px; box-shadow: var(--carl-shadow-card); white-space: nowrap; }
.carl-price__name { font: 700 .76rem/1 var(--carl-font); text-transform: uppercase; letter-spacing: .1em; color: var(--brand-deep); }
.carl-price__amount { font: 700 2.4rem/1 var(--carl-font); color: var(--carl-navy-deep); }
.carl-price__amount small { font: 500 .9rem/1 var(--carl-font); color: var(--carl-text-muted); }
.carl-price__features { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .65rem; }
.carl-price__features li { display: flex; gap: .55rem; font: 400 .92rem/1.4 var(--carl-font); color: var(--carl-text); }
.carl-price__features svg { color: var(--brand-deep); flex: 0 0 auto; margin-top: 2px; }

/* ---------- Feature row ---------- */
.carl-feature { display: flex; gap: 1.2rem; align-items: flex-start; padding: 1.1rem 0; }
.carl-feature__icon { width: 48px; height: 48px; border-radius: 12px; background: color-mix(in srgb, var(--brand) 15%, #fff); color: var(--brand-deep); display: grid; place-items: center; flex: 0 0 auto; }
.carl-feature__title { font: 600 1.1rem/1.3 var(--carl-font); color: var(--carl-navy); margin: 0 0 .3rem; }
.carl-feature__text { font: 400 .96rem/1.6 var(--carl-font); color: var(--carl-text-muted); margin: 0; max-width: 60ch; }

/* ---------- Stat box ---------- */
.carl-stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px,1fr)); gap: var(--carl-gap); }
.carl-stat { position: relative; background: var(--carl-surface); border: 1px solid var(--carl-hairline); border-left: 4px solid var(--card-accent, var(--brand)); border-radius: var(--carl-radius); padding: 1.4rem 1.6rem; box-shadow: var(--carl-inset-hi), var(--carl-shadow-card); transition: transform .18s ease, box-shadow .18s ease; }
.carl-stat:hover { transform: translateY(-3px); box-shadow: var(--carl-inset-hi), var(--carl-shadow-card-hover); }
.carl-stat__value { font: 700 2.2rem/1 var(--carl-font); color: var(--carl-navy-deep); letter-spacing: -.02em; }
.carl-stat__label { font: 500 .9rem/1.4 var(--carl-font); color: var(--carl-text-muted); margin-top: .4rem; }

/* ---------- Badge (category) ---------- */
.carl-badge { display: inline-flex; align-items: center; gap: .35em; font: 600 .72rem/1 var(--carl-font); text-transform: uppercase; letter-spacing: .04em; padding: .42em .7em; border-radius: 6px; background: var(--tint-blue); color: var(--pill-text-blue); }
.carl-badge--teal  { background: var(--tint-teal);  color: var(--pill-text-teal); }
.carl-badge--lime  { background: var(--tint-lime);  color: var(--pill-text-lime); }
.carl-badge--coral { background: var(--tint-coral); color: var(--pill-text-coral); }
.carl-badge--pink  { background: var(--tint-pink);  color: var(--pill-text-pink); }
.carl-badge--amber { background: var(--tint-amber); color: var(--pill-text-amber); }

/* ---------- Empty state ---------- */
.carl-empty { text-align: center; padding: 2.6rem 1.5rem; max-width: 420px; margin-inline: auto; }
.carl-empty__icon { width: 56px; height: 56px; border-radius: 14px; background: var(--carl-off-white); border: 1px solid var(--carl-border); color: var(--carl-text-muted); display: grid; place-items: center; margin: 0 auto 1.1rem; }
.carl-empty__title { font: 600 1.15rem/1.3 var(--carl-font); color: var(--carl-navy); margin: 0 0 .4rem; }
.carl-empty__text { font: 400 .95rem/1.6 var(--carl-font); color: var(--carl-text-muted); margin: 0 0 1.2rem; }

/* ---------- Modal ---------- */
.carl-modal { position: fixed; inset: 0; z-index: 300; display: none; place-items: center; padding: 1.5rem; }
.carl-modal.is-open { display: grid; }
.carl-modal__backdrop { position: absolute; inset: 0; background: rgba(0,25,48,.55); }
.carl-modal__panel { position: relative; background: #fff; border-radius: var(--carl-radius); box-shadow: var(--carl-shadow-heavy); max-width: 520px; width: 100%; padding: clamp(1.6rem,3vw,2.2rem); max-height: 85vh; overflow-y: auto; }
.carl-modal__close { position: absolute; top: 1rem; right: 1rem; width: 36px; height: 36px; border: 1px solid var(--carl-border); border-radius: 999px; background: #fff; cursor: pointer; display: grid; place-items: center; color: var(--carl-navy); }
.carl-modal__title { font: 700 1.4rem/1.2 var(--carl-font); color: var(--carl-navy-deep); margin: 0 1.5rem .75rem 0; }
.carl-modal__body { font: 400 1rem/1.65 var(--carl-font); color: var(--carl-text); }

/* ---------- Page hero (navy secondary — non-home pages) ---------- */
.carl-pagehero { background: var(--gradient-navy); color: #fff; padding: clamp(3rem,7vw,4.5rem) clamp(1.5rem,4vw,2.5rem); }
.carl-pagehero__inner { max-width: var(--carl-container); margin: 0 auto; }
.carl-pagehero .carl-eyebrow { color: var(--brand-soft); }
.carl-pagehero__title { font: 700 clamp(2rem,5vw,3.2rem)/1.1 var(--carl-font); color: #fff; letter-spacing: -.02em; margin: .7rem 0 .4rem; max-width: 18ch; }
.carl-pagehero__kicker { font: 500 clamp(1.05rem,1.6vw,1.2rem)/1.4 var(--carl-font); color: var(--brand-soft); margin: 0 0 1rem; }
.carl-pagehero__lead { font: 400 1.05rem/1.6 var(--carl-font); color: rgba(255,255,255,.75); max-width: 58ch; margin: 0 0 1.6rem; }
.carl-pagehero__ctas { display: flex; gap: .75rem; flex-wrap: wrap; margin-bottom: 1.4rem; }
.carl-pagehero__tags { display: flex; gap: .6rem; flex-wrap: wrap; }
.carl-pagehero__tag { display: inline-flex; align-items: center; gap: .5em; font: 500 .82rem/1 var(--carl-font); color: rgba(255,255,255,.92); background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); border-left: 3px solid var(--tag-accent, var(--accent-teal)); border-radius: 999px; padding: .55em .9em; }

/* Compass light hero (tinted bg variant of .carl-hero) */
.carl-hero--tint {
  background:
    radial-gradient(58% 52% at 90% 12%, rgba(0,229,211,.12), transparent 60%),
    radial-gradient(42% 42% at 10% 2%, rgba(142,216,92,.12), transparent 60%),
    linear-gradient(180deg, #F8F9FB 0%, #F4F8FA 100%);
  border-radius: var(--carl-radius);
}

/* ---------- Docs search bar ---------- */
.carl-search { display: flex; align-items: center; gap: .6rem; background: #fff; border: 1px solid var(--carl-border); border-radius: 999px; padding: .75rem 1.1rem; box-shadow: var(--carl-shadow-card); max-width: 520px; }
.carl-search > svg { color: var(--carl-text-muted); flex: 0 0 auto; }
.carl-search input { flex: 1; border: 0; outline: 0; font: 400 1rem/1 var(--carl-font); color: var(--carl-text); background: none; }
.carl-search input::placeholder { color: var(--carl-text-muted); }
.carl-search__clear { border: 0; background: none; cursor: pointer; color: var(--carl-text-muted); display: none; padding: 0; }
.carl-search.has-value .carl-search__clear { display: inline-flex; }

/* ---------- Filter pills ---------- */
.carl-filters { display: flex; gap: .6rem; flex-wrap: wrap; }
.carl-filter { font: 600 .88rem/1 var(--carl-font); color: var(--carl-text); background: #fff; border: 1px solid var(--carl-border); border-radius: 999px; padding: .6em 1.1em; cursor: pointer; transition: border-color .15s, background .15s, color .15s; }
.carl-filter:hover { border-color: var(--brand); }
.carl-filter.is-active { background: var(--carl-navy); color: #fff; border-color: var(--carl-navy); }

/* ---------- Guide / tutorial card ---------- */
.carl-guide-card { background: #fff; border: 1px solid var(--carl-border); border-radius: var(--carl-radius); overflow: hidden; box-shadow: var(--carl-shadow-card); display: flex; flex-direction: column; text-decoration: none; transition: transform .15s, box-shadow .15s; }
.carl-guide-card:hover { transform: translateY(-4px); box-shadow: var(--carl-shadow-card-hover); }
.carl-guide-card__thumb { aspect-ratio: 16 / 9; background: var(--gradient-navy); display: grid; place-items: center; position: relative; }
.carl-guide-card__play { width: 46px; height: 46px; border-radius: 50%; background: rgba(255,255,255,.92); display: grid; place-items: center; color: var(--carl-navy); }
.carl-guide-card__body { padding: 1.05rem 1.2rem 1.25rem; display: flex; flex-direction: column; gap: .55rem; flex: 1; }
.carl-guide-card__title { font: 600 1.05rem/1.3 var(--carl-font); color: var(--carl-navy); margin: 0; }
.carl-guide-card__meta { display: flex; align-items: center; gap: .55rem; font: 500 .8rem/1 var(--carl-font); color: var(--carl-text-muted); margin-top: auto; }

/* ---------- Category section ---------- */
.carl-category__head { display: flex; align-items: center; gap: .65rem; margin: 0 0 1.2rem; }
.carl-category__title { font: 700 1.3rem/1.2 var(--carl-font); color: var(--carl-navy); margin: 0; }
.carl-category__count { font: 600 .78rem/1 var(--carl-font); color: var(--brand-deep); background: color-mix(in srgb, var(--brand) 14%, #fff); border-radius: 999px; padding: .35em .7em; }

/* ---------- Breadcrumb ---------- */
.carl-breadcrumb { display: flex; align-items: center; gap: .45rem; font: 500 .85rem/1.4 var(--carl-font); color: var(--carl-text-muted); flex-wrap: wrap; }
.carl-breadcrumb a { color: var(--carl-text-muted); text-decoration: none; }
.carl-breadcrumb a:hover { color: var(--brand-deep); }
.carl-breadcrumb [aria-current] { color: var(--carl-navy); font-weight: 600; }
.carl-breadcrumb svg { color: var(--carl-border); flex: 0 0 auto; }

/* ---------- Quick answers / links ---------- */
.carl-quick { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px,1fr)); gap: .8rem; }
.carl-quick__item { display: flex; align-items: center; gap: .7rem; padding: .9rem 1.1rem; background: #fff; border: 1px solid var(--carl-border); border-radius: var(--carl-radius); text-decoration: none; box-shadow: var(--carl-shadow-card); transition: transform .15s, box-shadow .15s; }
.carl-quick__item:hover { transform: translateY(-2px); box-shadow: var(--carl-shadow-card-hover); }
.carl-quick__icon { width: 34px; height: 34px; border-radius: 9px; background: color-mix(in srgb, var(--brand) 14%, #fff); color: var(--brand-deep); display: grid; place-items: center; flex: 0 0 auto; }
.carl-quick__text { font: 600 .92rem/1.3 var(--carl-font); color: var(--carl-navy); }
.carl-quick__arrow { margin-left: auto; color: var(--carl-text-muted); flex: 0 0 auto; }

/* ---------- Guide / tutorial page template ---------- */
.carl-guide { max-width: var(--carl-container); margin: 0 auto; }
.carl-guide__header { padding-bottom: 1.6rem; border-bottom: 1px solid var(--carl-border); margin-bottom: 2rem; }
.carl-guide__badges { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 1rem; }
.carl-guide__title { font: 700 clamp(1.8rem,4vw,2.6rem)/1.15 var(--carl-font); color: var(--carl-navy-deep); letter-spacing: -.02em; margin: 0 0 .6rem; }
.carl-guide__desc { font: 400 clamp(1.05rem,1.6vw,1.2rem)/1.6 var(--carl-font); color: var(--carl-text-muted); margin: 0 0 1.1rem; max-width: 62ch; }
.carl-guide__meta { display: flex; gap: 1.3rem; flex-wrap: wrap; font: 500 .85rem/1 var(--carl-font); color: var(--carl-text-muted); }
.carl-guide__meta span { display: inline-flex; align-items: center; gap: .4rem; }
.carl-guide__layout { display: grid; grid-template-columns: 240px 1fr; gap: clamp(1.5rem,4vw,3rem); align-items: start; }
@media (max-width: 880px) { .carl-guide__layout { grid-template-columns: 1fr; } .carl-guide__toc { display: none; } }
/* TOC + progress */
.carl-guide__toc { position: sticky; top: 1.5rem; }
.carl-guide__toc-head { font: 700 .72rem/1 var(--carl-font); text-transform: uppercase; letter-spacing: .1em; color: var(--carl-text-muted); margin: 0 0 1rem; }
.carl-guide__progress { height: 4px; border-radius: 999px; background: var(--gray-200); margin-bottom: 1.1rem; overflow: hidden; }
.carl-guide__progress span { display: block; height: 100%; width: 0; background: var(--brand-grad); border-radius: 999px; transition: width .1s linear; }
.carl-guide__toc-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .15rem; }
.carl-guide__toc-link { display: flex; gap: .6rem; align-items: baseline; padding: .5rem .6rem; border-radius: 8px; font: 500 .9rem/1.35 var(--carl-font); color: var(--carl-text-muted); text-decoration: none; cursor: pointer; transition: background .15s, color .15s; }
.carl-guide__toc-link:hover { background: var(--carl-off-white); color: var(--carl-navy); }
.carl-guide__toc-link.is-active { background: color-mix(in srgb, var(--brand) 12%, #fff); color: var(--brand-deep); font-weight: 600; }
.carl-guide__toc-num { color: var(--carl-text-meta); font-weight: 700; flex: 0 0 auto; }
/* sections */
.carl-guide__section { border: 1px solid var(--carl-border); border-radius: var(--carl-radius); background: #fff; box-shadow: var(--carl-shadow-card); margin-bottom: 1rem; }
.carl-guide__sec-head { display: flex; align-items: center; gap: .9rem; width: 100%; padding: 1.2rem 1.4rem; background: none; border: 0; cursor: pointer; text-align: left; }
.carl-guide__sec-num { width: 34px; height: 34px; border-radius: 50%; background: var(--brand-grad); color: var(--brand-ink); display: grid; place-items: center; font: 700 1rem/1 var(--carl-font); flex: 0 0 auto; }
.carl-guide__sec-title { font: 600 1.15rem/1.3 var(--carl-font); color: var(--carl-navy); flex: 1; }
.carl-guide__sec-chev { color: var(--carl-text-muted); transition: transform .2s; flex: 0 0 auto; }
.carl-guide__section.is-open .carl-guide__sec-chev { transform: rotate(180deg); }
.carl-guide__sec-body { display: none; padding: 0 1.4rem 1.5rem 4.3rem; }
.carl-guide__section.is-open .carl-guide__sec-body { display: block; }
.carl-guide__sec-body p { font: 400 1rem/1.7 var(--carl-font); color: var(--carl-text); margin: 0 0 1rem; }
/* screenshot */
.carl-guide__shot { margin: 1.2rem 0; }
.carl-guide__shot-img { border: 1px solid var(--carl-border); border-radius: var(--carl-radius); cursor: zoom-in; position: relative; background: var(--carl-off-white); aspect-ratio: 16/9; display: grid; place-items: center; color: var(--carl-text-muted); font: 500 .85rem/1 var(--carl-font); }
.carl-guide__shot-zoom { position: absolute; top: .6rem; right: .6rem; width: 32px; height: 32px; border-radius: 8px; background: rgba(0,25,48,.7); color: #fff; display: grid; place-items: center; }
.carl-guide__shot-cap { font: 400 .85rem/1.4 var(--carl-font); color: var(--carl-text-muted); margin-top: .55rem; }
/* table */
.carl-table { width: 100%; border-collapse: collapse; font: 400 .92rem/1.5 var(--carl-font); margin: 1rem 0; }
.carl-table th { text-align: left; font-weight: 600; color: var(--carl-navy); background: var(--carl-off-white); padding: .7rem .9rem; border-bottom: 2px solid var(--carl-border); }
.carl-table td { padding: .7rem .9rem; border-bottom: 1px solid var(--carl-border); color: var(--carl-text); }
/* related guides */
.carl-guide__related { margin-top: 2.5rem; padding-top: 1.8rem; border-top: 1px solid var(--carl-border); }
.carl-guide__related-title { font: 700 1.1rem/1 var(--carl-font); color: var(--carl-navy); margin: 0 0 1.1rem; }
.carl-guide__related-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap: .8rem; }
.carl-guide__related-item { display: flex; align-items: center; gap: .7rem; padding: 1rem 1.1rem; background: #fff; border: 1px solid var(--carl-border); border-left: 4px solid var(--card-accent, var(--brand)); border-radius: var(--carl-radius); text-decoration: none; box-shadow: var(--carl-shadow-card); transition: transform .15s, box-shadow .15s; }
.carl-guide__related-item:hover { transform: translateY(-2px); box-shadow: var(--carl-shadow-card-hover); }
.carl-guide__related-label { display: block; font: 600 .72rem/1 var(--carl-font); text-transform: uppercase; letter-spacing: .05em; color: var(--carl-text-meta); margin-bottom: .3rem; }
.carl-guide__related-text { font: 600 .95rem/1.3 var(--carl-font); color: var(--carl-navy); }
.carl-guide__related-arrow { margin-left: auto; color: var(--carl-text-muted); }
/* lightbox */
.carl-lightbox { position: fixed; inset: 0; z-index: 300; display: none; place-items: center; padding: 2rem; }
.carl-lightbox.is-open { display: grid; }
.carl-lightbox__backdrop { position: absolute; inset: 0; background: rgba(0,25,48,.8); }
.carl-lightbox__img { position: relative; max-width: 900px; width: 100%; border-radius: var(--carl-radius); box-shadow: var(--carl-shadow-heavy); background: #fff; aspect-ratio: 16/9; display: grid; place-items: center; color: var(--carl-text-muted); font: 500 .9rem/1 var(--carl-font); }
.carl-lightbox__close { position: absolute; top: -3rem; right: 0; width: 40px; height: 40px; border-radius: 999px; background: rgba(255,255,255,.15); border: 1px solid rgba(255,255,255,.3); color: #fff; cursor: pointer; display: grid; place-items: center; }


/* ============================================================
   COMPASS LEARN & SUPPORT  —  guide knowledge base (cg- namespace)
   Lifted from the live page, stripped of Avada !important + id-scope.
   Self-contained: wrap the page section in .cg-page (+ .theme-compass).
   Different pattern from the CARL L&S card directory above.
   ============================================================ */
.cg-page {
  --deep:#001930; --text:#0F2A44; --muted:#5A6878; --meta:#7A8696;
  --line:#E8ECEF; --soft:#EDF3F6;
  --blue:#59C9E1; --teal:#00E5D3; --green1:#8ED85C; --green2:#B2E86B;
  --lime:#A8E063; --amber:#FFB328; --pink:#F671EA;
  --blueTint:rgba(89,201,225,.10);  --greenTint:rgba(142,216,92,.14);
  --amberTint:rgba(255,179,40,.12); --pinkTint:rgba(246,113,234,.10);
  --shadow:0 1px 2px rgba(15,30,55,.04), 0 8px 24px rgba(15,30,55,.06);
  --shadowHover:0 18px 42px rgba(0,25,48,.10);
  --speed:.3s; --ease:cubic-bezier(.16,1,.3,1);
  font-family: var(--carl-font); color: var(--text);
}
/* status pills used inside the Start-here card mockups */
.cg-page .cg-status.planned { background: var(--blueTint);  color:#0A6C83; }
.cg-page .cg-status.taught  { background: var(--greenTint); color:#4B7415; }
.cg-page .cg-status.todo    { background: var(--amberTint); color:#8A5D00; }

.cg-page .cg-wrap { width: min(1300px, -64px + 100vw); max-width: 1300px; margin: 0px auto; position: relative; z-index: 1; }
.cg-page .cg-breadcrumb { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0px 0px 16px; color: var(--meta); font-size: 12px; font-weight: 600; }
.cg-page .cg-breadcrumb a { color: var(--muted); }
.cg-page .cg-breadcrumb a:hover { color: var(--deep); }
.cg-page .cg-eyebrow { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 999px; background: rgba(0, 229, 211, 0.12); color: rgb(10, 122, 111); font-size: 12px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.cg-page .cg-eyebrow::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: linear-gradient(135deg,var(--green1),var(--teal)); }
.cg-page .cg-hero { display: grid; grid-template-columns: minmax(0px, 1fr) 360px; gap: 28px; align-items: stretch; margin-bottom: 30px; }
.cg-page .cg-hero-main, .cg-page .cg-hero-side { border-radius: 28px; box-shadow: var(--shadow); overflow: hidden; }
.cg-page .cg-hero-main { background: rgb(255, 255, 255); border: 1px solid var(--line); padding: clamp(30px, 4vw, 56px); }
.cg-page .cg-hero-main h1 { margin: 18px 0px 16px; max-width: 760px; color: var(--deep); font-size: clamp(34px, 4.2vw, 52px); line-height: 1.07; letter-spacing: -0.04em; font-weight: 800; }
.cg-page .cg-hero-main p { max-width: 780px; margin: 0px; color: var(--muted); font-size: 16px; line-height: 1.62; font-weight: 400; }
.cg-page .cg-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.cg-page .cg-button, .cg-page .cg-filter, .cg-page .cg-copy, .cg-page .cg-small { display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; cursor: pointer; transition: transform var(--speed) var(--ease),box-shadow var(--speed) var(--ease),background-color var(--speed) var(--ease),border-color var(--speed) var(--ease),color var(--speed) var(--ease),filter var(--speed) var(--ease); }
.cg-page .cg-button { min-height: 46px; padding: 12px 20px; border: 1px solid var(--line); background: rgb(255, 255, 255); color: var(--deep); font-size: 14px; font-weight: 700; }
.cg-page .cg-button.primary, .cg-page .cg-small.primary { border-color: transparent; color: rgb(255, 255, 255); background: linear-gradient(135deg,var(--green1),var(--green2)); box-shadow: rgba(142, 216, 92, 0.18) 0px 2px 6px; text-shadow: rgba(0, 25, 48, 0.22) 0px 1px 1px; }
.cg-page .cg-button:hover, .cg-page .cg-filter:hover, .cg-page .cg-copy:hover, .cg-page .cg-small:hover { box-shadow: rgba(0, 25, 48, 0.055) 0px 5px 14px; transform: none; }
.cg-page .cg-button.primary:hover, .cg-page .cg-small.primary:hover { filter: brightness(1.018); color: rgb(255, 255, 255); box-shadow: rgba(142, 216, 92, 0.2) 0px 5px 14px; }
.cg-page .cg-hero-side { min-height: 330px; padding: 36px; display: grid; place-items: center; text-align: center; color: rgb(255, 255, 255); background: linear-gradient(rgba(0, 45, 76, 0.96), rgba(0, 25, 48, 0.99)); }
.cg-page .cg-hero-side img { display: block; width: 148px; height: 148px; object-fit: contain; margin: 0px auto 20px; filter: drop-shadow(rgba(0, 0, 0, 0.22) 0px 16px 24px); }
.cg-page .cg-hero-side h2 { margin: 0px 0px 10px; color: rgb(255, 255, 255); font-size: 24px; line-height: 1.16; letter-spacing: -0.025em; font-weight: 700; }
.cg-page .cg-hero-side p { max-width: 265px; margin: 0px auto; color: rgba(255, 255, 255, 0.76); font-size: 14px; line-height: 1.65; }
.cg-page .cg-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin: 0px 0px 16px; }
.cg-page .cg-section-kicker { display: flex; align-items: center; gap: 8px; margin: 0px 0px 7px; color: var(--blue); font-size: 12px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.cg-page .cg-section-kicker::before { content: ""; width: 24px; height: 4px; border-radius: 999px; background: var(--blue); }
.cg-page .cg-section-title { margin: 0px; color: var(--deep); font-size: 24px; line-height: 1.18; letter-spacing: -0.025em; font-weight: 800; }
.cg-page .cg-section-note { color: var(--muted); font-size: 13px; line-height: 1.5; max-width: 540px; }
.cg-page .cg-start { margin-bottom: 30px; }
.cg-page .cg-start-grid { display: grid; grid-template-columns: repeat(3, minmax(0px, 1fr)); gap: 20px; }
.cg-page .cg-start-card { display: flex; flex-direction: column; min-height: 310px; border-radius: 28px; border: 1px solid var(--line); background: rgb(255, 255, 255); box-shadow: var(--shadow); overflow: hidden; cursor: pointer; padding: 0px; text-align: left; transition: transform var(--speed) var(--ease),box-shadow var(--speed) var(--ease),border-color var(--speed) var(--ease); }
.cg-page .cg-start-card:hover { transform: translateY(-3px); box-shadow: var(--shadowHover); border-color: rgba(89, 201, 225, 0.52); }
.cg-page .cg-preview { position: relative; min-height: 150px; padding: 30px 28px 22px; display: flex; align-items: center; justify-content: center; overflow: hidden; border-bottom: 1px solid var(--soft); }
.cg-page .cg-preview.blue { background: linear-gradient(135deg, rgba(89, 201, 225, 0.22), rgba(0, 229, 211, 0.09)); }
.cg-page .cg-preview.teal { background: linear-gradient(135deg, rgba(0, 229, 211, 0.16), rgba(89, 201, 225, 0.12)); }
.cg-page .cg-preview.green { background: linear-gradient(135deg, rgba(178, 232, 107, 0.2), rgba(142, 216, 92, 0.1)); }
.cg-page .cg-preview-pill { position: absolute; top: 22px; left: 28px; z-index: 2; display: inline-flex; min-height: 28px; padding: 7px 13px; border-radius: 999px; background: rgba(255, 255, 255, 0.84); color: var(--deep); font-size: 10px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; box-shadow: rgba(0, 25, 48, 0.06) 0px 8px 18px; }
.cg-page .cg-mini { position: relative; z-index: 1; width: min(86%, 348px); margin-top: 16px; border-radius: 20px; background: rgba(255, 255, 255, 0.88); border: 1px solid rgba(223, 232, 237, 0.76); box-shadow: rgba(0, 25, 48, 0.1) 0px 16px 34px; overflow: hidden; }
.cg-page .cg-mock-rows { min-height: 162px; padding: 30px 22px; display: grid; align-content: center; gap: 11px; }
.cg-page .cg-mock-row { display: flex; justify-content: space-between; gap: 14px; padding-bottom: 10px; border-bottom: 1px solid var(--soft); color: var(--meta); font-size: 12px; font-weight: 600; }
.cg-page .cg-mock-row:last-child { border-bottom: 0px; padding-bottom: 0px; }
.cg-page .cg-mock-row strong { color: var(--deep); font-weight: 800; text-align: right; }
.cg-page .cg-mock-list { padding: 14px; display: grid; gap: 10px; }
.cg-page .cg-plan-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 38px; padding: 8px 9px; border-radius: 13px; background: rgb(255, 255, 255); border: 1px solid var(--soft); color: var(--deep); font-size: 12px; font-weight: 700; }
.cg-page .cg-status { flex: 0 0 auto; padding: 5px 8px; border-radius: 999px; font-size: 10px; font-weight: 800; }
.cg-page .cg-report-mock { min-height: 162px; padding: 32px 22px; display: grid; align-content: center; gap: 12px; }
.cg-page .cg-report-top { display: flex; justify-content: space-between; gap: 12px; color: var(--deep); font-size: 12px; font-weight: 800; }
.cg-page .cg-generate { padding: 6px 9px; border-radius: 999px; background: var(--greenTint); color: rgb(75, 116, 21); font-size: 10px; font-weight: 800; white-space: nowrap; }
.cg-page .cg-bar { height: 9px; border-radius: 999px; background: rgb(234, 242, 245); overflow: hidden; }
.cg-page .cg-bar span { display: block; height: 100%; border-radius: inherit; }
.cg-page .cg-report-mock .cg-bar:nth-child(2) span { width: 78%; background: var(--lime); }
.cg-page .cg-report-mock .cg-bar:nth-child(3) span { width: 48%; background: var(--blue); }
.cg-page .cg-report-mock .cg-bar:nth-child(4) span { width: 28%; background: var(--amber); }
.cg-page .cg-start-body { flex: 1 1 0%; padding: 24px; }
.cg-page .cg-start-body h3 { margin: 0px 0px 10px; color: var(--deep); font-size: 20px; line-height: 1.18; letter-spacing: -0.025em; font-weight: 800; }
.cg-page .cg-start-body p { margin: 0px 0px 20px; color: var(--muted); font-size: 13.5px; line-height: 1.62; }
.cg-page .cg-start-link { color: var(--deep); font-size: 14px; font-weight: 800; }
.cg-page .cg-tools { position: sticky; top: 92px; z-index: 20; display: grid; grid-template-columns: minmax(0px, 1fr) auto; gap: 16px; align-items: center; margin-bottom: 18px; padding: 16px; border-radius: 24px; border: 1px solid var(--line); background: rgba(255, 255, 255, 0.92); backdrop-filter: blur(12px); box-shadow: var(--shadow); }
.cg-page .cg-search { position: relative; }
.cg-page .cg-search input { width: 100%; min-height: 46px; padding: 12px 16px 12px 44px; border-radius: 999px; border: 1px solid var(--line); background: rgb(255, 255, 255); color: var(--text); font-size: 14px; font-weight: 500; outline: none; }
.cg-page .cg-search svg { position: absolute; left: 17px; top: 50%; width: 18px; height: 18px; transform: translateY(-50%); stroke: var(--meta); stroke-width: 2.2; fill: none; }
.cg-page .cg-count { color: var(--muted); font-size: 13px; font-weight: 700; white-space: nowrap; }
.cg-page .cg-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 26px; padding: 12px; border-radius: 20px; border: 1px solid var(--line); background: rgba(255, 255, 255, 0.72); }
.cg-page .cg-filter-label { width: 100%; margin: 0px 0px 2px; color: var(--meta); font-size: 11px; line-height: 1.2; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.cg-page .cg-filter { min-height: 38px; padding: 9px 15px; border: 1px solid var(--line); background: rgb(255, 255, 255); color: var(--text); font-size: 12px; font-weight: 700; box-shadow: rgba(15, 30, 55, 0.035) 0px 1px 2px; }
.cg-page .cg-filter.active, .cg-page .cg-filter.is-active { background: var(--deep); color: rgb(255, 255, 255); border-color: var(--deep); box-shadow: rgba(0, 25, 48, 0.1) 0px 8px 18px; }
.cg-page .cg-library { display: grid; gap: 22px; }
.cg-page .cg-category { border: 1px solid var(--line); border-radius: 24px; background: rgb(251, 253, 254); box-shadow: var(--shadow); overflow: hidden; }
.cg-page .cg-category[hidden] { display: none; }
.cg-page .cg-category-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px 24px 18px; background: rgb(247, 251, 252); border-bottom: 1px solid rgb(213, 226, 232); }
.cg-page .cg-category-title { display: flex; align-items: center; gap: 11px; margin: 0px; color: var(--deep); font-size: 17px; line-height: 1.2; letter-spacing: -0.02em; font-weight: 800; }
.cg-page .cg-dot { width: 24px; height: 4px; border-radius: 999px; background: var(--blue); }
.cg-page .cg-dot.teal { background: var(--teal); }
.cg-page .cg-dot.green { background: var(--lime); }
.cg-page .cg-dot.amber { background: var(--amber); }
.cg-page .cg-dot.pink { background: var(--pink); }
.cg-page .cg-category-count { color: var(--meta); font-size: 12px; font-weight: 700; white-space: nowrap; }
.cg-page .cg-guide { margin: 12px 16px; border: 1px solid rgb(213, 226, 232); border-radius: 18px; background: rgb(255, 255, 255); box-shadow: rgba(0, 25, 48, 0.035) 0px 6px 18px; overflow: hidden; }
.cg-page .cg-guide[hidden], .cg-page .cg-guide.cg-hidden { display: none; }
.cg-page .cg-guide summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: minmax(0px, 1fr) auto; gap: 18px; align-items: center; padding: 22px 24px; color: var(--deep); font-size: 16px; line-height: 1.4; font-weight: 700; background: rgb(255, 255, 255); }
.cg-page .cg-guide summary::-webkit-details-marker { display: none; }
.cg-page .cg-guide summary:hover { background: rgb(247, 251, 252); }
.cg-page .cg-guide[open] summary { background: rgb(249, 252, 253); border-bottom: 1px solid var(--soft); }
.cg-page .cg-summary-main { display: grid; gap: 9px; }
.cg-page .cg-summary-title { font-size: 16px; line-height: 1.35; font-weight: 800; color: var(--deep); }
.cg-page .cg-summary-meta { display: flex; flex-wrap: wrap; gap: 6px; }
.cg-page .cg-tag { display: inline-flex; align-items: center; min-height: 22px; padding: 4px 8px; border-radius: 999px; background: var(--blueTint); color: rgb(10, 108, 131); font-size: 9px; font-weight: 700; letter-spacing: 0.055em; text-transform: uppercase; }
.cg-page .cg-tag.plus { background: var(--amberTint); color: rgb(138, 93, 0); }
.cg-page .cg-tag.green { background: var(--greenTint); color: rgb(75, 116, 21); }
.cg-page .cg-tag.privacy { background: var(--pinkTint); color: rgb(156, 33, 146); }
.cg-page .cg-chev { width: 36px; height: 36px; border-radius: 999px; display: grid; place-items: center; background: var(--greenTint); color: var(--deep); font-size: 20px; font-weight: 800; transition: transform var(--speed) var(--ease); }
.cg-page .cg-guide[open] .cg-chev { transform: rotate(45deg); }
.cg-page .cg-answer { padding: 24px 24px 28px; color: var(--muted); font-size: 14px; line-height: 1.7; font-weight: 400; }
.cg-page .cg-quick-answer { margin: 0px 0px 26px; padding: 0px 0px 0px 16px; border-left: 4px solid var(--blue); color: var(--text); font-size: 14.5px; line-height: 1.65; font-weight: 500; }
.cg-page .cg-guide-grid { display: grid; grid-template-columns: minmax(0px, 1.08fr) minmax(300px, 0.92fr); gap: 32px; align-items: start; }
.cg-page .cg-guide-content h4, .cg-page .cg-guide-media h4 { margin: 28px 0px 14px; color: var(--deep); font-size: 15.5px; line-height: 1.3; letter-spacing: -0.01em; font-weight: 700; }
.cg-page .cg-guide-content h4:first-child, .cg-page .cg-guide-media h4:first-child { margin-top: 0px; }
.cg-page .cg-guide-content p { margin: 0px 0px 14px; color: var(--muted); font-size: 14px; line-height: 1.7; }
.cg-page .cg-guide-content strong { color: var(--deep); font-weight: 700; }
.cg-page .cg-steps { counter-reset: cg-step 0; display: grid; gap: 14px; margin: 14px 0px 26px; padding: 0px; list-style: none; }
.cg-page .cg-steps li { counter-increment: cg-step 1; display: grid; grid-template-columns: 34px minmax(0px, 1fr); gap: 15px; align-items: start; padding: 17px 18px; border-radius: 18px; border: 1px solid rgba(213, 226, 232, 0.92); background: rgb(255, 255, 255); color: var(--muted); font-size: 14px; line-height: 1.62; box-shadow: rgba(255, 255, 255, 0.92) 0px 1px 0px inset, rgba(0, 25, 48, 0.035) 0px 8px 20px; }
.cg-page .cg-steps li::before { content: counter(cg-step); width: 34px; height: 34px; margin-top: 1px; border-radius: 999px; display: grid; place-items: center; background: var(--greenTint); color: rgb(75, 116, 21); font-size: 12px; font-weight: 800; }
.cg-page .cg-steps strong { display: block; margin-bottom: 5px; color: var(--deep); font-size: 13.5px; line-height: 1.32; font-weight: 700; }
.cg-page .cg-mini-table { display: grid; gap: 10px; margin: 14px 0px 26px; }
.cg-page .cg-mini-row { display: grid; grid-template-columns: 1fr; gap: 5px; padding: 15px 17px; border: 1px solid rgba(213, 226, 232, 0.92); border-radius: 16px; background: rgb(255, 255, 255); color: var(--muted); font-size: 14px; line-height: 1.5; box-shadow: rgba(255, 255, 255, 0.92) 0px 1px 0px inset, rgba(0, 25, 48, 0.03) 0px 8px 20px; }
.cg-page .cg-mini-row strong { color: var(--deep); font-size: 13.5px; font-weight: 700; }
.cg-page .cg-callout, .cg-page .cg-gap-callout { margin: 22px 0px 0px; padding: 18px 20px; border-radius: 18px; border: 1px solid rgba(89, 201, 225, 0.28); background: var(--blueTint); color: var(--text); font-size: 14px; line-height: 1.62; }
.cg-page .cg-gap-callout { border-color: rgba(255, 179, 40, 0.32); background: var(--amberTint); }
.cg-page .cg-media { margin: 0px 0px 18px; border-radius: 22px; border: 1px solid rgba(213, 226, 232, 0.95); outline: rgba(255, 255, 255, 0.82) solid 1px; outline-offset: -4px; overflow: hidden; background: rgb(255, 255, 255); box-shadow: rgba(255, 255, 255, 0.92) 0px 1px 0px inset, rgba(0, 25, 48, 0.075) 0px 16px 36px; }
.cg-page .cg-media img, .cg-page .cg-media video { display: block; width: 100%; height: auto; background: rgb(255, 255, 255); }
.cg-page .cg-media img { cursor: zoom-in; }
.cg-page .cg-media video { aspect-ratio: 16 / 9; object-fit: contain; }
.cg-page .cg-caption { padding: 12px 16px 16px; color: var(--muted); font-size: 13px; line-height: 1.45; background: rgb(251, 253, 254); border-top: 1px solid var(--soft); }
.cg-page .cg-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--soft); }
.cg-page .cg-copy, .cg-page .cg-small { min-height: 38px; padding: 9px 14px; border: 1px solid var(--line); background: rgb(255, 255, 255); color: var(--deep); font-size: 12px; font-weight: 600; }
.cg-page .cg-no-results { display: none; padding: 30px; text-align: center; border-radius: 24px; border: 1px solid var(--line); background: rgb(255, 255, 255); box-shadow: var(--shadow); color: var(--muted); }
.cg-page .cg-no-results.visible { display: block; }
.cg-page .cg-bottom { margin-top: 32px; padding: 34px; border-radius: 28px; border: 1px solid var(--line); background: linear-gradient(135deg, rgba(89, 201, 225, 0.11), rgba(142, 216, 92, 0.1)), rgb(255, 255, 255); box-shadow: var(--shadow); display: grid; grid-template-columns: minmax(0px, 1fr) auto; gap: 18px; align-items: center; }
.cg-page .cg-bottom h2 { margin: 0px 0px 8px; color: var(--deep); font-size: 24px; line-height: 1.16; letter-spacing: -0.025em; font-weight: 700; }
.cg-page .cg-bottom p { margin: 0px; color: var(--muted); font-size: 14px; line-height: 1.6; }
.cg-page .cg-lightbox { position: fixed; inset: 0px; z-index: 99999; display: none; align-items: center; justify-content: center; padding: 24px; background: rgba(0, 12, 26, 0.78); backdrop-filter: blur(10px); }
.cg-page .cg-lightbox.open { display: flex; }
.cg-page .cg-lightbox-close { position: absolute; top: 18px; right: 18px; width: 44px; height: 44px; border-radius: 999px; border: 1px solid var(--line); background: rgb(255, 255, 255); color: var(--deep); font-size: 22px; font-weight: 800; cursor: pointer; }
.cg-page .cg-lightbox img { max-width: min(1180px, 92vw); max-height: 86vh; border-radius: 18px; background: rgb(255, 255, 255); box-shadow: rgba(0, 0, 0, 0.36) 0px 22px 70px; }
@media (max-width: 1080px) {
  .cg-page .cg-hero, .cg-page .cg-guide-grid, .cg-page .cg-bottom { grid-template-columns: 1fr; }
  .cg-page .cg-start-grid { grid-template-columns: repeat(2, minmax(0px, 1fr)); }
  .cg-page .cg-section-head { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 760px) {
  .cg-page .cg-wrap { width: min(100%, -24px + 100vw); }
  .cg-page .cg-hero, .cg-page .cg-start-grid, .cg-page .cg-bottom, .cg-page .cg-tools { grid-template-columns: 1fr; }
  .cg-page .cg-tools { position: static; }
  .cg-page .cg-guide { margin: 10px; }
  .cg-page .cg-guide summary, .cg-page .cg-answer { padding-left: 18px; padding-right: 18px; }
  .cg-page .cg-steps li { grid-template-columns: 30px minmax(0px, 1fr); gap: 12px; padding: 15px; }
  .cg-page .cg-steps li::before { width: 30px; height: 30px; }
}
.cg-page .cg-category { border-color: rgb(215, 227, 234); background: rgb(255, 255, 255); box-shadow: rgba(15, 30, 55, 0.04) 0px 1px 2px, rgba(15, 30, 55, 0.067) 0px 12px 30px; }
.cg-page .cg-category + .cg-category { margin-top: 2px; }
.cg-page .cg-category-head { background: linear-gradient(135deg, rgba(89, 201, 225, 0.086), rgba(255, 255, 255, 0.95)); border-bottom: 1px solid rgb(215, 227, 234); }
.cg-page .cg-category-title { font-size: 18px; letter-spacing: -0.018em; }
.cg-page .cg-guide { position: relative; margin: 14px 16px; border-color: rgb(216, 229, 236); box-shadow: rgba(255, 255, 255, 0.9) 0px 1px 0px inset, rgba(0, 25, 48, 0.043) 0px 8px 22px; }
.cg-page .cg-guide::before { content: ""; position: absolute; left: 0px; top: 0px; bottom: 0px; width: 4px; background: transparent; border-radius: 18px 0px 0px 18px; transition: background-color var(--speed) var(--ease); }
.cg-page .cg-guide:hover { border-color: rgba(89, 201, 225, 0.48); box-shadow: rgba(255, 255, 255, 0.92) 0px 1px 0px inset, rgba(0, 25, 48, 0.07) 0px 12px 28px; }
.cg-page .cg-guide:hover::before { background: var(--blue); }
.cg-page .cg-guide[open] { border-color: rgba(142, 216, 92, 0.56); box-shadow: rgba(255, 255, 255, 0.92) 0px 1px 0px inset, rgba(0, 25, 48, 0.08) 0px 14px 34px; }
.cg-page .cg-guide[open]::before { background: linear-gradient(180deg, var(--green1), var(--teal)); }
.cg-page .cg-guide summary { min-height: 92px; padding: 24px 26px; background: rgb(255, 255, 255); }
.cg-page .cg-guide[open] summary { background: linear-gradient(135deg, rgba(142, 216, 92, 0.07), rgba(255, 255, 255, 0.98)); }
.cg-page .cg-summary-title { font-size: 17px; line-height: 1.28; letter-spacing: -0.018em; }
.cg-page .cg-summary-meta { gap: 7px; }
.cg-page .cg-chev { background: rgba(142, 216, 92, 0.2); border: 1px solid rgba(142, 216, 92, 0.34); color: var(--deep); }
.cg-page .cg-guide:hover .cg-chev, .cg-page .cg-guide[open] .cg-chev { background: var(--greenTint); border-color: rgba(142, 216, 92, 0.5); }
.cg-page .cg-tag { border: 1px solid transparent; background: rgba(89, 201, 225, 0.11); color: rgb(10, 108, 131); }
.cg-page .cg-tag.tag-overview, .cg-page .cg-tag.tag-standalone { background: rgba(89, 201, 225, 0.12); color: rgb(11, 110, 133); border-color: rgba(89, 201, 225, 0.18); }
.cg-page .cg-tag.tag-start, .cg-page .cg-tag.tag-classes, .cg-page .cg-tag.tag-coverage, .cg-page .cg-tag.tag-taught { background: rgba(142, 216, 92, 0.16); color: rgb(79, 122, 22); border-color: rgba(142, 216, 92, 0.22); }
.cg-page .cg-tag.tag-workspace, .cg-page .cg-tag.tag-workflow, .cg-page .cg-tag.tag-fast, .cg-page .cg-tag.tag-planning { background: rgba(0, 229, 211, 0.106); color: rgb(8, 126, 118); border-color: rgba(0, 229, 211, 0.18); }
.cg-page .cg-tag.tag-plus, .cg-page .cg-tag.tag-plus-reports, .cg-page .cg-tag.tag-ideas, .cg-page .cg-tag.tag-smart { background: rgba(255, 179, 40, 0.15); color: rgb(138, 93, 0); border-color: rgba(255, 179, 40, 0.22); }
.cg-page .cg-tag.tag-reports, .cg-page .cg-tag.tag-records, .cg-page .cg-tag.tag-comments { background: rgba(135, 138, 247, 0.13); color: rgb(75, 79, 166); border-color: rgba(135, 138, 247, 0.2); }
.cg-page .cg-tag.tag-curriculum, .cg-page .cg-tag.tag-statuses { background: rgba(89, 201, 225, 0.1); color: rgb(23, 111, 154); border-color: rgba(89, 201, 225, 0.18); }
.cg-page .cg-tag.tag-privacy { background: rgba(246, 113, 234, 0.11); color: rgb(156, 33, 146); border-color: rgba(246, 113, 234, 0.2); }
.cg-page .cg-summary-meta .cg-tag:nth-last-child(-n+2) { background: rgb(245, 248, 250); color: rgb(100, 119, 139); border-color: rgb(226, 235, 241); }
.cg-page .cg-answer { border-top: 1px solid var(--soft); }
@media (max-width: 760px) {
  .cg-page .cg-guide summary { min-height: auto; padding-top: 20px; padding-bottom: 20px; }
}
.cg-page .cg-lightbox.open { display: flex; }
.cg-page .cg-no-results.visible { display: block; }


/* ============================================================
   HOME HERO  —  real CARL homepage hero (carl-hero-* namespace)
   Green left accent + framed product video + floating mascot.
   Lifted from the live page, tokenized, no !important.
   Full-bleed: wrap in a full-width band; inner content centers.
   ============================================================ */
.carl-hero-fullwidth { display: flex; align-items: center; justify-content: space-between; gap: clamp(1rem, 3vw, 2.5rem); max-width: 1480px; margin: 0 auto; min-height: 500px; padding: 48px clamp(20px, 4vw, 48px) 56px; position: relative; font-family: var(--carl-font); }
.carl-hero-content { flex: 0 0 44%; max-width: 620px; border-left: 8px solid var(--accent-lime); border-radius: var(--carl-radius); padding: 36px 28px 36px 42px; position: relative; z-index: 2; }
.carl-hero-headline { font: 800 clamp(2.4rem, 5vw, 3.5rem)/1.1 var(--carl-font); color: var(--carl-navy-deep); letter-spacing: -.02em; margin: 0 0 18px; }
.carl-hero-subtitle { font: 300 1.25rem/1.4 var(--carl-font); color: var(--carl-text-muted); letter-spacing: .01em; margin: 0 0 18px; }
.carl-hero-subtext { font: 400 1.1rem/1.65 var(--carl-font); color: var(--carl-text-muted); margin: 0 0 28px; max-width: 560px; }
.carl-hero-ctas { display: flex; gap: 14px; margin-bottom: 28px; flex-wrap: wrap; align-items: flex-start; }
.carl-hero-secondary-stack { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.carl-hero-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 14px 26px; border-radius: var(--carl-radius-pill); font: 700 .82rem/1 var(--carl-font); text-decoration: none; cursor: pointer; transition: transform .22s ease, box-shadow .22s ease, background .22s ease, color .22s ease, border-color .22s ease; }
.carl-hero-btn:hover { transform: translateY(-2px); }
.carl-hero-btn span { display: inline-flex; transition: transform .22s ease; }
.carl-hero-btn:hover span { transform: translateX(3px); }
.carl-hero-btn-primary { color: #fff; background: var(--gradient-blue-teal); border: 0; box-shadow: var(--carl-shadow-btn); }
.carl-hero-btn-primary:hover { box-shadow: 0 2px 4px rgba(0,45,76,.12), 0 14px 28px -8px rgba(0,45,76,.30); }
.carl-hero-btn-secondary { color: var(--carl-text); background: #fff; border: 1px solid var(--carl-hairline); box-shadow: var(--carl-shadow-card); }
.carl-hero-btn-secondary:hover { color: var(--carl-navy-deep); border-color: var(--accent-teal); background: var(--tint-blue); }
.carl-hero-tags { display: flex; flex-direction: column; gap: 10px; margin-bottom: 20px; max-width: 610px; }
.carl-hero-tag-row { display: flex; flex-wrap: wrap; gap: 10px 12px; align-items: center; }
.carl-hero-tags .carl-tag { display: inline-flex; align-items: center; gap: 6px; background: var(--carl-navy); color: #fff; padding: 7px 12px; border-radius: var(--carl-radius-pill); font: 700 .68rem/1.2 var(--carl-font); border: 0; }
.carl-hero-tags .carl-tag svg { width: 13px; height: 13px; flex: 0 0 auto; }
.carl-hero-provinces { font: 400 .875rem/1.4 var(--carl-font); color: var(--carl-text-meta); margin: 0; }
.carl-hero-visual { flex: 0 0 54%; position: relative; display: flex; justify-content: flex-end; align-items: center; }
.carl-hero-gif-wrapper { position: relative; width: 100%; max-width: 760px; border-radius: var(--radius-lg); overflow: hidden; box-shadow: 0 24px 64px -12px rgba(0,25,48,.28); background: #E8EAEC; }
.carl-hero-gif-overlay { position: absolute; inset: 0; background: linear-gradient(to bottom right, transparent 45%, rgba(0,25,48,.35) 100%); pointer-events: none; z-index: 2; border-radius: var(--radius-lg); }
.carl-hero-gif { width: 100%; display: block; border-radius: var(--radius-lg); }
.carl-hero-mascot { position: absolute; bottom: -34px; right: -34px; width: 230px; max-width: 42%; z-index: 5; filter: drop-shadow(0 12px 28px rgba(0,25,48,.30)); animation: carlMascotFloat 3.5s ease-in-out infinite; }
@keyframes carlMascotFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@media (max-width: 880px) {
  .carl-hero-fullwidth { flex-direction: column; text-align: center; padding-bottom: 40px; }
  .carl-hero-content { flex: 1; max-width: 100%; padding: 30px 8px 0; border-left: 0; border-top: 6px solid var(--accent-lime); }
  .carl-hero-subtext { margin-inline: auto; }
  .carl-hero-ctas { justify-content: center; }
  .carl-hero-secondary-stack { align-items: center; }
  .carl-hero-tags { margin-inline: auto; max-width: 660px; }
  .carl-hero-tag-row { justify-content: center; }
  .carl-hero-visual { width: 100%; margin-top: 36px; justify-content: center; }
  .carl-hero-mascot { width: 120px; bottom: -22px; right: 6%; }
}
@media (prefers-reduced-motion: reduce) { .carl-hero-mascot { animation: none; } }
