/*******************************
 IACL product page
 -------------------------------
 Implements "IACL Product Page v2.dc.html" from the claude.ai/design
 project "IACL product page design".

 Design-system tokens (--neutral-*, --brand-*) and the Inter /
 PP Formula / JetBrains Mono faces ship site-wide via variables.css and
 components/typography.css, so only --radius is (re)declared here.

 Sections, in page order:
   01 Foundations        08 Why autocallable income
   02 Hero               09 Portfolio fit
   03 Sub navigation     10 Terms & lifecycle
   04 Feature strip      11 Payoff simulator
   05 Product overview   12 Fund data
   06 Methodology        13 FAQ
   07 Ladder dashboard   14 Documents, CTA, disclosures
                         15 Premium / discount modal
                         16 Responsive
 ******************************/

/* ============ 01 Foundations ============ */

.iacl-page {
  --radius: 4px;
  --hair: 1.5px;
  --line: var(--hair) solid rgb(var(--neutral-80));
  --line-dark: var(--hair) solid rgb(var(--neutral-20));

  background: rgb(var(--neutral-99));
  color: rgb(var(--neutral-0));
  font-family: "Inter", sans-serif;
}

.iacl-page *,
.iacl-page *::before,
.iacl-page *::after { box-sizing: border-box; }

/* Base link colour is deliberately low-specificity (:where) so component
   classes below — and the shared .button styles — win without !important. */
:where(.iacl-page) a { color: rgb(var(--brand-azure)); text-decoration: none; }
:where(.iacl-page) a:hover { color: rgb(var(--brand-azure-dark)); text-decoration: underline; }

.iacl-shell { max-width: var(--max-width-inner); margin: 0 auto; padding: 0 24px; }

.iacl-section { padding-top: 72px; }
.iacl-section--tight { padding-top: 56px; }
.iacl-section--dark {
  margin-top: 72px;
  background: rgb(var(--neutral-0));
  color: rgb(var(--neutral-100));
}
.iacl-section--dark .iacl-shell { padding-top: 72px; padding-bottom: 72px; }

/* ---- type ---- */
.iacl-eyebrow {
  font-family: "JetBrains Mono", monospace;
  font-size: 11.5px;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: rgb(var(--neutral-40));
  margin-bottom: 14px;
}
.iacl-eyebrow--accent { color: rgb(var(--brand-citrine)); }

.iacl-h2 {
  font-family: "PP Formula", sans-serif;
  font-weight: 500;
  font-size: 40px;
  line-height: 1.1;
  letter-spacing: -0.01em;
  margin: 0 0 22px;
  text-wrap: pretty;
}
.iacl-h2--sm { font-size: 34px; line-height: 1.15; margin-bottom: 24px; }
.iacl-h2--flush { margin-bottom: 16px; }
.iacl-h2--inline { margin-bottom: 0; }
.iacl-h2--light { color: rgb(var(--neutral-100)); }

.iacl-h3 { font-family: "PP Formula", sans-serif; font-weight: 500; font-size: 20px; margin: 0 0 16px; }

.iacl-lede {
  font-weight: 300;
  font-size: 16.5px;
  line-height: 1.6;
  color: rgb(var(--neutral-20));
  margin: 0 0 34px;
  max-width: 780px;
  text-wrap: pretty;
}
.iacl-lede--narrow { max-width: 720px; }
.iacl-lede--light { color: rgb(var(--neutral-70)); margin-bottom: 36px; }

.iacl-body { font-weight: 300; font-size: 16px; line-height: 1.65; color: rgb(var(--neutral-20)); margin: 0 0 18px; text-wrap: pretty; }
.iacl-body--lead { font-size: 17px; color: rgb(var(--neutral-10)); }
.iacl-body:last-child { margin-bottom: 0; }

.iacl-note { margin: 18px 0 0; font-weight: 300; font-size: 11.5px; line-height: 1.6; color: rgb(var(--neutral-40)); }
.iacl-note strong { font-weight: 300; }
.iacl-note--italic { font-style: italic; color: rgb(var(--neutral-20)); }
.iacl-source { margin: 10px 0 0; font-size: 11px; line-height: 1.45; font-style: italic; color: rgb(var(--neutral-20)); }

.iacl-label {
  display: block;
  font-family: "JetBrains Mono", monospace;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: rgb(var(--neutral-40));
  line-height: 1.4;
}
.iacl-label--md { font-size: 10.5px; letter-spacing: .05em; }
.iacl-label--lg { font-size: 11px; letter-spacing: .06em; }
.iacl-label--accent { color: rgb(var(--brand-azure)); }
.iacl-label--citrine { color: rgb(var(--brand-citrine)); }
.iacl-label--light { color: rgb(var(--neutral-60)); }
.iacl-label--dim { color: rgb(var(--neutral-30)); }

.iacl-badge {
  font-family: "JetBrains Mono", monospace;
  font-size: 11.5px;
  text-transform: uppercase;
  letter-spacing: .05em;
  padding: 5px 10px;
  border-radius: var(--radius);
  background: rgb(var(--brand-sand));
  color: rgb(var(--neutral-0));
}

.iacl-mono { font-family: "JetBrains Mono", monospace; }
.iacl-num { font-variant-numeric: tabular-nums; }

