/* Innovent client portal (j077): device frame, hero callouts, CSS-only tour, rebate flow, framed cards. Uses the site tokens. */
.pframe{background:#1b2733;border-radius:16px;padding:12px 12px 14px;box-shadow:0 28px 60px rgba(16,38,56,.32),0 4px 14px rgba(16,38,56,.18)}
.pframe-bar{display:flex;gap:6px;padding:0 4px 9px}
.pframe-bar span{width:9px;height:9px;border-radius:50%;background:#3d4f61}
.pframe img{display:block;width:100%;height:auto;border-radius:7px;background:#f5f8fb}
.pframe-sm{border-radius:12px;padding:8px 8px 10px}
.pframe-sm .pframe-bar{padding-bottom:7px}
.pframe-sm .pframe-bar span{width:7px;height:7px}
.pcap{font-size:13px;color:var(--text-2);margin:12px 0 0;text-align:center}
.dark .pcap{color:#a9c4dc}
/* hero */
.portal-hero .svc-hero-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
.pdevice{position:relative;margin:8px 0 -40px;perspective:1800px}
.pdevice .pframe{transform:rotateY(-9deg) rotateX(3deg);transform-origin:left center}
.pchip{position:absolute;display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--navy);font-size:14px;font-weight:800;line-height:1.2;border-radius:999px;padding:9px 15px 9px 11px;box-shadow:0 10px 26px rgba(16,38,56,.28);white-space:nowrap;z-index:2}
.pchip::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(35,164,85,.18);flex:none}
.pchip-1{top:30%;left:-6%}
.pchip-2{top:20%;right:-2%}
.pchip-3{bottom:16%;left:42%}
@media(max-width:1020px){.portal-hero .svc-hero-grid{grid-template-columns:1fr}.pdevice{margin:12px 0 -20px}.pdevice .pframe{transform:none}
 .pchip{position:static;margin:0 8px 8px 0;font-size:13px}
 .pchips{display:flex;flex-wrap:wrap;margin-top:16px}}
@media(prefers-reduced-motion:reduce){.pdevice .pframe{transform:none}}
/* tour */
.ptour{position:relative;margin:8px 0 0}
.pt-r{position:absolute;opacity:0;width:1px;height:1px;clip:rect(0 0 0 0);overflow:hidden;margin:0;left:0;top:0}
.pt-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 22px}
.pt-tabs label{cursor:pointer;font-weight:800;font-size:15px;color:var(--navy);background:var(--tint);border:1px solid var(--line);border-radius:999px;padding:10px 20px;line-height:1.2;transition:background .15s,color .15s}
.pt-tabs label:hover{border-color:var(--blue)}
.pt-panel{display:none;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:32px;align-items:center}
.pt-cap h3{margin:0 0 10px;font-size:22px}
.pt-cap p{margin:0 0 12px;color:var(--ink)}
.pt-cap .pt-k{font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--blue);margin:0 0 6px}
#pt-jobs:checked~.pt-tabs label[for=pt-jobs],#pt-certs:checked~.pt-tabs label[for=pt-certs],#pt-docs:checked~.pt-tabs label[for=pt-docs],#pt-rebates:checked~.pt-tabs label[for=pt-rebates]{background:var(--navy);border-color:var(--navy);color:#fff}
#pt-jobs:focus-visible~.pt-tabs label[for=pt-jobs],#pt-certs:focus-visible~.pt-tabs label[for=pt-certs],#pt-docs:focus-visible~.pt-tabs label[for=pt-docs],#pt-rebates:focus-visible~.pt-tabs label[for=pt-rebates]{outline:3px solid var(--blue);outline-offset:3px}
#pt-jobs:checked~.pt-panels .pt-p-jobs,#pt-certs:checked~.pt-panels .pt-p-certs,#pt-docs:checked~.pt-panels .pt-p-docs,#pt-rebates:checked~.pt-panels .pt-p-rebates{display:grid}
@media(max-width:760px){.pt-tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:6px 6px 8px;margin:0 -6px 16px}
 .pt-tabs label{flex:none}
 .pt-panel{grid-template-columns:1fr;gap:18px}}
/* rebate flow */
.rflow-t{font-weight:800;color:var(--navy);margin:16px 0 10px}
.rflow{list-style:none;margin:0;padding:0}
.rflow li{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius-s);padding:7px 12px;font-size:14px;font-weight:700;color:var(--navy);line-height:1.3}
.rflow li+li{margin-top:20px}
.rflow li+li::before{content:"\2193";position:absolute;left:16px;top:-20px;font-size:13px;line-height:20px;color:var(--text-2)}
.rflow li.minus{color:#7a3a3a}
.rflow li.net{background:var(--tint);border-color:var(--blue)}
.rflow li.you{background:var(--green);border-color:var(--green);color:#fff}
/* framed card on service pages */
.portal-aside{padding:30px 0 6px}
.portal-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:28px;align-items:center;background:var(--tint);border:1px solid var(--line);border-radius:var(--radius-m);padding:26px;margin:8px 0 40px}
.portal-card .pc-k{font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--blue);margin:0 0 6px}
.portal-card .pc-t{font-size:21px;font-weight:800;color:var(--navy);line-height:1.25;margin:0 0 8px}
.portal-card p{margin:0 0 12px}
.portal-card .pc-link{font-weight:800}
.portal-card .pcap{text-align:left;margin-top:8px;font-size:12px}
@media(max-width:760px){.portal-card{grid-template-columns:1fr;padding:18px;gap:16px}}
/* homepage band */
.portal-band{background:#fff}
.portal-band-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:48px;align-items:center}
.portal-band h2{margin:12px 0 16px}
.portal-band p{margin:0 0 20px}
.pb-points{list-style:none;margin:0 0 26px;padding:0}
.pb-points li{position:relative;padding:0 0 10px 30px;font-weight:600}
.pb-points li::before{content:"\2713";position:absolute;left:0;top:0;color:var(--green);font-weight:800}
@media(max-width:1020px){.portal-band-grid{grid-template-columns:1fr;gap:28px}}
/* booking note */
.bw-portal-note{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--text-2);margin:18px 0 0;line-height:1.45}
.bw-portal-note svg{flex:none;width:20px;height:20px;stroke:var(--green);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;margin-top:1px}
