/* PPF studio on /ppf: the Tint Pros widget (~/Desktop/ppf-web/section.html, markup and script unchanged) in this
   site's own dress -- Bebas Neue over Saira, the pink-to-coral gradient on what is chosen, coral checks, and the
   hairlines, tab states and panel ground of the P1 coverage block it replaces (ppf-coverage.css, 2026-10-05).
   Built into ppf.html by tools/build_ppf_studio.py; everything is scoped under #tp-ppfstudio. */
#tp-ppfstudio{
  --ps-red:#ea138f;
  --ps-grad:var(--brand-gradient,linear-gradient(405deg,#ea138f 0%,#f59154 100%));
  --ps-coral:var(--brand-coral,#f59154);
  --ps-ink:var(--paper,#eeeae2);
  --ps-card:#151412;
  --ps-card2:#1b1b18;
  --ps-pick:#291722;
  --ps-line:var(--line,#ffffff26);
  --ps-line2:#ffffff14;
  --ps-mut:#d8d1c8;
  --ps-sub:var(--text-soft,#bcb9b0);
  --ps-display:'Bebas Neue',Saira,sans-serif;
  --ps-body:Saira,Arial,sans-serif;
  --ps-ease:cubic-bezier(.16,1,.3,1);
  display:block;width:100%;max-width:100%;min-width:0;font-family:var(--ps-body);color:var(--ps-ink);
  -webkit-font-smoothing:antialiased;
}
#tp-ppfstudio *,#tp-ppfstudio *::before,#tp-ppfstudio *::after{box-sizing:border-box;}
#tp-ppfstudio button{font:inherit;}
#tp-ppfstudio button:focus-visible,#tp-ppfstudio a:focus-visible{outline:2px solid #f5add1;outline-offset:3px;}

/* ---------- the card: one per section ---------- */
#tp-ppfstudio .ps__card{background:var(--ps-card);color:var(--ps-ink);border:1px solid var(--ps-line);}
#tp-ppfstudio .ps__cardhead{padding:30px 32px 22px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;}
#tp-ppfstudio .ps__title{
  margin:0;font-family:var(--ps-display);font-weight:400;font-size:clamp(22px,1.9vw,28px);line-height:1;letter-spacing:.01em;color:var(--ps-ink);
}
#tp-ppfstudio .ps__title em{font-style:normal;font-family:inherit;letter-spacing:inherit;color:var(--ps-coral);}
#tp-ppfstudio .ps__lede{margin:10px 0 0;font-size:16px;line-height:1.6;color:var(--ps-mut);max-width:52ch;}

/* ---------- vehicle rail ---------- */
#tp-ppfstudio .ps__cars{display:grid;grid-template-columns:repeat(var(--ps-n,4),minmax(0,1fr));gap:6px;padding:0 32px 22px;max-width:640px;}
#tp-ppfstudio .ps__cars[hidden]{display:none;}
#tp-ppfstudio .ps__car{
  appearance:none;border:1px solid var(--ps-line);border-radius:3px;background:var(--ps-card2);color:var(--ps-sub);cursor:pointer;
  font-family:var(--ps-body);font-weight:700;font-size:13px;letter-spacing:.12em;text-transform:uppercase;
  padding:13px 8px 12px;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  transition:background .25s var(--ps-ease),color .2s,border-color .2s;
}
#tp-ppfstudio .ps__car:hover{background:#24201c;color:#fff;}
#tp-ppfstudio .ps__car[aria-pressed="true"]{background:var(--ps-grad);border-color:#ffffff35;color:#fff;}

/* ---------- stage ---------- */
#tp-ppfstudio .ps__stage{position:relative;width:100%;aspect-ratio:16/9;background:#100c09;overflow:hidden;touch-action:pan-y;cursor:grab;
  border-top:1px solid var(--ps-line2);border-bottom:1px solid var(--ps-line2);}
#tp-ppfstudio .ps__stage.is-drag{cursor:grabbing;}
/* a desktop stage no taller than the screen under the header, so a swatch or package change is seen without scrolling
   back (judge, 2026-10-06); the widget lays the plate and the car out for any stage shape */
@media (min-width:801px){#tp-ppfstudio .ps__stage{max-height:calc(100svh - 230px);min-height:420px;}}
#tp-ppfstudio .ps__stage:focus-visible{outline:2px solid #f5add1;outline-offset:-2px;}
#tp-ppfstudio .ps__canvas{position:absolute;inset:0;width:100%;height:100%;display:block;}
#tp-ppfstudio .ps__stage::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:32%;z-index:1;pointer-events:none;
  background:linear-gradient(to top,rgba(8,6,5,.7),rgba(8,6,5,.3) 45%,rgba(8,6,5,0));
}
/* the site sizes every <video>; this one is sized to the plate's rectangle, wider than the stage by design */
#tp-ppfstudio .ps__video{position:absolute;display:block;opacity:0;pointer-events:none;transition:opacity .22s linear;
  max-width:none !important;max-height:none !important;margin:0 !important;object-fit:fill;background:transparent;}
#tp-ppfstudio .ps__video.is-on{opacity:1;}
#tp-ppfstudio .ps__load{
  position:absolute;left:0;top:0;height:2px;width:100%;background:var(--ps-grad);
  transform-origin:left;transform:scaleX(0);opacity:0;transition:opacity .25s;pointer-events:none;z-index:3;
}
#tp-ppfstudio .ps__stage[data-busy="1"] .ps__load{opacity:1;animation:ps-load 1.1s var(--ps-ease) infinite;}
@keyframes ps-load{0%{transform:scaleX(0);transform-origin:left}50%{transform:scaleX(1);transform-origin:left}50.1%{transform-origin:right}100%{transform:scaleX(0);transform-origin:right}}
#tp-ppfstudio .ps__hint{
  position:absolute;right:24px;bottom:26px;z-index:2;margin:0;pointer-events:none;
  font-family:var(--ps-body);font-weight:700;font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.86);transition:opacity .4s;text-shadow:0 1px 12px #000;
}
#tp-ppfstudio .ps__stage[data-touched="1"] .ps__hint{opacity:0;}
/* the tag sits in .ps__view beside the stage (build_ppf_studio.py), over the stage's lower left */
#tp-ppfstudio .ps__view{position:relative;}
#tp-ppfstudio .ps__tag{
  position:absolute;left:28px;bottom:24px;z-index:2;margin:0;pointer-events:none;display:flex;flex-direction:column;gap:8px;
  text-shadow:0 1px 15px #000;
}
#tp-ppfstudio .ps__tag b{font-family:var(--ps-display);font-weight:400;font-size:clamp(26px,2.4vw,34px);line-height:1;letter-spacing:.01em;color:#fff;}
#tp-ppfstudio .ps__tag span{font-family:var(--ps-body);font-weight:600;font-size:12px;letter-spacing:.1em;color:#e9e2da;}
/* the credit: top left of each stage, above the drag surface. In LeadGend's own gold (#F0C040 / #C9A227, the
   leadgendmarketing.com palette): Jason 2026-10-06, "不太明显 换成金色的" -- white at 11px was lost on the plates */
