/* How Companion Results work - public/companion-results.php */
.cr-page { max-width: 920px; margin: 0 auto; padding: 8px 16px 48px; }
.cr-hero { padding: 26px 30px; margin: 10px 0 22px; border-radius: 18px; color: #fff;
    background: radial-gradient(rgba(255, 255, 255, 0.09) 1.5px, transparent 1.6px) 0 0 / 20px 20px, linear-gradient(115deg, #0E2F34 0%, #1F565C 50%, #2A8C96 100%); }
.cr-kicker { display: inline-block; margin: 0 0 10px; padding: 4px 11px; border-radius: 999px; background: rgba(255, 255, 255, 0.16); font-size: 0.74rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.cr-hero h1 { margin: 0 0 10px; font-size: 2.1rem; line-height: 1.12; color: #fff; }
.cr-lede { margin: 0; max-width: 720px; font-size: 1.05rem; line-height: 1.6; color: rgba(255, 255, 255, 0.93); }
.cr-lede strong { color: #fff; }

.cr-quote { margin: 0 0 30px; padding: 18px 22px; border-left: 5px solid #E0A23A; border-radius: 0 14px 14px 0; background: #FFF8E8; }
.cr-quote h2 { margin: 0 0 6px; font-size: 0.78rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: #8A6413; }
.cr-quote-text { margin: 0 0 6px; font-size: 1.15rem; line-height: 1.5; font-weight: 600; color: var(--color-text); }

.cr-section { margin: 0 0 34px; }
.cr-section h2 { margin: 0 0 12px; font-size: 1.45rem; color: var(--color-primary-dark); }
.cr-section h3 { margin: 0 0 6px; font-size: 1.05rem; color: var(--color-primary-dark); }
.cr-section p { line-height: 1.6; }
.cr-small { font-size: 0.85rem; color: var(--color-text-muted); }
.cr-muted { font-weight: 400; color: var(--color-text-muted); font-size: 0.85rem; }

/* worked example */
.cr-example { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 14px 0 8px; }
.cr-school { padding: 16px 18px; border: 1px solid var(--color-border); border-radius: 14px; background: #fff; }
.cr-mix { margin: 0 0 12px; font-size: 0.86rem; color: var(--color-text-muted); }
.cr-bar-row { display: flex; align-items: center; gap: 10px; margin: 6px 0; font-size: 0.85rem; }
.cr-bar-label { flex: 0 0 62px; color: var(--color-text-muted); font-weight: 600; }
.cr-bar { flex: 1; height: 14px; border-radius: 7px; background: #F1E9DE; overflow: hidden; }
.cr-bar i { display: block; height: 100%; border-radius: 7px; }
.cr-bar-exp { background: #B9B2A8; }
.cr-bar-act { background: var(--color-primary, #2A6F77); }
.cr-bar-row b { flex: 0 0 26px; text-align: right; color: var(--color-primary-dark); }
.cr-verdict { margin: 10px 0 0; padding: 6px 10px; border-radius: 9px; font-size: 0.9rem; }
.cr-up { background: #E3F2EA; color: #1F6B4A; }
.cr-down { background: #FBE9E2; color: #A0452B; }

/* steps */
.cr-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.cr-steps li { display: flex; gap: 14px; padding: 16px 18px; border-radius: 14px; background: #fff; border: 1px solid var(--color-border); }
.cr-steps p { margin: 0; font-size: 0.93rem; }
.cr-step-n { flex: 0 0 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--color-primary, #2A6F77); color: #fff; font-weight: 800; }

/* this year's model */
.cr-models { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.cr-model { padding: 16px 18px; border-radius: 14px; background: #fff; border: 1px solid var(--color-border); }
.cr-model-facts { margin: 6px 0 12px; padding-left: 18px; font-size: 0.9rem; line-height: 1.5; }
.cr-model-facts li { margin: 4px 0; }
.cr-dist-title { margin: 0 0 6px; font-size: 0.82rem; font-weight: 700; color: var(--color-primary-dark); }
.cr-dist { display: flex; height: 16px; border-radius: 8px; overflow: hidden; gap: 2px; }
.cr-dist i { display: block; min-width: 3px; }
.cr-dist-key { display: flex; flex-wrap: wrap; gap: 4px 12px; margin: 8px 0 0; padding: 0; list-style: none; font-size: 0.78rem; color: var(--color-text-muted); }
.cr-dist-key span, .cr-bands dt span { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 5px; vertical-align: -1px; }

/* bands */
.cr-bands { margin: 0; display: grid; gap: 8px; }
.cr-bands > div { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.6fr); gap: 4px 16px; padding: 10px 14px; border-radius: 10px; background: #fff; border: 1px solid var(--color-border); }
.cr-bands dt { font-weight: 700; }
.cr-bands dd { margin: 0; font-size: 0.9rem; color: var(--color-text-muted); }

/* why / limits */
.cr-two { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.cr-ticks, .cr-crosses { list-style: none; margin: 0; padding: 0; }
.cr-ticks li, .cr-crosses li { position: relative; padding: 0 0 10px 28px; line-height: 1.55; font-size: 0.94rem; }
.cr-ticks li::before, .cr-crosses li::before { position: absolute; left: 0; top: 1px; width: 20px; height: 20px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.75rem; font-weight: 800; color: #fff; }
.cr-ticks li::before { content: "\2713"; background: #2E7D4F; }
.cr-crosses li::before { content: "!"; background: #C46A1B; }

/* press */
.cr-press { padding: 20px 22px; border-radius: 16px; background: #EEF5F4; }
.cr-press-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.cr-press-grid p { margin: 0 0 14px; font-size: 0.93rem; }
.cr-plain { margin: 0 0 14px; padding-left: 18px; font-size: 0.9rem; line-height: 1.5; }

/* FAQ */
.cr-faq { border-bottom: 1px solid var(--color-border); }
.cr-faq summary { cursor: pointer; padding: 11px 4px; font-weight: 700; color: var(--color-primary-dark); list-style: none; }
.cr-faq summary::-webkit-details-marker { display: none; }
.cr-faq summary::before { content: "\25B8"; display: inline-block; width: 18px; color: var(--color-primary); }
.cr-faq[open] summary::before { content: "\25BE"; }
.cr-faq p { margin: 0 0 12px 22px; font-size: 0.93rem; }

@media (max-width: 720px) {
    .cr-hero { padding: 20px 18px; }
    .cr-hero h1 { font-size: 1.6rem; }
    .cr-example, .cr-steps, .cr-models, .cr-two, .cr-press-grid { grid-template-columns: 1fr; }
    .cr-bands > div { grid-template-columns: 1fr; }
}