/* ---- shared card + hairline grid ---- */
.iacl-card {
  border: var(--line);
  border-radius: var(--radius);
  background: rgb(var(--neutral-100));
  padding: 24px 26px;
}

.iacl-hairline {
  display: grid;
  gap: var(--hair);
  background: rgb(var(--neutral-80));
  border: var(--line);
  border-radius: var(--radius);
  overflow: hidden;
}
.iacl-hairline > * { background: rgb(var(--neutral-100)); }

.iacl-heading-row { display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap; margin-bottom: 16px; }

/* ---- shared icon + button ---- */
.iacl-page i.icon-download { font-size: 20px; line-height: 1; font-style: normal; }
.iacl-btn { display: inline-flex; align-items: center; gap: 8px; }
.iacl-btn:hover { text-decoration: none; }

/* ============ 02 Hero ============ */

.iacl-hero { background: rgb(var(--neutral-99)); border-bottom: var(--line); }
.iacl-hero .iacl-shell { padding-top: 18px; padding-bottom: 40px; }

.iacl-hero__crumbs { font-weight: 300; font-size: 14px; color: rgb(var(--neutral-40)); margin: 0 0 26px; }
.iacl-hero__crumbs a { color: rgb(var(--neutral-30)); }
.iacl-hero__crumbs strong { font-weight: 300; color: rgb(var(--brand-azure)); }

.iacl-hero__grid { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 44px; align-items: start; }

.iacl-hero__tags { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 20px; }
.iacl-hero__tag {
  padding: 5px 10px;
  border-radius: var(--radius);
  background: rgb(var(--brand-amethyst));
  color: rgb(var(--neutral-0));
  font-family: "JetBrains Mono", monospace;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.iacl-hero__ticker {
  font-family: "PP Formula", sans-serif;
  font-weight: 500;
  font-size: 72px;
  line-height: 1;
  letter-spacing: -0.01em;
  margin: 0 0 12px;
}
.iacl-hero__name {
  font-family: "PP Formula", sans-serif;
  font-weight: 500;
  font-size: 26px;
  line-height: 1.2;
  margin: 0 0 20px;
  max-width: 520px;
}
.iacl-hero__lede {
  font-weight: 300;
  font-size: 17px;
  line-height: 1.6;
  color: rgb(var(--neutral-20));
  margin: 0 0 28px;
  max-width: 560px;
  text-wrap: pretty;
}

/* The design pairs the coupon card with the barrier stack on one row. Keep
   them there as the hero column narrows: the card shrinks and its headline
   scales, instead of the barriers wrapping underneath it. They only stack
   when the row genuinely cannot hold both. */
.iacl-hero__headline {
  display: grid;
  align-items: stretch;
  gap: 18px;
  flex-wrap: wrap;
  margin-block: 18px;
  grid-template-columns: 1fr 1fr;
}

.iacl-coupon {
  display: inline-flex;
  flex-direction: column;
  gap: 6px;
  padding: 20px 26px;
  border-radius: var(--radius);
  background: rgb(var(--brand-citrine));
  color: rgb(var(--neutral-0));
  flex: 0 1 auto;
  min-width: 0;
}
.iacl-coupon__value {
  font-family: "PP Formula", sans-serif;
  font-weight: 600;
  font-size: clamp(30px, 3.3vw, 46px);
  line-height: 1.05;
  white-space: nowrap;
}
.iacl-coupon__value sup { font-family: "Inter", sans-serif; font-size: 16px; font-weight: 400; vertical-align: super; }
.iacl-coupon__note { font-weight: 400; font-size: 14px; color: rgb(var(--neutral-10)); }

.iacl-barriers { grid-template-columns: 1fr; flex: 0 1 auto; min-width: 196px; }
.iacl-barrier { padding: 13px 18px; }
.iacl-barrier__row { display: flex; align-items: baseline; gap: 8px; margin-top: 4px; }
.iacl-barrier__v { font-family: "JetBrains Mono", monospace; font-size: 20px; }
.iacl-barrier__buffer {
  font-family: "JetBrains Mono", monospace;
  font-size: 11px;
  letter-spacing: .03em;
  color: rgb(var(--brand-azure));
}

.iacl-hero__glossary {
  max-width: 420px;
  padding: 16px;
  background: rgb(var(--neutral-100));
  border-radius: 2px;
  box-shadow: 0 1px 3px rgb(0 0 0 / .08);
  font-size: 11px;
  line-height: 1.45;
  color: rgb(var(--neutral-30));
}
.iacl-hero__glossary p { margin: 0 0 24px; }
.iacl-hero__glossary p:last-child { margin-bottom: 0; }

.iacl-hero__risk { margin: 0 0 8px; font-size: 11px; font-style: italic; color: rgb(var(--neutral-20)); }
.iacl-hero__footnotes { margin: 24px 0 0; font-size: 10px; line-height: 1.6; font-style: italic; color: rgb(var(--neutral-30)); }

.iacl-hero__aside { display: flex; flex-direction: column; gap: 14px; }

/* ---- NAV card ---- */
.iacl-nav { position: relative; border: var(--line); border-radius: var(--radius); background: rgb(var(--neutral-100)); padding: 22px 24px; }
.iacl-nav__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.iacl-nav__value { font-weight: 500; font-size: 38px; font-variant-numeric: tabular-nums; margin-top: 8px; }
.iacl-nav__asof { font-family: "JetBrains Mono", monospace; font-size: 14px; color: rgb(var(--neutral-20)); margin-top: 8px; }
.iacl-nav__stamp {
  display: block;
  margin-top: 3px;
  font-family: "JetBrains Mono", monospace;
  font-size: 10px;
  letter-spacing: .02em;
  color: rgb(var(--neutral-40));
}
.iacl-nav__stamp[hidden] { display: none; }
.iacl-nav__rule { border: 0; border-top: var(--line); margin: 18px 0; }
.iacl-nav__grid { display: grid; grid-template-columns: 1fr 1fr; row-gap: 16px; column-gap: 14px; }
.iacl-nav__v { font-family: "JetBrains Mono", monospace; font-size: 16px; margin-top: 5px; }
.iacl-nav__note { margin: 16px 0 0; font-size: 12.5px; font-weight: 300; color: rgb(var(--neutral-40)); }

/* ---- fact strip + reference index ---- */
.iacl-facts { grid-template-columns: repeat(3, 1fr); }
.iacl-facts__cell { padding: 14px 16px; }
.iacl-facts__v { font-family: "JetBrains Mono", monospace; font-size: 13px; margin-top: 6px; }

.iacl-refindex {
  border: var(--line);
  border-radius: var(--radius);
  background: rgb(var(--brand-mineral-light));
  padding: 18px 20px;
}
.iacl-refindex__name { font-family: "PP Formula", sans-serif; font-weight: 500; font-size: 18px; margin: 8px 0 6px; }
.iacl-refindex__desc { margin: 0; font-weight: 300; font-size: 13.5px; line-height: 1.5; color: rgb(var(--neutral-20)); }

/* ============ 03 Sub navigation ============ */

.iacl-subnav {
  position: sticky;
  top: 0;
  z-index: 30;
  background: rgb(var(--neutral-100));
  border-bottom: var(--line);
}
.iacl-subnav__list { display: flex; gap: 24px; overflow-x: auto; }
.iacl-subnav__link {
  font-family: "JetBrains Mono", monospace;
  font-size: 12.5px;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: rgb(var(--neutral-30));
  padding: 15px 0;
  white-space: nowrap;
}
.iacl-subnav__link:hover { color: rgb(var(--brand-azure)); text-decoration: none; }

/* ============ 04 Feature strip ============ */

.iacl-features { background: rgb(var(--neutral-0)); }
.iacl-features__grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: var(--hair);
  background: rgb(var(--neutral-20));
}
.iacl-features__cell { background: rgb(var(--neutral-0)); padding: 26px 20px; }
.iacl-features__title { font-family: "PP Formula", sans-serif; font-weight: 500; font-size: 19px; color: rgb(var(--brand-citrine)); }
.iacl-features__desc { margin: 8px 0 0; font-weight: 300; font-size: 13.5px; line-height: 1.5; color: rgb(var(--neutral-70)); }

