/* Info pack (/info/*). Builds on /styles.css; tokens fall back to the brand palette. */
.ip-page {
  --ip-ink: var(--ink, #1b2733);
  --ip-soft: var(--ink-soft, #3d4a57);
  --ip-muted: var(--muted, #5f6b76);
  --ip-bg: var(--stone, #f5f2ec);
  --ip-bg-2: var(--stone-2, #ebe6dc);
  --ip-card: var(--card, #ffffff);
  --ip-line: var(--line, #d9d2c4);
  --ip-accent: var(--accent, #2f5d50);
  --ip-accent-ink: var(--accent-ink, #ffffff);
  --ip-gold: #9a7b3f;
  --ip-good: #2f6b4f;
  --ip-warn: #8a5a14;
  --ip-serif: var(--serif, "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif);
  --ip-sans: var(--sans, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif);
  --ip-gutter: max(20px, calc((100% - 1040px) / 2));
  --ip-radius: 12px;
  --ip-shadow: 0 1px 2px rgba(27, 39, 51, .06), 0 8px 24px rgba(27, 39, 51, .07);
}

/* Pack navigation */
.ip-pack { background: var(--ip-card); border-bottom: 1px solid var(--ip-line); }
.ip-pack-in { display: flex; gap: 6px; overflow-x: auto; padding: 10px var(--ip-gutter); scrollbar-width: none; }
.ip-pack-in::-webkit-scrollbar { display: none; }
.ip-pack a {
  flex: 0 0 auto; display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px;
  border-radius: 999px; color: var(--ip-soft); text-decoration: none; font: 600 15px/1 var(--ip-sans);
}
.ip-pack a:hover { background: var(--ip-bg); color: var(--ip-ink); }
.ip-pack a[aria-current="page"] { background: var(--ip-ink); color: #fff; }
.ip-pack a:focus-visible { outline: 3px solid var(--ip-accent); outline-offset: 2px; }

/* Sections */
.ip-main { display: block; }
.ip-hero, .ip-sec, .ip-cta { padding-left: var(--ip-gutter); padding-right: var(--ip-gutter); }
.ip-hero { padding-top: 64px; padding-bottom: 44px; background: linear-gradient(180deg, var(--ip-bg) 0%, var(--ip-bg-2) 100%); border-bottom: 1px solid var(--ip-line); }
.ip-hero h1 { font-size: clamp(32px, 5vw, 50px); max-width: 20ch; margin: 0 0 16px; }
.ip-kicker { margin: 0 0 12px; font: 700 13px/1.2 var(--ip-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--ip-accent); }
.ip-lede { font-size: 20px; color: var(--ip-soft); max-width: 62ch; margin: 0 0 8px; }
.ip-sec { padding-top: 56px; padding-bottom: 56px; }
.ip-sec + .ip-sec:not(.ip-alt) { padding-top: 8px; }
.ip-alt { background: var(--ip-card); border-top: 1px solid var(--ip-line); border-bottom: 1px solid var(--ip-line); }
.ip-alt + .ip-sec { padding-top: 56px; }
.ip-sec > h2 { margin-bottom: 12px; }
.ip-sec > h2 + p, .ip-sec > p { max-width: 68ch; color: var(--ip-soft); }
.ip-sec > p:last-child { margin-bottom: 0; }

/* Sample label */
.ip-sample {
  display: inline-flex; align-items: flex-start; gap: 10px; margin: 0 0 18px; padding: 10px 14px;
  border: 1px dashed var(--ip-gold); border-radius: 10px; background: #fbf6ea; color: #5e4a1f;
  font: 600 15px/1.45 var(--ip-sans); max-width: 70ch;
}
.ip-sample::before { content: "SAMPLE"; flex: 0 0 auto; padding: 3px 7px; border-radius: 6px; background: var(--ip-gold); color: #fff; font-size: 11px; letter-spacing: .12em; line-height: 1.3; }

/* Cards */
.ip-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); margin: 24px 0 0; }
.ip-card { position: relative; background: var(--ip-card); border: 1px solid var(--ip-line); border-radius: var(--ip-radius); padding: 22px 22px 20px; box-shadow: var(--ip-shadow); }
.ip-alt .ip-card { background: var(--ip-bg); box-shadow: none; }
.ip-card h3 { font-size: 20px; margin: 0 0 8px; }
.ip-card p { margin: 0 0 8px; color: var(--ip-soft); font-size: 17px; }
.ip-card p:last-child { margin-bottom: 0; }
.ip-card a { font-weight: 600; }
.ip-card a::after { content: " \2192"; }
.ip-num {
  display: inline-grid; place-items: center; width: 34px; height: 34px; margin-bottom: 12px; border-radius: 50%;
  background: var(--ip-ink); color: #fff; font: 700 14px/1 var(--ip-sans);
}

/* Lists */
.ip-list { list-style: none; padding: 0; margin: 20px 0 0; max-width: 72ch; }
.ip-list li { position: relative; padding: 10px 0 10px 36px; border-bottom: 1px solid var(--ip-line); }
.ip-list li:last-child { border-bottom: 0; }
.ip-list li::before {
  content: ""; position: absolute; left: 4px; top: 16px; width: 18px; height: 18px; border-radius: 50%;
  background: var(--ip-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat;
}
.ip-steps { list-style: none; counter-reset: ip; padding: 0; margin: 24px 0 0; display: grid; gap: 0; max-width: 760px; }
.ip-steps > li { counter-increment: ip; position: relative; padding: 0 0 26px 58px; }
.ip-steps > li::before {
  content: counter(ip); position: absolute; left: 0; top: 0; width: 38px; height: 38px; border-radius: 50%;
  display: grid; place-items: center; background: var(--ip-card); border: 2px solid var(--ip-accent); color: var(--ip-accent); font: 700 15px/1 var(--ip-sans);
}
.ip-steps > li::after { content: ""; position: absolute; left: 18px; top: 42px; bottom: 4px; width: 2px; background: var(--ip-line); }
.ip-steps > li:last-child { padding-bottom: 0; }
.ip-steps > li:last-child::after { display: none; }
.ip-steps h3 { font-size: 19px; margin: 6px 0 4px; }
.ip-steps p { margin: 0; color: var(--ip-soft); }

/* KPIs */
.ip-kpis { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); margin: 20px 0 0; }
.ip-kpi { background: var(--ip-card); border: 1px solid var(--ip-line); border-radius: var(--ip-radius); padding: 16px 16px 14px; display: flex; flex-direction: column; gap: 4px; }
.ip-kpi-num { font: 600 32px/1.1 var(--ip-serif); color: var(--ip-ink); font-variant-numeric: tabular-nums; }
.ip-kpi-label { font: 600 14px/1.35 var(--ip-sans); color: var(--ip-soft); }
.ip-kpi-note { font: 500 13px/1.35 var(--ip-sans); color: var(--ip-muted); }

/* Tables */
.ip-table { width: 100%; border-collapse: collapse; margin: 18px 0 0; background: var(--ip-card); border: 1px solid var(--ip-line); border-radius: var(--ip-radius); overflow: hidden; font-size: 16px; font-variant-numeric: tabular-nums; }
.ip-table caption { text-align: left; font: 600 15px/1.4 var(--ip-sans); color: var(--ip-muted); padding: 0 0 8px; }
.ip-table th, .ip-table td { padding: 11px 14px; text-align: left; border-bottom: 1px solid var(--ip-line); vertical-align: top; }
.ip-table thead th { background: var(--ip-bg-2); font: 700 13px/1.3 var(--ip-sans); letter-spacing: .06em; text-transform: uppercase; color: var(--ip-soft); }
.ip-table tbody tr:last-child td, .ip-table tbody tr:last-child th { border-bottom: 0; }
.ip-table td:not(:first-child), .ip-table th:not(:first-child) { text-align: right; }
.ip-good { color: var(--ip-good); font-weight: 700; }
.ip-warn { color: var(--ip-warn); font-weight: 700; }

/* Call transcript */
.ip-call { display: grid; gap: 12px; margin: 24px 0 0; max-width: 820px; }
.ip-turn { max-width: 86%; padding: 12px 16px; border-radius: 16px; line-height: 1.55; box-shadow: var(--ip-shadow); }
.ip-turn strong { display: block; margin-bottom: 2px; font: 700 12px/1.3 var(--ip-sans); letter-spacing: .1em; text-transform: uppercase; }
.ip-ai { justify-self: start; background: var(--ip-card); border: 1px solid var(--ip-line); border-bottom-left-radius: 4px; }
.ip-ai strong { color: var(--ip-accent); }
.ip-caller { justify-self: end; background: var(--ip-ink); color: #f3efe7; border-bottom-right-radius: 4px; }
.ip-caller strong { color: #c9bfa8; }
.ip-sys {
  justify-self: stretch; position: relative; padding: 8px 14px 8px 30px; border-radius: 10px;
  background: var(--ip-bg-2); color: var(--ip-soft); font: 500 14px/1.45 var(--ip-sans);
}
.ip-sys::before { content: ""; position: absolute; left: 13px; top: 14px; width: 8px; height: 8px; border-radius: 50%; background: var(--ip-good); }
.ip-sys time { font-weight: 700; color: var(--ip-ink); white-space: nowrap; }
.ip-note {
  justify-self: stretch; margin: 0 0 4px; padding: 10px 14px 10px 16px; border-left: 3px solid var(--ip-gold);
  background: #fbf6ea; color: #5e4a1f; font: 500 15px/1.5 var(--ip-sans); border-radius: 0 8px 8px 0;
}
.ip-note strong { display: inline; letter-spacing: 0; text-transform: none; font-size: inherit; color: inherit; }

/* Definition lists (call settings, report header) */
.ip-sec dl, .ip-hero dl { display: grid; grid-template-columns: max-content 1fr; gap: 6px 18px; margin: 18px 0 0; max-width: 760px; }
.ip-sec dt, .ip-hero dt { font: 700 13px/1.6 var(--ip-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--ip-muted); padding-top: 2px; }
.ip-sec dd, .ip-hero dd { margin: 0; color: var(--ip-soft); }
@media (max-width: 560px) { .ip-sec dl, .ip-hero dl { grid-template-columns: 1fr; gap: 2px; } .ip-sec dd, .ip-hero dd { margin-bottom: 10px; } }

/* FAQ */
.ip-faq { max-width: 820px; margin: 18px 0 0; border-top: 1px solid var(--ip-line); }
.ip-q { border-bottom: 1px solid var(--ip-line); }
.ip-q summary {
  list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px;
  min-height: 56px; padding: 14px 0; font: 600 18px/1.4 var(--ip-sans); color: var(--ip-ink);
}
.ip-q summary::-webkit-details-marker { display: none; }
.ip-q summary::after {
  content: "+"; flex: 0 0 30px; height: 30px; border-radius: 50%; display: grid; place-items: center;
  border: 1px solid var(--ip-line); color: var(--ip-accent); font: 400 22px/1 var(--ip-sans);
}
.ip-q[open] summary::after { content: "\2212"; background: var(--ip-accent); border-color: var(--ip-accent); color: #fff; }
.ip-q summary:focus-visible { outline: 3px solid var(--ip-accent); outline-offset: 2px; }
.ip-q p, .ip-q ul { margin: 0 0 16px; color: var(--ip-soft); max-width: 70ch; }

/* CTA */
.ip-cta { padding-top: 56px; padding-bottom: 60px; background: var(--ip-ink); color: #f3efe7; }
.ip-cta h2 { color: #fff; }
.ip-cta p { color: #d6cfc1; max-width: 62ch; }
.ip-cta a:not(.ip-btn):not(.ip-btn-alt) { color: #fff; }
.ip-btn, .ip-btn-alt {
  display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 24px; margin: 8px 12px 0 0;
  border-radius: 10px; font: 700 17px/1 var(--ip-sans); text-decoration: none;
}
.ip-btn { background: var(--ip-accent); color: var(--ip-accent-ink); }
.ip-cta .ip-btn { background: #fff; color: var(--ip-ink); }
.ip-btn:hover { filter: brightness(1.06); }
.ip-btn-alt { border: 1.5px solid currentColor; color: inherit; }
.ip-btn:focus-visible, .ip-btn-alt:focus-visible { outline: 3px solid #e3c98f; outline-offset: 3px; }
.ip-fine { font-size: 15px; color: var(--ip-muted); max-width: 70ch; margin-top: 16px; }
.ip-cta .ip-fine { color: #b9b1a2; }

@media (min-width: 860px) {
  .ip-hero { padding-top: 84px; padding-bottom: 56px; }
  .ip-sec { padding-top: 72px; padding-bottom: 72px; }
  .ip-alt + .ip-sec { padding-top: 72px; }
}
@media (max-width: 560px) {
  .ip-turn { max-width: 94%; }
  .ip-table { font-size: 15px; }
  .ip-table th, .ip-table td { padding: 9px 10px; }
  .ip-kpi-num { font-size: 27px; }
}
@media (prefers-reduced-motion: no-preference) {
  .ip-q summary::after { transition: background-color .15s, color .15s; }
}
@media print {
  header.site, .ip-pack, .ip-cta, footer.site nav { display: none !important; }
  .ip-hero, .ip-sec { padding: 18px 0; background: none; border: 0; }
  .ip-card, .ip-kpi, .ip-turn, .ip-table { box-shadow: none; }
  .ip-q:not([open]) > *:not(summary) { display: block; }
  body { background: #fff; font-size: 12pt; }
}
