/* ============================================================
   HYPERWRIKE — sub-page (service / playbook) styles
   Loaded AFTER styles.css (reuses brand tokens & components)
   ============================================================ */

body.sp{background:var(--bone);}

/* ---- top nav ---- */
.sp-nav-wrap{position:sticky;top:0;z-index:120;display:flex;justify-content:center;padding:14px 16px;
  background:linear-gradient(var(--bone) 60%,transparent);}
.sp-nav{display:flex;align-items:center;gap:14px;width:100%;max-width:1080px;
  background:var(--paper);border:1px solid var(--line);border-radius:100px;
  padding:9px 9px 9px 18px;box-shadow:var(--shadow-sm);transition:box-shadow .3s;}
.sp-nav.scrolled{box-shadow:var(--shadow-md);}
.sp-nav .sp-back{margin-left:auto;display:none;align-items:center;gap:8px;font-size:13.5px;font-weight:500;color:var(--tx-soft);}
@media(min-width:640px){.sp-nav .sp-back{display:inline-flex;}}
.sp-nav .sp-back:hover{color:var(--ink);}
.sp-nav .sp-back svg{width:15px;height:15px;}
.sp-nav .nav-cta{margin-left:0;}
@media(max-width:639px){.sp-nav .nav-cta{margin-left:auto;}}

/* ---- hero ---- */
.sp-hero{position:relative;overflow:hidden;}
.sp-hero-inner{max-width:var(--maxw);margin:0 auto;padding:clamp(40px,7vw,90px) 24px clamp(30px,5vw,56px);
  display:grid;grid-template-columns:1fr;gap:44px;align-items:center;}
@media(min-width:940px){.sp-hero-inner{grid-template-columns:1.08fr .92fr;gap:56px;}}
.sp-crumb{font-family:var(--ff-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--tx-mute);display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.sp-crumb a{color:var(--lime-deep);}
.sp-crumb .sl{opacity:.4;}
.sp-hero h1{font-size:clamp(32px,4.6vw,54px);line-height:1.03;letter-spacing:-.03em;margin-top:20px;max-width:18ch;}
.sp-hero h1 .serif-it{color:var(--lime-deep);}
.sp-hero .sp-sub{margin-top:20px;font-size:clamp(15px,1.7vw,18.5px);line-height:1.5;color:var(--tx-soft);max-width:52ch;}
.sp-hero .sp-cta-row{margin-top:28px;display:flex;flex-wrap:wrap;gap:12px;align-items:center;}
.sp-rating{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--tx-soft);}
.sp-rating .stars{color:var(--lime-deep);letter-spacing:1px;font-size:15px;}
.sp-rating b{color:var(--ink);font-weight:600;}

/* hero visual — placeholder dashboard / image slot */
.sp-visual{position:relative;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);
  background:var(--ink);min-height:300px;box-shadow:var(--shadow-lg);}
.sp-visual .grid{position:absolute;inset:0;
  background-image:linear-gradient(rgba(241,237,227,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(241,237,227,.06) 1px,transparent 1px);
  background-size:38px 38px;mask-image:radial-gradient(120% 90% at 70% 10%,#000 30%,transparent 75%);}
.sp-visual .vglow{position:absolute;width:340px;height:340px;border-radius:50%;filter:blur(60px);
  background:radial-gradient(circle,rgba(200,239,74,.3),transparent 65%);right:-60px;top:-80px;}
.sp-visual .vinner{position:relative;z-index:2;padding:26px;display:flex;flex-direction:column;gap:14px;height:100%;}
.sp-ph-label{position:absolute;left:14px;bottom:12px;z-index:3;font-family:var(--ff-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--tx-on-ink-soft);background:rgba(11,13,16,.5);padding:5px 10px;border-radius:100px;border:1px solid var(--line-ink);}

/* mini metric tiles in hero visual */
.sp-tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.sp-tile{background:rgba(241,237,227,.06);border:1px solid var(--line-ink);border-radius:16px;padding:16px;}
.sp-tile .tv{font-family:var(--ff-display);font-weight:700;font-size:26px;color:var(--lime);letter-spacing:-.02em;}
.sp-tile .tk{font-size:11.5px;color:var(--tx-on-ink-soft);margin-top:4px;}
.sp-bars{display:flex;align-items:flex-end;gap:7px;height:74px;padding:14px;background:rgba(241,237,227,.05);border:1px solid var(--line-ink);border-radius:16px;}
.sp-bars span{flex:1;background:var(--lime);border-radius:4px 4px 2px 2px;opacity:.85;transform-origin:bottom;animation:barpulse 2.6s ease-in-out infinite;}
@keyframes barpulse{0%,100%{transform:scaleY(.6);}50%{transform:scaleY(1);}}

/* ---- article body ---- */
.sp-body{max-width:768px;margin:0 auto;padding:clamp(36px,6vw,72px) 24px;}
.sp-body>*{margin-top:0;}
.sp-body h2{font-size:clamp(24px,3vw,34px);letter-spacing:-.025em;margin-top:52px;}
.sp-body h2:first-child{margin-top:0;}
.sp-body h3{font-size:21px;margin-top:34px;letter-spacing:-.02em;}
.sp-body p{font-size:17px;line-height:1.62;color:var(--tx-soft);margin-top:18px;}
.sp-body p b,.sp-body li b{color:var(--ink);font-weight:600;}
.sp-body .sp-lead{font-size:19px;color:var(--ink);font-weight:400;line-height:1.5;}
.sp-body ul,.sp-body ol{margin-top:18px;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:12px;}
.sp-body ul li{position:relative;padding-left:30px;font-size:16.5px;line-height:1.55;color:var(--tx-soft);}
.sp-body ul li::before{content:"";position:absolute;left:4px;top:9px;width:9px;height:9px;border-radius:50% 50% 50% 0;background:var(--lime-deep);transform:rotate(45deg);}
.sp-body ol{counter-reset:n;}
.sp-body ol li{position:relative;padding-left:46px;font-size:16.5px;line-height:1.55;color:var(--tx-soft);counter-increment:n;min-height:30px;display:flex;align-items:center;}
.sp-body ol li::before{content:counter(n,decimal-leading-zero);position:absolute;left:0;top:0;font-family:var(--ff-mono);font-size:13px;font-weight:600;color:var(--lime-deep);background:var(--bone-2);width:30px;height:30px;border-radius:9px;display:grid;place-items:center;}
.sp-body ol li b{color:var(--ink);}

/* divider */
.sp-rule{height:1px;background:var(--line);margin:48px 0;border:0;}

/* figure / image placeholder */
.sp-figure{margin:40px 0 0;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);
  background:var(--bone-2);position:relative;min-height:240px;display:grid;place-items:center;text-align:center;padding:40px;}
.sp-figure .fimg{width:100%;display:block;border-radius:var(--r-lg);}
.sp-figure .fph{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--tx-mute);}
.sp-figure .fph svg{width:34px;height:34px;color:var(--tx-mute);}
.sp-figure .fph .ft{font-family:var(--ff-mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;}
.sp-figure .fph .fd{font-size:14px;color:var(--tx-soft);max-width:38ch;}
.sp-figcap{font-size:13px;color:var(--tx-mute);margin-top:10px;text-align:center;}

/* video */
.sp-video{margin:40px 0 0;}
.sp-video .vf{position:relative;width:100%;padding-top:56.25%;border-radius:var(--r-lg);overflow:hidden;background:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow-md);}
.sp-video .vf iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}