/* ============ 05 Product overview ============ */

.iacl-overview__grid { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 48px; align-items: start; }

.iacl-glance { display: flex; flex-direction: column; }
.iacl-glance__head { background: rgb(var(--neutral-0)); padding: 20px 24px; }
.iacl-glance__row {
  padding: 20px 24px;
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 18px;
  align-items: baseline;
}
.iacl-glance__row--accent { background: rgb(var(--brand-citrine)); }
.iacl-glance__k { font-family: "JetBrains Mono", monospace; font-size: 15px; }
.iacl-glance__v { font-weight: 300; font-size: 14px; line-height: 1.5; color: rgb(var(--neutral-20)); }
.iacl-glance__row--accent .iacl-glance__k,
.iacl-glance__row--accent .iacl-glance__v { color: rgb(var(--neutral-0)); }

.iacl-tri { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 32px; }
.iacl-tri__title { font-family: "PP Formula", sans-serif; font-weight: 500; font-size: 20px; margin: 10px 0 8px; }
.iacl-tri__desc { margin: 0; font-weight: 300; font-size: 14.5px; line-height: 1.55; color: rgb(var(--neutral-20)); }

/* ============ 06 Methodology ============ */

.iacl-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.iacl-step {
  border: var(--line);
  border-radius: var(--radius);
  background: rgb(var(--neutral-100));
  padding: 24px 22px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.iacl-step--dark { border-color: rgb(var(--neutral-0)); background: rgb(var(--neutral-0)); }
.iacl-step__head { display: flex; align-items: center; justify-content: space-between; }
.iacl-step__n { font-family: "JetBrains Mono", monospace; font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: rgb(var(--brand-azure)); }
.iacl-step__code { font-family: "JetBrains Mono", monospace; font-size: 11px; color: rgb(var(--neutral-40)); }
.iacl-step__title { font-family: "PP Formula", sans-serif; font-weight: 500; font-size: 20px; line-height: 1.2; }
.iacl-step__sub { font-weight: 400; font-size: 14px; color: rgb(var(--neutral-10)); }
.iacl-step__desc { margin: 0; font-weight: 300; font-size: 13.5px; line-height: 1.55; color: rgb(var(--neutral-20)); }
.iacl-step--dark .iacl-step__n { color: rgb(var(--brand-citrine)); }
.iacl-step--dark .iacl-step__code { color: rgb(var(--neutral-60)); }
.iacl-step--dark .iacl-step__title { color: rgb(var(--neutral-100)); }
.iacl-step--dark .iacl-step__sub { color: rgb(var(--neutral-80)); }
.iacl-step--dark .iacl-step__desc { color: rgb(var(--neutral-70)); }

/* ============ 07 Ladder dashboard ============ */

.iacl-dash__panel { border: var(--line); border-radius: var(--radius); background: rgb(var(--neutral-100)); padding: 28px 30px; }
.iacl-dash__head { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; margin-bottom: 22px; }
.iacl-dash__legend { display: flex; gap: 18px; flex-wrap: wrap; }
.iacl-dash__key {
  display: flex;
  align-items: center;
  gap: 7px;
  font-family: "JetBrains Mono", monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: rgb(var(--neutral-30));
}
.iacl-dash__swatch { width: 10px; height: 10px; border-radius: 50%; }
.iacl-dash__swatch--paying { background: rgb(var(--brand-citrine)); }
.iacl-dash__swatch--noncall { background: rgb(var(--brand-mineral)); }
.iacl-dash__swatch--callable { background: rgb(var(--brand-azure)); }
.iacl-dash__swatch--below { background: rgb(var(--brand-amethyst)); }
.iacl-dash__toggle {
  font-family: "JetBrains Mono", monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .05em;
  padding: 8px 14px;
  border-radius: var(--radius);
  border: var(--line);
  background: rgb(var(--neutral-99));
  color: rgb(var(--neutral-10));
  cursor: pointer;
}
.iacl-dash__toggle:hover { border-color: rgb(var(--neutral-0)); }

/* The chart is Plotly's, built by /scripts/autocall-chart.js. Only the frame,
   the hover card and the sizing live here; the figure's own colours are the
   THEME block in that file, which mirrors these same tokens. */
.iacl-chart { position: relative; width: 100%; margin-top: 4px; }
.iacl-chart__plot {
  width: 100%;
  height: 420px;
  border: var(--line);
  border-radius: 3px;
  background: rgb(var(--neutral-99));
}
.iacl-chart .js-plotly-plot .plotly .modebar { display: none; }

/* Hover card. staticPlot removes Plotly's own interaction layer, so the
   renderer positions these itself. */
.rv-tooltip {
  display: none;
  position: absolute;
  z-index: 10;
  max-width: 280px;
  padding: 10px 12px;
  border: var(--hair) solid rgb(var(--neutral-0));
  border-radius: 3px;
  background: rgb(var(--neutral-100));
  color: rgb(var(--neutral-0));
  font-size: 11.5px;
  line-height: 1.5;
  box-shadow: 0 4px 14px rgba(16, 35, 36, .16);
  pointer-events: none;
}
.rv-tooltip-arrow {
  display: none;
  position: absolute;
  z-index: 11;
  width: 0;
  height: 0;
  pointer-events: none;
}
.rv-tooltip-arrow.right {
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-left: 9px solid rgb(var(--neutral-0));
}
.rv-tooltip-arrow.right::after {
  content: '';
  position: absolute;
  top: -7px;
  left: -10.5px;
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
  border-left: 8px solid rgb(var(--neutral-100));
}
.rv-tooltip-arrow.left {
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-right: 9px solid rgb(var(--neutral-0));
}
.rv-tooltip-arrow.left::after {
  content: '';
  position: absolute;
  top: -7px;
  left: 2.5px;
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
  border-right: 8px solid rgb(var(--neutral-100));
}
.rv-halo {
  display: none;
  position: absolute;
  z-index: 5;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(33, 81, 245, .16);
  border: 1px solid rgba(33, 81, 245, .40);
  pointer-events: none;
}

.iacl-stats { grid-template-columns: repeat(6, 1fr); margin-top: 26px; }
.iacl-stats__cell { background: rgb(var(--neutral-99)); padding: 20px 18px; }
.iacl-stats__v { font-weight: 500; font-size: 28px; margin-top: 10px; font-variant-numeric: tabular-nums; }

/* ============ 08 Why autocallable income ============ */

.iacl-why__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; }
.iacl-why__stats { display: flex; flex-direction: column; gap: 14px; }