#tp-ppfstudio .ps__credit{
  position:absolute;left:20px;top:18px;z-index:2;display:inline-flex;align-items:baseline;gap:6px;
  font-family:var(--ps-body);font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;line-height:1;
  color:#E3B83A;text-decoration:none;text-shadow:0 1px 8px #000,0 0 2px #000;transition:color .2s;
}
#tp-ppfstudio .ps__credit b{font-weight:800;color:#F0C040;letter-spacing:.1em;}
#tp-ppfstudio .ps__credit:hover,#tp-ppfstudio .ps__credit:hover b{color:#FFD86B;}
#tp-ppfstudio .ps__replay{
  position:absolute;right:18px;top:18px;z-index:2;appearance:none;border:1px solid #ffffff47;border-radius:3px;
  background:rgba(12,9,8,.5);color:#fff;cursor:pointer;padding:9px 13px 9px 11px;display:inline-flex;align-items:center;gap:8px;
  font-family:var(--ps-body);font-weight:700;font-size:12px;letter-spacing:.1em;text-transform:uppercase;line-height:1;
  transition:background .2s,border-color .2s;
}
#tp-ppfstudio .ps__replay[hidden]{display:none;}
#tp-ppfstudio .ps__replay:hover{background:var(--ps-grad);border-color:#ffffffaa;}
#tp-ppfstudio .ps__replay svg{width:12px;height:12px;}

