/* /outreach: tabs, script cards, objection cards, the 21-day rail. Shared pieces live in throne.css. */

.ph { display: inline; padding: 0 3px; border-radius: 3px; background: #F7EEDC; color: #6F5719; font-weight: 600; white-space: nowrap; }
.ph-box { margin: 0 0 22px; max-width: 640px; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--paper); }
.ph-box summary { cursor: pointer; padding: 10px 14px; font: 600 .92rem/1.4 var(--display); color: var(--navy-700); min-height: 44px; display: flex; align-items: center; }
.ph-box dl { margin: 0; padding: 0 14px 14px; display: grid; gap: 8px; }
.ph-box dl div { display: grid; grid-template-columns: minmax(0, 8.5rem) minmax(0, 1fr); gap: 10px; align-items: baseline; font-size: .92rem; }
.ph-box dt, .ph-box dd { margin: 0; }

/* Tabs */
.tabbar { position: sticky; top: 0; z-index: 5; background: var(--shell); padding: 8px 0 0; margin: 0 0 24px; border-bottom: 2px solid var(--line); }
.tablist { display: flex; gap: 4px; overflow-x: auto; }
.tab { flex: 1 1 0; min-width: 0; display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 8px 14px; background: transparent; border: 0; border-bottom: 4px solid transparent; margin-bottom: -2px; color: var(--ink-soft); font: 600 1rem/1.2 var(--display); cursor: pointer; border-radius: var(--r-sm) var(--r-sm) 0 0; }
.tab:hover { color: var(--navy-700); background: #fff; }
.tab[aria-selected="true"] { color: var(--navy-700); border-bottom-color: var(--gold-500); background: #fff; }
.tab-count { font: 600 .78rem/1 var(--body); padding: 4px 8px; border-radius: 999px; background: #EEF2F7; color: var(--ink-soft); }
.tab[aria-selected="true"] .tab-count { background: var(--navy-700); color: #fff; }
.tabpanel:focus-visible { outline-offset: 6px; }
@media (max-width: 479px) { .tab { padding: 8px 6px; gap: 6px; font-size: .95rem; } .tab-count { display: none; } }
@media (min-width: 640px) { .tab { flex: 0 0 auto; min-width: 11rem; } }

.stack-cards { display: grid; gap: 22px; }
.stack-cards > p { margin: 0; }

.card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.card-head h3 { margin: 0 0 4px; }
.card-head > .btn { flex: none; }
@media (max-width: 480px) { .card-head { flex-direction: column; } }

/* Call scripts: one row per stage of the call */
.call { padding: 0; overflow: hidden; border-left: 4px solid var(--gold-500); }
.call .card-head { padding: 20px 20px 0; }
.who { margin: 0 0 6px; font-size: .95rem; }
.roles { margin: 0; font-size: .92rem; }
.steps-list { display: grid; }
.step { display: grid; grid-template-columns: 1fr; gap: 6px 24px; padding: 16px 20px; border-top: 1px solid var(--line); }
.step:first-child { border-top: 0; }
.step-label h4 { margin: 0; font-size: .98rem; color: var(--navy-700); }
.step-hint { display: block; font-size: .8rem; color: var(--ink-soft); }
.step-body > :last-child { margin-bottom: 0; }
.say { margin: 0; max-width: 68ch; font-size: 1.02rem; line-height: 1.6; }
.ask { margin-top: 12px; font-weight: 500; color: var(--navy-700); }
.qs { margin: 0; padding-left: 1.2rem; max-width: 68ch; display: grid; gap: 8px; }
.linkrow { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 10px; font-size: .9rem; }
@media (min-width: 820px) {
  .step { grid-template-columns: 10.5rem minmax(0, 1fr); }
}
.steps-list.tight .step { padding: 10px 0; grid-template-columns: 1fr; }
.steps-list.tight .step-label h4 { font-size: .85rem; }
@media (min-width: 820px) { .steps-list.tight .step { grid-template-columns: 5rem minmax(0, 1fr); } }

/* Objections */
.obj-grid { display: grid; gap: 18px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); }
.obj { display: flex; flex-direction: column; }
.obj .quote { font-size: 1.08rem; line-height: 1.35; font-weight: 600; }
.obj .say { font-size: .98rem; }

/* 21-day rail */
.rail { background: var(--navy-900); color: #fff; border-radius: var(--r-lg); padding: 26px clamp(18px, 4vw, 40px) 8px; }
.rail-track { list-style: none; position: relative; margin: 8px 20px 44px; padding: 0; height: 4px; background: rgba(227, 196, 124, .35); border-radius: 2px; }
.rail-track li { position: absolute; top: 50%; transform: translate(-50%, -50%); }
.rail-track a { display: grid; justify-items: center; gap: 6px; color: #fff; text-decoration: none; }
.dot { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; font: 700 .85rem/1 var(--display); border: 2px solid var(--navy-900); }
.dot-label { position: absolute; top: 40px; font-size: .78rem; color: #CBD6E6; }
.rail-track a:hover .dot { box-shadow: 0 0 0 3px rgba(227, 196, 124, .6); }
.rail-track a:focus-visible { outline-offset: 6px; }
.ch-email .dot, .day.ch-email { background: var(--gold-500); color: var(--navy-900); }
.ch-call .dot, .day.ch-call { background: #fff; color: var(--navy-700); }
.ch-linkedin .dot, .day.ch-linkedin { background: var(--navy-600); color: #fff; box-shadow: inset 0 0 0 2px var(--gold-400); }
@media (max-width: 639px) { .rail { display: none; } }

/* Touch cards */
.touches { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; position: relative; }
.touches > li > .card { scroll-margin-top: 80px; }
.touch-title { display: flex; gap: 14px; align-items: center; min-width: 0; }
.day { flex: none; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; font: 700 1.25rem/1 var(--display); border: 2px solid var(--navy-700); }
.day small { display: block; font: 600 .62rem/1 var(--body); margin-bottom: 2px; opacity: .8; }
.subject { margin: 2px 0 0; font-size: .95rem; }
.email-body { white-space: pre-line; max-width: 62ch; font-size: 1rem; line-height: 1.6; padding: 14px 16px; background: #F8FAFC; border: 1px solid var(--line); border-radius: var(--r-sm); margin: 0; overflow-wrap: anywhere; }
.count { margin: 8px 0 0; font-size: .85rem; }
.vm { margin-top: 16px; padding-top: 14px; border-top: 1px dashed var(--line-strong); }
.vm-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 6px; }
.vm-head h4 { margin: 0; font-size: .95rem; }
@media (max-width: 480px) { .day { width: 48px; height: 48px; font-size: 1.1rem; } }