.iacl-stat { display: flex; align-items: baseline; gap: 20px; }
.iacl-stat--accent { background: rgb(var(--brand-citrine)); }
.iacl-stat__v { font-weight: 500; font-size: 46px; line-height: 1; font-variant-numeric: tabular-nums; min-width: 150px; }
.iacl-stat__desc { display: block; font-weight: 300; font-size: 14.5px; line-height: 1.5; color: rgb(var(--neutral-20)); margin-top: 6px; }
.iacl-stat--accent .iacl-label { color: rgb(var(--neutral-10)); }
.iacl-stat--accent .iacl-stat__desc { color: rgb(var(--neutral-0)); }

.iacl-compare { grid-template-columns: 1fr 1fr; margin-top: 40px; }
.iacl-compare__head {
  padding: 16px 22px;
  font-family: "JetBrains Mono", monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.iacl-compare__head--old { background: rgb(var(--neutral-90)); color: rgb(var(--neutral-30)); }
.iacl-compare__head--new { background: rgb(var(--neutral-0)); color: rgb(var(--brand-citrine)); }
.iacl-compare__cell { padding: 18px 22px; font-size: 14.5px; line-height: 1.5; }
.iacl-compare__cell--old { font-weight: 300; color: rgb(var(--neutral-20)); }
.iacl-compare__cell--new { font-weight: 400; }

/* ============ 09 Portfolio fit ============ */

.iacl-fit { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.iacl-fit__card { border: var(--line); border-radius: var(--radius); background: rgb(var(--neutral-100)); padding: 24px 22px; }
.iacl-fit__card--accent { background: rgb(var(--brand-citrine)); }
.iacl-fit__title { font-family: "PP Formula", sans-serif; font-weight: 500; font-size: 19px; margin-bottom: 8px; }
.iacl-fit__desc { margin: 0; font-weight: 300; font-size: 14px; line-height: 1.55; color: rgb(var(--neutral-20)); }
.iacl-fit__card--accent .iacl-fit__desc { color: rgb(var(--neutral-0)); }

/* ============ 10 Terms & lifecycle ============ */

.iacl-terms__grid { display: grid; grid-template-columns: 0.92fr 1.08fr; gap: 40px; align-items: start; }
.iacl-terms { border: var(--line); border-radius: var(--radius); background: rgb(var(--neutral-100)); padding: 28px 30px; }
.iacl-terms__label { margin-bottom: 16px; }
.iacl-terms__row { display: flex; justify-content: space-between; gap: 20px; padding: 12px 0; border-top: var(--line); }
.iacl-terms__row:last-child { border-bottom: var(--line); }
.iacl-terms__k { font-weight: 300; font-size: 14.5px; color: rgb(var(--neutral-20)); }
.iacl-terms__v { font-family: "JetBrains Mono", monospace; font-size: 14px; text-align: right; }

.iacl-life { display: flex; flex-direction: column; }
.iacl-life__row {
  padding: 18px 20px;
  display: grid;
  grid-template-columns: 30px 178px 1fr;
  gap: 16px;
  align-items: baseline;
}
.iacl-life__n { font-family: "PP Formula", sans-serif; font-weight: 600; font-size: 20px; color: rgb(var(--neutral-70)); }
.iacl-life__title { font-family: "PP Formula", sans-serif; font-weight: 500; font-size: 17px; }
.iacl-life__desc { font-weight: 300; font-size: 14px; line-height: 1.5; color: rgb(var(--neutral-20)); }

/* ============ 11 Payoff simulator ============ */

.iacl-sim__grid { display: grid; grid-template-columns: 1.25fr 0.75fr; gap: 24px; align-items: start; }
.iacl-sim__panel { border: var(--line-dark); border-radius: var(--radius); padding: 30px 32px; }
.iacl-sim__head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 6px; }
.iacl-sim__level { font-weight: 500; font-size: 34px; line-height: 1; color: rgb(var(--neutral-100)); font-variant-numeric: tabular-nums; }

.iacl-sim__range {
  width: 100%;
  margin: 14px 0 18px;
  accent-color: rgb(var(--brand-azure));
  -webkit-appearance: none;
  appearance: none;
  height: 4px;
  background: rgb(var(--neutral-20));
  border-radius: 2px;
  cursor: pointer;
}
.iacl-sim__range::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgb(var(--brand-citrine));
  border: var(--hair) solid rgb(var(--neutral-0));
  cursor: pointer;
}
.iacl-sim__range::-moz-range-thumb {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgb(var(--brand-citrine));
  border: var(--hair) solid rgb(var(--neutral-0));
  cursor: pointer;
}

