/* ═══════════════════════════════════════════════════════════════
   Spotbookr — shared look for product and company pages.
   Matches the home page. Loaded AFTER each page's own <style>, so it
   refines what is already there instead of replacing page content.
   A page opts in with a body class: pt-consumer, pt-commercial,
   pt-government or pt-company.
   ═══════════════════════════════════════════════════════════════ */

:root{ --pt-accent:#0ea5e9; --pt-accent2:#6366f1; --pt-glow:rgba(14,165,233,.24); }
body.pt-consumer{ --pt-accent:#10b981; --pt-glow:rgba(16,185,129,.24); }
body.pt-commercial{ --pt-accent:#0ea5e9; --pt-glow:rgba(14,165,233,.24); }
body.pt-government{ --pt-accent:#6366f1; --pt-accent2:#0ea5e9; --pt-glow:rgba(99,102,241,.3);
  --gv-accent:#6366f1; --gv-accent-dk:#4f46e5; --gv-accent-lt:#eef2ff; }

/* ───────── Hero: grid pattern and a soft glow in the line's colour ───────── */
.hm-hero, .ss-hero, .ix-hero, .gv-hero, .ent-hero, .dev-hero, .about-hero,
body[class*="pt-"] .hero-dark{ position:relative; overflow:hidden; }

.hm-hero::before, .ss-hero::before, .ix-hero::before, .gv-hero::before, .ent-hero::before, .dev-hero::before, .about-hero::before,
body[class*="pt-"] .hero-dark::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:56px 56px;
  -webkit-mask-image:radial-gradient(ellipse at 50% 25%,#000 12%,transparent 74%);
          mask-image:radial-gradient(ellipse at 50% 25%,#000 12%,transparent 74%);
}
.hm-hero::after, .ss-hero::after, .ix-hero::after, .gv-hero::after, .ent-hero::after, .dev-hero::after, .about-hero::after,
body[class*="pt-"] .hero-dark::after{
  content:""; position:absolute; width:680px; height:680px; right:-200px; top:-260px; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle,var(--pt-glow),transparent 66%);
}
.hm-hero > .container, .ss-hero > .container, .ix-hero > .container, .gv-hero > .container, .ent-hero > .container, .dev-hero > .container, .about-hero > .container,
body[class*="pt-"] .hero-dark > .container{ position:relative; z-index:1; }

.hm-hero h1, .ss-hero h1, .ix-hero h1, .gv-hero h1, .ent-hero h1, .dev-hero h1, .about-hero h1,
body[class*="pt-"] .hero-dark h1{ letter-spacing:-.6px; line-height:1.1; }

/* Highlighted words in hero headlines take the home page's gradient */
.hm-hero h1 .hl, .ss-hero h1 .hl, .ix-hero h1 .hl, .gv-hero h1 .hl,
body[class*="pt-"] .hero-dark h1 .hl-green, body[class*="pt-"] .hero-dark h1 .hl-blue{
  background:linear-gradient(90deg,#38bdf8,#818cf8); -webkit-background-clip:text; background-clip:text; color:transparent;
}

/* ───────── Section headings: small ruled label, tighter headline ───────── */
.hm-eyebrow, .ss-eyebrow, .ix-eyebrow, .gv-eyebrow{
  display:flex; align-items:center; justify-content:center; gap:12px; letter-spacing:2px; color:var(--pt-accent);
}
.hm-eyebrow::before, .ss-eyebrow::before, .ix-eyebrow::before, .gv-eyebrow::before,
.hm-eyebrow::after,  .ss-eyebrow::after,  .ix-eyebrow::after,  .gv-eyebrow::after{
  content:""; width:26px; height:2px; background:currentColor; opacity:.55; flex:0 0 auto;
}
.ab-eyebrow{ display:flex; align-items:center; gap:12px; letter-spacing:2px; }
.ab-eyebrow::before{ content:""; width:26px; height:2px; background:currentColor; opacity:.55; }

.hm-heading, .ss-heading, .ix-heading, .gv-heading, .ab-heading,
body[class*="pt-"] .section-title{ letter-spacing:-.5px; font-weight:800; line-height:1.15; }

/* ───────── Cards: lift on hover with a gradient top edge ───────── */
.feat-card, .step-card, .spec, .ov-card, .pipe-card, .src-card, .index-card, .method-card,
.gv-card, .gv-pstep, .audience-card, .data-card, .cap-card, .arch-card, .vision-card{
  position:relative; overflow:hidden; border-radius:16px;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.feat-card::before, .step-card::before, .spec::before, .ov-card::before, .pipe-card::before, .src-card::before, .index-card::before, .method-card::before,
.gv-card::before, .gv-pstep::before, .audience-card::before, .data-card::before, .cap-card::before, .arch-card::before, .vision-card::before{
  content:""; position:absolute; left:0; right:0; top:0; height:4px;
  background:linear-gradient(90deg,var(--pt-accent),var(--pt-accent2));
  transform:scaleX(0); transform-origin:left; transition:transform .35s ease;
}
.feat-card:hover, .step-card:hover, .spec:hover, .ov-card:hover, .pipe-card:hover, .src-card:hover, .index-card:hover, .method-card:hover,
.gv-card:hover, .gv-pstep:hover, .audience-card:hover, .data-card:hover, .cap-card:hover, .arch-card:hover, .vision-card:hover{
  transform:translateY(-6px); box-shadow:0 22px 48px rgba(15,23,42,.1);
}
.feat-card:hover::before, .step-card:hover::before, .spec:hover::before, .ov-card:hover::before, .pipe-card:hover::before, .src-card:hover::before, .index-card:hover::before, .method-card:hover::before,
.gv-card:hover::before, .gv-pstep:hover::before, .audience-card:hover::before, .data-card:hover::before, .cap-card:hover::before, .arch-card:hover::before, .vision-card:hover::before{
  transform:scaleX(1);
}

/* ───────── Closing call-to-action bands ───────── */
.hm-cta, .ss-cta, .ix-cta, .gv-cta, .ab-cta{
  position:relative; overflow:hidden;
  background:linear-gradient(135deg,var(--sb-dark) 0%,var(--sb-dark-2) 60%,#1e1b4b 100%);
}
.hm-cta::after, .ss-cta::after, .ix-cta::after, .gv-cta::after, .ab-cta::after{
  content:""; position:absolute; width:460px; height:460px; right:-130px; bottom:-230px; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle,rgba(99,102,241,.38),transparent 65%);
}
.hm-cta > .container, .ss-cta > .container, .ix-cta > .container, .gv-cta > .container, .ab-cta > .container{ position:relative; z-index:1; }
.hm-cta h2, .ss-cta h2, .ix-cta h2, .gv-cta h2, .ab-cta h2{ letter-spacing:-.4px; }

body[class*="pt-"] .cta-banner{
  position:relative; overflow:hidden;
  background:linear-gradient(135deg,var(--sb-dark) 0%,var(--sb-dark-2) 60%,#1e1b4b 100%);
}

@media (prefers-reduced-motion:reduce){
  .feat-card, .step-card, .spec, .ov-card, .pipe-card, .src-card, .index-card, .method-card,
  .gv-card, .gv-pstep, .audience-card, .data-card, .cap-card, .arch-card, .vision-card{ transition:none; }
}

/* ═══════════════ PRODUCT KIT (hero graphics + walkthrough; see js/product-kit.js) ═══════════════ */
.pk-visual{ margin:44px auto 0; max-width:880px; display:flex; gap:18px; align-items:center; justify-content:center; flex-wrap:wrap; text-align:left; }
.pk-mock{ background:#fff; color:#334155; border-radius:16px; padding:18px 20px; min-width:260px; flex:1 1 280px; max-width:400px; font-size:13.5px; box-shadow:0 30px 60px rgba(0,0,0,.4); animation:pkUp .7s ease both; }
.pk-mock h4{ display:flex; justify-content:space-between; gap:12px; font-size:11.5px; text-transform:uppercase; letter-spacing:1px; color:#64748b; font-weight:700; margin:0 0 12px; }
.pk-mock h4 i{ color:var(--pt-accent); margin-right:4px; }
.pk-r{ display:flex; justify-content:space-between; align-items:center; gap:10px; padding:9px 0; border-top:1px solid #f1f5f9; min-height:20px; }
.pk-mock h4 + .pk-r, .pk-mock .pk-bars + .pk-r{ border-top:0; }
.pk-total{ font-weight:800; color:#0f172a; font-size:15px; }
.pk-good{ color:#059669; }
.pk-flash{ animation:pkFlash .8s ease; }
.pk-pill{ border-radius:999px; padding:3px 10px; font-size:11px; font-weight:700; background:#f1f5f9; color:#475569; white-space:nowrap; }
.pk-pill.pk-up{ background:#d1fae5; color:#065f46; }
.pk-bars{ display:flex; align-items:flex-end; gap:6px; height:92px; margin-bottom:6px; }
.pk-bars i{ flex:1; border-radius:5px 5px 0 0; background:linear-gradient(180deg,#38bdf8,#2563eb); transform-origin:bottom; animation:pkRise .9s ease-out both; }
.pk-line svg{ width:100%; height:110px; display:block; }
.pk-draw{ stroke-dasharray:520; stroke-dashoffset:520; animation:pkDraw 2.4s ease-out .3s forwards; }
.pk-side, .pk-col{ display:flex; flex-direction:column; gap:10px; }
.pk-chip{ background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); color:#fff; border-radius:12px; padding:11px 16px; font-size:13.5px; font-weight:600; white-space:nowrap; }
.pk-chip i{ color:var(--pt-accent); margin-right:8px; }
.pk-chip.pk-out i{ color:#a5b4fc; }
.pk-in{ animation:pkUp .7s ease both; }
.pk-svg{ width:320px; max-width:100%; height:auto; }
.pk-flow{ stroke-dasharray:4 7; animation:pkFlow 1.4s linear infinite; }
.pk-pulse{ transform-box:fill-box; transform-origin:center; animation:pkPulse 2.8s ease-in-out infinite; }
.pk-hub{ position:relative; width:150px; height:150px; display:grid; place-items:center; flex:0 0 auto; }
.pk-hub svg{ position:absolute; inset:0; width:100%; height:100%; }
.pk-hub b{ position:relative; color:#fff; font-size:12.5px; text-align:center; line-height:1.3; }
.pk-ring{ transform-origin:60px 60px; animation:pkSpin 14s linear infinite; }
.pk-term{ background:#0b1220; border:1px solid rgba(255,255,255,.14); border-radius:14px; width:100%; max-width:640px; box-shadow:0 30px 60px rgba(0,0,0,.45); overflow:hidden; animation:pkUp .7s ease both; }
.pk-termbar{ display:flex; align-items:center; gap:7px; padding:11px 14px; background:rgba(255,255,255,.05); }
.pk-termbar i{ width:10px; height:10px; border-radius:50%; background:#f87171; } .pk-termbar i:nth-child(2){ background:#fbbf24; } .pk-termbar i:nth-child(3){ background:#34d399; }
.pk-termbar span{ margin-left:auto; font-size:11px; color:rgba(255,255,255,.45); }
.pk-term pre{ margin:0; padding:18px 20px; min-height:150px; font:13px/1.65 ui-monospace,Menlo,Consolas,monospace; color:#a5f3fc; white-space:pre-wrap; text-align:left; background:transparent; }
.pk-v-systems .pk-mock{ flex:1 1 230px; min-width:220px; transition:opacity .35s ease, transform .35s ease; }
.pk-v-systems .pk-mock.pk-swap{ opacity:0; transform:translateY(8px); }
@keyframes pkUp{ from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:none; } }
@keyframes pkRise{ from{ transform:scaleY(0); } to{ transform:scaleY(1); } }
@keyframes pkDraw{ to{ stroke-dashoffset:0; } }
@keyframes pkFlow{ to{ stroke-dashoffset:-22; } }
@keyframes pkPulse{ 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.14); } }
@keyframes pkSpin{ to{ transform:rotate(360deg); } }
@keyframes pkFlash{ 0%{ color:#059669; transform:scale(1.15); } 100%{ transform:none; } }

/* Walkthrough */
.pk-walk{ padding:84px 0; color:#fff; position:relative; overflow:hidden; background:linear-gradient(135deg,var(--sb-dark) 0%,var(--sb-dark-2) 55%,var(--sb-dark-3) 100%); }
.pk-walk .container{ max-width:1100px; position:relative; z-index:1; }
.pk-hd{ max-width:760px; margin:0 0 40px; text-align:left; }
.pk-hd .k{ display:flex; align-items:center; gap:10px; font-size:11.5px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:#38bdf8; margin:0 0 12px; }
.pk-hd .k::before{ content:""; width:28px; height:2px; background:#38bdf8; }
.pk-hd h2{ font-size:clamp(1.7rem,3.6vw,2.4rem); font-weight:800; letter-spacing:-.5px; line-height:1.15; color:#fff; margin:0 0 12px; }
.pk-hd p{ font-size:1.05rem; line-height:1.7; color:rgba(255,255,255,.66); margin:0; }
.pk-steps{ display:grid; position:relative; --pk-edge:10%; }
.pk-steps::before{ content:""; position:absolute; left:var(--pk-edge); right:var(--pk-edge); top:27px; height:2px; background:rgba(255,255,255,.14); }
.pk-prog{ position:absolute; left:var(--pk-edge); top:27px; height:2px; width:0; background:linear-gradient(90deg,#38bdf8,#818cf8); transition:width .5s ease; }
.pk-step{ all:unset; cursor:pointer; text-align:center; padding:0 6px; position:relative; z-index:1; box-sizing:border-box; display:block; }
.pk-step .n{ width:54px; height:54px; border-radius:50%; margin:0 auto 12px; display:grid; place-items:center; font-size:18px; background:#0b1220; border:2px solid rgba(255,255,255,.2); color:rgba(255,255,255,.6); transition:all .3s; }
.pk-step b{ display:block; font-size:14px; font-weight:700; color:rgba(255,255,255,.65); transition:color .3s; }
.pk-step:hover .n{ border-color:rgba(255,255,255,.55); color:#fff; }
.pk-step.done .n{ border-color:#38bdf8; color:#38bdf8; }
.pk-step.on .n{ background:linear-gradient(135deg,var(--pt-accent),var(--pt-accent2)); border-color:transparent; color:#fff; transform:scale(1.12); box-shadow:0 10px 28px rgba(56,189,248,.35); }
.pk-step.on b{ color:#fff; }
.pk-step:focus-visible .n{ outline:2px solid #fff; outline-offset:3px; }
.pk-detail{ margin-top:34px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12); border-radius:16px; padding:26px 30px; display:grid; grid-template-columns:1fr 1fr; gap:30px; min-height:118px; text-align:left; }
.pk-detail h3{ color:#fff; font-size:1.15rem; font-weight:800; margin:0 0 8px; }
.pk-detail p{ color:rgba(255,255,255,.72); font-size:14.5px; line-height:1.7; margin:0; }
.pk-detail .ex{ border-left:1px solid rgba(255,255,255,.14); padding-left:30px; }
.pk-detail .ex small{ display:block; font-size:11px; letter-spacing:1.5px; text-transform:uppercase; font-weight:700; color:#38bdf8; margin-bottom:8px; }

/* Reveal on scroll */
.pk-hide{ opacity:0; transform:translateY(22px); }
.pk-hide.pk-shown{ opacity:1; transform:none; transition:opacity .6s ease, transform .6s ease, box-shadow .25s ease, border-color .25s ease; }

@media (max-width:820px){
  .pk-detail{ grid-template-columns:1fr; gap:16px; } .pk-detail .ex{ border-left:0; padding-left:0; border-top:1px solid rgba(255,255,255,.14); padding-top:16px; }
  .pk-steps{ overflow-x:auto; } .pk-step{ min-width:78px; } .pk-step b{ font-size:12px; } .pk-step .n{ width:44px; height:44px; font-size:15px; } .pk-steps::before, .pk-prog{ top:22px; }
  .pk-side, .pk-col{ flex-direction:row; flex-wrap:wrap; justify-content:center; } .pk-chip{ white-space:normal; }
}
@media (prefers-reduced-motion:reduce){ .pk-mock, .pk-in, .pk-term, .pk-bars i, .pk-flow, .pk-pulse, .pk-ring{ animation:none; } .pk-draw{ animation:none; stroke-dashoffset:0; } }

/* ═══════════════ PHOTO BANDS ═══════════════
   A photo lines up with the page's own content column: same left and right edge as the text below it. */
.pt-photo{ padding:0; }
.pt-photo .pt-photo-in{ margin:0 auto; padding:0 20px; max-width:1100px; box-sizing:border-box; }
.pt-photo figure{ margin:0; border-radius:28px; overflow:hidden; box-shadow:0 26px 54px rgba(15,23,42,.18); position:relative; z-index:2; }
.pt-photo img{ display:block; width:100%; height:400px; object-fit:cover; object-position:center 28%; border-radius:28px; }
.pt-photo.overlap figure{ margin-top:-60px; }
.pt-photo.flat{ padding-top:56px; }
.pt-photo.on-white{ background:var(--sb-surface,#fff); }
.pt-photo.on-alt{ background:#f8fafc; }
.pt-photo.narrow .pt-photo-in{ max-width:var(--pt-col,820px); }
.cr-hero{ position:relative; overflow:hidden; }
@media (max-width:700px){ .pt-photo img{ height:220px; } .pt-photo.overlap figure{ margin-top:-34px; } .pt-photo.flat{ padding-top:40px; } }

/* ═══════════════ CONTRACTING PAGES (certifications, partner networks, industries) ═══════════════ */
.ct-wide .container.ab-body{ max-width:1100px; }
.about-block.ct-alt{ background:#f8fafc; }
.ct-lead{ max-width:760px; }
.pn-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:22px; margin:30px 0 8px; }
.pn-card{ background:#fff; border:1px solid #e2e8f0; border-radius:18px; padding:28px; position:relative; overflow:hidden; transition:transform .25s, box-shadow .25s; }
.pn-card::before{ content:""; position:absolute; left:0; right:0; top:0; height:4px; background:linear-gradient(90deg,#0ea5e9,#6366f1); transform:scaleX(0); transform-origin:left; transition:transform .35s; }
.pn-card:hover{ transform:translateY(-5px); box-shadow:0 22px 48px rgba(15,23,42,.1); }
.pn-card:hover::before{ transform:scaleX(1); }
.pn-card h3{ font-size:1.15rem; font-weight:800; color:#0f172a; margin:0 0 8px; }
.ab-body .pn-card p{ font-size:.95rem; line-height:1.65; color:#475569; margin:0 0 12px; }
.ab-body .pn-card p.pn-what{ font-size:.88rem; background:#f8fafc; border-radius:10px; padding:10px 14px; margin:0; }
.ab-body .pn-card ul{ margin:0 0 12px; padding-left:18px; font-size:.92rem; color:#475569; line-height:1.7; }
.pn-logo{ height:96px; display:flex; align-items:center; margin-bottom:18px; }
.pn-logo img{ max-height:96px; max-width:220px; display:block; }
.pn-fallback{ display:none; align-items:center; gap:12px; font-size:1.05rem; font-weight:800; color:#0f172a; background:#f1f5f9; border:1px dashed #cbd5e1; border-radius:14px; padding:18px 22px; }
.pn-fallback i{ font-size:1.7rem; color:#334155; }
.pn-seal{ width:64px; height:64px; border-radius:18px; display:grid; place-items:center; font-size:1.5rem; color:#fff; background:linear-gradient(135deg,#0ea5e9,#6366f1); margin-bottom:18px; }
.ab-body .pn-foot{ margin-top:22px; font-size:.95rem; }
.pn-foot a, .ct-table a, .ct-panel a{ color:#0ea5e9; font-weight:700; text-decoration:none; }
.ab-cta .pn-legal{ font-size:.76rem; opacity:.55; max-width:780px; margin:28px auto 0; line-height:1.6; }
/* statement badges */
.ct-badges{ display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:20px; margin:30px 0 10px; }
.ct-badge{ background:linear-gradient(145deg,#0b1220,#172554); color:#fff; border-radius:20px; padding:30px 26px; position:relative; overflow:hidden; box-shadow:0 20px 44px rgba(15,23,42,.18); }
.ct-badge::after{ content:""; position:absolute; width:220px; height:220px; right:-80px; top:-90px; border-radius:50%; background:radial-gradient(circle,rgba(56,189,248,.35),transparent 65%); }
.ct-badge i.s{ font-size:1.9rem; color:#38bdf8; margin-bottom:16px; display:block; position:relative; z-index:1; }
.ct-badge small{ display:block; font-size:.7rem; letter-spacing:2px; text-transform:uppercase; color:#7dd3fc; font-weight:700; margin-bottom:8px; position:relative; z-index:1; }
.ct-badge h3{ font-size:1.2rem; font-weight:800; line-height:1.25; margin:0 0 12px; color:#fff; position:relative; z-index:1; }
.ab-body .ct-badge p{ font-size:.88rem; line-height:1.6; color:rgba(255,255,255,.72); margin:0; position:relative; z-index:1; }
.ct-badge .basis{ display:inline-block; margin-top:14px; font-size:.72rem; font-weight:700; letter-spacing:.5px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18); border-radius:999px; padding:4px 12px; position:relative; z-index:1; }
/* fact sheet + tables */
.ct-facts{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:0; background:#fff; border:1px solid #e2e8f0; border-radius:18px; overflow:hidden; margin:28px 0 10px; }
.ct-fact{ padding:20px 24px; border-right:1px solid #f1f5f9; border-bottom:1px solid #f1f5f9; }
.ct-fact small{ display:block; font-size:.7rem; letter-spacing:1.5px; text-transform:uppercase; color:#64748b; font-weight:700; margin-bottom:6px; }
.ct-fact b{ font-size:1.02rem; color:#0f172a; font-weight:700; line-height:1.4; display:block; }
.ct-fact.big b{ font-size:1.5rem; letter-spacing:.5px; font-variant-numeric:tabular-nums; }
.ct-tablewrap{ overflow-x:auto; border:1px solid #e2e8f0; border-radius:16px; background:#fff; margin:26px 0 10px; }
table.ct-table{ width:100%; border-collapse:collapse; font-size:.92rem; min-width:620px; }
.ct-table th{ text-align:left; background:#f1f5f9; color:#475569; font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; padding:13px 18px; }
.ct-table td{ padding:14px 18px; border-top:1px solid #eef2f7; color:#334155; vertical-align:top; line-height:1.5; }
.ct-table td.code{ font-weight:800; color:#0f172a; font-variant-numeric:tabular-nums; white-space:nowrap; }
.ct-table .prim{ display:inline-block; margin-left:8px; font-size:.68rem; font-weight:700; background:#d1fae5; color:#065f46; border-radius:999px; padding:2px 9px; vertical-align:middle; }
/* sector explorer */
.ct-tabs{ display:flex; flex-wrap:wrap; gap:10px; margin:28px 0 20px; }
.ct-tab{ appearance:none; border:1px solid #e2e8f0; background:#fff; border-radius:999px; padding:10px 20px; font-size:.9rem; font-weight:700; color:#475569; cursor:pointer; display:inline-flex; align-items:center; gap:9px; transition:all .2s; }
.ct-tab:hover{ border-color:#cbd5e1; color:#0f172a; }
.ct-tab.on{ background:linear-gradient(135deg,#0ea5e9,#6366f1); border-color:transparent; color:#fff; box-shadow:0 10px 24px rgba(14,165,233,.28); }
.ct-panel{ display:none; grid-template-columns:1fr 1fr; background:#fff; border:1px solid #e2e8f0; border-radius:20px; overflow:hidden; box-shadow:0 20px 50px rgba(15,23,42,.07); }
.ct-panel.on{ display:grid; animation:pkUp .35s ease both; }
.ct-panel > div{ padding:34px 34px; }
.ct-panel > div + div{ background:linear-gradient(145deg,#f0f9ff,#eef2ff); }
.ct-panel h3{ font-size:1.4rem; font-weight:800; color:#0f172a; margin:0 0 10px; letter-spacing:-.3px; }
.ct-panel h4{ font-size:.72rem; letter-spacing:1.5px; text-transform:uppercase; color:#64748b; margin:0 0 12px; font-weight:700; }
.ab-body .ct-panel p{ font-size:.96rem; line-height:1.7; color:#475569; margin:0 0 14px; }
.ct-panel ul{ list-style:none; margin:0; padding:0; }
.ct-panel li{ position:relative; padding:7px 0 7px 26px; font-size:.93rem; color:#334155; line-height:1.5; }
.ct-panel li::before{ content:"\f00c"; font-family:"Font Awesome 6 Free","Font Awesome 5 Free"; font-weight:900; font-size:.72rem; color:#0ea5e9; position:absolute; left:0; top:11px; }
.ct-panel .sys li::before{ content:"\f061"; color:#6366f1; }
@media (max-width:820px){ .ct-panel.on{ grid-template-columns:1fr; } .ct-panel > div{ padding:24px 22px; } }

.ab-body .ct-panel p.ct-see{ margin:18px 0 0; font-size:.9rem; }
.ct-see i{ font-size:.7rem; margin-left:4px; }

/* procurement jurisdictions */
.pr-top{ display:flex; align-items:center; gap:18px; margin-bottom:16px; }
.pr-map{ width:92px; height:92px; flex:0 0 auto; filter:drop-shadow(0 8px 14px rgba(14,165,233,.28)); }
.pr-tags{ display:flex; flex-direction:column; align-items:flex-start; gap:8px; }
.pr-abbr{ font-size:1.6rem; font-weight:800; letter-spacing:.5px; color:#0f172a; line-height:1; }
.pr-level{ font-size:.68rem; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; color:#475569; background:#f1f5f9; border-radius:999px; padding:5px 12px; }
.pr-reg{ display:inline-flex; align-items:center; gap:6px; font-size:.72rem; font-weight:700; color:#065f46; background:#d1fae5; border-radius:999px; padding:4px 12px; margin-bottom:12px; }
.cs-soon{ display:inline-block; font-size:.68rem; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; color:#92400e; background:#fef3c7; border-radius:999px; padding:4px 12px; margin-bottom:12px; }