/* ---------- color: finish tabs + swatches ---------- */
#tp-ppfstudio .ps__colors{padding:22px 32px 30px;}
#tp-ppfstudio .ps__tabs{display:flex;gap:0;border-bottom:1px solid var(--ps-line);margin:0 0 20px;}
#tp-ppfstudio .ps__tab{
  appearance:none;border:0;background:none;color:var(--ps-sub);cursor:pointer;position:relative;
  font-family:var(--ps-body);font-weight:700;font-size:13px;letter-spacing:.12em;text-transform:uppercase;
  padding:11px 0 13px;margin-right:28px;line-height:1;transition:color .2s;
}
#tp-ppfstudio .ps__tab:hover,#tp-ppfstudio .ps__tab[aria-selected="true"]{color:#fff;}
#tp-ppfstudio .ps__tab[aria-selected="true"]::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--ps-grad);}
#tp-ppfstudio .ps__sw{display:grid;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:12px 8px;}
#tp-ppfstudio .ps__swb{appearance:none;border:0;padding:0;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;}
#tp-ppfstudio .ps__chip{
  display:block;width:36px;height:36px;border-radius:50%;position:relative;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.2);transition:transform .25s var(--ps-ease),box-shadow .2s;
}
#tp-ppfstudio .ps__swb:hover .ps__chip{transform:translateY(-2px);}
#tp-ppfstudio .ps__swb[aria-pressed="true"] .ps__chip{box-shadow:0 0 0 2px var(--ps-card),0 0 0 4px var(--ps-red);}
#tp-ppfstudio .ps__factory{
  appearance:none;border:1px solid var(--ps-line);border-radius:3px;background:none;color:var(--ps-mut);cursor:pointer;margin-top:22px;
  font-family:var(--ps-body);font-weight:700;font-size:12px;letter-spacing:.12em;text-transform:uppercase;padding:12px 16px;line-height:1;
  transition:border-color .2s,color .2s;
}
#tp-ppfstudio .ps__factory:hover,#tp-ppfstudio .ps__factory[aria-pressed="true"]{border-color:#fff;color:#fff;}

/* ---------- coverage: package tabs, as the P1 block had them ---------- */
#tp-ppfstudio .ps__pkgs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));}
#tp-ppfstudio .ps__pkg{
  appearance:none;border:0;border-left:1px solid var(--ps-line);border-top:3px solid transparent;background:var(--ps-card2);color:var(--ps-ink);
  cursor:pointer;text-align:left;padding:22px 20px 20px;position:relative;display:grid;gap:12px;align-content:start;
  transition:background .25s,border-color .25s;
}
#tp-ppfstudio .ps__pkg:first-child{border-left:0;}
#tp-ppfstudio .ps__pkg:hover{background:#24201c;}
#tp-ppfstudio .ps__pkg[aria-selected="true"]{border-top-color:var(--ps-red);background:var(--ps-pick);}
#tp-ppfstudio .ps__pkg:focus-visible{outline:2px solid #f5add1;outline-offset:-4px;}
#tp-ppfstudio .ps__pkg b{font-family:var(--ps-body);font-weight:700;font-size:18px;line-height:1.3;}
#tp-ppfstudio .ps__pkg span{font-family:var(--ps-body);font-weight:600;font-size:13px;letter-spacing:.06em;color:var(--ps-sub);}
#tp-ppfstudio .ps__pkg[aria-selected="true"] span{color:#fff;}

/* ---------- the chosen package: copy left, what it covers right, the quote button under both ---------- */
#tp-ppfstudio .ps__detail{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:26px 64px;padding:38px 36px 36px;
  border-top:1px solid var(--ps-line);}