.iacl-sim__band { display: flex; height: 30px; border-radius: 3px; overflow: hidden; background: rgb(var(--neutral-20)); }
.iacl-sim__seg--loss { width: 28.6%; background: rgb(var(--brand-amethyst)); }
.iacl-sim__seg--mid { width: 17.8%; background: rgb(var(--brand-mineral)); }
.iacl-sim__seg--coupon { width: 25%; background: rgb(var(--brand-citrine)); }
.iacl-sim__seg--call { flex: 1; background: rgb(var(--brand-azure)); }
.iacl-sim__gap { width: var(--hair); background: rgb(var(--neutral-0)); }

.iacl-sim__scale {
  position: relative;
  height: 34px;
  margin-top: 8px;
  font-family: "JetBrains Mono", monospace;
  font-size: 10.5px;
  line-height: 1.35;
  letter-spacing: .04em;
  color: rgb(var(--neutral-60));
}
.iacl-sim__mark { position: absolute; top: 0; white-space: nowrap; }
.iacl-sim__mark--0 { left: 0; }
.iacl-sim__mark--40 { left: 28.6%; }
.iacl-sim__mark--65 { left: 46.4%; }
.iacl-sim__mark--100 { left: 71.4%; }
.iacl-sim__mark--140 { left: 100%; }
.iacl-sim__mark--mid { transform: translateX(-50%); text-align: center; color: rgb(var(--neutral-70)); }
.iacl-sim__mark--end { transform: translateX(-100%); }

