/* CavalryAI - Private AI in Practice section styles. Classes are prefixed cp- */

/* ---------- Theme colors (one per story) ---------- */
.cp-t-green{--cp-icon:#19b04b;--cp-c:#13853a;--cp-on-dark:#2fd06a;--cp-tint:rgba(25,176,75,.07);--cp-line:rgba(25,176,75,.28)}
.cp-t-blue{--cp-icon:#215bc2;--cp-c:#215bc2;--cp-on-dark:#5cc8f2;--cp-tint:rgba(33,91,194,.07);--cp-line:rgba(33,91,194,.28)}
.cp-t-purple{--cp-icon:#8b59ba;--cp-c:#7a47a8;--cp-on-dark:#c7a2ea;--cp-tint:rgba(139,89,186,.08);--cp-line:rgba(139,89,186,.3)}
.cp-t-teal{--cp-icon:#00bac6;--cp-c:#007f88;--cp-on-dark:#2fd5e0;--cp-tint:rgba(0,186,198,.08);--cp-line:rgba(0,186,198,.32)}
.cp-t-orange{--cp-icon:#fa8836;--cp-c:#b9540c;--cp-on-dark:#ffa45c;--cp-tint:rgba(250,136,54,.08);--cp-line:rgba(250,136,54,.35)}

/* ---------- Icons (SVG masks so they take the theme color) ---------- */
.cp-ico{display:block;width:72px;height:72px;background-color:var(--cp-icon,#19b04b);-webkit-mask:var(--cp-mask) center/contain no-repeat;mask:var(--cp-mask) center/contain no-repeat}
.cp-ico--lki{--cp-mask:url(icons/lki.svg)}
.cp-ico--sda{--cp-mask:url(icons/sda.svg)}
.cp-ico--pac{--cp-mask:url(icons/pac.svg)}
.cp-ico--hyb{--cp-mask:url(icons/hyb.svg)}
.cp-ico--sec{--cp-mask:url(icons/sec.svg)}

/* ---------- Layout ---------- */
.cp-wrap{max-width:var(--gb-container-width,1300px);margin-left:auto;margin-right:auto;padding-left:40px;padding-right:40px}
.cp-section{padding-top:72px;padding-bottom:72px}
.cp-section--tint{background:var(--base-2,#f7f8f9);border-top:1px solid #edf0f4;border-bottom:1px solid #edf0f4}
.cp-section--tight{padding-top:40px}
.cp-center{text-align:center;max-width:860px;margin:0 auto 36px}
.cp-grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.cp-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.cp-grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}

/* ---------- Type ---------- */
.cp-eyebrow{font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--cp-c,#13853a);margin:0 0 10px}
.cp-h2{font-size:clamp(26px,3vw,36px);line-height:1.2;color:var(--contrast-2,#011128);margin:0 0 14px}
.cp-h3{font-size:20px;line-height:1.3;color:var(--contrast-2,#011128);margin:0 0 8px}
.cp-lead{font-size:clamp(19px,2vw,22px);line-height:1.4;font-weight:600;color:var(--contrast-3,#313b77);margin:0 0 14px}
.cp-accent{color:var(--cp-c);font-weight:700;font-size:19px;margin:0 0 18px}
.cp-p{font-size:16px;line-height:1.7;margin:0 0 14px}
.cp-small{font-size:14px;line-height:1.55;color:#4b5565;margin:0}
.cp-caption{font-size:13px;color:#6b7280;font-style:italic;margin:14px 0 0;text-align:center}

/* ---------- Story hero ---------- */
.cp-hero{position:relative;background:var(--contrast-2,#011128);color:#fff;text-align:center;padding:56px 0 130px;overflow:hidden}
.cp-hero .cp-ico{width:84px;height:84px;margin:0 auto 18px;background-color:var(--cp-on-dark)}
.cp-hero__eyebrow{font-size:13px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:#9fb0c6;margin:0 0 12px}
.cp-hero h1{color:#fff;font-size:clamp(34px,5vw,56px);line-height:1.1;margin:0 0 14px}
.cp-hero__tag{color:var(--cp-on-dark);font-size:clamp(18px,2.2vw,24px);font-style:italic;line-height:1.4;max-width:780px;margin:0 auto}
.cp-hero__divider{position:absolute;left:0;right:0;bottom:-1px;line-height:0;pointer-events:none}
.cp-hero__divider svg{display:block;width:100%;height:80px;fill:#fff}
.cp-hero--landing{padding:44px 0 56px}
.cp-bar{display:block;width:64px;height:4px;border-radius:2px;background:#19b04b;margin:16px auto 0}

/* ---------- Story intro ---------- */
.cp-story{display:grid;grid-template-columns:3fr 2fr;gap:56px;align-items:center}
.cp-card-quote{background:#fff;border:1px solid #e3e8ef;border-left:5px solid var(--cp-icon);border-radius:14px;padding:28px 30px;box-shadow:0 14px 34px rgba(1,17,40,.07)}
.cp-label{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--cp-c);margin:0 0 12px}
.cp-quote{font-size:19px;line-height:1.5;font-weight:500;color:var(--contrast-2,#011128);margin:0}
.cp-quote-by{font-size:14px;color:#5b6475;margin:14px 0 0}

/* ---------- Illustrative app window ---------- */
.cp-app{max-width:1080px;margin:0 auto;background:#fff;border:1px solid #dfe5ee;border-radius:18px;box-shadow:0 22px 54px rgba(1,17,40,.09);overflow:hidden}
.cp-app__bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;background:var(--contrast-2,#011128);padding:14px 24px}
.cp-app__brand{font-family:Quicksand,sans-serif;font-weight:700;font-size:17px;letter-spacing:.05em;color:#fff;margin:0}
.cp-app__brand span{color:#19b04b}
.cp-app__body{padding:28px;display:flex;flex-direction:column;gap:20px}
.cp-pill{display:inline-block;align-self:flex-start;width:fit-content;max-width:100%;border-radius:999px;padding:5px 14px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:var(--cp-c);color:#fff;margin:0;line-height:1.5}
.cp-pill--ok{background:#13853a}
.cp-pill--no{background:#b42318}
.cp-pill--blue{background:#215bc2}
.cp-pill--teal{background:#007f88}
.cp-pill--green{background:#13853a}
.cp-bubble{background:var(--cp-tint);border:1px solid var(--cp-line);border-radius:14px;padding:18px 22px;font-size:16px;line-height:1.55;color:var(--contrast-2,#011128);margin:0}
.cp-panel{border:1px solid #e3e8ef;border-radius:12px;padding:20px;background:#fff}
.cp-panel > *:last-child{margin-bottom:0}
.cp-stat{display:flex;align-items:center;gap:16px;border:1px solid #e3e8ef;border-radius:12px;padding:18px 20px}
.cp-stat__num{font-family:Quicksand,sans-serif;font-size:42px;font-weight:700;line-height:1;color:var(--cp-c);margin:0}
.cp-stat__txt{font-weight:600;color:var(--contrast-2,#011128);margin:0;line-height:1.35}
.cp-src{border-bottom:1px solid #eef1f5;padding:10px 0}
.cp-src:first-of-type{padding-top:0}
.cp-src__t{font-weight:600;color:var(--contrast-2,#011128);margin:0;font-size:15px}
.cp-src__m{font-size:13px;color:#6b7280;margin:2px 0 0}
.cp-more{color:var(--cp-c);font-weight:700;font-size:14px;margin:12px 0 0}
.cp-note{background:var(--contrast-2,#011128);color:#fff;border-radius:12px;padding:16px 22px;font-weight:600;text-align:center;margin:0}

/* check / cross lists */
.cp-checks ul,ul.cp-checks{list-style:none;margin:0;padding:0}
.cp-checks li{position:relative;padding-left:28px;margin:0 0 8px;line-height:1.45}
.cp-checks li::before{content:"\2713";position:absolute;left:0;top:0;width:20px;height:20px;border-radius:50%;background:var(--cp-tint);color:var(--cp-c);font-weight:800;font-size:12px;line-height:20px;text-align:center}
.cp-chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.cp-chip{display:inline-block;background:#fff;border:1px solid var(--cp-line);border-radius:999px;padding:8px 16px;font-size:14px;font-weight:600;color:var(--contrast-2,#011128);margin:0}
.cp-chip--check::before{content:"\2713  ";color:var(--cp-c);font-weight:800}

/* steps */
.cp-step{border:1px solid #e3e8ef;border-radius:12px;padding:16px 18px;background:#fff}
.cp-step__n{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--cp-c);margin:0 0 6px}
.cp-step__t{font-weight:700;color:var(--contrast-2,#011128);margin:0;font-size:15px;line-height:1.35}
.cp-step__d{font-size:14px;color:#4b5565;margin:6px 0 0;line-height:1.5}
.cp-step--done .cp-step__n::before{content:"\2713  "}

/* issues */
.cp-issue{border:1px solid #e3e8ef;border-top:4px solid #215bc2;border-radius:12px;padding:18px 20px;background:#fff}
.cp-issue--exposure{border-top-color:#b42318}
.cp-issue--attention{border-top-color:#d97706}
.cp-issue__t{font-size:17px;font-weight:700;color:var(--contrast-2,#011128);margin:0 0 6px}
.cp-sev{display:inline-block;font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px;margin:0 0 10px;background:#e8f0fd;color:#1d4fa8}
.cp-sev--exposure{background:#fdecea;color:#b42318}
.cp-sev--attention{background:#fff4e5;color:#a35207}
.cp-file{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;border:1px dashed var(--cp-line);background:var(--cp-tint);border-radius:12px;padding:14px 18px}
.cp-file__name{font-family:Consolas,Monaco,monospace;font-weight:700;color:var(--contrast-2,#011128);margin:0;font-size:15px;word-break:break-all}

/* personas / results */
.cp-persona{border:1px solid #e3e8ef;border-radius:14px;padding:22px;background:#fff;display:flex;flex-direction:column;gap:14px}
.cp-persona__who{font-size:18px;font-weight:700;color:var(--contrast-2,#011128);margin:0}
.cp-result{border-radius:10px;padding:14px 16px;margin:0;font-size:15px;line-height:1.5}
.cp-result strong{display:block;letter-spacing:.06em;font-size:15px}
.cp-result--ok{background:#e9f7ee;color:#11622c;border:1px solid #b9e3c7}
.cp-result--no{background:#fdecea;color:#9b1c13;border:1px solid #f4c3bd}

/* routes (hybrid) */
.cp-route{border:1px solid #e3e8ef;border-radius:14px;padding:22px;background:#fff;display:flex;flex-direction:column;gap:12px}
.cp-route__req{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#5b6475;margin:0}
.cp-route__q{font-size:15px;line-height:1.55;font-style:italic;color:var(--contrast-2,#011128);margin:0}
.cp-route__kv{font-size:14px;margin:0;line-height:1.5}
.cp-route__kv strong{display:block;color:var(--contrast-2,#011128)}

/* security */
.cp-doc{background:#fff;border:1px solid #e3e8ef;border-radius:12px;padding:22px 24px;box-shadow:0 14px 34px rgba(1,17,40,.07)}
.cp-line{height:9px;background:#e6eaf0;border-radius:5px;margin:0 0 10px}
.cp-w100{width:100%}.cp-w90{width:90%}.cp-w80{width:80%}.cp-w70{width:70%}.cp-w60{width:60%}.cp-w40{width:40%}
.cp-inject{font-family:Consolas,Monaco,monospace;background:#fff4e5;border:1px dashed #fa8836;color:#8a4207;border-radius:8px;padding:10px 12px;font-size:14px;margin:14px 0}
.cp-opt{border:2px solid #e3e8ef;border-radius:12px;padding:18px;text-align:center;font-weight:700;color:#8a93a3;margin:0;background:#fff}
.cp-opt--on{border-color:var(--cp-icon);color:var(--contrast-2,#011128);background:var(--cp-tint)}
.cp-alert{border:2px solid #d97706;background:#fff7ed;border-radius:12px;padding:20px 22px}
.cp-alert__t{color:#a35207;font-weight:800;letter-spacing:.04em;margin:0 0 6px;font-size:16px}

/* ---------- Payoff ---------- */
.cp-payoff{max-width:920px;margin:0 auto;text-align:center}
.cp-big{font-size:clamp(28px,3.6vw,42px);line-height:1.2;color:var(--contrast-2,#011128);margin:0 0 18px}
.cp-highlight{background:var(--cp-tint);border-left:4px solid var(--cp-icon);border-radius:10px;padding:20px 24px;text-align:left;font-size:17px;line-height:1.65;margin:26px 0 0;color:var(--contrast-2,#011128)}
.cp-tagline{font-family:Quicksand,sans-serif;font-size:22px;font-weight:700;color:var(--cp-c);margin:24px 0 0}
.cp-figure{max-width:760px;margin:30px auto 0}
.cp-figure img{width:100%;height:auto;display:block}
.cp-ctas{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:30px}
a.cp-btn,.cp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--cp-c,#13853a);color:#fff;padding:15px 30px;border-radius:30px;font-weight:700;text-decoration:none;line-height:1.3;transition:filter .15s ease,transform .15s ease}
a.cp-btn:hover,a.cp-btn:focus{color:#fff;filter:brightness(.9);transform:translateY(-1px)}
a.cp-btn--ghost{background:transparent;color:var(--contrast-2,#011128);border:2px solid var(--contrast-2,#011128);padding:13px 28px}
a.cp-btn--ghost:hover,a.cp-btn--ghost:focus{color:var(--contrast-2,#011128);background:rgba(1,17,40,.05);filter:none}

/* ---------- Summary band: This Is Private AI in Practice ---------- */
.cp-band{padding:72px 0;background:#fff;border-top:1px solid #edf0f4}
.cp-band__title{text-align:center;font-size:clamp(28px,3.4vw,42px);text-transform:uppercase;font-weight:800;color:var(--contrast-2,#011128);margin:0 0 10px;line-height:1.15}
.cp-band__title span{color:#19b04b}
.cp-band__sub{text-align:center;max-width:720px;margin:0 auto;font-size:18px;color:#3f4a5c;line-height:1.5}
.cp-band__grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin-top:36px}
a.cp-bcard{display:flex;flex-direction:column;text-align:center;border:1px solid #e6ebf2;border-radius:16px;padding:26px 18px 22px;text-decoration:none;color:inherit;background:#fff;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
a.cp-bcard:hover,a.cp-bcard:focus{transform:translateY(-3px);box-shadow:0 14px 30px rgba(1,17,40,.08);border-color:var(--cp-line);color:inherit}
.cp-bcard__icon{width:88px;height:88px;border-radius:50%;background:var(--cp-tint);display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.cp-bcard__icon .cp-ico{width:50px;height:50px}
.cp-bcard__label{color:var(--cp-c);font-weight:800;letter-spacing:.06em;font-size:15px;text-transform:uppercase;margin:0 0 8px}
.cp-bcard__line{font-weight:600;color:var(--contrast-2,#011128);font-size:15px;line-height:1.35;margin:0 0 14px}
.cp-bcard__desc{font-size:14px;line-height:1.55;color:#4b5565;margin:0;padding-top:14px;border-top:2px solid var(--cp-line)}
.cp-bcard__more{margin:auto 0 0;padding-top:16px;color:var(--cp-c);font-weight:700;font-size:14px}
.cp-platform{margin-top:28px;background:var(--contrast-2,#011128);border-radius:18px;padding:32px 36px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:30px;align-items:center}
.cp-platform__h{color:#fff;font-size:24px;line-height:1.25;text-transform:uppercase;font-weight:800;margin:0}
.cp-platform__h span{display:block;color:#2fd06a}
.cp-platform__checks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.cp-pcheck{position:relative;padding-left:32px;color:#dbe4ef;font-weight:600;font-size:14px;line-height:1.4;margin:0}
.cp-pcheck::before{content:"\2713";position:absolute;left:0;top:0;width:22px;height:22px;border:2px solid #2fd06a;border-radius:50%;color:#2fd06a;font-size:12px;line-height:19px;text-align:center;font-weight:800}
.cp-band.is-hub{border-top:0;padding-top:20px}

/* ---------- Landing page ---------- */
.cp-intro{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding-top:30px;padding-bottom:20px}
.cp-intro img{max-width:100%;height:auto;display:block}
.cp-intro__q{font-size:clamp(24px,2.6vw,32px);line-height:1.3;color:#1d2a6b;margin:0;font-weight:700}
.cp-rule{display:flex;align-items:center;gap:22px;margin:30px 0 30px}
.cp-rule::before,.cp-rule::after{content:"";flex:1;height:1px;background:#d5dbe3}
.cp-rule__t{font-size:clamp(20px,2.2vw,26px);color:var(--contrast-2,#011128);margin:0;text-align:center}
.cp-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;padding-bottom:70px}
.cp-card{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--cp-tint);border:1px solid #e6ebf2;border-radius:18px;padding:22px 20px 24px;transition:transform .15s ease,box-shadow .15s ease}
.cp-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(1,17,40,.08)}
.cp-num{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--cp-icon);color:#fff;font-weight:700;font-size:14px;margin:0 0 16px}
.cp-card .cp-ico{width:78px;height:78px}
.cp-card__t{font-size:18px;line-height:1.25;color:var(--contrast-2,#011128);margin:16px 0 10px}
.cp-card__d{font-size:14px;line-height:1.55;color:#3f4a5c;margin:0 0 18px}
.cp-card__more{margin:auto 0 0;font-weight:700;font-size:15px}
.cp-card__more a{color:var(--cp-c);text-decoration:none}
.cp-card__more a::after{content:"";position:absolute;inset:0;border-radius:18px}
.cp-card__more a:focus-visible{outline:none}
.cp-card:focus-within{outline:3px solid var(--cp-icon);outline-offset:2px}

/* ---------- Responsive ---------- */
@media (max-width:1024px){
 .cp-story{grid-template-columns:1fr;gap:36px}
 .cp-grid3{grid-template-columns:1fr}
 .cp-grid4{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cp-band__grid,.cp-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
 .cp-platform{grid-template-columns:1fr}
 .cp-platform__checks{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:767px){
 .cp-wrap{padding-left:20px;padding-right:20px}
 .cp-section{padding-top:52px;padding-bottom:52px}
 .cp-hero{padding:44px 0 100px}
 .cp-hero__divider svg{height:50px}
 .cp-grid2,.cp-grid4,.cp-intro{grid-template-columns:1fr}
 .cp-intro{gap:28px;text-align:center}
 .cp-band__grid,.cp-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cp-app__body{padding:18px}
 .cp-platform{padding:26px 22px}
}
@media (max-width:540px){
 .cp-band__grid,.cp-cards,.cp-platform__checks{grid-template-columns:1fr}
}
