/* Carbon helpers for company/*, pricing/*, gaming/*, 404 — tokens only so dark/light both work */
:root { --cds-spacing-01: .125rem; --cds-spacing-02: .25rem; --cds-spacing-03: .5rem; --cds-spacing-04: .75rem; --cds-spacing-05: 1rem; --cds-spacing-06: 1.5rem; --cds-spacing-07: 2rem; --cds-spacing-08: 2.5rem; --cds-spacing-09: 3rem; --cds-spacing-10: 4rem; }

/* shared: responsive tile grids */
.ca-about-grid, .ca-apply-split, .ca-partner-type { display: grid; grid-template-columns: 1fr; gap: var(--cds-spacing-07); }
@media (min-width: 66rem) {
  .ca-about-grid, .ca-apply-split { grid-template-columns: 1fr 1fr; gap: var(--cds-spacing-10); align-items: start; }
  .ca-partner-type { grid-template-columns: 3fr 2fr; }
}
.ca-about-kicker, .ca-story-label, .ca-c-type, .ca-partner-type .ca-pt-label { font: .75rem/1rem "IBM Plex Mono", monospace; letter-spacing: .32px; text-transform: uppercase; color: var(--cds-text-secondary); }
.ca-about-hero { padding-block: clamp(2.5rem, 6vw, 5rem); }

/* about */
.ca-about-list { margin-block-start: var(--cds-spacing-07); border-block-start: 1px solid var(--cds-border-subtle-01); }
.ca-about-item { padding-block: var(--cds-spacing-05); border-block-end: 1px solid var(--cds-border-subtle-01); }
.ca-about-item h3 { font-size: 1.25rem; font-weight: 600; margin: 0 0 var(--cds-spacing-02); }
.ca-about-item p, .ca-story-desc { margin: 0; color: var(--cds-text-secondary); }
.ca-story-panel { background: var(--cds-layer-01); padding: var(--cds-spacing-07); }
.ca-story-panel h3 { font-size: 1.5rem; font-weight: 400; margin: var(--cds-spacing-03) 0 0; }
.ca-story-panel p { color: var(--cds-text-secondary); }
.ca-story-timeline { margin-block-start: var(--cds-spacing-07); border-inline-start: 2px solid var(--cds-border-strong-01); padding-inline-start: var(--cds-spacing-05); }
.ca-story-step { padding-block-end: var(--cds-spacing-05); }
.ca-story-title { font-weight: 600; margin-block: var(--cds-spacing-02); }

/* contact */
.ca-contact-grid { display: grid; grid-template-columns: 1fr; gap: var(--cds-spacing-05); }
@media (min-width: 42rem) { .ca-contact-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 66rem) { .ca-contact-grid { grid-template-columns: repeat(3, 1fr); } }
.ca-contact-card { background: var(--cds-layer-01); padding: var(--cds-spacing-06); display: flex; flex-direction: column; gap: var(--cds-spacing-03) }
.ca-contact-card .ca-c-title { font-size: 1.25rem; font-weight: 600; }
.ca-contact-card p { margin: 0; color: var(--cds-text-secondary); flex: 1; }
.ca-contact-card .cds--btn { align-self: flex-start; }
.ca-email-link { font-family: "IBM Plex Mono", monospace; font-size: .875rem; color: var(--cds-link-primary); text-decoration: none; }
.ca-email-link:hover { text-decoration: underline; color: var(--cds-link-primary-hover); }