#tp-ppfstudio .ps__detail[hidden]{display:none;}
#tp-ppfstudio .ps__pname{margin:0 0 14px;font-family:var(--ps-display);font-weight:400;font-size:clamp(28px,2.6vw,38px);line-height:1;letter-spacing:.01em;color:var(--ps-ink);}
#tp-ppfstudio .ps__price{margin:0 0 20px;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;}
#tp-ppfstudio .ps__price span{font-family:var(--ps-body);font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ps-sub);}
#tp-ppfstudio .ps__price b{font-family:var(--ps-display);font-weight:400;font-size:clamp(28px,2.4vw,36px);line-height:1;letter-spacing:.02em;
  background:linear-gradient(100deg,#ff3fa4 0%,#f59154 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;}
#tp-ppfstudio .ps__desc{margin:0;max-width:62ch;color:var(--ps-mut);font-size:16px;line-height:1.7;}
#tp-ppfstudio .ps__desc p{margin:0;}
#tp-ppfstudio .ps__inc{margin:6px 0 14px;font-family:var(--ps-body);font-weight:700;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#ee9fc7;}
#tp-ppfstudio .ps__list{list-style:none;margin:0;padding:0;columns:2;column-gap:28px;}
#tp-ppfstudio .ps__list li{break-inside:avoid;position:relative;padding:9px 0 9px 28px;border-bottom:1px solid var(--ps-line2);font-size:15px;line-height:1.35;color:var(--ps-ink);}
#tp-ppfstudio .ps__list li::before{content:'';position:absolute;left:3px;top:13px;width:10px;height:5px;border-left:2px solid var(--ps-coral);border-bottom:2px solid var(--ps-coral);transform:rotate(-45deg);}
#tp-ppfstudio .ps__cta{grid-column:1/-1;justify-self:start;margin-top:4px;}

/* ---------- failure: no manifest, no script -- the packages, prices and quote button stay ---------- */
#tp-ppfstudio .ps__fail{display:none;margin:0;padding:0 32px 24px;color:var(--ps-mut);font-size:15px;line-height:1.6;}
#tp-ppfstudio.is-failed .ps__fail{display:block;}
#tp-ppfstudio.is-failed .ps__cars,#tp-ppfstudio.is-failed [data-part="color"],#tp-ppfstudio.is-failed .ps__sec--color,
#tp-ppfstudio.is-failed .ps__stage,#tp-ppfstudio.is-failed .ps__view,#tp-ppfstudio.is-failed [data-part="coverage"] .ps__lede{display:none;}

#tp-ppfstudio .ps__sec .fine-print{margin-top:22px;}

@media (max-width:800px){
  #tp-ppfstudio .ps__cardhead{padding:22px 20px 16px;}
  #tp-ppfstudio .ps__cars{grid-template-columns:repeat(var(--ps-nm,3),minmax(0,1fr));padding:0 20px 16px;gap:5px;}
  /* three across a phone: "RANGE ROVER" has to fit whole (it was cut to "RANGE ROV...") */
  #tp-ppfstudio .ps__car{padding:13px 2px 12px;font-size:11.5px;letter-spacing:.02em;}
  #tp-ppfstudio .ps__colors{padding:18px 20px 24px;}
  #tp-ppfstudio .ps__stage{aspect-ratio:4/3;}
  /* the 4:3 stage puts the car's nose in the lower-left corner, under the tag (Jason 2026-10-07: "XP FIRE RED挡住车模型了"):
     the film's name is a caption under the picture; the package's name stays on the stage, without its second line */
  #tp-ppfstudio .ps__tag{position:static;flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:4px 12px;padding:16px 20px 0;text-shadow:none;}
  #tp-ppfstudio .ps__tag b{font-size:24px;}
  #tp-ppfstudio .ps__tag span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ps-sub);}
  #tp-ppfstudio .ps__tag--pkg{position:absolute;left:18px;bottom:16px;padding:0;text-shadow:0 1px 15px #000;}
  #tp-ppfstudio .ps__tag--pkg b{font-size:22px;}
  #tp-ppfstudio .ps__colors{padding-top:14px;}
  /* the tag runs the width of a phone, so the hint moves to the top corner the replay button leaves free */
  /* the credit level with Replay (top 18, 30 tall), the hint under it */
  #tp-ppfstudio .ps__hint{right:auto;left:18px;bottom:auto;top:50px;}
  #tp-ppfstudio .ps__credit{left:18px;top:28px;font-size:11px;}
  #tp-ppfstudio .ps__stage::before{
    content:"";position:absolute;left:0;right:0;top:0;height:22%;z-index:1;pointer-events:none;
    background:linear-gradient(to bottom,rgba(8,6,5,.5),rgba(8,6,5,0));
  }
  #tp-ppfstudio .ps__pkgs{grid-template-columns:repeat(2,minmax(0,1fr));}
  #tp-ppfstudio .ps__pkg{padding:18px 15px 16px;}
  #tp-ppfstudio .ps__pkg b{font-size:15px;}
  #tp-ppfstudio .ps__pkg:nth-child(3){border-left:0;}
  #tp-ppfstudio .ps__pkg:nth-child(n+3){border-top-width:3px;box-shadow:inset 0 1px 0 var(--ps-line);}
  #tp-ppfstudio .ps__detail{grid-template-columns:1fr;gap:22px;padding:26px 20px 24px;}
  #tp-ppfstudio .ps__pname{font-size:28px;}
  #tp-ppfstudio .ps__tab{margin-right:18px;letter-spacing:.08em;}
  #tp-ppfstudio .ps__desc{font-size:15px;line-height:1.65;}
  #tp-ppfstudio .ps__list{column-gap:18px;}
  #tp-ppfstudio .ps__list li{font-size:14px;padding-left:24px;}
  #tp-ppfstudio .ps__cta{justify-self:stretch;}
}
@media (prefers-reduced-motion:reduce){
  #tp-ppfstudio *{transition-duration:.01ms !important;animation:none !important;}
}
