/* Resources: centered compositions in the site's material. Objects introduce collections; pages read on one measure. */
.res { width: min(1120px, calc(100% - 96px)); margin: 0 auto; padding: 150px 0 90px; }
.res-narrow { width: min(760px, 100%); margin: 0 auto; }
.res-center { text-align: center; }
.res-crumbs { font-size: 13px; color: var(--secondary); }
.res-crumbs a { text-decoration: underline; text-underline-offset: 4px; text-decoration-color: #a8afbb; }
.res-crumbs a:hover { color: var(--red-dark); }
.res h1 { margin: 14px auto 0; max-width: 20ch; font-size: clamp(36px, 4.2vw, 56px); font-weight: 435; line-height: 1.06; letter-spacing: -.04em; color: #23262b; }
.res h1 span { color: #ca2333; }
.res-lead { margin: 20px auto 0; max-width: 680px; font-size: 18px; line-height: 1.6; letter-spacing: -.012em; color: #555e67; }
.res-meta { margin: 16px auto 0; max-width: 68ch; font-size: 13px; line-height: 1.55; color: var(--secondary); }
.res-kicker { display: inline-block; margin-bottom: 14px; padding: 5px 12px; border-radius: 999px; font-size: 12px; font-weight: 520; letter-spacing: .01em; color: #a72135; background: #fbe6e9; }
.res-kicker--one { color: #39414d; background: #e7edf3; }
.res-kicker--mixed { color: #7a5a12; background: #f3ecd9; }

/* Objects: four small machines that name the collections. */
.res-objects { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin: 56px auto 0; max-width: 1040px; }
.res-objects a { display: block; text-align: center; color: inherit; }
.res-objects a:hover h2 { color: var(--red-dark); }
.res-object { width: min(100%, 220px); margin: 0 auto 14px; aspect-ratio: 300 / 170; }
.res-object svg { display: block; width: 100%; height: auto; overflow: visible; }
.res-object * { animation-play-state: paused !important; }
.res-object[data-running] * { animation-play-state: running !important; }
.res-objects h2 { font-size: 22px; font-weight: 480; letter-spacing: -.024em; line-height: 1.2; }
.res-objects p { margin: 6px auto 0; max-width: 230px; font-size: 14px; line-height: 1.55; color: var(--secondary); }
.ob-knob { transform-box: fill-box; transform-origin: 50% 50%; animation: ob-knob 6s cubic-bezier(.22, 1, .36, 1) infinite; }
@keyframes ob-knob { 0%, 28% { transform: rotate(-38deg); } 34%, 62% { transform: rotate(0); } 68%, 94% { transform: rotate(38deg); } 100% { transform: rotate(-38deg); } }
.ob-pin { transform-box: fill-box; transform-origin: 50% 50%; animation: ob-pin 4.5s ease-in-out infinite; }
.ob-pin--2 { animation-delay: -1.5s; } .ob-pin--3 { animation-delay: -3s; }
@keyframes ob-pin { 0%, 70%, 100% { transform: scale(1); filter: brightness(1); } 80% { transform: scale(1.14); filter: brightness(1.2); } }
.ob-rule { transform-box: fill-box; transform-origin: 0 50%; animation: ob-rule 5s cubic-bezier(.22, 1, .36, 1) infinite; }
.ob-line { animation: ob-line 5s linear infinite; opacity: 0; }
.ob-line--2 { animation-delay: .35s; }
@keyframes ob-rule { 0%, 10% { transform: scaleX(0); } 40%, 88% { transform: scaleX(1); } 100% { transform: scaleX(0); } }
@keyframes ob-line { 0%, 40% { opacity: 0; } 50%, 88% { opacity: 1; } 100% { opacity: 0; } }
.ob-card { animation: ob-card 5.5s cubic-bezier(.22, 1, .36, 1) infinite; }
@keyframes ob-card { 0%, 30% { transform: translateY(0); } 42%, 70% { transform: translateY(-16px); } 82%, 100% { transform: translateY(0); } }

/* Collections on the hub. */
.res-collection { margin-top: 96px; scroll-margin-top: 110px; }
.res-collection > h2 { font-size: clamp(28px, 3.2vw, 40px); font-weight: 450; line-height: 1.12; letter-spacing: -.034em; }
.res-collection > p { margin: 12px auto 0; max-width: 560px; font-size: 16px; line-height: 1.65; color: var(--secondary); }
.res-collection > p a { text-decoration: underline; text-underline-offset: 4px; text-decoration-color: #a8afbb; }
.res-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 48px; margin: 28px auto 0; max-width: 960px; padding: 0; list-style: none; border-top: 1px solid var(--line); text-align: left; }
.res-grid li { padding: 20px 0; border-bottom: 1px solid var(--line); }
.res-grid a { font-size: 20px; font-weight: 480; line-height: 1.3; letter-spacing: -.022em; }
.res-grid a:hover { color: var(--red-dark); }
.res-grid p { margin: 6px 0 0; font-size: 14.5px; line-height: 1.55; color: var(--secondary); }
.res-grid small { display: block; margin-top: 6px; font-size: 12.5px; color: #5c6675; }
.res-signals { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px 32px; margin: 32px auto 0; max-width: 1040px; text-align: left; }
.res-signals h3 { font-size: 13px; font-weight: 560; letter-spacing: .01em; color: #a72135; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.res-signals ul { margin: 0; padding: 0; list-style: none; }
.res-signals li { padding: 9px 0; border-bottom: 1px solid var(--line); font-size: 15px; font-weight: 480; letter-spacing: -.01em; }
.res-signals a:hover { color: var(--red-dark); }
.res-terms { columns: 3; column-gap: 36px; margin: 28px auto 0; max-width: 960px; padding: 0; list-style: none; text-align: left; }
.res-terms li { break-inside: avoid; padding: 8px 0; border-bottom: 1px solid var(--line); font-size: 15px; font-weight: 480; }
.res-terms li a:hover { color: var(--red-dark); }
.res-terms span { display: block; margin-top: 2px; font-size: 13.5px; font-weight: 400; line-height: 1.5; color: var(--secondary); }
.res-letter { margin: 34px 0 0; font-size: 13px; font-weight: 560; letter-spacing: .02em; color: #a72135; text-align: left; }

/* Reading pages. */
.res-article { width: min(760px, 100%); margin: 0 auto; }
.res-head { text-align: center; }
.res-answer, .res-takeaways, .res-quote, .res-sheet { position: relative; width: min(760px, 100%); margin: 40px auto 0; padding: 26px 30px; background: #fff; border: 1px solid #e1e6ec; border-radius: 6px; box-shadow: 0 30px 50px -40px #42587266, 0 2px 4px -2px #42587226; text-align: left; }
.res-answer::before, .res-takeaways::before, .res-sheet::before { content: ""; position: absolute; left: 14px; right: 14px; top: 9px; height: 1px; background: repeating-linear-gradient(90deg, #d5dce4 0 6px, transparent 6px 12px); }
.res-answer h2, .res-takeaways h2, .res-sheet h2 { margin: 6px 0 10px; font-size: 13px; font-weight: 560; letter-spacing: .02em; color: #a72135; }
.res-answer p { font-size: 19px; line-height: 1.5; letter-spacing: -.015em; color: #23262b; }
.res-takeaways ul { margin: 0; padding-left: 20px; }
.res-takeaways li { margin: 8px 0; font-size: 16px; line-height: 1.55; color: #2b2f36; }
.res-quote { padding-left: 34px; }
.res-quote::after { content: ""; position: absolute; left: 0; top: 22px; bottom: 22px; width: 3px; background: var(--red); border-radius: 2px; }
.res-quote p { font-size: clamp(20px, 2.2vw, 26px); font-weight: 450; line-height: 1.35; letter-spacing: -.02em; color: #343c47; }
.res-quote small { display: block; margin-top: 10px; font-size: 13px; color: var(--secondary); }
.res-body { margin: 40px auto 0; max-width: 68ch; font-size: 17.5px; line-height: 1.7; color: #2b2f36; text-align: left; }
.res-body h2 { margin: 44px 0 12px; font-size: clamp(24px, 2.6vw, 30px); font-weight: 470; line-height: 1.2; letter-spacing: -.03em; color: #23262b; }
.res-body h3 { margin: 30px 0 8px; font-size: 20px; font-weight: 490; letter-spacing: -.02em; }
.res-body p { margin: 0 0 16px; }
.res-body ul, .res-body ol { margin: 0 0 18px; padding-left: 22px; }
.res-body li { margin: 6px 0; }
.res-body table { width: 100%; margin: 18px 0 24px; border-collapse: collapse; font-size: 15px; }
.res-body th, .res-body td { padding: 10px 12px 10px 0; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.res-body th { font-weight: 520; }
.res-body blockquote { margin: 18px 0; padding-left: 18px; border-left: 2px solid var(--red); color: #454d58; }
.res-body a { text-decoration: underline; text-underline-offset: 4px; text-decoration-color: #a8afbb; }
.res-body a:hover { text-decoration-color: var(--red); }
.res-pinpoint { margin: 44px auto 0; max-width: 68ch; padding-top: 22px; border-top: 2px solid var(--red); text-align: left; }
.res-pinpoint h2 { font-size: 20px; font-weight: 490; letter-spacing: -.02em; }
.res-pinpoint p { margin-top: 8px; font-size: 16px; line-height: 1.65; color: #454d58; }
.res-sources { margin: 36px auto 0; max-width: 68ch; text-align: left; font-size: 14px; color: var(--secondary); }
.res-sources h2 { font-size: 15px; font-weight: 520; color: #23262b; }
.res-sources ol { margin: 8px 0 0; padding-left: 20px; }
.res-sources a { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: #a8afbb; word-break: break-word; }
.res-related { margin: 40px auto 0; text-align: center; }
.res-related h2 { font-size: 15px; font-weight: 520; color: #5c6675; }
.res-related ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 12px 0 0; padding: 0; list-style: none; }
.res-related a { display: inline-block; padding: 8px 14px; border: 1px solid #cfd8e2; border-radius: 999px; font-size: 13.5px; font-weight: 480; background: #fff; }
.res-related a:hover { border-color: var(--red); color: var(--red-dark); }
.res-faq { padding: 44px 0 0; }
.res-faq .faq__inner { grid-template-columns: 1fr; gap: 18px; width: min(760px, 100%); }
.res-faq .faq__intro h2 { font-size: 24px; font-weight: 470; text-align: center; max-width: none; }
.res-cta { margin: 64px auto 0; padding-top: 32px; border-top: 1px solid var(--line); text-align: center; }
.res-cta p { margin: 0 auto 18px; max-width: 460px; font-size: 19px; letter-spacing: -.015em; }

/* Signal card: the sorter's card, standing still. */
.signal-card { position: relative; width: 168px; height: 108px; margin: 0 auto 26px; border: 1.4px solid #c9d3dd; border-radius: 16px; background: #fff; box-shadow: 0 5px 0 -1px #bfcbd7, 0 22px 30px -24px #42587280; }
.signal-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 9px; border-radius: 16px 16px 0 0; background: var(--signal, #b7c2ce); }
.signal-card svg { position: absolute; left: 20px; top: 30px; width: 72px; height: 50px; }
.signal-card--buying-signal { --signal: #d92332; } .signal-card--appointment { --signal: #7a5a12; } .signal-card--follow-up-gap { --signal: #4b5563; } .signal-card--coaching-moment { --signal: #a72135; }

/* Tools. */
.tool { margin: 40px auto 0; width: min(960px, 100%); text-align: left; }
.tool__panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px 48px; align-items: start; padding: 30px 34px; background: #fff; border: 1px solid #e1e6ec; border-radius: 8px; box-shadow: 0 34px 56px -40px #42587266, 0 2px 4px -2px #42587226; }
.tool__field { margin-bottom: 18px; }
.tool__field label { display: block; margin-bottom: 8px; font-size: 14px; font-weight: 520; }
.tool__field input, .tool__field select, .tool__field textarea { width: 100%; padding: 10px 12px; border: 1px solid #c9d2dc; border-radius: 10px; background: #fff; font-size: 15px; line-height: 1.5; color: var(--ink); }
.tool__field textarea { min-height: 120px; resize: vertical; }
.tool__field input:focus-visible, .tool__field select:focus-visible, .tool__field textarea:focus-visible { outline: 3px solid var(--red); outline-offset: 2px; border-radius: 10px; }
.tool__examples { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.tool__examples button { padding: 7px 12px; border: 1px solid #cfd8e2; border-radius: 999px; background: #fff; font-size: 13px; }
.tool__examples button:hover { border-color: var(--red); color: var(--red-dark); }
.tool__score { font-size: 13px; color: var(--secondary); }
.tool__score output { display: block; margin-top: 4px; font-size: 40px; font-weight: 450; letter-spacing: -.03em; color: #ca2333; font-variant-numeric: tabular-nums; }
.check { display: grid; grid-template-columns: 1fr auto; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 15px; }
.check span { display: block; }
.check .check__fix { margin-top: 3px; font-size: 13px; color: var(--secondary); }
.check[data-state="ok"] .check__fix { display: none; }
.check__mark { font-size: 12px; font-weight: 560; padding: 4px 9px; border-radius: 999px; height: fit-content; background: #e7edf3; color: #39414d; }
.check[data-state="ok"] .check__mark { background: #e4f3ea; color: #0d7a50; }
.check[data-state="missing"] .check__mark { background: #fbe6e9; color: #a72135; }
.tool__rewrite { margin-top: 18px; padding: 16px 18px; border-left: 3px solid var(--red); background: #f7f8fa; border-radius: 0 10px 10px 0; }
.tool__rewrite span { display: block; margin-bottom: 6px; font-size: 12px; font-weight: 560; color: #a72135; }
.tool__rewrite p { font-size: 16px; line-height: 1.55; }
.draft { padding: 18px 0; border-bottom: 1px solid var(--line); }
.draft p { font-size: 17px; line-height: 1.5; letter-spacing: -.01em; }
.draft__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 8px; }
.draft small { font-size: 12.5px; color: var(--secondary); }
.draft button { padding: 6px 12px; border: 1px solid #cfd8e2; border-radius: 999px; background: #fff; font-size: 13px; }
.draft button:hover { border-color: var(--red); color: var(--red-dark); }
.tool__rules { margin: 16px 0 0; padding-left: 18px; font-size: 14px; line-height: 1.6; color: var(--secondary); }
.notice__rule { padding: 0 0 16px; border-bottom: 1px solid var(--line); }
.notice__rule h3 { font-size: 22px; font-weight: 470; letter-spacing: -.02em; }
.notice__rule p { margin-top: 8px; font-size: 15px; line-height: 1.6; color: #2b2f36; }
.notice__rule small { display: block; margin-top: 6px; font-size: 13px; color: var(--secondary); }
.script { padding: 14px 0; border-bottom: 1px solid var(--line); }
.script span { display: block; font-size: 12px; font-weight: 560; letter-spacing: .01em; color: #a72135; }
.script p { margin-top: 6px; font-size: 16px; line-height: 1.55; }
.tool__note { margin-top: 14px; font-size: 13px; line-height: 1.55; color: var(--secondary); }
.consent-filter { width: min(100%, 360px); margin: 28px auto 8px; padding: 10px 12px; border: 1px solid #c9d2dc; border-radius: 10px; background: #fff; font-size: 15px; display: block; }
.consent-scroll { overflow-x: auto; width: min(1040px, 100%); margin: 0 auto; text-align: left; }
.consent-table { width: 100%; margin-top: 8px; border-collapse: collapse; font-size: 14.5px; }
.consent-table th, .consent-table td { padding: 12px 14px 12px 0; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.consent-table thead th { font-size: 13px; font-weight: 520; color: #5c6675; }
.consent-table tbody th { font-weight: 520; white-space: nowrap; }
.consent-table small { display: block; margin-top: 4px; color: var(--secondary); }
.consent-badge { display: inline-block; padding: 3px 9px; border-radius: 999px; font-size: 12px; font-weight: 520; white-space: nowrap; }
.consent-badge--all { background: #fbe6e9; color: #a72135; }
.consent-badge--one { background: #e7edf3; color: #39414d; }
.consent-badge--mixed { background: #f3ecd9; color: #7a5a12; }
@media (max-width: 1100px) { .res { width: calc(100% - 64px); } .res-objects { gap: 18px; } }
@media (max-width: 900px) { .res-objects { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 24px; } .res-signals { grid-template-columns: repeat(2, minmax(0, 1fr)); } .res-grid { grid-template-columns: 1fr; } .res-terms { columns: 2; } .tool__panel { grid-template-columns: 1fr; } }
@media (max-width: 650px) { .res { width: calc(100% - 40px); padding-top: 112px; } .res-objects { grid-template-columns: 1fr; gap: 32px; } .res-signals { grid-template-columns: 1fr; } .res-terms { columns: 1; } .res-body { font-size: 16.5px; } .tool__panel { padding: 22px 18px; } .consent-table { min-width: 640px; } .res-answer, .res-takeaways, .res-quote, .res-sheet { padding: 22px 20px; } }
@media (prefers-reduced-motion: reduce) { .ob-line { opacity: 1; } .ob-rule { transform: none; } }

.nb { white-space: nowrap; }

/* Covers and tiles. */
.res-h1--hub { max-width: none; }
.res-cover { width: min(100%, 300px); margin: 0 auto 16px; aspect-ratio: 300 / 170; }
.res-cover svg { display: block; width: 100%; height: auto; overflow: visible; }
.res-cover--hero { width: min(100%, 320px); margin: 6px auto 8px; }
.res-tiles { display: grid; gap: 44px 40px; margin: 40px auto 0; max-width: 1040px; padding: 0; list-style: none; }
.res-tiles--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.res-tiles--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 880px; }
.res-tiles li { text-align: center; }
.res-tiles a { display: block; color: inherit; }
.res-tiles a:hover h3 { color: var(--red-dark); }
.res-tiles h3 { margin: 0 auto; max-width: 22ch; font-size: 21px; font-weight: 480; line-height: 1.25; letter-spacing: -.024em; }
.res-tiles p { margin: 8px auto 0; max-width: 34ch; font-size: 14.5px; line-height: 1.55; color: var(--secondary); }
.res-tiles small { display: block; margin-top: 8px; font-size: 12.5px; color: #5c6675; }
.signal-card--mini { width: 44px; height: 30px; margin: 0 0 12px; border-radius: 7px; }
.signal-card--mini::before { height: 5px; border-radius: 7px 7px 0 0; }
.res-signals h3 { margin-top: 0; }
@media (max-width: 900px) { .res-tiles--3, .res-tiles--2 { grid-template-columns: 1fr; gap: 36px; } }

.res h1 .nb { color: inherit; }

/* Availability statement under In Pinpoint, generated from content/platform.json */
.res-status{margin:18px 0 0;padding-top:14px;border-top:1px solid #e1e5ec;font-size:14px;line-height:1.6;color:#5c6675}.res-status strong{color:#26272d;font-weight:560}.res-status span{display:block;margin-top:4px;font-size:12px;color:#7a828f}