.iacl-sim__outcomes { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 28px; }
.iacl-sim__outcome { border: var(--line-dark); border-radius: var(--radius); padding: 20px 22px; }
.iacl-sim__v { font-family: "PP Formula", sans-serif; font-weight: 500; font-size: 24px; margin-top: 10px; }
.iacl-sim__v--good { color: rgb(var(--brand-citrine)); }
.iacl-sim__v--bad { color: rgb(var(--brand-amethyst)); }
.iacl-sim__desc { margin: 8px 0 0; font-weight: 300; font-size: 13.5px; line-height: 1.5; color: rgb(var(--neutral-70)); }
.iacl-sim__note { margin: 20px 0 0; font-weight: 300; font-size: 11.5px; line-height: 1.6; color: rgb(var(--neutral-50)); }

.iacl-sim__aside { display: flex; flex-direction: column; gap: 16px; }
.iacl-sim__card { border: var(--line-dark); border-radius: var(--radius); padding: 22px 24px; }
.iacl-sim__card--accent { border-color: rgb(var(--brand-citrine)); padding: 24px 26px; }
.iacl-sim__card-title { font-family: "PP Formula", sans-serif; font-weight: 500; font-size: 17px; color: rgb(var(--neutral-100)); }
.iacl-sim__card-desc { margin: 6px 0 0; font-weight: 300; font-size: 13.5px; line-height: 1.55; color: rgb(var(--neutral-70)); }
.iacl-sim__card--accent .iacl-sim__card-desc { margin-top: 12px; font-size: 14.5px; line-height: 1.6; color: rgb(var(--neutral-80)); text-wrap: pretty; }

/* ============ 12 Fund data ============ */

.iacl-funddata__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.iacl-funddata__col { display: flex; flex-direction: column; gap: 16px; }
.iacl-panel { border: var(--line); border-radius: var(--radius); background: rgb(var(--neutral-100)); padding: 26px 28px; }
.iacl-panel + .iacl-panel { margin-top: 16px; }

.iacl-kv { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; border-top: var(--line); }
.iacl-kv:last-of-type { border-bottom: var(--line); }
.iacl-kv__k { font-weight: 300; font-size: 14px; color: rgb(var(--neutral-20)); }
.iacl-kv__v { font-family: "JetBrains Mono", monospace; font-size: 13.5px; text-align: right; }
.iacl-kv__v--plain { font-family: "Inter", sans-serif; font-weight: 300; }
.iacl-kv__v--muted { color: rgb(var(--neutral-40)); }
.iacl-kv__asof { display: block; font-size: 10px; font-weight: 300; color: rgb(var(--neutral-20)); margin-top: 2px; }

.iacl-pricing { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.iacl-pricing__v { font-size: 16px; margin-top: 6px; }
.iacl-pricing__v--muted { font-family: "JetBrains Mono", monospace; font-size: 17px; color: rgb(var(--neutral-40)); }

.iacl-table__head,
.iacl-table__row { display: grid; gap: 12px; }
.iacl-table__head { padding-bottom: 12px; }
.iacl-table__row { padding: 15px 0; border-bottom: var(--line); }
.iacl-table__cell { font-family: "JetBrains Mono", monospace; font-size: 13px; }
.iacl-table__cell--num { text-align: right; color: rgb(var(--neutral-40)); }
.iacl-table__cell--k { font-family: "Inter", sans-serif; font-weight: 300; font-size: 14px; color: rgb(var(--neutral-20)); }
.iacl-table__cell--neg { color: rgb(var(--brand-amethyst-dark)); }

.iacl-distcal .iacl-table__head,
.iacl-distcal .iacl-table__row { grid-template-columns: 1.1fr 1.1fr 1.1fr 0.8fr 1fr 1fr 1fr; }
.iacl-distcal .iacl-table__head { border-bottom: var(--hair) solid rgb(var(--neutral-0)); }
.iacl-distcal .iacl-table__row--current { border-bottom-color: rgb(var(--brand-azure)); }
.iacl-distcal__head { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-bottom: 20px; }
.iacl-distcal__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 14px;
  border-radius: var(--radius);
  background: rgb(var(--brand-citrine));
  color: rgb(var(--neutral-0));
  font-family: "JetBrains Mono", monospace;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.iacl-distcal__cta:hover { color: rgb(var(--neutral-0)); text-decoration: none; }
.iacl-distcal__cta i.icon-download { font-size: 16px; }

.iacl-perf .iacl-table__head,
.iacl-perf .iacl-table__row { grid-template-columns: 1.4fr repeat(5, 1fr); }
.iacl-perf .iacl-table__head { border-bottom: var(--line); }
.iacl-perf .iacl-table__row { padding: 14px 0; }
.iacl-perf .iacl-table__row--last { border-bottom: 0; }
.iacl-perf__foot { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; margin-top: 22px; padding-top: 20px; border-top: var(--line); }
.iacl-perf__foot-note { font-weight: 300; font-size: 13px; line-height: 1.55; color: rgb(var(--neutral-40)); max-width: 480px; }

/* ============ 13 FAQ ============ */

.iacl-faq { display: flex; flex-direction: column; }
.iacl-faq__btn {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 20px 26px;
  background: transparent;
  border: 0;
  cursor: pointer;
  text-align: left;
  font-family: "PP Formula", sans-serif;
  font-weight: 500;
  font-size: 19px;
  color: rgb(var(--neutral-0));
}
.iacl-faq__sign { font-family: "JetBrains Mono", monospace; font-size: 18px; color: rgb(var(--brand-azure)); }
.iacl-faq__btn:hover .iacl-faq__sign { color: rgb(var(--brand-azure-dark)); }
.iacl-faq__panel { margin: 0; padding: 0 26px 24px; font-weight: 300; font-size: 15px; line-height: 1.6; color: rgb(var(--neutral-20)); max-width: 900px; }
.iacl-faq__panel[hidden] { display: none; }

/* ============ 14 Documents, CTA, disclosures ============ */

.iacl-docs { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: start; }
.iacl-docs__label { margin-bottom: 12px; }
.iacl-docs__list { display: flex; flex-direction: column; }
.iacl-docs__row { padding: 18px 24px; display: grid; grid-template-columns: 24px 1fr auto; gap: 18px; align-items: center; }
.iacl-docs__row:hover { background: rgb(var(--neutral-99)); text-decoration: none; }
.iacl-docs__icon { display: flex; align-items: center; color: rgb(var(--brand-azure)); }
.iacl-docs__name { font-family: "PP Formula", sans-serif; font-weight: 500; font-size: 17px; color: rgb(var(--neutral-0)); }
.iacl-docs__meta {
  font-family: "JetBrains Mono", monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: rgb(var(--neutral-40));
}

.iacl-cta { background: rgb(var(--neutral-0)); margin-top: 72px; }
.iacl-cta .iacl-shell { padding-top: 56px; padding-bottom: 0; }
.iacl-cta__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  padding-bottom: 28px;
  border-bottom: var(--line-dark);
}
.iacl-cta__title { font-family: "PP Formula", sans-serif; font-weight: 500; font-size: 28px; color: rgb(var(--neutral-100)); }

