/*
Theme Name: Prasiddhi PR
Theme URI: https://prasiddhipr.in
Author: Prasiddhi PR
Description: Custom scroll-story theme for Prasiddhi PR. Homepage sections are Elementor widgets (group "Prasiddhi PR"); one-click homepage under Appearance → Prasiddhi PR Setup. Case Studies and Clients have their own menus.
Version: 1.4.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: prasiddhi-pr
*/

:root{
  --pp-purple:#6754E9;
  --pp-lav:#B0A7EF;
  --pp-lav-light:#E9E5FF;
  --pp-lime:#9BFE17;
  --pp-off:#F7F7FA;
  --pp-grey:#E2E2E2;
  --pp-ink:#000000;
  --pp-muted:rgba(0,0,0,.7);
  --pp-admin:var(--wp-admin--admin-bar--height,0px);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--pp-off);color:var(--pp-ink);font-family:'Poppins',system-ui,sans-serif;font-weight:300;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--pp-purple)}a:hover{color:#5442D6}
h1,h2,h3,h4{font-weight:900;letter-spacing:-.03em;line-height:1.08;margin:0}
html body .pp-eyebrow{margin:0;font-size:14px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--pp-purple)}
html body .pp-muted{color:var(--pp-muted)}
html body .pp-wrap{max-width:1360px;margin:0 auto;padding:0 6vw}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.skip-link:focus{position:fixed;top:10px;left:10px;z-index:999;background:#fff;padding:10px 16px;clip:auto;width:auto;height:auto}

/* Beat Elementor site-wide (kit) heading/link styles inside our sections */
html body .pp-section :where(h1,h2,h3,h4,h5,h6){font-family:'Poppins',system-ui,sans-serif;font-weight:900;letter-spacing:-.03em;line-height:1.08;margin:0;color:inherit;text-transform:none}
html body .pp-section :where(p,span,a,li,div){font-family:'Poppins',system-ui,sans-serif}

/* Sections always run edge to edge, even inside a boxed Elementor section */
html body .pp-section{font-family:'Poppins',system-ui,sans-serif;font-weight:300;color:#000;position:relative;width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
html body .pp-home{display:block;overflow-x:clip}
.elementor-widget[class*="elementor-widget-pp-"]{margin-bottom:0!important}
.elementor-editor-active .pp-section{min-height:0}
.elementor-editor-active .pp-intro{min-height:80vh}

/* Buttons */
html body .pp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:16px 28px;border-radius:999px;font-weight:600;font-size:16px;text-decoration:none;transition:transform .25s ease,box-shadow .25s ease;border:0;cursor:pointer;font-family:inherit}
html body .pp-btn:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(103,84,233,.35)}
html body .pp-btn-primary{background:var(--pp-purple);color:#fff}html body .pp-btn-primary:hover{color:#fff}
html body .pp-btn-lime{background:var(--pp-lime);color:#000}html body .pp-btn-lime:hover{color:#000}

/* Progress bar */
html body .pp-progress{position:fixed;top:var(--pp-admin);left:0;right:0;height:4px;background:var(--pp-lime);transform-origin:left;transform:scaleX(0);z-index:1000;pointer-events:none}

/* Header */
html body .pp-header{position:fixed;top:calc(var(--pp-admin) + 4px);left:0;right:0;z-index:900;pointer-events:none}
html body .pp-header-inner{max-width:1360px;margin:0 auto;padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px}
html body .pp-pill{pointer-events:auto;background:rgba(255,255,255,.75);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--pp-grey);border-radius:999px}
html body .pp-brand{display:flex;align-items:center;gap:10px;padding:8px 16px 8px 8px;text-decoration:none;color:#000}
html body .pp-brand-mark{width:34px;height:34px;border-radius:50%;background:var(--pp-purple);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:16px}
html body .pp-brand-name{font-weight:900;font-size:17px}
html body .pp-brand .custom-logo{max-height:34px;width:auto}
html body .pp-nav{display:flex;align-items:center;gap:4px;padding:6px;font-size:14px;font-weight:500}
html body .pp-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:4px}
html body .pp-nav a{color:#000;text-decoration:none;padding:10px 16px;border-radius:999px;display:block}
html body .pp-nav a:hover{background:var(--pp-lav-light)}
html body .pp-nav .pp-btn{padding:10px 18px;font-size:14px}
html body .pp-menu-toggle{display:none}
@media (max-width:820px){
  html body .pp-nav ul{display:none}
  html body .pp-nav.is-open ul{display:flex;flex-direction:column;position:absolute;top:70px;right:24px;background:#fff;border:1px solid var(--pp-grey);border-radius:20px;padding:10px;min-width:220px;box-shadow:0 20px 60px rgba(103,84,233,.18)}
  html body .pp-menu-toggle{display:inline-flex;background:none;border:0;font:inherit;font-weight:600;padding:10px 14px;cursor:pointer;color:#000}
}

/* Ambient background (ribbons) */
html body .pp-ambient{position:absolute;inset:0;overflow:hidden;pointer-events:none}
html body .pp-aurora{position:absolute;left:-30%;top:-60%;width:160%;height:220%;background:conic-gradient(from 0deg at 50% 50%,#fff 0deg,var(--pp-lav) 60deg,#fff 130deg,var(--pp-lav-light) 190deg,var(--pp-lime) 225deg,#fff 270deg,var(--pp-purple) 320deg,#fff 360deg);filter:blur(120px);opacity:.8;animation:pp-spin 40s linear infinite}
html body .pp-sway{position:absolute;inset:0;animation:pp-sway 9s ease-in-out infinite alternate}
html body .pp-wave{position:absolute;left:0;top:10%;width:200%;height:80%}
html body .pp-wave-a{animation:pp-wave 24s linear infinite}
html body .pp-wave-b{animation:pp-wave 36s linear infinite reverse}
html body .pp-glow{filter:blur(18px)}
@keyframes pp-spin{to{transform:rotate(360deg)}}
@keyframes pp-wave{to{transform:translateX(-50%)}}
@keyframes pp-sway{from{transform:translateY(-30px) rotate(-3deg)}to{transform:translateY(30px) rotate(2deg)}}

/* 1 Intro */
html body .pp-intro{position:relative;min-height:100vh;background:#fff;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:140px 24px 100px}
html body .pp-intro-bg{position:absolute;inset:0}
html body .pp-intro-words{position:relative;display:flex;flex-direction:column;align-items:center}
html body .pp-intro-top{margin:0 0 1vh;font-weight:900;font-size:clamp(48px,7vw,120px);line-height:1;letter-spacing:-.03em;color:transparent;-webkit-text-stroke:2px var(--pp-purple)}
html body .pp-intro-title{margin:0;display:flex;justify-content:center;font-weight:900;font-size:clamp(72px,21vw,340px);line-height:.9;letter-spacing:-.05em;color:var(--pp-purple);white-space:nowrap}
html body .pp-intro-title span{display:inline-block}
html body .pp-intro-tag{position:relative;margin-top:40px;display:flex;flex-direction:column;align-items:center;gap:16px;max-width:1000px}
html body .pp-intro-tag p.pp-lead{margin:0;font-weight:400;font-size:clamp(24px,3.4vw,52px);line-height:1.2;letter-spacing:-.02em;max-width:900px}
html body .pp-iris{display:none}
html body .pp-cue{position:absolute;left:0;right:0;bottom:32px;margin:0;font-size:13px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--pp-purple);animation:pp-bob 2s ease-in-out infinite}
@keyframes pp-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(10px)}}
html.pp-fx body .pp-intro{height:100vh;padding:0}
html.pp-fx body .pp-intro-tag{position:absolute;inset:0;margin:0;justify-content:center;padding:0 24px;max-width:none;pointer-events:none}
html.pp-fx body .pp-iris{display:block;position:absolute;left:50%;top:50%;width:300vmax;height:300vmax;margin:-150vmax 0 0 -150vmax;border-radius:50%;background:var(--pp-off);transform:scale(0)}

/* 2 Story words */
html body .pp-story{background:var(--pp-off);padding:18vh 6vw;display:flex;align-items:center;justify-content:center}
html body .pp-story-inner{max-width:1180px;display:flex;flex-direction:column;gap:32px}
html body .pp-story-text{margin:0;font-weight:800;font-size:clamp(28px,4vw,60px);line-height:1.25;letter-spacing:-.02em}
html body .pp-w{display:inline-block;margin-right:.26em}
html body .pp-hl{color:var(--pp-purple)}
html.pp-fx body .pp-story{height:100vh;padding:0 6vw}

/* 3 Journey */
html body .pp-journey{background:#fff;padding:16vh 0 12vh;position:relative;overflow:hidden}
html body .pp-journey-head{padding:0 6vw;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:56px}
html body .pp-journey-head h2{font-size:clamp(32px,3.6vw,56px)}
html body .pp-track{display:flex;flex-direction:column;gap:64px;padding:0 6vw}
html body .pp-stage{display:flex;flex-wrap:wrap;gap:40px;align-items:center}
html body .pp-stage-copy{flex:1 1 300px;display:flex;flex-direction:column;gap:16px}
html body .pp-stage-num{font-weight:900;font-size:84px;line-height:1;color:var(--pp-lav-light)}
html body .pp-stage h3{font-size:clamp(28px,2.8vw,44px)}
html body .pp-stage p{margin:0;font-size:17px;line-height:1.65;color:var(--pp-muted)}
html body .pp-stage-art{flex:1 1 300px;height:52vh;min-height:340px;border-radius:28px;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}
html body .pp-jprogress{display:none}
html.pp-fx body .pp-journey{height:100vh;padding:0;display:flex;flex-direction:column;justify-content:center}
html.pp-fx body .pp-journey-head{position:absolute;top:14vh;left:0;right:0;margin:0}
html.pp-fx body .pp-track{flex-direction:row;flex-wrap:nowrap;gap:4vw;width:max-content;margin-top:12vh}
html.pp-fx body .pp-stage{width:min(64vw,900px);flex-wrap:nowrap;height:52vh;min-height:360px}
html.pp-fx body .pp-stage-art{height:100%}
html.pp-fx body .pp-jprogress{display:block;position:absolute;left:6vw;right:6vw;bottom:8vh;height:2px;background:var(--pp-grey)}
html body .pp-jfill{position:absolute;inset:0;background:var(--pp-purple);transform-origin:left;transform:scaleX(0)}
html body .pp-jdot{position:absolute;top:-9px;left:0;width:20px;height:20px;margin-left:-10px;border-radius:50%;background:var(--pp-lime);box-shadow:0 0 0 6px rgba(155,254,23,.3)}

/* stage illustrations */
html body .pp-float{animation:pp-float 5s ease-in-out infinite alternate}
@keyframes pp-float{to{transform:translateY(-14px)}}
html body .pp-orb{width:180px;height:180px;border-radius:50%;background:var(--pp-lime);display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 30px rgba(155,254,23,.2),0 0 0 60px rgba(155,254,23,.08);font-weight:800;font-size:20px;line-height:1.2;text-align:center}
html body .pp-sheet{width:62%;height:78%;background:#fff;border-radius:10px;box-shadow:0 30px 60px rgba(103,84,233,.25);padding:26px;display:flex;flex-direction:column;gap:10px;transform:rotate(-4deg)}
html body .pp-sheet .k{font-size:11px;font-weight:700;letter-spacing:.16em;color:var(--pp-purple)}
html body .pp-bar{height:7px;background:var(--pp-grey);border-radius:3px}
html body .pp-bar.dark{height:12px;background:#000}
html body .pp-stamp{margin-top:auto;align-self:flex-end;width:54px;height:54px;border-radius:50%;border:3px solid var(--pp-purple);color:var(--pp-purple);font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;transform:rotate(-14deg)}
html body .pp-paper{width:70%;height:80%;background:var(--pp-off);border-radius:6px;padding:20px;display:flex;flex-direction:column;gap:10px;box-shadow:0 30px 60px rgba(0,0,0,.25)}
html body .pp-paper .mast{font-weight:900;font-size:22px;text-align:center;letter-spacing:.04em;border-bottom:2px solid #000;padding-bottom:8px}
html body .pp-paper .head{font-weight:900;font-size:22px;line-height:1.1}
html body .pp-phone{width:200px;height:88%;background:#fff;border-radius:32px;border:8px solid #000;padding:14px 12px;display:flex;flex-direction:column;gap:10px}
html body .pp-heart{color:var(--pp-purple);font-size:20px;animation:pp-pulse 1.6s ease-in-out infinite;display:inline-block}
@keyframes pp-pulse{50%{transform:scale(1.25)}}
html body .pp-beam{position:absolute;left:50%;top:-10%;width:0;height:0;border-left:140px solid transparent;border-right:140px solid transparent;border-top:420px solid rgba(233,229,255,.35);margin-left:-140px;filter:blur(6px);transform-origin:top center;animation:pp-beam 4s ease-in-out infinite alternate}
@keyframes pp-beam{from{transform:rotate(-10deg)}to{transform:rotate(10deg)}}

/* 4 Chapter */
html body .pp-chapter{background:var(--pp-off);padding:20vh 6vw;overflow:hidden}
html body .pp-chapter-inner{max-width:1360px;margin:0 auto;display:flex;flex-wrap:wrap;gap:6vw;align-items:center}
html body .pp-chapter-copy{flex:1 1 420px;display:flex;flex-direction:column;gap:22px}
html body .pp-chapter-copy h2{font-size:clamp(40px,5vw,80px)}
html body .pp-chapter-copy p{margin:0;font-size:18px;line-height:1.7;color:var(--pp-muted);max-width:520px}
html body .pp-chapter-media{flex:1 1 520px;position:relative;height:640px}
html body .pp-photo{position:absolute;border-radius:26px;overflow:hidden;display:flex;align-items:flex-end;padding:22px;font-size:14px;font-weight:500;background-size:cover;background-position:center}
html body .pp-photo-a{left:0;top:40px;width:58%;height:440px;background-color:var(--pp-purple);background-image:linear-gradient(160deg,var(--pp-lav),var(--pp-purple));color:#fff}
html body .pp-photo-b{right:0;top:180px;width:46%;height:360px;background-color:var(--pp-lav-light);background-image:radial-gradient(circle at 30% 30%,var(--pp-lime),var(--pp-lav) 55%,var(--pp-lav-light));color:#000;box-shadow:0 30px 60px rgba(103,84,233,.25)}
html body .pp-photo.has-img{background-image:none}
html body .pp-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (max-width:700px){html body .pp-chapter-media{height:520px}html body .pp-photo-a{height:340px}html body .pp-photo-b{height:280px;top:200px}}

/* 5 Work */
html body .pp-work{background:#fff;padding:18vh 6vw}
html body .pp-work-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:56px}
html body .pp-work-head h2{font-size:clamp(40px,5vw,76px);margin-top:12px}
html body .pp-peek-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
html body .pp-peek{position:relative;display:block;height:520px;border-radius:26px;overflow:hidden;text-decoration:none;color:#fff}
html body .pp-peek-under{position:absolute;inset:0;background:var(--pp-purple);padding:34px;display:flex;flex-direction:column;justify-content:flex-end;gap:10px;transform:scale(1.08);transition:transform .9s cubic-bezier(.2,.8,.2,1)}
html body .pp-peek-result{font-weight:900;font-size:84px;line-height:1;color:var(--pp-lime);letter-spacing:-.04em}
html body .pp-peek-metric{font-size:15px;color:var(--pp-lav-light)}
html body .pp-peek-cover{position:absolute;inset:0;padding:34px;display:flex;flex-direction:column;justify-content:space-between;color:#000;background:linear-gradient(160deg,var(--pp-lav-light),var(--pp-lav));background-size:cover;background-position:center;clip-path:inset(0 0 0 0);transition:clip-path .7s cubic-bezier(.7,0,.2,1)}
html body .pp-peek-cover .name{font-weight:900;font-size:34px;line-height:1.1}
html body .pp-peek-cover.has-img{color:#fff}
html body .pp-peek-cover.has-img::before{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(103,84,233,.85),rgba(103,84,233,0) 60%)}
html body .pp-peek-cover > *{position:relative}
html body .pp-peek:nth-child(3n+2) .pp-peek-cover:not(.has-img){background:radial-gradient(circle at 70% 30%,var(--pp-lime) 0%,var(--pp-lav-light) 50%)}
html body .pp-peek:nth-child(3n+3) .pp-peek-cover:not(.has-img){background:linear-gradient(200deg,var(--pp-lav),var(--pp-lav-light))}
html body .pp-peek:hover .pp-peek-cover,html body .pp-peek:focus-visible .pp-peek-cover{clip-path:inset(0 0 100% 0)}
html body .pp-peek:hover .pp-peek-under,html body .pp-peek:focus-visible .pp-peek-under{transform:scale(1)}
@media (hover:none){html body .pp-peek-cover{clip-path:inset(0 0 55% 0)}html body .pp-peek-under{transform:none}}

/* 6 Statement */
html body .pp-statement{background:var(--pp-purple);padding:20vh 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6vh;text-align:center;position:relative;overflow:hidden}
html body .pp-statement h2{font-size:clamp(52px,11vw,190px);line-height:.95;letter-spacing:-.04em}
html body .pp-st-one{color:#fff}
html body .pp-st-two{color:#fff}
html body .pp-st-two em{font-style:normal;color:var(--pp-lime)}
html.pp-fx body .pp-statement{height:100vh;padding:0 24px;background:#fff}
html.pp-fx body .pp-st-one{position:absolute;color:#000}
html.pp-fx body .pp-st-two{position:absolute}

/* 7 Gallery */
html body .pp-gallery{background:var(--pp-purple);padding:16vh 6vw;position:relative;overflow:hidden}
html body .pp-gtile{display:none}
html body .pp-gcenter{position:relative;height:70vh;border-radius:28px;overflow:hidden;background:radial-gradient(circle at 60% 40%,var(--pp-lime) 0%,var(--pp-lav) 30%,var(--pp-lav-light) 70%)}
html body .pp-gcenter img,html body .pp-gcenter video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
html body .pp-gcenter .ph{position:absolute;left:0;right:0;top:46%;margin:0;text-align:center;font-size:15px;font-weight:500;color:var(--pp-muted)}
html body .pp-gcap{position:absolute;left:6vw;bottom:9vh;display:flex;flex-direction:column;gap:12px}
html body .pp-gcap p.big{margin:0;font-weight:900;font-size:clamp(36px,5vw,80px);line-height:1.02;letter-spacing:-.03em;color:#000}
html body .pp-gcenter.has-media .pp-gcap p.big,html body .pp-gcenter.has-media .pp-gcap .pp-eyebrow{color:#fff;text-shadow:0 4px 30px rgba(0,0,0,.35)}
html.pp-fx body .pp-gallery{height:100vh;padding:0}
html.pp-fx body .pp-gcenter{position:absolute;inset:0;height:auto;transform:scale(.34)}
html.pp-fx body .pp-gtile{display:block;position:absolute;width:22vw;height:26vh;border-radius:20px;background-size:cover;background-position:center}

/* 8 Contact + bubbles */
html body .pp-contact{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--pp-off) 0%,var(--pp-lav-light) 100%);min-height:110vh;display:flex;align-items:center;justify-content:center;padding:120px 24px}
html body .pp-bubbles{position:absolute;inset:0;pointer-events:none}
html body .pp-bub{position:absolute;bottom:-220px;border-radius:50%;background:#fff;border:1.5px solid var(--pp-lav);display:flex;align-items:center;justify-content:center;color:var(--pp-muted);font-size:13px;font-weight:500;box-shadow:0 20px 50px rgba(103,84,233,.15);animation:pp-bub linear infinite;overflow:hidden;padding:18%}
html body .pp-bub img{max-width:100%;max-height:100%;object-fit:contain}
@keyframes pp-bub{0%{transform:translateY(0)}50%{transform:translateY(-70vh) translateX(30px)}100%{transform:translateY(-140vh) translateX(-10px)}}
html body .pp-contact-card{position:relative;text-align:center;max-width:820px;padding:64px 40px;border-radius:36px;background:rgba(255,255,255,.8);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--pp-grey);display:flex;flex-direction:column;align-items:center;gap:20px}
html body .pp-contact-card h2{font-size:clamp(38px,5vw,78px)}
html body .pp-contact-card p{margin:0;font-size:18px;line-height:1.6;color:var(--pp-muted);max-width:560px}
html body .pp-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:6px}


/* Inner pages & blog */
html body .pp-page{padding:160px 6vw 100px;max-width:900px;margin:0 auto}
html body .pp-page-wide{max-width:1360px}
html body .pp-page h1{font-size:clamp(40px,5vw,72px);margin-bottom:28px}
html body .pp-entry{font-size:18px;line-height:1.8}
html body .pp-entry h2{font-size:clamp(28px,3vw,40px);margin:1.6em 0 .6em}
html body .pp-entry h3{font-size:24px;margin:1.4em 0 .5em}
html body .pp-entry img{border-radius:18px;margin:1.5em 0}
html body .pp-entry blockquote{margin:1.5em 0;padding:20px 28px;border-radius:18px;background:var(--pp-lav-light);font-weight:500}
html body .pp-meta{font-size:14px;font-weight:500;color:var(--pp-muted);margin-bottom:24px}
html body .pp-posts{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:28px}
html body .pp-card{display:flex;flex-direction:column;gap:14px;text-decoration:none;color:#000}
html body .pp-card-img{aspect-ratio:4/3;border-radius:20px;overflow:hidden;background:linear-gradient(135deg,var(--pp-lav-light),var(--pp-lav) 50%,var(--pp-purple))}
html body .pp-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
html body .pp-card:hover .pp-card-img img{transform:scale(1.06)}
html body .pp-card h2{font-size:23px;font-weight:800;line-height:1.25;letter-spacing:-.01em}
html body .pp-pagination{margin-top:56px;display:flex;gap:10px;flex-wrap:wrap}
html body .pp-pagination .page-numbers{padding:10px 16px;border-radius:999px;background:#fff;border:1px solid var(--pp-grey);text-decoration:none;color:#000}
html body .pp-pagination .current{background:var(--pp-purple);color:#fff;border-color:var(--pp-purple)}
input,textarea,select{font-family:inherit;font-size:16px;padding:14px 16px;border-radius:14px;border:1px solid var(--pp-grey);background:#fff;width:100%}
input[type=submit],button[type=submit]{background:var(--pp-purple);color:#fff;border:0;border-radius:999px;padding:16px 28px;font-weight:600;width:auto;cursor:pointer}

/* Load-in */
html body .pp-load{animation:pp-loadin 1.2s cubic-bezier(.2,.8,.2,1) both}
html body .pp-load.l2{animation-delay:.2s}html body .pp-load.l3{animation-delay:.6s}
@keyframes pp-loadin{from{opacity:0;transform:translateY(60px)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}}

/* ==========================================================================
   v1.2: header, footer, services, inner pages, audit form
   ========================================================================== */

/* Typography polish */
html body .pp-section h2 em,html body .pp-page-hero h1 em,html body .pp-services h2 em,html body .pp-enquiry h2 em,html body .pp-cta-band h2 em,html body .pp-contact-card h2 em{font-style:normal;color:var(--pp-purple)}
html body .pp-statement h2 em{color:var(--pp-lime)}
html body .pp-eyebrow{display:inline-flex;align-items:center;gap:10px}
html body .pp-eyebrow::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--pp-lime);box-shadow:0 0 0 3px rgba(155,254,23,.25);flex:none}

/* Header: logo + Free Audit */
html body .pp-header-inner{justify-content:space-between}
html body .pp-header-cta{pointer-events:auto;padding:13px 22px;font-size:14px;font-weight:600;box-shadow:0 8px 24px rgba(155,254,23,.35)}
html body .pp-header-cta .pp-arrow{transition:transform .25s ease}
html body .pp-header-cta:hover .pp-arrow{transform:translateX(4px)}
html body .pp-btn-ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.6)}
html body .pp-btn-ghost:hover{color:#fff;border-color:#fff}
@media (max-width:600px){
  html body .pp-header-inner{padding:12px 14px}
  html body .pp-header-cta{padding:11px 16px;font-size:13px}
  html body .pp-brand .custom-logo{max-height:28px}
}

/* Footer */
html body .pp-footer{background:var(--pp-purple);color:#fff;padding:96px 6vw 32px;position:relative;overflow:hidden;font-family:'Poppins',system-ui,sans-serif}
html body .pp-footer::before{content:"";position:absolute;right:-220px;top:-260px;width:620px;height:620px;border-radius:50%;background:radial-gradient(circle,rgba(176,167,239,.55),rgba(176,167,239,0) 65%);pointer-events:none}
html body .pp-footer-inner{position:relative;max-width:1360px;margin:0 auto;display:flex;flex-direction:column;gap:56px}
html body .pp-footer-top{display:flex;flex-wrap:wrap;gap:56px;justify-content:space-between}
html body .pp-footer-brand{flex:1 1 380px;max-width:520px;display:flex;flex-direction:column;gap:16px}
html body .pp-footer-kicker{margin:0;font-size:13px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--pp-lime)}
html body .pp-footer-headline{margin:0;font-weight:800;font-size:clamp(30px,3.4vw,48px);line-height:1.1;letter-spacing:-.03em}
html body .pp-footer-blurb{margin:0;font-size:16px;line-height:1.7;color:var(--pp-lav-light);font-weight:300}
html body .pp-footer-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}
html body .pp-footer-cols{flex:2 1 520px;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:32px}
html body .pp-footer-h{margin:0 0 14px;font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--pp-lav)}
html body .pp-footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
html body .pp-footer-col a{color:#fff;text-decoration:none;font-size:15px;font-weight:400;background-image:linear-gradient(var(--pp-lime),var(--pp-lime));background-size:0 1.5px;background-repeat:no-repeat;background-position:0 100%;transition:background-size .3s ease}
html body .pp-footer-col a:hover{color:#fff;background-size:100% 1.5px}
html body .pp-footer-addr{font-style:normal;font-size:15px;line-height:1.65;color:var(--pp-lav-light);margin:0 0 12px;font-weight:300}
html body .pp-footer-mega{margin:0;font-weight:900;font-size:clamp(56px,13vw,220px);line-height:.85;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1.5px rgba(233,229,255,.55);white-space:nowrap;overflow:hidden;user-select:none}
html body .pp-footer-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding-top:24px;border-top:1px solid rgba(255,255,255,.25);font-size:13px;color:var(--pp-lav-light)}
html body .pp-footer-bottom p{margin:0}
html body .pp-footer-social,html body .pp-footer-legal{display:flex;flex-wrap:wrap;gap:10px}
html body .pp-footer-social a{color:#fff;text-decoration:none;padding:7px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.35);font-size:13px;transition:background .2s ease,color .2s ease}
html body .pp-footer-social a:hover{background:var(--pp-lime);color:#000;border-color:var(--pp-lime)}
html body .pp-footer-legal a{color:var(--pp-lav-light);text-decoration:none}
html body .pp-footer-legal a:hover{color:#fff}

/* Services: idea to infinity */
html body .pp-services{background:#fff;padding:18vh 6vw;border-top:1px solid var(--pp-grey)}
html body .pp-services-inner{max-width:1360px;margin:0 auto;display:flex;flex-wrap:wrap;gap:6vw;align-items:flex-start}
html body .pp-services-head{flex:1 1 360px;align-self:stretch}
html body .pp-services-sticky{position:sticky;top:130px;display:flex;flex-direction:column;gap:22px;align-items:flex-start}
html body .pp-services-sticky h2{font-size:clamp(38px,4.6vw,72px)}
html body .pp-services-intro{margin:0;font-size:18px;line-height:1.7;color:var(--pp-muted);max-width:460px}
html body .pp-infinity{width:180px;margin-top:12px}
html body .pp-infinity svg{width:100%;height:auto;display:block}
html body .pp-infinity-run{stroke-dasharray:22 78;animation:pp-inf 5s linear infinite}
@keyframes pp-inf{to{stroke-dashoffset:-100}}
html body .pp-services-list{flex:1.4 1 480px;list-style:none;margin:0;padding:0;counter-reset:none;border-top:1px solid var(--pp-grey)}
html body .pp-service{padding:34px 0;border-bottom:1px solid var(--pp-grey);display:grid;grid-template-columns:1fr;gap:10px;transition:opacity .4s ease;scroll-margin-top:120px}
html body .pp-service-top{display:flex;align-items:baseline;gap:16px}
html body .pp-service-num{font-size:14px;font-weight:600;color:var(--pp-purple)}
html body .pp-service-key{font-weight:900;font-size:clamp(40px,5vw,78px);line-height:1;letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1.5px var(--pp-lav);transition:color .4s ease,-webkit-text-stroke-color .4s ease}
html body .pp-service h3{font-size:clamp(20px,1.8vw,26px);font-weight:700;letter-spacing:-.01em}
html body .pp-service p{margin:0;font-size:17px;line-height:1.65;color:var(--pp-muted);max-width:620px}
html body .pp-service:hover .pp-service-key,html body .pp-service.is-on .pp-service-key{color:var(--pp-purple);-webkit-text-stroke-color:var(--pp-purple)}
html body .pp-tags{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
html body .pp-tags li{padding:8px 14px;border-radius:999px;background:var(--pp-lav-light);font-size:14px;font-weight:500;color:#000}
html body .pp-services.is-detailed{background:var(--pp-off)}
html body .pp-services.is-detailed .pp-service{padding:48px 0}
html body .pp-services.is-detailed .pp-service p{font-size:18px}
@media (max-width:900px){html body .pp-services-sticky{position:static}}

/* Inner page hero */
html body .pp-page-hero{position:relative;overflow:hidden;background:#fff;padding:190px 6vw 110px}
html body .pp-page-hero-glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 85% 20%,rgba(176,167,239,.55),rgba(176,167,239,0) 45%),radial-gradient(circle at 70% 90%,rgba(155,254,23,.28),rgba(155,254,23,0) 40%),radial-gradient(circle at 10% 10%,rgba(233,229,255,.9),rgba(233,229,255,0) 40%)}
html body .pp-page-hero-inner{position:relative;max-width:1360px;margin:0 auto;display:flex;flex-direction:column;gap:24px;align-items:flex-start}
html body .pp-page-hero h1{font-weight:900;font-size:clamp(44px,7vw,112px);line-height:1.02;letter-spacing:-.045em;max-width:1150px}
html body .pp-page-hero-text{margin:0;font-size:clamp(17px,1.5vw,21px);line-height:1.65;color:var(--pp-muted);max-width:720px}

/* Free audit form */
html body .pp-enquiry{background:var(--pp-off);padding:12vh 6vw 16vh}
html body .pp-enquiry-inner{max-width:1360px;margin:0 auto;display:flex;flex-wrap:wrap;gap:6vw;align-items:flex-start}
html body .pp-enquiry-side{flex:1 1 360px;display:flex;flex-direction:column;gap:22px;align-items:flex-start}
html body .pp-enquiry-side h2{font-size:clamp(34px,4vw,60px)}
html body .pp-enquiry-lead{margin:0;font-size:18px;line-height:1.7;color:var(--pp-muted)}
html body .pp-enquiry-steps{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:16px;counter-reset:pp-step}
html body .pp-enquiry-steps li{counter-increment:pp-step;display:grid;grid-template-columns:44px 1fr;column-gap:14px;align-items:center}
html body .pp-enquiry-steps li::before{content:counter(pp-step);grid-row:span 2;width:44px;height:44px;border-radius:50%;background:#fff;border:1.5px solid var(--pp-lav);display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--pp-purple)}
html body .pp-enquiry-steps strong{font-weight:600;font-size:16px}
html body .pp-enquiry-steps span{font-size:14px;color:var(--pp-muted)}
html body .pp-enquiry-contact{display:flex;flex-direction:column;gap:10px;margin-top:8px;width:100%;max-width:460px}
html body .pp-enquiry-contact a{display:flex;flex-direction:column;gap:2px;padding:16px 20px;border-radius:18px;background:#fff;border:1px solid var(--pp-grey);text-decoration:none;color:#000;font-size:15px;line-height:1.5;transition:border-color .2s ease,transform .2s ease}
html body .pp-enquiry-contact a:hover{border-color:var(--pp-purple);transform:translateY(-2px);color:#000}
html body .pp-enquiry-contact a span{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--pp-purple)}
html body .pp-enquiry-card{flex:1.3 1 460px;background:#fff;border-radius:32px;padding:44px;border:1px solid var(--pp-grey);box-shadow:0 30px 80px rgba(103,84,233,.12)}
html body .pp-form{display:flex;flex-direction:column;gap:18px}
html body .pp-form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
html body .pp-field{display:flex;flex-direction:column;gap:8px}
html body .pp-field span,html body .pp-chips legend{font-size:14px;font-weight:500;color:#000}
html body .pp-field input,html body .pp-field textarea{font-family:inherit;font-size:16px;padding:15px 18px;border-radius:16px;border:1.5px solid var(--pp-grey);background:var(--pp-off);color:#000;width:100%;transition:border-color .2s ease,background .2s ease}
html body .pp-field input:focus,html body .pp-field textarea:focus{outline:none;border-color:var(--pp-purple);background:#fff;box-shadow:0 0 0 4px rgba(103,84,233,.12)}
html body .pp-chips{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
html body .pp-chips legend{margin-bottom:10px;padding:0}
html body .pp-chip{position:relative;cursor:pointer}
html body .pp-chip input{position:absolute;opacity:0;width:1px;height:1px}
html body .pp-chip span{display:inline-block;padding:10px 16px;border-radius:999px;border:1.5px solid var(--pp-grey);font-size:14px;font-weight:500;background:#fff;transition:all .2s ease}
html body .pp-chip:hover span{border-color:var(--pp-lav)}
html body .pp-chip input:checked+span{background:var(--pp-purple);border-color:var(--pp-purple);color:#fff}
html body .pp-chip input:focus-visible+span{box-shadow:0 0 0 4px rgba(103,84,233,.25)}
html body .pp-form-submit{align-self:flex-start;margin-top:6px}
html body .pp-form-note{margin:0;font-size:13px;color:var(--pp-muted)}
html body .pp-form-msg{margin:0 0 16px;padding:14px 18px;border-radius:14px;background:var(--pp-lav-light);color:#000;font-weight:500}
html body .pp-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
html body .pp-form-done{text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px;padding:30px 0}
html body .pp-form-done h3{font-size:30px}
html body .pp-form-done p{margin:0;color:var(--pp-muted);font-size:17px}
html body .pp-form-tick{width:72px;height:72px;border-radius:50%;background:var(--pp-lime);display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700}
@media (max-width:600px){html body .pp-enquiry-card{padding:28px 22px;border-radius:24px}}

/* Case studies, blog, CTA band */
html body .pp-work-archive{padding-top:6vh;background:#fff}
html body .pp-filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:36px}
html body .pp-filter-btn{font-family:inherit;font-size:14px;font-weight:500;padding:10px 18px;border-radius:999px;border:1.5px solid var(--pp-grey);background:#fff;color:#000;cursor:pointer;transition:all .2s ease}
html body .pp-filter-btn:hover{border-color:var(--pp-lav)}
html body .pp-filter-btn.is-active{background:var(--pp-purple);border-color:var(--pp-purple);color:#fff}
html body .pp-peek.is-hidden{display:none}
html body .pp-empty{text-align:center;max-width:640px;margin:0 auto;padding:40px 0 20px;display:flex;flex-direction:column;align-items:center;gap:16px}
html body .pp-empty-mark{font-size:72px;line-height:1;color:var(--pp-purple);font-weight:300}
html body .pp-empty h2{font-size:clamp(28px,3vw,42px)}
html body .pp-empty p{margin:0;font-size:17px;color:var(--pp-muted);line-height:1.7}
html body .pp-case-hero{background:#fff;padding:0 6vw 8vh}
html body .pp-case-hero-inner{max-width:1360px;margin:0 auto;display:flex;flex-wrap:wrap;gap:24px;align-items:stretch}
html body .pp-case-result{flex:1 1 280px;background:var(--pp-purple);color:#fff;border-radius:28px;padding:40px;display:flex;flex-direction:column;justify-content:flex-end;gap:10px;min-height:260px}
html body .pp-case-result .num{font-weight:900;font-size:clamp(64px,8vw,120px);line-height:1;letter-spacing:-.04em;color:var(--pp-lime)}
html body .pp-case-result .lbl{font-size:18px;color:var(--pp-lav-light)}
html body .pp-case-img{flex:2 1 480px;border-radius:28px;overflow:hidden;min-height:260px}
html body .pp-case-img img{width:100%;height:100%;object-fit:cover}
html body .pp-entry-wrap{padding-top:40px}
html body .pp-entry-img{border-radius:24px;overflow:hidden;margin-bottom:32px}
html body .pp-posts-wrap{background:#fff;padding:6vh 6vw 16vh}
html body .pp-card-more{font-weight:600;color:var(--pp-purple);font-size:15px}
html body .pp-cta-band{background:var(--pp-purple);color:#fff;padding:14vh 6vw;position:relative;overflow:hidden}
html body .pp-cta-band::after{content:"";position:absolute;left:-160px;bottom:-260px;width:560px;height:560px;border-radius:50%;background:radial-gradient(circle,rgba(155,254,23,.35),rgba(155,254,23,0) 65%);pointer-events:none}
html body .pp-cta-inner{position:relative;max-width:1360px;margin:0 auto;display:flex;flex-direction:column;align-items:flex-start;gap:22px}
html body .pp-cta-band .pp-eyebrow{color:var(--pp-lime)}
html body .pp-cta-band h2{font-size:clamp(38px,5vw,80px);color:#fff}
html body .pp-cta-band h2 em{color:var(--pp-lime)}

/* ==========================================================================
   v1.3: softer type, floating 3D logo, smaller client logos
   ========================================================================== */
:root{--pp-ink:#2B2838;--pp-ink-soft:#5C5870}

/* Logo: no white box, floating with depth */
html body .pp-brand.pp-pill{background:transparent;border:0;-webkit-backdrop-filter:none;backdrop-filter:none;padding:0;box-shadow:none}
html body .pp-brand .custom-logo{max-height:46px;width:auto;filter:drop-shadow(0 1px 0 rgba(255,255,255,.9)) drop-shadow(0 4px 6px rgba(43,40,56,.18)) drop-shadow(0 12px 22px rgba(103,84,233,.28));transform:perspective(600px) rotateX(0deg) translateY(0);transition:transform .45s cubic-bezier(.2,.8,.2,1),filter .45s ease}
html body .pp-brand:hover .custom-logo{transform:perspective(600px) rotateX(10deg) translateY(-2px);filter:drop-shadow(0 1px 0 rgba(255,255,255,.95)) drop-shadow(0 8px 10px rgba(43,40,56,.2)) drop-shadow(0 18px 30px rgba(103,84,233,.38))}
html body .pp-header{transition:background .35s ease,box-shadow .35s ease,border-color .35s ease;border-bottom:1px solid transparent}
html body .pp-header.is-scrolled{background:rgba(255,255,255,.72);-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);border-bottom-color:rgba(176,167,239,.35);box-shadow:0 10px 30px rgba(43,40,56,.06)}
html body .pp-header.is-scrolled .pp-header-inner{padding-top:10px;padding-bottom:10px}
@media (max-width:600px){html body .pp-brand .custom-logo{max-height:36px}}

/* Type: in between, softer ink instead of pure black */
html body :is(.pp-story,.pp-journey,.pp-chapter,.pp-work,.pp-services,.pp-contact,.pp-enquiry,.pp-page-hero,.pp-posts-wrap){color:var(--pp-ink)}
html body :is(.pp-story,.pp-journey,.pp-chapter,.pp-work-head,.pp-services,.pp-contact-card,.pp-enquiry,.pp-page-hero,.pp-posts-wrap,.pp-empty) :where(h1,h2,h3,h4){font-weight:700;color:var(--pp-ink)}
html body .pp-muted,html body .pp-stage p,html body .pp-chapter-copy p,html body .pp-services-intro,html body .pp-service p,html body .pp-contact-card p,html body .pp-enquiry-lead,html body .pp-page-hero-text{color:var(--pp-ink-soft)}
html body .pp-intro-tag p.pp-lead{font-weight:500;color:var(--pp-ink)}
html body .pp-story-text{font-weight:600}
html body .pp-journey-head h2,html body .pp-chapter-copy h2,html body .pp-work-head h2,html body .pp-services-sticky h2,html body .pp-contact-card h2,html body .pp-enquiry-side h2{font-weight:700;letter-spacing:-.025em}
html body .pp-stage h3{font-weight:700}
html body .pp-page-hero h1{font-weight:800;color:var(--pp-ink);letter-spacing:-.035em;word-spacing:.04em}
html body .pp-peek-cover .name{font-weight:700}
html body .pp-peek-result{font-weight:800}
html body .pp-peek-cover:not(.has-img){color:var(--pp-ink)}
html body .pp-footer-headline{font-weight:700}
html body .pp-intro-title,html body .pp-statement h2{font-weight:900}

/* Client logos: smaller, clearer bubbles */
html body .pp-bub{padding:14px;bottom:-140px;background:#fff;box-shadow:0 12px 30px rgba(103,84,233,.14)}
html body .pp-bub img{width:100%;height:100%;object-fit:contain}
html body :is(.pp-chapter-copy,.pp-contact-card,.pp-enquiry-side,.pp-services-sticky,.pp-story-inner) p.pp-eyebrow{color:var(--pp-purple)}

/* ==========================================================================
   v1.4: one calm weight across the site (SemiBold headings, charcoal ink)
   ========================================================================== */
html body .pp-intro-tag p.pp-lead{font-weight:600;font-size:clamp(28px,4vw,60px);line-height:1.25;letter-spacing:-.02em;color:var(--pp-ink);max-width:1100px}
html body .pp-story-text{font-weight:600;color:var(--pp-ink)}
html body :is(.pp-journey-head,.pp-chapter-copy,.pp-work-head,.pp-services-sticky,.pp-contact-card,.pp-enquiry-side,.pp-empty,.pp-cta-inner) h2{font-weight:600;letter-spacing:-.02em}
html body :is(.pp-stage,.pp-service) h3{font-weight:600}
html body .pp-peek-cover .name{font-weight:600}
html body .pp-peek-result{font-weight:700}
html body .pp-gcap p.big{font-weight:600;color:var(--pp-ink)}
html body .pp-page-hero h1{font-weight:600;letter-spacing:-.025em}
html body .pp-paper .mast{font-weight:600;letter-spacing:.06em}
html body .pp-paper .head{font-weight:600}
html body .pp-footer-headline{font-weight:600}
html body .pp-form-done h3{font-weight:600}
html body .pp-case-result .num{font-weight:700}
html body .pp-card h2{font-weight:600}

/* Blog */
html body .pp-crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:14px;color:var(--pp-ink-soft);margin:0 0 6px}
html body .pp-crumbs a{color:var(--pp-ink-soft);text-decoration:none}
html body .pp-crumbs a:hover{color:var(--pp-purple)}
html body .pp-entry{color:var(--pp-ink)}
html body .pp-entry h2,html body .pp-entry h3{font-weight:600;color:var(--pp-ink)}
html body .pp-related{background:var(--pp-off);padding:12vh 6vw}
html body .pp-related-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:36px}
html body .pp-related-head h2{font-size:clamp(28px,3vw,44px);font-weight:600;color:var(--pp-ink)}

/* v1.4: keep the work-card result inside the card on smaller screens */
html body .pp-peek-result{font-size:clamp(28px,5vw,56px);overflow-wrap:anywhere;line-height:1.05}