/* table */
.sp-table-wrap{margin:34px 0 0;overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-md);}
.sp-table{width:100%;border-collapse:collapse;min-width:560px;background:var(--paper);}
.sp-table th,.sp-table td{text-align:left;padding:16px 18px;font-size:14.5px;line-height:1.45;vertical-align:top;border-bottom:1px solid var(--line-soft);}
.sp-table thead th{background:var(--ink);color:var(--bone);font-family:var(--ff-mono);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:500;}
.sp-table tbody td:first-child{font-weight:600;color:var(--ink);}
.sp-table tbody td:last-child{color:var(--ink);}
.sp-table tbody td:nth-child(2){color:var(--tx-mute);}
.sp-table tr:last-child td{border-bottom:none;}

/* callout / pull quote */
.sp-callout{margin:40px 0 0;background:var(--ink);color:var(--bone);border-radius:var(--r-lg);padding:32px;}
.sp-callout .ck{font-family:var(--ff-mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--lime);}
.sp-callout blockquote{margin:14px 0 0;font-family:var(--ff-serif);font-style:italic;font-size:23px;line-height:1.4;color:var(--bone);}
.sp-callout cite{display:block;margin-top:16px;font-style:normal;font-size:13px;color:var(--tx-on-ink-soft);font-family:var(--ff-mono);}

/* stat strip */
.sp-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:40px 0 0;}
@media(max-width:560px){.sp-stats{grid-template-columns:1fr;}}
.sp-stats .s{background:var(--bone-2);border:1px solid var(--line);border-radius:var(--r-md);padding:22px;}
.sp-stats .sv{font-family:var(--ff-display);font-weight:700;font-size:34px;letter-spacing:-.03em;color:var(--ink);}
.sp-stats .sk{font-size:13px;color:var(--tx-soft);margin-top:6px;line-height:1.35;}

/* inline CTA banner mid-article */
.sp-inline-cta{margin:48px 0 0;background:var(--lime);border-radius:var(--r-lg);padding:28px 30px;display:flex;flex-wrap:wrap;align-items:center;gap:18px;justify-content:space-between;}
.sp-inline-cta .t{font-family:var(--ff-display);font-weight:600;font-size:20px;letter-spacing:-.02em;color:var(--ink);max-width:30ch;}

/* related / other services */
.sp-related{background:var(--bone-2);border-top:1px solid var(--line);}
.sp-related-grid{display:grid;grid-template-columns:1fr;gap:14px;margin-top:34px;}
@media(min-width:680px){.sp-related-grid{grid-template-columns:1fr 1fr 1fr;}}
.sp-rel{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:22px;transition:.25s;display:block;}
.sp-rel:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:rgba(11,13,16,.2);}
.sp-rel .rk{font-family:var(--ff-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--tx-mute);}
.sp-rel h4{font-size:18px;margin-top:10px;}
.sp-rel .ra{margin-top:12px;font-size:13.5px;font-weight:600;color:var(--lime-deep);display:inline-flex;align-items:center;gap:6px;}