.iacl-disclosures { background: rgb(var(--neutral-0)); color: rgb(var(--neutral-70)); }
.iacl-disclosures .iacl-shell { padding-top: 40px; padding-bottom: 56px; }
.iacl-disclosures h2 { font-family: "PP Formula", sans-serif; font-weight: 500; font-size: 20px; color: rgb(var(--neutral-100)); margin: 0 0 16px; }
.iacl-disclosures p { font-weight: 300; font-size: 12.5px; line-height: 1.6; margin: 0 0 14px; }
.iacl-disclosures p:last-child { margin-bottom: 0; }
.iacl-disclosures b { font-weight: 600; color: rgb(var(--neutral-90)); }

/* ============ 15 Premium / discount modal ============ */

.iacl-modal {
  width: min(1100px, calc(100vw - 48px));
  max-height: calc(100vh - 64px);
  padding: 0;
  border: var(--line);
  border-radius: var(--radius);
  background: rgb(var(--neutral-99));
  color: rgb(var(--neutral-0));
  font-family: "Inter", sans-serif;
  overflow: hidden;
}
.iacl-modal::backdrop { background: rgb(var(--neutral-0) / .55); }
.iacl-modal[hidden] { display: none; }

.iacl-modal__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 24px 28px 20px;
  border-bottom: var(--line);
  background: rgb(var(--neutral-100));
}
.iacl-modal__title { margin: 0; }
.iacl-modal__close {
  flex: none;
  width: 36px;
  height: 36px;
  font-size: 24px;
  line-height: 1;
  border: var(--line);
  border-radius: var(--radius);
  background: rgb(var(--neutral-99));
  color: rgb(var(--neutral-30));
  cursor: pointer;
}
.iacl-modal__close:hover { border-color: rgb(var(--neutral-0)); color: rgb(var(--neutral-0)); }

.iacl-modal__body {
  padding: 24px 28px 32px;
  overflow-y: auto;
  max-height: calc(100vh - 64px - 89px);
}

.iacl-pd__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 20px 0 16px; }
.iacl-pd__card { padding: 18px 20px; }
.iacl-pd__cardhead {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 10px;
  margin-bottom: 4px;
  border-bottom: var(--line);
}
.iacl-pd__asof { font-family: "JetBrains Mono", monospace; font-size: 10.5px; color: rgb(var(--neutral-40)); }
.iacl-pd__row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 9px 0;
  font-weight: 300;
  font-size: 14px;
  color: rgb(var(--neutral-20));
}
.iacl-pd__row b { font-family: "JetBrains Mono", monospace; font-weight: 400; color: rgb(var(--neutral-0)); }
.iacl-pd__row--3 { display: grid; grid-template-columns: 1fr auto auto; }
.iacl-pd__row--3 b { min-width: 110px; text-align: right; }
.iacl-pd__select {
  font-family: "JetBrains Mono", monospace;
  font-size: 11px;
  padding: 4px 8px;
  border: var(--line);
  border-radius: var(--radius);
  background: rgb(var(--neutral-99));
  color: rgb(var(--neutral-0));
}

