/* Product tour (/product/) and Security (/security/). Shared by both pages. Prefix: pt- (product), sec- (security). */

/* ---------- Shared small bits ---------- */
.pt-h4 { font-size: var(--fs-lg); font-weight: 600; letter-spacing: -.005em; margin-bottom: .5rem; }
.page-product .cta-band a:not(.btn), .page-security .cta-band a:not(.btn) { color: var(--signal); }
.pt-hero .text-green, .sec-hero .text-green, .pt-hero .eyebrow, .sec-hero .eyebrow { color: var(--signal); }
.pt-hero .btn--ghost, .sec-hero .btn--ghost { --btn-fg: #fff; --btn-bd: rgba(255, 255, 255, .3); }
.pt-hero .btn--ghost:hover, .sec-hero .btn--ghost:hover { --btn-bd: var(--signal); }

/* Breadcrumb */
.pt-crumbs { margin-bottom: var(--space-5); font-size: var(--fs-xs); }
.pt-crumbs ol { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .4rem; color: #A9BDB8; }
.pt-crumbs li + li::before { content: "/"; margin-inline-end: .4rem; opacity: .6; }
.pt-crumbs a { color: #C7D8D3; text-decoration: none; }
.pt-crumbs a:hover { color: var(--signal); text-decoration: underline; }
.pt-crumbs [aria-current] { color: #fff; }

/* ---------- Product hero ---------- */
.pt-hero { padding-bottom: clamp(3rem, 2rem + 4vw, 5rem); }
.pt-hero__text { max-width: 860px; }
.pt-hero h1 { font-size: clamp(2rem, 1.4rem + 2.8vw, 3.6rem); }
.pt-hero__ctas { margin-top: var(--space-6); }
.pt-hero__note { color: #A9BDB8; margin-top: var(--space-4); }
.pt-hero__note a { color: var(--signal); }
.pt-hero__shot { margin-top: clamp(2rem, 1.5rem + 3vw, 3.5rem); }
.pt-hero__frame { border: 1px solid var(--line-dark); box-shadow: var(--shadow-lg), 0 0 0 6px rgba(43, 212, 143, .06); }
.pt-hero__shot figcaption { color: #8FA8A2; }
/* On small screens the wide strip becomes unreadable: show its left half (Reva and the summary) larger. */
@media (max-width: 599px) {
  .pt-hero__frame img { width: 165%; max-width: none; }
}
.pt-hero__points { list-style: none; padding: 0; margin: var(--space-5) 0 0; display: flex; flex-wrap: wrap; gap: .6rem 1.5rem; color: #C7D8D3; font-size: var(--fs-sm); }
.pt-hero__points li { display: inline-flex; align-items: center; gap: .45rem; }
.pt-hero__points .icon { color: var(--signal); }

/* ---------- Chapter nav (sticky, scroll-spy) ---------- */
.pt-chapters { position: sticky; top: var(--header-h); z-index: 50; background: rgba(255, 255, 255, .94); backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid var(--line); transition: box-shadow .2s; }
.pt-chapters.is-stuck { box-shadow: 0 10px 24px -18px rgba(11, 31, 36, .45); }
.pt-chapters__sentinel { height: 1px; margin-bottom: -1px; }
.pt-chapters__list { list-style: none; margin: 0; padding: .55rem 0; display: flex; gap: .35rem; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.pt-chapters__list::-webkit-scrollbar { display: none; }
.pt-chapters__list li { flex: none; }
.pt-chapters__list a { display: inline-flex; align-items: center; min-height: 36px; padding: .35rem .85rem; border-radius: var(--radius-pill); font-size: var(--fs-sm); font-weight: 500; color: var(--slate); text-decoration: none; white-space: nowrap; transition: background-color .15s, color .15s; }
.pt-chapters__list a:hover { background: var(--mist); color: var(--midnight); }
.pt-chapters__list a.is-active { background: var(--midnight); color: #fff; }
html { scroll-padding-top: calc(var(--header-h) + 64px); }

/* ---------- Story intro ---------- */
.pt-story h2 { margin-top: .25rem; }
.pt-story .chapter-num { justify-content: center; }

/* ---------- Stepper ---------- */
.pt-stepper { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-xl); box-shadow: var(--shadow); padding: clamp(1rem, .6rem + 2vw, 2.25rem); }
.pt-stepper__top { position: relative; }
.pt-stepper__progress { position: absolute; top: 21px; inset-inline: 10%; height: 4px; border-radius: 4px; background: var(--mist); }
.pt-stepper__fill { display: block; height: 100%; width: calc(var(--p, 0) * 100%); background: linear-gradient(90deg, var(--green), var(--signal)); border-radius: inherit; transition: width .6s var(--ease); }
.pt-stepper__tabs { display: grid; grid-template-columns: repeat(5, 1fr); gap: .25rem; position: relative; margin-bottom: clamp(1.25rem, 1rem + 1.5vw, 2.25rem); }
.pt-stepper__tab { all: unset; box-sizing: border-box; display: flex; flex-direction: column; align-items: center; gap: .45rem; cursor: pointer; padding: 0 .1rem .25rem; border-radius: 12px; text-align: center; min-height: 44px; }
.pt-stepper__tab:focus-visible { box-shadow: var(--focus); }
.pt-stepper__num { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; font: 700 1.05rem var(--font-display); background: #fff; color: var(--slate); border: 2px solid var(--line); transition: background-color .3s, color .3s, border-color .3s, transform .3s var(--ease); }
.pt-stepper__label { font-weight: 600; font-size: var(--fs-sm); color: var(--slate); }
.pt-stepper__tab.is-done .pt-stepper__num { background: var(--mist); border-color: var(--green); color: var(--deep); }
.pt-stepper__tab[aria-selected="true"] .pt-stepper__num { background: var(--deep); border-color: var(--deep); color: #fff; transform: scale(1.08); box-shadow: 0 0 0 6px rgba(18, 160, 108, .15); }
.pt-stepper__tab[aria-selected="true"] .pt-stepper__label { color: var(--midnight); }
.pt-stepper__tab:hover .pt-stepper__num { border-color: var(--deep); }
.pt-stepper.is-playing .pt-stepper__tab[aria-selected="true"] .pt-stepper__num { animation: ptPulse 1.9s ease-out infinite; }
@keyframes ptPulse { 0% { box-shadow: 0 0 0 0 rgba(18, 160, 108, .35); } 100% { box-shadow: 0 0 0 14px rgba(18, 160, 108, 0); } }
@media (max-width: 480px) {
  .pt-stepper__num { width: 38px; height: 38px; font-size: .95rem; }
  .pt-stepper__progress { top: 17px; }
  .pt-stepper__label { font-size: .75rem; }
}
.pt-step { display: grid; gap: clamp(1.25rem, 1rem + 2vw, 3rem); align-items: center; }
@media (min-width: 900px) { .pt-step { grid-template-columns: 1fr 1.05fr; } }
.pt-step:focus-visible { border-radius: var(--radius); }
/* Stack the five step panels in one grid cell (JS adds .is-stable once the tabs are wired) so the section
   keeps the height of the tallest step: no layout shift below it while the tour advances on its own. */
.pt-stepper__tabs-wrap.is-stable { display: grid; }
.pt-stepper__tabs-wrap.is-stable > .pt-stepper__tabs { grid-row: 1; grid-column: 1; }
.pt-stepper__tabs-wrap.is-stable > .pt-step { grid-row: 2; grid-column: 1; align-content: start; }
/* !important only to beat the global [hidden] { display: none !important } in site.css; visibility keeps it out of focus and the a11y tree. */
.pt-stepper__tabs-wrap.is-stable > .pt-step[hidden] { display: grid !important; visibility: hidden; animation: none; }
.pt-step__kicker { font-family: var(--font-mono); font-size: var(--fs-xs); letter-spacing: .1em; text-transform: uppercase; color: var(--deep); margin-bottom: .4rem; }
.pt-step__text .list-check { margin-top: var(--space-4); }
.pt-step__mock { min-width: 0; }
.pt-stepper__controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin-top: var(--space-6); padding-top: var(--space-5); border-top: 1px solid var(--line); }
.pt-stepper__status { margin: 0; flex: 1 1 140px; text-align: center; }
.pt-stepper__pause { flex-basis: 100%; background: transparent; border: 0; color: var(--deep); font: 600 var(--fs-sm) var(--font-text); cursor: pointer; text-decoration: underline; text-underline-offset: .18em; padding: .5rem; min-height: 44px; }
@media (min-width: 640px) { .pt-stepper__pause { flex-basis: auto; order: 4; } }
.pt-stepper__controls .btn[disabled] { opacity: .45; cursor: not-allowed; }

/* Mock pieces inside .window */
.window .pt-ex { margin-inline-start: auto; margin-bottom: 0; }
.window .window__body { min-width: 0; }
.pt-src { display: grid; grid-template-columns: auto 1fr auto; gap: .75rem; align-items: center; padding: .7rem .85rem; border-radius: 12px; border: 1px solid var(--line-dark); background: rgba(255, 255, 255, .03); }
.pt-src strong { color: #fff; }
.pt-src__icon { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; font: 600 .7rem var(--font-mono); background: rgba(255, 255, 255, .08); color: #C7D8D3; }
.pt-src__state { font-size: var(--fs-xs); color: #8FA8A2; }
.pt-src.is-on { border-color: rgba(43, 212, 143, .5); background: rgba(43, 212, 143, .08); }
.pt-src.is-on .pt-src__icon { background: rgba(43, 212, 143, .18); color: var(--signal); }
.pt-src.is-on .pt-src__state { color: var(--signal); font-weight: 600; }
.window .opp { min-width: 0; }
.window .opp > span:nth-child(2) { min-width: 0; }
@media (max-width: 480px) {
  .window .opp { grid-template-columns: auto 1fr; }
  .window .opp .opp__amount { grid-column: 2; }
}
.pt-draft { gap: .35rem; }
.pt-draft__row { margin: 0; padding-bottom: .45rem; border-bottom: 1px solid var(--line-dark); color: #fff; overflow-wrap: anywhere; }
.pt-draft__row span { display: inline-block; min-width: 4.5rem; color: #8FA8A2; font-size: var(--fs-xs); }
.pt-draft__body { padding-top: .5rem; color: #E6EFEC; }
.pt-draft__body p { margin-bottom: .6em; }
.pt-draft__body .amount { color: var(--gold); }
.pt-draft__tone { margin: .25rem 0 0; font-size: var(--fs-xs); color: var(--signal); }
.pt-mini-approve { padding: 1rem; border-radius: 14px; background: rgba(255, 255, 255, .04); border: 1px solid rgba(242, 181, 68, .35); }
.pt-mini-approve p { margin-bottom: .6rem; }
.pt-mini-approve__line { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; padding: .6rem .75rem; border-radius: 10px; background: rgba(255, 255, 255, .05); font-family: var(--font-mono); font-size: var(--fs-xs); }
.pt-mini-approve__btns { display: flex; flex-wrap: wrap; gap: .5rem; }
.pt-fake-btn { display: inline-flex; align-items: center; gap: .45rem; padding: .5rem .9rem; border-radius: var(--radius-pill); background: rgba(255, 255, 255, .08); color: #E6EFEC; font-weight: 600; font-size: var(--fs-sm); }
.pt-fake-btn--go { background: var(--deep); color: #fff; }
.pt-fake-btn kbd, .pt-demo kbd, .pt-chat kbd { background: transparent; border-color: currentColor; color: inherit; font-size: .75em; }
.pt-funnel { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; }
.pt-funnel li { display: grid; grid-template-columns: 4.5rem 1fr auto; gap: .75rem; align-items: center; font-size: var(--fs-sm); color: #8FA8A2; }
.pt-funnel li.is-on { color: #fff; }
.pt-funnel__bar { height: 10px; border-radius: 10px; background: rgba(255, 255, 255, .08); position: relative; overflow: hidden; }
.pt-funnel__bar::after { content: ""; position: absolute; inset-block: 0; inset-inline-start: 0; width: var(--w, 0%); background: linear-gradient(90deg, var(--green), var(--signal)); border-radius: inherit; }
.pt-funnel .mono { font-size: var(--fs-xs); }
.pt-recovered { margin-top: .5rem; padding: .85rem 1rem; border-radius: 12px; background: rgba(242, 181, 68, .08); border: 1px dashed rgba(242, 181, 68, .45); display: grid; gap: .2rem; }
.pt-recovered__value { color: var(--gold); font-weight: 600; }

/* ---------- Leak types ---------- */
.pt-leaks { display: grid; gap: clamp(1rem, .8rem + 1.5vw, 2rem); }
@media (min-width: 980px) { .pt-leaks { grid-template-columns: minmax(280px, .8fr) 1.6fr; align-items: start; } }
.pt-leaks__list { display: grid; gap: .6rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); }
@media (min-width: 980px) { .pt-leaks__list { grid-template-columns: 1fr; } }
.pt-leak { all: unset; box-sizing: border-box; cursor: pointer; display: grid; grid-template-columns: auto 1fr; gap: .2rem .8rem; align-items: center; padding: .9rem 1rem; border-radius: var(--radius); border: 1.5px solid var(--line); background: #fff; transition: border-color .2s, box-shadow .2s, transform .2s var(--ease); min-height: 44px; }
.pt-leak:hover { border-color: #B7CEC6; transform: translateY(-2px); }
.pt-leak:focus-visible { box-shadow: var(--focus); }
.pt-leak[aria-selected="true"] { border-color: var(--deep); box-shadow: 0 0 0 3px rgba(18, 160, 108, .14), var(--shadow); }
.pt-leak__icon { grid-row: span 2; }
.pt-leak .opp__type--quote { background: #FCEFD3; color: #6B4A06; }
.pt-leak .opp__type--overdue { background: #FBE6D3; color: #8A4510; }
.pt-leak .opp__type--dormant { background: #E3ECF8; color: #24497F; }
.pt-leak .opp__type--renewal { background: #DDF5EA; color: #075E3F; }
.pt-leak .opp__type--lead { background: var(--mist); color: var(--midnight); }
.pt-leak__name { font-weight: 600; color: var(--midnight); line-height: 1.25; }
.pt-leak__desc { font-size: var(--fs-xs); color: var(--slate); line-height: 1.4; }
@media (max-width: 559px) {
  .pt-leak { grid-template-columns: 1fr; padding: .8rem; }
  .pt-leak__icon { grid-row: auto; }
}
.pt-evidence { background: var(--midnight); color: #E6EFEC; border-radius: var(--radius-xl); padding: clamp(1.25rem, 1rem + 1.5vw, 2.25rem); box-shadow: var(--shadow-lg); display: grid; gap: 1rem; min-width: 0; }
.pt-evidence:focus-visible { box-shadow: var(--focus), var(--shadow-lg); }
.pt-evidence__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: .5rem 1rem; }
.pt-evidence__type { margin: 0 0 .35rem; font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .1em; color: var(--signal); font-weight: 600; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.pt-evidence__type .badge { margin: 0; letter-spacing: .02em; text-transform: none; }
.pt-evidence__title { color: #fff; margin: 0; font-size: clamp(1.15rem, 1rem + .6vw, 1.45rem); }
.pt-evidence__amount { margin: 0; font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem); color: var(--gold); }
.pt-evidence__amount--muted { color: #A9BDB8; font-size: var(--fs-lg); }
.pt-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; margin: 0; }
.pt-metrics > div { background: rgba(255, 255, 255, .05); border: 1px solid var(--line-dark); border-radius: 12px; padding: .7rem .8rem; min-width: 0; }
.pt-metrics dt { font-size: var(--fs-xs); color: #8FA8A2; line-height: 1.3; }
.pt-metrics dd { margin: .25rem 0 0; font-weight: 600; color: #fff; display: grid; gap: .4rem; }
.pt-metrics dd .mono { font-size: 1.25rem; }
.pt-meter { display: block; height: 6px; border-radius: 6px; background: rgba(255, 255, 255, .1); position: relative; overflow: hidden; }
.pt-meter::after { content: ""; position: absolute; inset-block: 0; inset-inline-start: 0; width: var(--w, 0%); background: var(--signal); border-radius: inherit; }
.pt-meter--conf::after { background: var(--gold); }
.pt-evidence.is-animating .pt-meter::after { animation: ptGrow .9s var(--ease) both; }
.pt-evidence.is-animating .pt-rows tbody tr { animation: fadeUp .45s var(--ease) both; }
.pt-evidence.is-animating .pt-rows tbody tr:nth-child(2) { animation-delay: .08s; }
.pt-evidence.is-animating .pt-rows tbody tr:nth-child(3) { animation-delay: .16s; }
@keyframes ptGrow { from { width: 0; } }
@media (max-width: 420px) { .pt-metrics { grid-template-columns: 1fr 1fr; } .pt-metrics > div:first-child { grid-column: span 2; } }
.pt-evidence__reason { margin: 0; color: #C7D8D3; }
.pt-evidence__reason strong, .pt-evidence__action strong { color: #fff; }
.pt-rows { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.pt-rows th { text-align: start; font-size: var(--fs-xs); color: #8FA8A2; font-weight: 600; padding: .4rem .6rem; border-bottom: 1px solid var(--line-dark); }
.pt-rows td { padding: .6rem; border-bottom: 1px dashed var(--line-dark); vertical-align: top; color: #E6EFEC; }
.pt-rows td:first-child { color: var(--signal); font-weight: 600; white-space: nowrap; }
@media (max-width: 559px) {
  .pt-rows thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .pt-rows, .pt-rows tbody, .pt-rows tr, .pt-rows td { display: block; }
  .pt-rows tr { padding: .55rem 0; border-bottom: 1px dashed var(--line-dark); }
  .pt-rows td { border: 0; padding: .1rem 0; }
}
.pt-evidence__action { margin: 0; padding: .9rem 1rem; border-radius: 12px; background: rgba(43, 212, 143, .08); border: 1px solid rgba(43, 212, 143, .3); color: #C7D8D3; }
.pt-ready { display: inline-flex; align-items: center; gap: .35rem; margin-inline-start: .25rem; padding: .1rem .6rem; border-radius: var(--radius-pill); background: var(--signal); color: var(--midnight); font-size: var(--fs-xs); font-weight: 700; white-space: nowrap; }

/* ---------- Connect ---------- */
.pt-finder { margin-bottom: var(--space-6); background: #fff; }
.pt-finder__title { font-size: var(--fs-lg); margin-bottom: var(--space-4); }
.pt-finder__qs { display: grid; gap: var(--space-5); }
@media (min-width: 860px) { .pt-finder__qs { grid-template-columns: 1fr 1fr; } }
.pt-finder__q { border: 0; padding: 0; margin: 0; min-width: 0; }
.pt-finder__q legend { font-weight: 600; font-size: var(--fs-sm); margin-bottom: .6rem; padding: 0; }
.pt-finder__opts { display: flex; flex-wrap: wrap; gap: .5rem; }
.pt-opt { position: relative; display: inline-flex; cursor: pointer; }
.pt-opt input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.pt-opt span { display: inline-flex; align-items: center; min-height: 44px; padding: .5rem 1rem; border-radius: var(--radius-pill); border: 1.5px solid var(--line); font-size: var(--fs-sm); font-weight: 500; background: #fff; transition: border-color .15s, background-color .15s, color .15s; }
.pt-opt:hover span { border-color: var(--deep); }
.pt-opt input:checked + span { background: var(--midnight); border-color: var(--midnight); color: #fff; }
.pt-opt input:focus-visible + span { box-shadow: var(--focus); }
.pt-finder__result { margin: var(--space-5) 0 0; padding: .9rem 1rem; border-radius: 12px; background: var(--mist-2); border: 1px solid var(--line); font-size: var(--fs-sm); }
.pt-route { display: flex; flex-direction: column; gap: .5rem; }
.pt-route h3 { margin: 0; }
.pt-route .card__icon { margin-bottom: .25rem; }
.pt-route .badge { align-self: flex-start; margin-bottom: .25rem; }
.pt-route .list-check { margin: 0; }
.pt-route .stack-sm { margin-top: auto; }
.pt-route.is-recommended { border-color: var(--deep); box-shadow: 0 0 0 3px rgba(18, 160, 108, .18), var(--shadow); }
.pt-route__pick { order: -1; align-self: flex-start; margin: 0; padding: .2rem .7rem; border-radius: var(--radius-pill); background: var(--deep); color: #fff; font-size: var(--fs-xs); font-weight: 600; }

/* ---------- Approval demo (dark by default, --light variant for white sections) ---------- */
.pt-demo { background: var(--midnight-2); border: 1px solid var(--line-dark); border-radius: var(--radius-xl); padding: clamp(1rem, .8rem + 1.2vw, 1.75rem); box-shadow: var(--shadow-lg); color: #E6EFEC; display: grid; gap: 1rem; min-width: 0; }
.pt-demo:focus-visible { box-shadow: 0 0 0 3px var(--midnight), 0 0 0 6px var(--signal); border-radius: var(--radius-xl); }
.pt-demo--light { background: var(--midnight); }
.pt-demo__bar { display: flex; justify-content: space-between; align-items: center; gap: .75rem; }
.pt-demo__title { margin: 0; font-size: var(--fs-lg); color: #fff; }
.pt-demo__bar .badge { margin: 0; }
.pt-demo__help { margin: 0; color: #A9BDB8; }
.pt-demo__card { position: relative; padding: 1.1rem; border-radius: 18px; background: linear-gradient(135deg, rgba(242, 181, 68, .1), rgba(255, 255, 255, .03) 55%); border: 1px solid rgba(242, 181, 68, .35); transition: opacity .3s var(--ease), transform .3s var(--ease); }
.pt-demo__card.is-out { opacity: 0; transform: translateX(24px); }
.pt-demo__card.is-refused { animation: ptShake .45s ease; border-color: #FF9D94; }
@keyframes ptShake { 0%, 100% { transform: none; } 20% { transform: translateX(-6px); } 40% { transform: translateX(6px); } 60% { transform: translateX(-4px); } 80% { transform: translateX(4px); } }
.pt-demo__count { margin: 0 0 .25rem; color: #8FA8A2; font-family: var(--font-mono); }
.pt-demo__who { margin: 0 0 .6rem; font-weight: 600; color: #fff; font-size: var(--fs-lg); }
.pt-demo__state { font-weight: 400; font-size: var(--fs-sm); color: #A9BDB8; }
.pt-demo__state::before { content: ""; display: inline-block; width: .5rem; height: .5rem; border-radius: 50%; background: var(--gold); margin-inline-end: .35rem; vertical-align: .1em; }
.pt-demo__line { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .4rem 1rem; margin: 0 0 .5rem; padding: .7rem .85rem; border-radius: 12px; background: rgba(255, 255, 255, .05); font-family: var(--font-mono); font-size: var(--fs-sm); }
.pt-demo__amt { color: var(--gold); }
.pt-demo__why { margin: 0 0 .75rem; color: #A9BDB8; }
.pt-demo__draft { margin: 0 0 .85rem; padding: .85rem 1rem; border-radius: 12px; background: rgba(255, 255, 255, .06); border-inline-start: 3px solid var(--signal); font-size: var(--fs-sm); }
.pt-demo__draft p { margin-bottom: .5em; }
.pt-demo__btns { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.pt-demo__btn { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: .55rem 1.1rem; border-radius: var(--radius-pill); border: 0; background: rgba(255, 255, 255, .1); color: #fff; font: 600 var(--fs-sm) var(--font-text); cursor: pointer; transition: background-color .15s, transform .15s; }
.pt-demo__btn:hover { background: rgba(255, 255, 255, .18); }
/* Deep Green, not Recover Green: white 15px labels need 4.5:1 (5.7:1 here). */
.pt-demo__btn--go { background: var(--deep); color: #fff; }
.pt-demo__btn--go:hover { background: var(--deep-2); }
.pt-demo__btn--text { background: transparent; color: #C7D8D3; }
.pt-demo__btn.is-pressed { transform: scale(.94); }
.pt-demo__bypass { margin-top: .85rem; background: transparent; border: 1px dashed rgba(255, 157, 148, .55); color: #FFB3AC; border-radius: var(--radius-pill); padding: .45rem .9rem; min-height: 44px; font: 500 var(--fs-xs) var(--font-text); cursor: pointer; }
.pt-demo__bypass:hover { background: rgba(255, 157, 148, .1); }
.pt-demo__done { padding: 1.1rem; border-radius: 18px; background: rgba(43, 212, 143, .08); border: 1px solid rgba(43, 212, 143, .4); }
.pt-demo__done .btn--ghost { --btn-fg: #fff; --btn-bd: rgba(255, 255, 255, .3); }
.pt-demo__logwrap { border-top: 1px solid var(--line-dark); padding-top: .75rem; }
.pt-demo__logtitle { margin: 0 0 .4rem; text-transform: uppercase; letter-spacing: .1em; color: #8FA8A2; font-weight: 600; }
.pt-demo__log { list-style: none; padding: 0; margin: 0; display: grid; gap: .35rem; max-height: 9.5rem; overflow-y: auto; font-size: var(--fs-xs); }
.pt-demo__log-empty { color: #8FA8A2; }
.pt-demo__entry { padding: .45rem .6rem; border-radius: 8px; background: rgba(255, 255, 255, .04); animation: fadeUp .3s var(--ease); color: #E6EFEC; }
.pt-demo__entry .mono { color: #8FA8A2; margin-inline-end: .25rem; }
.pt-demo__entry--ok { border-inline-start: 3px solid var(--signal); }
.pt-demo__entry--no { border-inline-start: 3px solid #A9BDB8; }
.pt-demo__entry--refused { border-inline-start: 3px solid #FF9D94; color: #FFD2CE; }

/* ---------- Companion screenshots ---------- */
.pt-shots__tabs { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: var(--space-5); }
.pt-shots figure, .pt-langshot figure { margin: 0; }
.pt-shots .media, .pt-langshot .media { border: 1px solid var(--line-dark); }
.pt-langshot .segmented { margin-bottom: var(--space-4); }
.pt-langshot .segmented [role="tab"] { min-height: 44px; }

/* ---------- Chat demo ---------- */
.pt-chat { background: var(--midnight); color: #E6EFEC; border-radius: var(--radius-xl); padding: clamp(1rem, .8rem + 1vw, 1.5rem); box-shadow: var(--shadow-lg); display: grid; gap: .85rem; min-width: 0; }
.pt-chat__bar { display: flex; justify-content: space-between; align-items: center; }
.pt-chat__bar .window__title { margin: 0; }
.pt-chat__bar .badge { margin: 0; }
.pt-chat__log { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; max-height: 22rem; overflow-y: auto; align-content: start; }
.pt-chat__msg { max-width: 88%; padding: .7rem .95rem; border-radius: 16px; font-size: var(--fs-sm); line-height: 1.5; animation: fadeUp .3s var(--ease); }
.pt-chat__msg p { margin: 0; }
.pt-chat__msg--me { justify-self: end; background: var(--deep); color: #fff; border-end-end-radius: 6px; }
.pt-chat__msg--reva { justify-self: start; background: rgba(255, 255, 255, .07); border: 1px solid var(--line-dark); border-end-start-radius: 6px; }
.pt-chat__msg--reva .amount { color: var(--gold); }
.pt-chat__msg.is-typing { color: #8FA8A2; font-style: italic; }
.pt-chat__qs { display: flex; flex-wrap: wrap; gap: .45rem; border-top: 1px solid var(--line-dark); padding-top: .85rem; }
.pt-chat__q { min-height: 44px; padding: .45rem .9rem; border-radius: var(--radius-pill); background: rgba(43, 212, 143, .1); border: 1px solid rgba(43, 212, 143, .35); color: var(--signal); font: 500 var(--fs-sm) var(--font-text); cursor: pointer; text-align: start; }
.pt-chat__q:hover { background: var(--signal); color: var(--midnight); }
.pt-chat__q:disabled { opacity: .5; cursor: default; background: transparent; color: #8FA8A2; border-color: var(--line-dark); }

/* ---------- Custom Skills ---------- */
.pt-skill { display: flex; flex-direction: column; gap: .25rem; }
.pt-skill p { margin: 0; }
.pt-skill__tag { font-family: var(--font-display); font-weight: 600; font-size: var(--fs-lg); color: var(--midnight); margin-bottom: .25rem !important; }
.pt-skill__eg { margin-top: .6rem !important; padding: .55rem .8rem; border-radius: 10px; background: var(--mist-2); border-inline-start: 3px solid var(--green); font-family: var(--font-mono); font-size: var(--fs-xs); color: var(--midnight); }
.pt-builder { background: var(--mist-2); border: 1px solid var(--line); border-radius: var(--radius-xl); padding: clamp(1.25rem, 1rem + 2vw, 2.5rem); }
.pt-builder h3 { margin-bottom: .25rem; }
.pt-builder__fallback { margin: var(--space-4) 0 0; padding: 1rem 1.25rem; border-radius: var(--radius); background: #fff; border: 1px dashed var(--line); color: var(--slate); font-size: var(--fs-sm); }

/* ---------- Coaching ---------- */
.pt-now-next { display: grid; gap: var(--space-5); grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); margin-top: var(--space-5); }
.pt-now-next__label { margin-bottom: .6rem; }
.pt-soon-list { padding-inline-start: 1.1rem; color: var(--slate); }
.pt-soon-list li { margin-bottom: .45rem; }
.pt-brief { min-width: 0; }
.pt-brief__tabs { margin-bottom: var(--space-4); }
.pt-brief__tabs [role="tab"] { min-height: 44px; }
.pt-brief__card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-xl); box-shadow: var(--shadow); padding: clamp(1.25rem, 1rem + 1.5vw, 2rem); position: relative; }
.pt-brief__card::before { content: ""; position: absolute; top: -1px; inset-inline: 2rem; height: 3px; border-radius: 0 0 3px 3px; background: linear-gradient(90deg, var(--green), var(--signal)); }
.pt-brief__hi { font-family: var(--font-display); font-weight: 600; font-size: var(--fs-lg); display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.pt-brief__hi .badge { margin: 0; }
.pt-brief__items { list-style: none; padding: 0; margin: 0 0 1rem; display: grid; gap: .1rem; }
.pt-brief__items li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .25rem 1rem; padding: .65rem 0; border-bottom: 1px dashed var(--line); font-size: var(--fs-sm); }
.pt-brief__items span { color: var(--slate); }
.pt-brief__items strong { color: var(--midnight); }

/* ---------- Missions ---------- */
.pt-mission__tag { font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .1em; font-weight: 600; color: var(--deep); display: flex; align-items: center; gap: .5rem; }
.pt-mission__tag .badge { margin: 0; text-transform: none; letter-spacing: 0; color: var(--slate); }
.pt-mission__steps { list-style: none; counter-reset: step; padding: 0; margin: .75rem 0 0; display: grid; gap: .5rem; }
.pt-mission__steps li { counter-increment: step; display: grid; grid-template-columns: 1.75rem 1fr; gap: .6rem; align-items: start; font-size: var(--fs-sm); }
.pt-mission__steps li::before { content: counter(step); width: 1.75rem; height: 1.75rem; border-radius: 50%; background: var(--mist); color: var(--deep); font: 700 .8rem var(--font-display); display: grid; place-items: center; }

/* ---------- Chips ---------- */
.pt-chips { list-style: none; padding: 0; margin: 0 0 var(--space-4); display: flex; flex-wrap: wrap; gap: .4rem; }
.pt-chips li { padding: .35rem .8rem; border-radius: var(--radius-pill); background: #fff; border: 1px solid var(--line); font-family: var(--font-mono); font-size: var(--fs-sm); font-weight: 500; }
.pt-chips li[lang="ar"] { font-family: var(--font-arabic); }
.pt-chips__more { font-family: var(--font-text) !important; color: var(--slate); background: transparent !important; border-style: dashed !important; }

/* ---------- Fit ---------- */
.pt-fit__item { display: flex; flex-direction: column; gap: .6rem; }
.pt-fit__item p { margin: 0; font-size: var(--fs-sm); }
.pt-fit__item p span { display: block; font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .1em; font-weight: 600; margin-bottom: .15rem; }
.pt-fit__stays span { color: var(--slate); }
.pt-fit__adds { padding-top: .6rem; border-top: 1px dashed var(--line); }
.pt-fit__adds span { color: var(--deep); }

/* ---------- CTA band form ---------- */
.pt-cta__form { background: rgba(255, 255, 255, .05); border: 1px solid var(--line-dark); border-radius: var(--radius-lg); padding: clamp(1.1rem, 1rem + 1vw, 1.75rem); min-width: 0; }
.pt-cta__offer { margin-bottom: .5rem; }
.pt-cta__offer .badge { margin: 0; }
.pt-cta__title { color: #fff; font-size: var(--fs-xl); margin-bottom: .75rem; }
.pt-cta__left { color: #A9BDB8; margin: .5rem 0 1rem; }
.pt-cta__left strong { color: #fff; }
.pt-cta__form .field__label { color: #E6EFEC; }
.pt-cta__form .checkbox { color: #C7D8D3; }
.cta-band .btn { white-space: normal; text-align: center; }

/* ================= Security page ================= */
.sec-hero h1 { font-size: clamp(2rem, 1.4rem + 2.6vw, 3.5rem); }
.sec-checks { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; }
.sec-checks a { display: grid; grid-template-columns: auto 1fr; gap: .9rem; align-items: center; padding: .95rem 1.1rem; border-radius: var(--radius); background: rgba(255, 255, 255, .05); border: 1px solid var(--line-dark); color: #E6EFEC; text-decoration: none; transition: border-color .2s, background-color .2s, transform .2s var(--ease); }
.sec-checks a:hover { border-color: rgba(43, 212, 143, .5); background: rgba(43, 212, 143, .07); transform: translateX(3px); color: #fff; }
.sec-checks strong { color: #fff; }
.sec-checks__icon { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: rgba(43, 212, 143, .15); color: var(--signal); }
.sec-checks__icon svg { width: 20px; height: 20px; }
.sec-checks__sub { font-size: var(--fs-xs); color: #A9BDB8; }

.sec-flow { list-style: none; padding: 0; margin: 0; display: grid; gap: 1rem; grid-template-columns: 1fr; counter-reset: none; }
@media (min-width: 860px) { .sec-flow { grid-template-columns: repeat(3, 1fr); gap: 2.5rem; } }
.sec-flow__step { position: relative; background: var(--mist-2); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 1.5rem; }
.sec-flow__step p { margin: 0; }
.sec-flow__step--gate { background: #fff; border: 2px solid var(--deep); box-shadow: var(--shadow); }
.sec-flow__num { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--midnight); color: #fff; font: 700 1rem var(--font-display); margin-bottom: .75rem; }
.sec-flow__step--gate .sec-flow__num { background: var(--deep); }
@media (min-width: 860px) {
  .sec-flow__step:not(:last-child)::after { content: ""; position: absolute; top: 50%; inset-inline-end: -2.1rem; width: 1.7rem; height: 2px; background: var(--deep); }
  .sec-flow__step:not(:last-child)::before { content: ""; position: absolute; top: calc(50% - 5px); inset-inline-end: -2.15rem; width: 10px; height: 10px; border-top: 2px solid var(--deep); border-inline-end: 2px solid var(--deep); transform: rotate(45deg); }
  [dir="rtl"] .sec-flow__step:not(:last-child)::before { transform: rotate(-135deg); }
}

.sec-modes__tabs { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: var(--space-5); }
.sec-modes__tabs .tabs__tab { min-height: 44px; }
.sec-mode { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-xl); padding: clamp(1.25rem, 1rem + 1.5vw, 2.25rem); box-shadow: var(--shadow-sm); display: grid; gap: var(--space-6); }
.sec-mode__cols .list-check { margin: 0; }
.sec-mode__cols .btn { margin-top: .75rem; }
.sec-diagram { display: grid; gap: .75rem; grid-template-columns: 1fr; align-items: stretch; }
@media (min-width: 760px) { .sec-diagram { grid-template-columns: 1fr minmax(150px, .7fr) 1fr; align-items: center; } }
.sec-diagram__box { border-radius: var(--radius-lg); padding: 1rem 1.1rem; display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; min-height: 100px; align-content: center; }
.sec-diagram__box--you { background: var(--mist); border: 2px solid var(--deep); }
.sec-diagram__box--cloud { background: var(--midnight); color: #E6EFEC; }
.sec-diagram__label { flex-basis: 100%; font-family: var(--font-display); font-weight: 700; font-size: var(--fs-lg); }
.sec-diagram__box--cloud .sec-diagram__label { color: #fff; }
.sec-diagram__chip { padding: .25rem .65rem; border-radius: var(--radius-pill); background: #fff; border: 1px solid var(--line); font-size: var(--fs-xs); font-weight: 600; color: var(--midnight); }
.sec-diagram__box--cloud .sec-diagram__chip { background: rgba(255, 255, 255, .08); border-color: var(--line-dark); color: #E6EFEC; }
.sec-diagram__chip--ok { background: var(--deep); border-color: var(--deep); color: #fff; }
.sec-diagram__arrow { position: relative; display: grid; place-items: center; text-align: center; padding: 1.6rem .5rem; font-size: var(--fs-xs); font-weight: 600; color: var(--deep); }
.sec-diagram__arrow::before { content: ""; position: absolute; inset-inline-start: 50%; top: 0; bottom: 0; width: 2px; background: repeating-linear-gradient(180deg, var(--deep) 0 6px, transparent 6px 11px); background-size: 2px 22px; animation: secFlowY 1.2s linear infinite; }
.sec-diagram__arrow span { position: relative; background: #fff; padding: .25rem .6rem; border-radius: var(--radius-pill); border: 1px solid var(--line); }
@media (min-width: 760px) {
  .sec-diagram__arrow { padding: .5rem 0; }
  .sec-diagram__arrow::before { inset-inline: 0; top: 50%; bottom: auto; width: auto; height: 2px; background: repeating-linear-gradient(90deg, var(--deep) 0 6px, transparent 6px 11px); background-size: 22px 2px; animation-name: secFlowX; }
}
@keyframes secFlowY { to { background-position: 0 22px; } }
@keyframes secFlowX { to { background-position: 22px 0; } }
@media (prefers-reduced-motion: reduce) { .sec-diagram__arrow::before { animation: none; } }

.sec-block { display: flex; flex-direction: column; }
.sec-block__title { font-size: clamp(1.4rem, 1.2rem + .9vw, 1.9rem); }
.sec-block .list-check { margin: 0; }
.sec-note { color: #A9BDB8; }
.sec-ai { gap: 1rem; }
.sec-ai__item { padding: 1.25rem; border-radius: var(--radius-lg); background: var(--mist-2); border: 1px solid var(--line); }
.sec-ai__item p { margin: 0; }
.sec-cta__actions { align-self: center; }
.sec-cta__trust { color: var(--signal); text-align: center; margin: .25rem 0 0; }
