/* LeadsACE explanatory components: shared by offer, specialty, mechanism and tier pages.
   Plain HTML structures that explain who does what. No imagery, no motion.
   xp-roles   responsibility matrix (table on desktop, stacked rows on phones)
   xp-scope   included vs separately scoped work
   xp-journey ordered steps with an owner per step
   xp-committee buying-committee map
   xp-next    what happens after the visitor books */
.xp{--xp-line:rgba(180,120,255,.2);--xp-ink:#D9BCFA;--xp-text:#EAE3F5;--xp-muted:#CFC5E0;--xp-panel:#140B21}
.xp-lede{max-width:70ch;margin:0 auto 34px;text-align:center;color:var(--xp-muted);font-size:17px;line-height:1.7}

/* responsibility matrix */
.xp-roles{width:100%;border-collapse:collapse;font-size:15.5px;line-height:1.55;color:var(--xp-text)}
.xp-roles caption{caption-side:bottom;text-align:left;padding-top:16px;font-size:14px;color:var(--xp-muted)}
.xp-roles th,.xp-roles td{padding:15px 14px;border-bottom:1px solid var(--xp-line);text-align:left;vertical-align:top}
.xp-roles thead th{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--xp-ink);font-weight:600}
.xp-roles tbody th{font-weight:600;width:28%}
.xp-roles td{color:var(--xp-muted)}
.xp-roles td.xp-own{color:var(--xp-text)}
.xp-roles td.xp-own:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--xp-ink);margin-right:9px;vertical-align:1px}
@media(max-width:760px){
 .xp-roles thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
 .xp-roles,.xp-roles tbody,.xp-roles tr,.xp-roles th,.xp-roles td{display:block;width:100%}
 .xp-roles tr{border-top:1px solid var(--xp-line);padding:16px 0}
 .xp-roles tbody th{border:0;padding:0 0 8px;font-size:17px}
 .xp-roles td{border:0;padding:4px 0}
 .xp-roles td:before{content:attr(data-role) ": ";color:var(--xp-ink);font-weight:600}
 .xp-roles td.xp-own:before{content:attr(data-role) ": ";display:inline;width:auto;height:auto;border-radius:0;background:none;margin:0}
 .xp-roles tbody th{width:100%}
 .xp-roles caption{display:block;width:100%}
}
/* wide matrices (4+ columns) stack earlier */
@media(min-width:761px) and (max-width:900px){
 .xp-roles.xp-wide thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
 .xp-roles.xp-wide,.xp-roles.xp-wide tbody,.xp-roles.xp-wide tr,.xp-roles.xp-wide th,.xp-roles.xp-wide td{display:block;width:100%}
 .xp-roles.xp-wide tr{border-top:1px solid var(--xp-line);padding:14px 0}
 .xp-roles.xp-wide td{border:0;padding:3px 0}
 .xp-roles.xp-wide td:before,.xp-roles.xp-wide td.xp-own:before{content:attr(data-role) ": ";display:inline;color:var(--xp-ink);font-weight:600;width:auto;height:auto;background:none;margin:0;border-radius:0}
}

/* included vs separate scope */
.xp-scope{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.xp-scope>div{border:1px solid var(--xp-line);border-radius:10px;padding:26px 28px;background:var(--xp-panel);min-width:0}
.xp-scope h3{font-size:22px;line-height:1.25;margin-bottom:6px}
.xp-scope>div>p{font-size:14.5px;color:var(--xp-muted);margin-bottom:16px}
.xp-scope ul{list-style:none;padding:0;display:grid;gap:11px}
.xp-scope li{font-size:15.5px;line-height:1.55;color:var(--xp-text);padding-left:22px;position:relative}
.xp-scope li:before{content:"";position:absolute;left:0;top:.62em;width:9px;height:9px;border-radius:2px;background:var(--xp-ink)}
.xp-scope .xp-optional li:before{background:none;border:1px solid var(--xp-ink)}
.xp-scope li small{display:block;font-size:13.5px;color:var(--xp-muted)}

/* journey with owners */
.xp-journey{list-style:none;padding:0;display:grid;grid-template-columns:repeat(var(--xp-steps,5),minmax(0,1fr));gap:14px;counter-reset:xp}
.xp-journey li{counter-increment:xp;border:1px solid var(--xp-line);border-radius:10px;padding:18px 16px 16px;background:var(--xp-panel);position:relative;min-width:0;display:flex;flex-direction:column;gap:8px}
.xp-journey li:before{content:counter(xp,decimal-leading-zero);font-family:var(--f-mono);font-size:12px;color:var(--xp-ink)}
.xp-journey li:not(:last-child):after{content:"";position:absolute;right:-12px;top:50%;width:10px;height:1px;background:var(--xp-ink)}
.xp-journey strong{font-size:16.5px;line-height:1.3;color:var(--text)}
.xp-journey span{font-size:14px;line-height:1.5;color:var(--xp-muted)}
.xp-journey em{font-style:normal;margin-top:auto;padding-top:10px;border-top:1px dashed var(--xp-line);font-size:12.5px;letter-spacing:.04em;color:var(--xp-ink)}
.xp-journey li.xp-clinical{border-style:dashed}
@media(max-width:900px){.xp-journey{grid-template-columns:1fr}.xp-journey li:not(:last-child):after{right:auto;left:28px;top:auto;bottom:-15px;width:1px;height:14px}}

/* buying committee */
.xp-committee{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.xp-committee>div{border:1px solid var(--xp-line);border-radius:10px;padding:18px 18px 16px;background:var(--xp-panel);min-width:0}
.xp-committee b{display:block;font-size:16.5px;color:var(--text);margin-bottom:4px}
.xp-committee span{display:block;font-size:14px;line-height:1.5;color:var(--xp-muted)}
.xp-committee .xp-center{grid-column:1/-1;text-align:center;border-color:var(--xp-ink);background:#1D1030}
@media(max-width:760px){.xp-committee{grid-template-columns:1fr}}

/* after booking */
.xp-next{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;counter-reset:xpn}
.xp-next li{counter-increment:xpn;border-top:2px solid var(--xp-ink);padding-top:16px;min-width:0}
.xp-next li:before{content:counter(xpn);font-family:var(--f-display);font-size:30px;line-height:1;color:var(--xp-ink);display:block;margin-bottom:10px}
.xp-next strong{display:block;font-size:17px;line-height:1.3;margin-bottom:8px}
.xp-next span{display:block;font-size:15px;line-height:1.6;color:var(--xp-muted)}
@media(max-width:900px){.xp-next{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.xp-next{grid-template-columns:1fr}}
@media(max-width:760px){.xp-scope{grid-template-columns:1fr}.xp-scope>div{padding:22px 20px}}
.xp-scope small a,.xp-scope li a{color:#D9BCFA;text-decoration:underline;text-underline-offset:3px}