.iacl-pd__chart { padding: 20px 22px; }
.iacl-pd__charthead { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.iacl-pd__valrow { display: flex; align-items: baseline; gap: 10px; margin-top: 6px; }
.iacl-pd__value { font-weight: 500; font-size: 28px; font-variant-numeric: tabular-nums; }
.iacl-pd__quarter { font-family: "JetBrains Mono", monospace; font-size: 12px; color: rgb(var(--neutral-40)); }
.iacl-pd__download {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: "JetBrains Mono", monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .04em;
  padding: 8px 14px;
  border: var(--line);
  border-radius: var(--radius);
  background: rgb(var(--neutral-99));
  color: rgb(var(--neutral-10));
  cursor: pointer;
}
.iacl-pd__download:hover { border-color: rgb(var(--neutral-0)); }
.iacl-pd__download i.icon-download { font-size: 15px; }
#iaclPdChartSvg { margin-top: 14px; }
.iacl-pd__meta {
  display: flex;
  justify-content: space-between;
  margin-top: 8px;
  font-family: "JetBrains Mono", monospace;
  font-size: 10px;
  color: rgb(var(--neutral-40));
}

.iacl-pd__freqcard { padding: 20px 22px; margin-top: 16px; }
.iacl-pd__freq { display: flex; flex-direction: column; gap: 6px; margin-top: 12px; }
.iacl-pd__freqrow { display: grid; grid-template-columns: 150px 1fr 40px; gap: 12px; align-items: center; }
.iacl-pd__freqlabel { font-family: "JetBrains Mono", monospace; font-size: 11px; color: rgb(var(--neutral-30)); }
.iacl-pd__freqbar { display: block; height: 10px; background: rgb(var(--neutral-90)); border-radius: 2px; overflow: hidden; }
.iacl-pd__freqbar i { display: block; height: 100%; background: rgb(var(--brand-azure)); }
.iacl-pd__freqrow--neg .iacl-pd__freqbar i { background: rgb(var(--brand-amethyst)); }
.iacl-pd__freqcount { font-family: "JetBrains Mono", monospace; font-size: 11px; text-align: right; }

/* ============ 16 Responsive ============ */

@media (max-width: 1024px) {
  .iacl-hero__grid,
  .iacl-overview__grid,
  .iacl-why__grid,
  .iacl-terms__grid,
  .iacl-sim__grid { grid-template-columns: 1fr; gap: 32px; }

  .iacl-features__grid,
  .iacl-steps,
  .iacl-fit,
  .iacl-fit { grid-template-columns: 1fr 1fr; }
  .iacl-stats { grid-template-columns: repeat(3, 1fr); }

  .iacl-tri { grid-template-columns: 1fr; }

  .iacl-h2 { font-size: 34px; }
  .iacl-hero__ticker { font-size: 60px; }

  /* the wide data tables scroll rather than crush */
  .iacl-distcal,
  .iacl-perf { overflow-x: auto; }
  .iacl-distcal .iacl-table__head,
  .iacl-distcal .iacl-table__row,
  .iacl-perf .iacl-table__head,
  .iacl-perf .iacl-table__row { min-width: 760px; }
}

@media (max-width: 720px) {
  .iacl-shell { padding-left: 16px; padding-right: 16px; }
  .iacl-modal { width: 100vw; max-height: 100vh; border-radius: 0; }
  .iacl-modal__head { padding: 18px 16px 14px; }
  .iacl-modal__body { padding: 18px 16px 24px; }
  .iacl-pd__grid { grid-template-columns: 1fr; }
  .iacl-pd__row--3 { grid-template-columns: 1fr; }
  .iacl-pd__row--3 b { min-width: 0; text-align: left; }
  .iacl-pd__freqrow { grid-template-columns: 110px 1fr 32px; }
  .iacl-section { padding-top: 48px; }
  .iacl-section--dark { margin-top: 48px; }
  .iacl-section--dark .iacl-shell { padding-top: 48px; padding-bottom: 48px; }

  .iacl-features__grid,
  .iacl-steps,
  .iacl-fit,
  .iacl-docs,
  .iacl-funddata__grid,
  .iacl-sim__outcomes,
  .iacl-nav__grid,
  .iacl-pricing,
  .iacl-compare { grid-template-columns: 1fr; }
  .iacl-stats { grid-template-columns: 1fr 1fr; }

  .iacl-glance__row,
  .iacl-life__row { grid-template-columns: 1fr; gap: 6px; }
  .iacl-life__n { display: none; }

  .iacl-hero__headline { flex-direction: column; }
  .iacl-hero__ticker { font-size: 46px; }
  .iacl-h2 { font-size: 28px; }
  .iacl-coupon__value { font-size: 36px; }
  .iacl-stat__v { font-size: 34px; min-width: 0; }
  .iacl-stat { flex-direction: column; gap: 8px; }
  .iacl-sim__level { font-size: 26px; }
  .iacl-sim__panel,
  .iacl-dash__panel,
  .iacl-panel,
  .iacl-terms { padding-left: 18px; padding-right: 18px; }

  .iacl-chart__plot { height: 340px; }
  .iacl-kv,
  .iacl-terms__row { flex-direction: column; gap: 4px; }
  .iacl-kv__v,
  .iacl-terms__v { text-align: left; }
}
