/* ============================================================
   Imperia Forged — component additions
   Layered on top of site.css (the Imperia design-system base).
   Only AI-site-specific components live here.
   ============================================================ */

/* ---------- Homepage hero workstream visual ---------- */
.hero__container {
  display: flex;
  align-items: center;
}
.hero__content {
  position: relative;
  z-index: 2;
  max-width: 640px;
}
.hero__visual {
  position: absolute;
  top: 50%;
  right: -16px;
  z-index: 1;
  width: min(42vw, 560px);
  transform: translateY(-50%);
}
.hero__visual-image {
  display: block;
  width: 100%;
  height: auto;
}
@media (max-width: 1120px) {
  .hero__container {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }
  .hero__content { max-width: 720px; }
  .hero__visual {
    position: relative;
    top: auto;
    right: auto;
    width: min(100%, 640px);
    margin-top: 8px;
    transform: none;
  }
  .hero__container,
  .hero {
    min-height: auto;
  }
}
@media (max-width: 700px) {
  .hero__visual { width: 100%; }
  .hero__cta .btn {
    width: 100%;
    max-width: 342px;
    padding-left: 16px;
    padding-right: 16px;
    font-size: 0.8125rem;
    letter-spacing: 0.04em;
  }
}
@media (max-width: 480px) {
  .hero__visual { margin-left: -8px; width: calc(100% + 8px); }
}

/* ---------- Tag pills: grow / save ---------- */
.tag {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 0.6875rem; font-weight: 600;
  letter-spacing: var(--tracking-wider); text-transform: uppercase;
  padding: 5px 12px; border-radius: var(--radius-pill);
  border: 1px solid transparent;
}
.tag--grow { background: var(--brand-mint-100); color: var(--brand-mint-700); }
.tag--save { background: var(--ink-50); color: var(--ink-700); border-color: var(--ink-100); }

/* ---------- Capability ladder ---------- */
.ladder { display: grid; gap: 14px; counter-reset: rung; }
.ladder__rung {
  display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 20px;
  padding: 22px 26px;
  background: var(--paper);
  border: 1px solid var(--ink-100);
  border-radius: var(--radius-lg);
  transition: border-color 160ms var(--ease-out), transform 160ms var(--ease-out);
}
.ladder__rung:hover { border-color: var(--brand-mint); transform: translateX(4px); }
.ladder__rung[data-here="true"] { border-color: var(--brand-mint); background: var(--brand-mint-50); }
.ladder__step {
  font-size: 0.6875rem; font-weight: 600; letter-spacing: var(--tracking-widest);
  text-transform: uppercase; color: var(--brand-mint-700);
  width: 96px; flex-shrink: 0;
}
.ladder__name { font-size: 1.0625rem; font-weight: 600; color: var(--ink-900); margin: 0 0 4px; }
.ladder__desc { font-size: 0.9375rem; color: var(--fg-2); margin: 0; }
.ladder__here {
  display: inline-block; margin-left: 10px; vertical-align: middle;
  font-size: 0.625rem; font-weight: 600; letter-spacing: var(--tracking-wider);
  text-transform: uppercase; color: var(--ink-900);
  background: var(--brand-mint); padding: 3px 9px; border-radius: var(--radius-pill);
}
@media (max-width: 640px) {
  .ladder__rung { grid-template-columns: 1fr; gap: 6px; }
}

/* ---------- Partnership tiers ---------- */
.tier-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
.tier-card {
  display: flex; flex-direction: column;
  padding: 36px 32px;
  background: var(--paper);
  border: 1px solid var(--ink-100);
  border-radius: var(--radius-lg);
  transition: border-color 160ms var(--ease-out), box-shadow 160ms var(--ease-out), transform 160ms var(--ease-out);
}
.tier-card:hover { border-color: var(--brand-mint); box-shadow: var(--shadow-md); transform: translateY(-3px); }
.tier-card--featured { border-color: var(--brand-mint); box-shadow: var(--shadow-mint); }
.tier-card__flag {
  align-self: flex-start;
  font-size: 0.625rem; font-weight: 600; letter-spacing: var(--tracking-wider);
  text-transform: uppercase; color: var(--ink-900);
  background: var(--brand-mint); padding: 4px 10px; border-radius: var(--radius-pill);
  margin-bottom: 18px;
}
.tier-card__eyebrow {
  font-size: 0.6875rem; font-weight: 600; letter-spacing: var(--tracking-widest);
  text-transform: uppercase; color: var(--brand-mint-700); margin: 0 0 8px;
}
.tier-card__name {
  font-family: var(--font-serif); font-size: 1.75rem; font-weight: 400;
  color: var(--ink-900); margin: 0 0 14px; letter-spacing: -0.01em;
}
.tier-card__for { font-size: 0.9375rem; color: var(--fg-2); margin: 0 0 24px; }
.tier-card__list { list-style: none; padding: 0; margin: 0 0 24px; }
.tier-card__list li {
  position: relative; padding: 10px 0 10px 28px;
  font-size: 0.9375rem; color: var(--ink-700);
  border-bottom: 1px solid var(--ink-100);
}
.tier-card__list li:last-child { border-bottom: 0; }
.tier-card__list li::before {
  content: ""; position: absolute; left: 0; top: 18px;
  width: 16px; height: 1px; background: var(--brand-mint);
}
.tier-card__meta { margin-top: auto; padding-top: 20px; border-top: 1px solid var(--ink-100); }
.tier-card__meta dt {
  font-size: 0.625rem; font-weight: 600; letter-spacing: var(--tracking-widest);
  text-transform: uppercase; color: var(--ink-500); margin-bottom: 2px;
}
.tier-card__meta dd { margin: 0 0 14px; font-size: 0.9375rem; color: var(--ink-900); font-weight: 500; }
.tier-card__meta dd:last-child { margin-bottom: 0; }
@media (max-width: 900px) { .tier-grid { grid-template-columns: 1fr; } }