/* partners */
.ca-partner-type { background: var(--cds-layer-01); padding: var(--cds-spacing-07); margin-block-end: var(--cds-spacing-05); }
.ca-partner-type > div:first-child > div:first-child { font-size: 1.5rem; margin-block-end: var(--cds-spacing-02); }
.ca-partner-type > div:first-child > div:nth-child(2) { color: var(--cds-link-primary); margin-block-end: var(--cds-spacing-04); }
.ca-partner-type p { color: var(--cds-text-secondary); }
.ca-benefits-panel { background: var(--cds-layer-02); padding: var(--cds-spacing-05) var(--cds-spacing-06); }
.ca-benefits-panel h4 { font-size: .875rem; font-weight: 600; margin: 0 0 var(--cds-spacing-04); }
.ca-benefits-list { list-style: none; margin: 0; padding: 0; }
.ca-benefits-list li, .ca-checklist li { position: relative; padding-inline-start: 1.5rem; margin-block-end: var(--cds-spacing-03); color: var(--cds-text-secondary); }
.ca-benefits-list li::before, .ca-checklist li::before { content: "✓"; position: absolute; inset-inline-start: 0; color: var(--cds-link-primary); font-weight: 700; }

/* legal */
.ca-legal-updated { font: .75rem "IBM Plex Mono", monospace; color: var(--cds-text-secondary); margin-block-start: var(--cds-spacing-05); }
.ca-legal-body { max-inline-size: 72ch; }
.ca-legal-body h2 { font-size: 1.5rem; font-weight: 600; margin: var(--cds-spacing-07) 0 var(--cds-spacing-03); }
.ca-legal-body h2:first-child { margin-block-start: 0; }
.ca-legal-body p, .ca-legal-body li { color: var(--cds-text-secondary); line-height: 1.6; margin-block-end: var(--cds-spacing-04); }
.ca-legal-body ul { padding-inline-start: 1.5rem; }
.ca-legal-body a { color: var(--cds-link-primary); }

/* 404 */
.ca-notfound-hero { text-align: center; padding-block: 6rem; }
.ca-notfound-actions { display: flex; flex-wrap: wrap; gap: var(--cds-spacing-05); margin-block-start: var(--cds-spacing-06); }

/* careers */
.ca-values-list { display: grid; grid-template-columns: 1fr; gap: 0; background: var(--cds-layer-01); border: 1px solid var(--cds-border-subtle-01); }
@media (min-width: 42rem) { .ca-values-list { grid-template-columns: 1fr 1fr; } }
@media (min-width: 66rem) { .ca-values-list { grid-template-columns: repeat(3, 1fr); } }
.ca-value-item { outline: 1px solid var(--cds-border-subtle-01); background: var(--cds-layer-01); padding: var(--cds-spacing-06); }
.ca-v-title { font-size: 1.25rem; font-weight: 600; margin-block-end: var(--cds-spacing-03); }
.ca-value-item p { margin: 0; color: var(--cds-text-secondary); }
.ca-offer-head { margin-block-end: var(--cds-spacing-06); }
.ca-accordion { border-block-start: 1px solid var(--cds-border-subtle-01); }
.ca-accordion-item { border-block-end: 1px solid var(--cds-border-subtle-01); }
.ca-accordion-item[open] { background: var(--cds-layer-01); }
.ca-accordion-trigger { display: flex; align-items: center; gap: var(--cds-spacing-05); padding: var(--cds-spacing-05); cursor: pointer; list-style: none; }
.ca-accordion-trigger::-webkit-details-marker { display: none; }
.ca-accordion-trigger:hover { background: var(--cds-layer-hover-01); }
.ca-accordion-trigger h3 { flex: 1; margin: 0; font-size: 1.25rem; font-weight: 400; }
.ca-role-number { font: .875rem "IBM Plex Mono", monospace; color: var(--cds-text-secondary); }
.ca-accordion-chevron { inline-size: 1.25rem; block-size: 1.25rem; flex: none; transition: transform .15s; }
.ca-accordion-item[open] .ca-accordion-chevron { transform: rotate(180deg); }
.ca-accordion-body { padding: var(--cds-spacing-03) var(--cds-spacing-05) var(--cds-spacing-07); max-inline-size: 80ch; }
.ca-accordion-body h4 { font-size: 1rem; font-weight: 600; margin: var(--cds-spacing-06) 0 var(--cds-spacing-03); }
.ca-accordion-body p, .ca-accordion-body li { color: var(--cds-text-secondary); line-height: 1.55; }
.ca-accordion-body ul { padding-inline-start: 1.25rem; }
.ca-role-meta { display: flex; flex-wrap: wrap; gap: var(--cds-spacing-03); }
.ca-role-apply { margin-block-start: var(--cds-spacing-06); padding-block-start: var(--cds-spacing-05); border-block-start: 1px solid var(--cds-border-subtle-01); }
.ca-role-apply-hint { font-size: .875rem; }
.ca-apply-visual svg { inline-size: 100%; block-size: auto; color: var(--cds-text-primary); max-block-size: 20rem; }
.ca-apply-box { background: var(--cds-layer-01); padding: var(--cds-spacing-07); }
.ca-apply-heading { font-size: 1.75rem; font-weight: 400; margin: 0 0 var(--cds-spacing-04); }
.ca-apply-heading em { color: var(--cds-link-primary); font-style: normal; }
.ca-apply-body { color: var(--cds-text-secondary); }
.ca-apply-format { display: flex; flex-wrap: wrap; align-items: center; gap: var(--cds-spacing-04); margin-block: var(--cds-spacing-05); }
.ca-apply-format-label { font: .75rem "IBM Plex Mono", monospace; text-transform: uppercase; color: var(--cds-text-secondary); }
.ca-apply-format-code { font-family: "IBM Plex Mono", monospace; background: var(--cds-field-02, var(--cds-layer-02)); padding: .25rem .5rem; }
.ca-apply-contact { display: flex; flex-wrap: wrap; align-items: center; gap: var(--cds-spacing-05); }
.ca-apply-email { font-family: "IBM Plex Mono", monospace; color: var(--cds-link-primary); }
.ca-apply-note { font-size: .875rem; color: var(--cds-text-secondary); }

