/* ============================================================
   pk.css — Peak (battery storage) v5 page layer
   ------------------------------------------------------------
   Rides on v5-base + v5-kit. Demand-charge-first storage page.
   Reuses the v5 token system:
     · dark   = graphite  #2A2C2F   (.tw-pal-peak-dark)
     · light  = peak pad  #E8E5E0   (.tw-pal-peak-light)
     · ink    = near-black #16181B  (.pk-ink — the upload band)
     · accent = orange    #F26B1F   (--tw-mark, all palettes)
   Every component is driven by --tw-* tokens so it inherits
   whichever section palette wraps it. Ported & retoned from
   sol.css — sol-* → pk-*, saffron → orange.
   ============================================================ */

/* ---- deep ink band (the conversion moment — bill upload) ---- */
.pk-ink{
  --tw-bg:#16181B; --tw-fg:#F4F1EC; --tw-mark:#FF6B1F;
  --tw-slogan-fg:#9A9CA1; --tw-line:rgba(244,241,236,0.13); --tw-data-bg:rgba(244,241,236,0.045);
  --v5-on-mark:#FFFFFF;
  background:
    radial-gradient(120% 80% at 82% 0%, rgba(242,107,31,0.13) 0%, rgba(242,107,31,0) 55%),
    #16181B;
  color:var(--tw-fg);
}
.pk-ink .v5-btn--primary{ background:var(--tw-mark); color:#fff; border-color:var(--tw-mark); }
.pk-ink .v5-btn--primary:hover{ filter:brightness(1.08); }
.pk-ink .v5-btn:not(.v5-btn--primary){ color:#F4F1EC; border-color:rgba(244,241,236,0.26); }
.pk-ink .v5-btn:not(.v5-btn--primary):hover{ border-color:var(--tw-mark); color:var(--tw-mark); }

/* on-mark text is white for orange fills on every peak palette */
.tw-pal-peak-light, .tw-pal-peak-dark{ --v5-on-mark:#FFFFFF; }

/* ---- inline {{CONFIRM}} marker — visible to the team, quiet on the page ---- */
.pk-confirm{ font-family:var(--tw-font-mono); font-size:.82em; letter-spacing:.04em;
  color:var(--tw-mark); border-bottom:1px dashed color-mix(in srgb,var(--tw-mark) 60%,transparent);
  padding:0 1px; white-space:nowrap; }
.pk-confirm::before{ content:"⚑ "; opacity:.7; }

/* ---- HERO trust strip card ---- */
.pk-trust{ background:rgba(14,16,18,.62); border:1px solid rgba(244,241,236,.2); border-radius:var(--v5-radius);
  backdrop-filter:blur(12px) saturate(160%); -webkit-backdrop-filter:blur(12px) saturate(160%); overflow:hidden; }
.pk-trust__top{ display:flex; justify-content:space-between; align-items:center; gap:12px; padding:13px 18px;
  border-bottom:1px solid rgba(244,241,236,.16); font-family:var(--tw-font-mono); font-size:10px; letter-spacing:.2em;
  text-transform:uppercase; color:rgba(244,241,236,.7); }
.pk-trust__top .live{ display:inline-flex; align-items:center; gap:7px; color:var(--tw-orange); }
.pk-trust__top .live .d{ width:6px; height:6px; border-radius:50%; background:var(--tw-orange); display:inline-block; }
.pk-trust__grid{ display:grid; grid-template-columns:1fr 1fr; }
.pk-trust__cell{ padding:18px; border-top:1px solid rgba(244,241,236,.12); }
.pk-trust__cell:nth-child(2n){ border-left:1px solid rgba(244,241,236,.12); }
.pk-trust__cell:nth-child(-n+2){ border-top:0; }
.pk-trust__v{ font-family:var(--tw-font-display); font-weight:800; letter-spacing:-.04em; font-size:clamp(1.5rem,2.4vw,2rem); line-height:1; color:#F4F1EC; }
.pk-trust__v .u{ font-size:.45em; color:var(--tw-orange); margin-left:4px; font-weight:700; }
.pk-trust__l{ font-family:var(--tw-font-mono); font-size:9.5px; letter-spacing:.16em; text-transform:uppercase; color:rgba(244,241,236,.62); margin-top:8px; }
.pk-trust__l .pk-confirm{ color:var(--tw-orange); border-bottom-color:rgba(242,107,31,.5); }

/* ---- reframe stat strip ---- */
.pk-statstrip{ display:flex; flex-wrap:wrap; gap:0; margin-top:clamp(32px,4vw,48px);
  border:1px solid var(--tw-line); border-radius:8px; overflow:hidden; background:var(--tw-data-bg); }
.pk-statstrip__cell{ flex:1 1 200px; padding:clamp(20px,2.4vw,28px); border-right:1px solid var(--tw-line); }
.pk-statstrip__cell:last-child{ border-right:0; }
.pk-statstrip__v{ font-family:var(--tw-font-display); font-weight:800; letter-spacing:-.04em; font-size:clamp(1.875rem,3.4vw,2.75rem); line-height:1; color:var(--tw-mark); }
.pk-statstrip__l{ font-family:var(--tw-font-mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--tw-slogan-fg); margin-top:10px; line-height:1.5; }
@media(max-width:680px){ .pk-statstrip__cell{ flex-basis:100%; border-right:0; border-bottom:1px solid var(--tw-line); } .pk-statstrip__cell:last-child{ border-bottom:0; } }

/* ---- PK·03 — four levers ---- */
.pk-levers{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:clamp(36px,4vw,52px); }
@media(max-width:980px){ .pk-levers{ grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .pk-levers{ grid-template-columns:1fr; } }
.pk-lever{ position:relative; border:1px solid var(--tw-line); background:var(--tw-data-bg); border-radius:8px;
  padding:clamp(20px,2.4vw,26px); display:flex; flex-direction:column; gap:12px; overflow:hidden; }
.pk-lever::before{ content:""; position:absolute; top:0; left:0; right:0; height:3px; background:var(--tw-mark); }
.pk-lever__n{ font-family:var(--tw-font-mono); font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:var(--tw-mark); font-weight:500; }
.pk-lever__name{ font-family:var(--tw-font-display); font-weight:800; letter-spacing:-.025em; font-size:1.1875rem; line-height:1.08; color:var(--tw-fg); margin:0; }
.pk-lever__cut{ font-size:.875rem; line-height:1.45; color:var(--tw-slogan-fg); margin:0; }
.pk-lever__cut strong{ color:var(--tw-fg); font-weight:600; }
.pk-lever__fig{ margin-top:auto; padding-top:14px; border-top:1px solid var(--tw-line);
  font-family:var(--tw-font-display); font-weight:800; letter-spacing:-.03em; font-size:1.5rem; line-height:1; color:var(--tw-mark); }
.pk-lever__fig .u{ display:block; margin-top:6px; font-family:var(--tw-font-mono); font-weight:400; font-size:9.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--tw-slogan-fg); }
.pk-backup{ margin-top:18px; font-family:var(--tw-font-mono); font-size:11px; letter-spacing:.04em; line-height:1.5; color:var(--tw-slogan-fg);
  padding-left:18px; position:relative; }
.pk-backup::before{ content:""; position:absolute; left:0; top:.45em; width:8px; height:8px; border:1.5px solid var(--tw-mark); border-radius:50%; }
.pk-backup b{ color:var(--tw-fg); font-weight:600; }

/* ---- PK·04 — animated load-curve graphic ---- */
.pk-curve{ border:1px solid var(--tw-line); border-radius:10px; background:var(--tw-data-bg); overflow:hidden; margin-top:clamp(32px,4vw,48px); }
.pk-curve__head{ display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; padding:14px 22px; border-bottom:1px solid var(--tw-line);
  font-family:var(--tw-font-mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--tw-slogan-fg); }
.pk-curve__head .lead{ color:var(--tw-mark); }
.pk-curve__legend{ display:flex; gap:18px; align-items:center; }
.pk-curve__legend span{ display:inline-flex; align-items:center; gap:7px; }
.pk-curve__legend i{ width:18px; height:0; border-top-width:2px; border-top-style:solid; display:inline-block; }
.pk-curve__legend .lg-before i{ border-top-color:var(--tw-slogan-fg); border-top-style:dashed; }
.pk-curve__legend .lg-after i{ border-top-color:var(--tw-mark); }
.pk-curve__legend .lg-band i{ border-top:0; width:14px; height:11px; background:color-mix(in srgb,var(--tw-mark) 22%,transparent); border:1px solid color-mix(in srgb,var(--tw-mark) 50%,transparent); border-radius:2px; }
.pk-curve__stage{ position:relative; padding:clamp(18px,2.4vw,28px); }
.pk-curve svg{ display:block; width:100%; height:auto; }
.pk-curve__foot{ display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap;
  padding:14px 22px; border-top:1px solid var(--tw-line); }
.pk-curve__cap{ font-family:var(--tw-font-mono); font-size:10.5px; letter-spacing:.04em; color:var(--tw-slogan-fg); line-height:1.5; max-width:52ch; }
.pk-curve__cap b{ color:var(--tw-fg); font-weight:600; }
.pk-replay{ font-family:var(--tw-font-mono); font-size:10px; letter-spacing:.16em; text-transform:uppercase; cursor:pointer;
  display:inline-flex; align-items:center; gap:8px; padding:9px 16px; border-radius:99px; border:1px solid var(--tw-line);
  background:transparent; color:var(--tw-fg); transition:all .18s var(--v5-ease); white-space:nowrap; }
.pk-replay:hover{ border-color:var(--tw-mark); color:var(--tw-mark); }
.pk-replay svg{ width:13px; height:13px; }
/* animated dash reveal for the "after" flattened line */
.pk-curve__after{ stroke-dasharray:1; stroke-dashoffset:1; }
.pk-curve__after.is-draw{ animation:pkDraw 1.5s var(--v5-ease) forwards; }
.pk-curve__shave{ opacity:0; }
.pk-curve__shave.is-draw{ animation:pkFade .8s ease .9s forwards; }
@keyframes pkDraw{ to{ stroke-dashoffset:0; } }
@keyframes pkFade{ to{ opacity:1; } }

/* ---- demand-charge calculator (ported from sol-roi, retoned) ---- */
.pk-calc{ border:1px solid var(--tw-line); border-radius:10px; background:var(--tw-data-bg); overflow:hidden; margin-top:clamp(28px,3vw,40px); }
.pk-calc__head{ display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; padding:14px 22px; border-bottom:1px solid var(--tw-line);
  font-family:var(--tw-font-mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--tw-slogan-fg); }
.pk-calc__head .lead{ color:var(--tw-mark); }
.pk-calc__body{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); }
.pk-calc__controls{ padding:clamp(22px,3vw,32px); border-right:1px solid var(--tw-line); display:flex; flex-direction:column; gap:22px; }
.pk-calc__row .top{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
.pk-calc__row label{ font-family:var(--tw-font-mono); font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--tw-slogan-fg); }
.pk-calc__row .out{ font-family:var(--tw-font-display); font-weight:700; font-size:1.25rem; letter-spacing:-.02em; color:var(--tw-fg); text-align:right; }
.pk-calc__row input[type=range]{ width:100%; margin-top:12px; accent-color:var(--tw-mark); }
.pk-calc__seg{ display:flex; gap:6px; margin-top:12px; }
.pk-calc__seg button{ flex:1; font-family:var(--tw-font-mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; cursor:pointer;
  padding:9px 6px; border-radius:4px; border:1px solid var(--tw-line); background:transparent; color:var(--tw-slogan-fg); transition:all .18s var(--v5-ease); }
.pk-calc__seg button.is-on{ background:var(--tw-mark); color:var(--v5-on-mark,#fff); border-color:var(--tw-mark); font-weight:600; }
.pk-calc__note{ margin-top:auto; padding-top:14px; border-top:1px solid var(--tw-line); font-family:var(--tw-font-mono); font-size:10.5px; letter-spacing:.04em; color:var(--tw-slogan-fg); line-height:1.55; }
.pk-calc__out{ display:grid; grid-template-columns:repeat(2,1fr); }
.pk-calc__cell{ padding:clamp(18px,2.5vw,26px); border-bottom:1px solid var(--tw-line); }
.pk-calc__cell:nth-child(odd){ border-right:1px solid var(--tw-line); }
.pk-calc__cell .k{ font-family:var(--tw-font-mono); font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--tw-slogan-fg); }
.pk-calc__cell .v{ font-family:var(--tw-font-display); font-weight:800; letter-spacing:-.03em; font-size:clamp(1.6rem,3vw,2.25rem); line-height:1; margin-top:9px; color:var(--tw-fg); }
.pk-calc__cell.hl .v{ color:var(--tw-mark); }
.pk-calc__cta{ grid-column:1 / -1; padding:clamp(18px,2.5vw,24px); display:flex; }
.pk-calc__cta .v5-btn{ width:100%; justify-content:center; }
@media(max-width:820px){ .pk-calc__body{ grid-template-columns:1fr; } .pk-calc__controls{ border-right:0; border-bottom:1px solid var(--tw-line); } }
@media(max-width:520px){ .pk-calc__out{ grid-template-columns:1fr; } .pk-calc__cell:nth-child(odd){ border-right:0; } }

/* ---- bill upload: dropbox + report figure + WhatsApp fallback ---- */
.pk-uploadfig{ position:relative; }
.pk-frame{ border:1px solid var(--tw-line); border-radius:12px; overflow:hidden; background:#0E0F11; box-shadow:0 30px 70px -30px rgba(0,0,0,0.6); }
.pk-frame__bar{ display:flex; align-items:center; gap:12px; padding:10px 14px; background:#1C1E21; border-bottom:1px solid var(--tw-line); }
.pk-frame__dots{ display:flex; gap:6px; flex:none; }
.pk-frame__dots i{ width:10px; height:10px; border-radius:50%; background:rgba(244,241,236,.28); }
.pk-frame__addr{ font-family:var(--tw-font-mono); font-size:10px; letter-spacing:.06em; color:var(--tw-slogan-fg); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pk-frame image-slot{ display:block; width:100%; aspect-ratio:4/3; background:#0E0F11; }
.pk-frame img{ display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.pk-fallback{ margin-top:18px; display:flex; align-items:center; gap:14px; padding:16px 18px; border:1px solid var(--tw-line); border-radius:8px; background:var(--tw-data-bg); }
.pk-fallback__ico{ width:38px; height:38px; flex:none; border-radius:50%; background:#25D366; display:flex; align-items:center; justify-content:center; color:#fff; }
.pk-fallback__ico svg{ width:20px; height:20px; }
.pk-fallback__t{ font-size:.875rem; line-height:1.4; color:var(--tw-slogan-fg); }
.pk-fallback__t b{ color:var(--tw-fg); font-weight:600; display:block; font-family:var(--tw-font-display); font-size:1rem; }

/* ---- PK·06 — the EnergyCloud loop (find → solve → prove) ---- */
.pk-loop{ display:grid; grid-template-columns:1fr auto 1fr auto 1fr; gap:0; align-items:stretch; margin-top:clamp(36px,4vw,52px);
  border:1px solid var(--tw-line); border-radius:10px; overflow:hidden; background:var(--tw-data-bg); }
.pk-loop__step{ padding:clamp(22px,2.6vw,30px); display:flex; flex-direction:column; gap:12px; }
.pk-loop__k{ font-family:var(--tw-font-mono); font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:var(--tw-mark); font-weight:500; }
.pk-loop__t{ font-family:var(--tw-font-display); font-weight:800; letter-spacing:-.025em; font-size:1.25rem; line-height:1.05; margin:0; color:var(--tw-fg); }
.pk-loop__t em{ font-style:normal; color:var(--tw-mark); }
.pk-loop__p{ font-size:.875rem; line-height:1.5; color:var(--tw-slogan-fg); margin:0; }
.pk-loop__arr{ display:flex; align-items:center; justify-content:center; color:var(--tw-mark); padding:0 4px; }
.pk-loop__arr svg{ width:22px; height:22px; }
@media(max-width:880px){ .pk-loop{ grid-template-columns:1fr; } .pk-loop__step{ border-bottom:1px solid var(--tw-line); }
  .pk-loop__arr{ padding:6px 0; transform:rotate(90deg); } .pk-loop__arr:last-child{ display:none; } }

/* ---- composite case: before/after demand line (ported from sol-bill) ---- */
.pk-bill{ background:var(--tw-bg); border:1px solid var(--tw-line); border-radius:8px; padding:clamp(20px,2.4vw,26px); }
.pk-bill__head{ display:flex; justify-content:space-between; align-items:center; gap:12px; padding-bottom:14px; margin-bottom:6px; border-bottom:1px solid var(--tw-line);
  font-family:var(--tw-font-mono); font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--tw-slogan-fg); }
.pk-bill__legend{ display:flex; gap:14px; }
.pk-bill__legend span{ display:inline-flex; align-items:center; gap:6px; }
.pk-bill__legend i{ width:10px; height:8px; border-radius:2px; display:inline-block; }
.pk-bline{ display:grid; grid-template-columns:150px 1fr auto; gap:14px; align-items:center; padding:11px 0; border-bottom:1px solid var(--tw-line); }
.pk-bline__name{ font-size:.8125rem; color:var(--tw-fg); font-weight:500; }
.pk-bline__bars{ display:flex; flex-direction:column; gap:4px; }
.pk-bline__bar{ height:7px; border-radius:2px; }
.pk-bline__bar.is-before{ background:rgba(244,241,236,0.20); }
.pk-bline__bar.is-after{ background:var(--tw-mark); }
.pk-bline__delta{ font-family:var(--tw-font-mono); font-size:11px; color:var(--tw-slogan-fg); text-align:right; white-space:nowrap; }
.pk-bline__delta b{ color:#3FB37F; font-weight:600; }
.pk-bill__total{ display:grid; grid-template-columns:150px 1fr auto; gap:14px; align-items:center; padding-top:14px; }
.pk-bill__total .t{ font-family:var(--tw-font-display); font-weight:700; font-size:.9375rem; color:var(--tw-fg); }
.pk-bill__total .nums{ grid-column:3; text-align:right; }
.pk-bill__total .was{ font-family:var(--tw-font-mono); font-size:11px; color:var(--tw-slogan-fg); text-decoration:line-through; }
.pk-bill__total .now{ font-family:var(--tw-font-display); font-weight:800; font-size:1.25rem; letter-spacing:-.03em; color:var(--tw-mark); margin-left:8px; }
@media(max-width:560px){ .pk-bline,.pk-bill__total{ grid-template-columns:104px 1fr auto; } }

/* ---- savings waterfall (ported from sol-fall) ---- */
.pk-fall{ display:flex; flex-direction:column; gap:14px; }
.pk-fall__top{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:6px; }
.pk-fall__lbl{ font-size:.8125rem; color:var(--tw-fg); font-weight:500; }
.pk-fall__val{ font-family:var(--tw-font-mono); font-size:11px; color:var(--tw-mark); }
.pk-fall__track{ height:10px; background:var(--tw-data-bg); border:1px solid var(--tw-line); border-radius:3px; overflow:hidden; }
.pk-fall__fill{ height:100%; background:var(--tw-mark); border-radius:2px; }

/* ---- credibility / customer quote ---- */
.pk-quote{ margin:clamp(28px,3.5vw,40px) 0 0; padding:clamp(26px,3vw,36px); border:1px solid var(--tw-line); border-left:3px solid var(--tw-mark);
  border-radius:0 10px 10px 0; background:var(--tw-data-bg); }
.pk-quote p{ font-family:var(--tw-font-display); font-weight:500; font-size:clamp(1.25rem,2.2vw,1.625rem); line-height:1.3; letter-spacing:-.02em; color:var(--tw-fg); margin:0; text-wrap:pretty; }
.pk-quote cite{ display:block; margin-top:16px; font-family:var(--tw-font-mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--tw-slogan-fg); font-style:normal; }

/* ---- trust signal chips (why terawatt) ---- */
.pk-signals{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:clamp(28px,3vw,40px); }
@media(max-width:880px){ .pk-signals{ grid-template-columns:1fr 1fr; } }
@media(max-width:520px){ .pk-signals{ grid-template-columns:1fr; } }
.pk-signal{ border:1px solid var(--tw-line); border-radius:8px; background:var(--tw-data-bg); padding:16px 18px; }
.pk-signal h4{ font-family:var(--tw-font-display); font-weight:700; letter-spacing:-.02em; font-size:1.0625rem; line-height:1.1; margin:0 0 6px; color:var(--tw-fg); }
.pk-signal p{ font-size:.8125rem; line-height:1.45; color:var(--tw-slogan-fg); margin:0; }
.pk-signal .pk-confirm{ font-size:.78em; }

/* ---- PK·09 — who it's for (site profiles) ---- */
.pk-profiles{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:clamp(36px,4vw,52px); }
@media(max-width:980px){ .pk-profiles{ grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .pk-profiles{ grid-template-columns:1fr; } }
.pk-profile{ border:1px solid var(--tw-line); border-radius:8px; background:var(--tw-data-bg); padding:clamp(20px,2.4vw,26px);
  display:flex; flex-direction:column; gap:10px; }
.pk-profile__tag{ font-family:var(--tw-font-mono); font-size:9.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--tw-mark); font-weight:500; }
.pk-profile h4{ font-family:var(--tw-font-display); font-weight:800; letter-spacing:-.025em; font-size:1.1875rem; line-height:1.08; margin:0; color:var(--tw-fg); }
.pk-profile p{ font-size:.875rem; line-height:1.5; color:var(--tw-slogan-fg); margin:0; }
.pk-profile p strong{ color:var(--tw-fg); font-weight:600; }

/* ---- real-photography figure (team-supplied via image-slot) ---- */
.pk-photo{ position:relative; border:1px solid var(--tw-line); border-radius:10px; overflow:hidden; background:var(--tw-data-bg); box-shadow:0 24px 60px -34px rgba(0,0,0,.5); }
.pk-photo image-slot{ display:block; width:100%; aspect-ratio:var(--photo-ar,16/10); background:var(--tw-data-bg); }
.pk-photo img{ display:block; width:100%; aspect-ratio:var(--photo-ar,16/10); object-fit:cover; }
.pk-photo__cap{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:14px 16px;
  display:flex; align-items:center; gap:10px; font-family:var(--tw-font-mono); font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:#F4F1EC;
  background:linear-gradient(180deg, rgba(12,14,16,0) 0%, rgba(12,14,16,.78) 100%); pointer-events:none; }
.pk-photo__cap b{ color:var(--tw-orange); font-weight:600; }