/* ---------- Solutions menu ---------- */
.solutions-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.solution {
  padding: 30px;
  background: var(--paper);
  border: 1px solid var(--ink-100);
  border-radius: var(--radius-lg);
  transition: border-color 160ms var(--ease-out), transform 160ms var(--ease-out);
}
.solution:hover { border-color: var(--brand-mint); transform: translateY(-2px); }
.solution__icon {
  width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center;
  background: var(--brand-mint-100); color: var(--brand-mint-700);
  border-radius: var(--radius-pill); margin-bottom: 18px;
}
.solution__icon svg { width: 22px; height: 22px; }
.solution h3 {
  font-size: 1.1875rem; font-weight: 600; text-transform: none;
  letter-spacing: var(--tracking-wide); margin: 0 0 10px; color: var(--ink-900);
}
.solution p { font-size: 0.9375rem; color: var(--fg-2); margin: 0; line-height: 1.6; }
@media (max-width: 900px) { .solutions-grid { grid-template-columns: 1fr; } }

/* ---------- Insights / blog post body ---------- */
.post { max-width: 720px; margin: 0 auto; }
.post__meta {
  font-size: 0.75rem; letter-spacing: var(--tracking-wider); text-transform: uppercase;
  color: var(--ink-500); margin-bottom: 16px;
}
.post__body { font-size: 1.0625rem; line-height: 1.8; color: var(--ink-700); }
.post__body h2 { font-size: clamp(1.5rem, 1.5vw + 1rem, 2rem); margin: 48px 0 16px; }
.post__body h3 { font-size: 1.375rem; margin: 36px 0 12px; }
.post__body p { margin: 0 0 1.25em; }
.post__body strong { color: var(--ink-900); font-weight: 600; }
.post__body em { font-style: italic; }
.post__body blockquote {
  margin: 32px 0; padding: 8px 0 8px 28px;
  border-left: 2px solid var(--brand-mint);
  font-family: var(--font-serif); font-size: 1.375rem; font-style: italic;
  color: var(--ink-900); line-height: 1.5;
}

/* ---------- Insights index cards ---------- */
.post-card {
  display: flex; flex-direction: column;
  padding: 32px;
  background: var(--paper); border: 1px solid var(--ink-100); border-radius: var(--radius-lg);
  color: var(--ink-900); border-bottom: 1px solid var(--ink-100);
  transition: border-color 160ms var(--ease-out), box-shadow 160ms var(--ease-out), transform 160ms var(--ease-out);
}
.post-card:hover { border-color: var(--brand-mint); box-shadow: var(--shadow-sm); transform: translateY(-2px); }
.post-card__meta { font-size: 0.6875rem; letter-spacing: var(--tracking-wider); text-transform: uppercase; color: var(--ink-500); margin-bottom: 14px; }
.post-card h3 { font-family: var(--font-serif); font-size: 1.5rem; font-weight: 400; text-transform: none; letter-spacing: -0.01em; margin: 0 0 12px; }
.post-card p { font-size: 0.9375rem; color: var(--fg-2); margin: 0 0 20px; }
.post-card__arrow { margin-top: auto; color: var(--brand-mint-700); font-size: 0.75rem; font-weight: 600; letter-spacing: var(--tracking-wider); text-transform: uppercase; }

/* ---------- Pull-quote / motto band reuse ---------- */
.motto { font-family: var(--font-serif); font-style: italic; }

/* ---------- Inline disclaimer note ---------- */
.disclaimer {
  font-size: 0.8125rem; color: var(--ink-500); line-height: 1.6;
  border-top: 1px solid var(--ink-100); padding-top: 20px; margin-top: 8px;
  max-width: 70ch;
}

/* ---------- Form success message ---------- */
.form-success {
  display: none;
  padding: 28px 32px;
  background: var(--brand-mint-50);
  border: 1px solid var(--brand-mint);
  border-radius: var(--radius-lg);
  color: var(--ink-900);
}
.form-success.is-visible { display: block; }
.form-success h3 { font-size: 1.25rem; margin: 0 0 8px; }
.form-success p { margin: 0; color: var(--fg-2); font-size: 0.9375rem; }