/* pricing */
.ca-pricing-grid { display: grid; grid-template-columns: 1fr; gap: var(--cds-spacing-05); margin-block-end: var(--cds-spacing-10); }
@media (min-width: 42rem) { .ca-pricing-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 82rem) { .ca-pricing-grid { grid-template-columns: repeat(4, 1fr); } }
.ca-pricing-card { background: var(--cds-layer-01); padding: var(--cds-spacing-06); display: flex; flex-direction: column; gap: var(--cds-spacing-04); }
.ca-pricing-card.ca-featured { border: 1px solid var(--ca-lime); background: var(--cds-layer-02); }
.ca-plan-price { font-size: 2.5rem; font-weight: 300; line-height: 1.2; }
.ca-price-period { font-size: .875rem; color: var(--cds-text-secondary); }
.ca-plan-desc { margin: 0; }
.ca-plan-for, .ca-plan-scale { margin: 0; font-size: .875rem; color: var(--cds-text-secondary); }
.ca-plan-limit { font: .75rem "IBM Plex Mono", monospace; color: var(--cds-text-secondary); }
.ca-plan-limit.ca-spacer { visibility: hidden; }
.ca-plan-features { list-style: none; padding: 0; margin: 0 0 var(--cds-spacing-04); flex: 1; border-block-start: 1px solid var(--cds-border-subtle-01); }
.ca-plan-features li { padding-block: var(--cds-spacing-02); border-block-end: 1px solid var(--cds-border-subtle-01); font-size: .875rem; }
.ca-plan-features li.ca-addon { color: var(--cds-text-secondary); font-style: italic; }
.ca-pricing-card .cds--btn { inline-size: 100%; max-inline-size: none; }
.ca-feat-table-wrap { overflow-x: auto; margin-block-end: var(--cds-spacing-07); }
.ca-feat-table { inline-size: 100%; min-inline-size: 48rem; border-collapse: collapse; background: var(--cds-layer-01); }
.ca-feat-table th, .ca-feat-table td { padding: var(--cds-spacing-04) var(--cds-spacing-05); text-align: center; border-block-end: 1px solid var(--cds-border-subtle-01); vertical-align: top; }
.ca-feat-table th:first-child, .ca-feat-table td:first-child { text-align: start; }
.ca-feat-plan-header { display: flex; flex-direction: column; gap: var(--cds-spacing-02); }
.ca-feat-plan-name { font-size: 1.125rem; font-weight: 600; }
.ca-feat-plan-name.ca-hi { color: var(--cds-link-primary); }
.ca-feat-plan-desc { font-size: .75rem; font-weight: 400; color: var(--cds-text-secondary); }
.ca-feat-name { font-weight: 600; }
.ca-feat-text { font-size: .875rem; }
.ca-feat-check { color: var(--cds-support-success, var(--cds-link-primary)); font-weight: 700; }
.ca-feat-dash { color: var(--cds-text-disabled); }
.ca-feat-table tr.ca-section-header td { background: var(--cds-layer-02); font: .75rem "IBM Plex Mono", monospace; letter-spacing: .32px; text-transform: uppercase; text-align: start; color: var(--cds-text-secondary); }

