/* bgpvr.com/partners (the approved D315 redesign, variant A + Present): the sections of the page on site.css's tokens.
   Data slots are filled by /js/partners.js. Light only, like the rest of bgpvr.com. */
.pt main{display:block}
.pt [hidden]{display:none!important}      /* the bar, the price-only switch, an empty clips section */
.pt-sec{padding:clamp(56px,8vw,104px) 0;border-top:1px solid var(--line)}
.pt-head{display:grid;gap:14px;align-content:start;max-width:68ch;margin-bottom:32px}
.pt-head h2{font-size:clamp(1.6rem,1.2rem + 1.6vw,2.4rem);line-height:1.12;letter-spacing:-.015em}
.pt-head h2:focus{outline:none}
.pt-head p{font-size:1.06rem;color:var(--ink-2)}
.pt-small{font-size:.875rem;color:var(--ink-3);margin-top:18px}
.pt-row{display:flex;flex-wrap:wrap;gap:12px}
.pt .btn:active{transform:scale(.97)}
.pt-ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-2)}
.pt-light{background:var(--teal-line);color:#06202A}
@media (hover:hover){.pt-ghost:hover{background:var(--surface)}}
.pt-num,.pt td,.pt th{font-variant-numeric:tabular-nums}
.pt-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* hero */
.pt-hero{background:var(--art);color:#F4EFE8;padding:clamp(48px,8vw,96px) 0 clamp(40px,6vw,72px);overflow:hidden}
.pt-hero h1{color:#fff;max-width:14ch;font-size:clamp(2.1rem,1.4rem + 3.2vw,3.9rem);line-height:1.04;letter-spacing:-.015em}
.pt-lead{font-size:clamp(1.05rem,1rem + .4vw,1.25rem);color:#C9D3E3;max-width:56ch;margin-top:20px}
.pt-hero .pt-row{margin-top:28px}
.pt-hero .btn-primary{background:var(--teal-line);color:#06202A}
.pt-hero .pt-ghost,.pt-contact .pt-ghost{color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)}
@media (hover:hover){.pt-hero .pt-ghost:hover,.pt-contact .pt-ghost:hover{background:rgba(255,255,255,.08)}}
.pt-hero :focus-visible,.pt-contact :focus-visible{outline-color:var(--teal-line)}
.pt-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,64px);align-items:center}
.pt-rel{margin-top:28px;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.875rem;color:#C9D3E3;min-height:1.6em}
.pt-rel b{color:#fff;font-weight:600}
.pt-shots{position:relative;aspect-ratio:16/11;margin:0}
.pt-tv{position:absolute;inset:0 8% 14% 0;border-radius:14px;overflow:hidden;box-shadow:var(--shadow-3);border:6px solid #050A16;background:#050A16}
.pt-ph{position:absolute;right:0;bottom:0;width:28%;aspect-ratio:390/844;border-radius:20px;overflow:hidden;border:5px solid #050A16;box-shadow:var(--shadow-3);background:#050A16}
.pt-shots img{width:100%;height:100%;object-fit:cover}
.pt-shots figcaption{position:absolute;left:0;bottom:-6px;max-width:62%;font-size:.78rem;color:#C9D3E3}
@media (max-width:860px){.pt-hero-grid{grid-template-columns:1fr}.pt-shots{max-width:560px;width:100%}}

/* who it is for */
.pt-fit{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,5vw,72px)}
.pt-fit .pt-head{margin:0}
.pt-fit li{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid var(--line);color:var(--ink-2)}
.pt-fit li:first-child{padding-top:0}
.pt-fit li .i{color:var(--accent);margin-top:3px}
.pt-fit li strong{color:var(--ink)}
@media (max-width:760px){.pt-fit{grid-template-columns:1fr}}

/* what you get */
.pt-parts{border-top:1px solid var(--line)}
.pt-part{display:grid;grid-template-columns:220px minmax(0,1fr) minmax(0,.8fr);gap:16px 32px;padding:26px 0;border-bottom:1px solid var(--line);align-items:start}
.pt-part h3{display:flex;gap:10px;align-items:flex-start;font-size:1.15rem;line-height:1.3}
.pt-part h3 .i{color:var(--accent);margin-top:2px}
.pt-part p{color:var(--ink-2)}
.pt-part figure{margin:0;border-radius:12px;overflow:hidden;box-shadow:var(--shadow-1);border:1px solid var(--line);background:var(--surface)}
.pt-part figure.pt-phone{max-width:180px;border-radius:18px;border:4px solid #050A16}
@media (max-width:860px){.pt-part{grid-template-columns:1fr}}

/* tables */
.pt-tbl{position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-1)}
.pt table{border-collapse:collapse;width:100%;font-size:.94rem}
.pt-tbl th,.pt-tbl td{text-align:left;vertical-align:top;padding:14px 16px;border-bottom:1px solid var(--line)}
.pt-tbl tr:last-child td,.pt-tbl tr:last-child th{border-bottom:0}
.pt-tbl thead th{font:600 .8rem/1.3 var(--ui);color:var(--ink-3);background:var(--subtle)}
.pt-tbl td strong{color:var(--ink);font-weight:600}
.pt-v{font-weight:600;color:var(--ink)}
.pt-st-test,.pt-st-next{background:var(--teal-50);color:var(--accent)}
.pt-empty{color:var(--ink-3);font-size:.94rem;padding:16px}
@media (max-width:640px){
  .pt-stack thead{display:none}
  .pt-stack tr{display:block;padding:12px 14px;border-bottom:1px solid var(--line)}
  .pt-stack tr:last-child{border-bottom:0}
  .pt-stack td{display:block;border:0;padding:3px 0}
  .pt-stack td[data-h]::before{content:attr(data-h);display:block;font-size:.75rem;font-weight:600;color:var(--ink-3)}
}

/* clips: posters cached on bgpvr.com, YouTube only after a click */
.pt-clips{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(170px,210px);gap:16px;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.pt-clip{position:relative;scroll-snap-align:start;display:grid;gap:10px;align-content:start;text-decoration:none;color:var(--ink-2)}
.pt-poster{aspect-ratio:9/16;border-radius:16px;background:var(--plan);position:relative;overflow:hidden;display:grid;place-items:center;box-shadow:var(--shadow-1);transition:transform .25s var(--ease-out),box-shadow .25s var(--ease-out)}
.pt-poster img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pt-play{position:relative;width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,.92);display:grid;place-items:center;color:var(--ink)}
.pt-play svg{width:22px;height:22px}
@media (hover:hover){.pt-clip:hover .pt-poster{transform:translateY(-3px);box-shadow:var(--shadow-2)}}
.pt-clip:active .pt-poster{transform:scale(.98)}
.pt-clip b{color:var(--ink);line-height:1.3}
.pt-clip span{font-size:.85rem;color:var(--accent)}
@media (min-width:1000px){.pt-clips{grid-auto-flow:row;grid-template-columns:repeat(6,minmax(0,1fr));overflow:visible}}

/* what's new, roadmap */
.pt-news,.pt-road{border-top:1px solid var(--line)}
.pt-news li,.pt-road li{display:grid;grid-template-columns:170px minmax(0,1fr);gap:6px 24px;padding:18px 0;border-bottom:1px solid var(--line)}
.pt-news .pt-when{font-size:.875rem;color:var(--ink-3)}
.pt-news .pt-when b{display:block;color:var(--ink);font-size:.95rem}
.pt-news p b{display:block;margin-bottom:2px}
.pt-news p b,.pt-road h3{color:var(--ink);font-weight:600;font-size:1rem;font-family:var(--ui)}
.pt-road p{color:var(--ink-2)}
@media (max-width:640px){.pt-news li,.pt-road li{grid-template-columns:1fr}}

/* plans */
.pt-tools{display:flex;flex-wrap:wrap;gap:8px 12px;margin-bottom:14px}
.pt-seg{display:inline-flex;background:var(--sunk);border-radius:12px;padding:3px;gap:2px;flex-wrap:wrap}
.pt-seg button{border:0;background:transparent;border-radius:9px;min-height:44px;padding:0 14px;font:500 .9rem/1 var(--ui);color:var(--ink-2);cursor:pointer;transition:background .2s var(--ease-out),color .2s var(--ease-out)}
.pt-seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1)}
.pt-seg button:active{transform:scale(.97)}
.pt-pick{display:none}
.pt-plans th[scope="col"]{min-width:110px;text-align:center}
.pt-plans .pt-price{display:block;font:600 1.5rem/1.1 var(--display);color:var(--ink);margin-top:4px}
.pt-plans .pt-per{display:block;font-size:.8rem;color:var(--ink-3)}
.pt-plans tbody th{font-weight:500;color:var(--ink-2);font-size:.9rem;background:var(--subtle);position:sticky;left:0;text-align:left}
.pt-plans td{text-align:center}
.pt-plans .pt-yes{color:var(--green-700)}
.pt-plans .pt-no{color:var(--ink-3)}
.pt-plans .pt-grp th{background:var(--sunk);font:600 .78rem/1.2 var(--ui);color:var(--ink-3)}
.pt-plans .pt-hl{background:rgba(223,241,243,.55)}
.pt-all{margin-top:18px}
.pt-all summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600;color:var(--accent)}
@media (max-width:640px){.pt-pick{display:inline-flex}.pt-plans [data-t]:not(.pt-pk){display:none}.pt-plans tbody th{width:56%}}

/* how to start */
.pt-steps{counter-reset:s;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.pt-steps li{counter-increment:s;display:grid;gap:8px;align-content:start}
.pt-steps li::before{content:counter(s);width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;font:600 1rem/1 var(--display)}
.pt-steps h3{font-size:1.15rem;margin-top:4px}
.pt-steps p{color:var(--ink-2)}
@media (max-width:760px){.pt-steps{grid-template-columns:1fr}}

/* contact */
.pt-contact{background:var(--plan);color:#F4EFE8;border-radius:24px;padding:clamp(28px,5vw,56px);display:grid;grid-template-columns:1.2fr .8fr;gap:28px;align-items:end}
.pt-contact h2{color:#fff;font-size:clamp(1.6rem,1.2rem + 1.6vw,2.4rem);line-height:1.12}
.pt-contact p{color:#E2E8F0;margin-top:12px;max-width:52ch}
.pt-contact .btn{overflow-wrap:anywhere}
@media (max-width:760px){.pt-contact{grid-template-columns:1fr}}
.pt-fine{font-size:.8rem;color:var(--ink-3);margin-top:28px;max-width:90ch}

/* Present: one section at a time, full screen when the browser allows */
.pt-bar{position:fixed;z-index:60;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;gap:8px;align-items:center;
  background:var(--surface);border-radius:16px;padding:6px;box-shadow:var(--shadow-3)}
.pt-bar .btn{min-height:48px;min-width:48px;padding:0 14px}
.pt-count{font:600 .95rem/1 var(--ui);color:var(--ink-2);min-width:56px;text-align:center}
html.pt-presenting .doorbar,html.pt-presenting header.site,html.pt-presenting footer.site,html.pt-presenting .skip{display:none}
html.pt-presenting .pt-slide:not(.pt-on){display:none}
html.pt-presenting .pt-slide.pt-on{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;justify-content:center;border-top:0;padding-bottom:96px}
html.pt-presenting .pt-slide.pt-on>.wrap{width:100%}
@media (prefers-reduced-motion:no-preference){html.pt-presenting .pt-slide.pt-on{animation:pt-in .32s var(--ease-out)}}
@keyframes pt-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.pt-poster,.pt-seg button{transition:none}}

@media print{
  @page{size:A4 landscape;margin:12mm}
  .doorbar,header.site,footer.site,.pt-bar,.pt-row,.pt-tools,.skip{display:none!important}
  body,.pt-hero,.pt-contact{background:#fff!important;color:#000}
  .pt-hero h1,.pt-contact h2,.pt-lead,.pt-rel,.pt-rel b,.pt-contact p{color:#000!important}
  .pt-slide{break-after:page;border:0}
  .pt-all{display:none}
}