/* gaming */
.ca-gm-lead { max-inline-size: 62ch; }
.ca-fd-wrap { margin-block-start: var(--cds-spacing-06); overflow-x: auto; border: 1px solid var(--cds-border-subtle-01); background: var(--cds-layer-01); padding: var(--cds-spacing-03); }
.ca-fd { display: block; inline-size: 100%; min-inline-size: 47.5rem; block-size: auto; color: var(--cds-text-secondary); }
.ca-fd-lane { fill: var(--cds-layer-02); stroke: var(--cds-border-subtle-01); }
.ca-fd-lane-nw { fill: var(--cds-layer-accent-01, var(--cds-layer-02)); }
.ca-fd-lane-label { font: 11px "IBM Plex Mono", monospace; letter-spacing: .14em; fill: var(--cds-text-secondary); text-transform: uppercase; }
.ca-fd-node { fill: var(--cds-layer-01); stroke: var(--cds-border-strong-01); stroke-width: 1.3; }
.ca-fd-node.ca-nw { stroke: var(--cds-text-primary); stroke-width: 1.6; }
.ca-fd-node.ca-opt { stroke-dasharray: 5 4; }
.ca-fd-branch { fill: var(--cds-background); stroke: var(--cds-border-strong-01); stroke-width: 1.2; }
.ca-fd-num { fill: var(--cds-text-primary); }
.ca-fd-numtxt { fill: var(--cds-text-inverse); font: 700 11px "IBM Plex Mono", monospace; }
.ca-fd-t { fill: var(--cds-text-primary); font-size: 13.5px; font-weight: 700; }
.ca-fd-s { fill: var(--cds-text-secondary); font-size: 11.5px; }
.ca-fd-note { fill: var(--cds-text-secondary); font-size: 12px; font-style: italic; }
.ca-fd-edge { stroke: var(--cds-text-secondary); stroke-width: 1.4; fill: none; }
.ca-fd-edge.ca-dash { stroke-dasharray: 5 4; }
.ca-fd-elabel { fill: var(--cds-text-secondary); font: 10px "IBM Plex Mono", monospace; }
.ca-fd-pill { fill: var(--cds-layer-01); }
.ca-checklist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: var(--cds-spacing-04) var(--cds-spacing-07); }
@media (min-width: 42rem) { .ca-checklist { grid-template-columns: 1fr 1fr; } }
.ca-notice { border-inline-start: 3px solid var(--ca-lime); background: var(--cds-layer-01); padding: var(--cds-spacing-05) var(--cds-spacing-06); margin-block-start: var(--cds-spacing-06); color: var(--cds-text-secondary); }
.ca-notice strong { display: block; color: var(--cds-text-primary); margin-block-end: var(--cds-spacing-02); }
.ca-code-block { font-family: "IBM Plex Mono", monospace; font-size: .875rem; background: var(--cds-layer-01); padding: var(--cds-spacing-05); margin-block: var(--cds-spacing-05); }
