
.ppm-single{--accent:#50173D;--dark:#121722;font-family:"Hanken Grotesk",sans-serif;color:#171b24}
.ppm-single h1,.ppm-single h2,.ppm-single h3,.ppm-single strong,.ppm-kicker,.ppm-btn{font-family:"Plus Jakarta Sans",sans-serif;font-weight:600}
.ppm-hero{background:linear-gradient(120deg,#162033 0%,#171b2b 54%,#251523 100%);color:#fff;padding:60px 0}
.ppm-container{width:min(1180px,calc(100% - 34px));margin:auto}
.ppm-breadcrumb{margin-bottom:36px;color:#c7cad1;font-size:13px}.ppm-breadcrumb a{color:#c7cad1;text-decoration:none}
.ppm-hero-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.1fr);gap:64px;align-items:center}
.ppm-preview{background:#343a48;padding:14px;border-radius:24px;box-shadow:0 24px 70px rgba(0,0,0,.28)}
.ppm-preview-inner{min-height:360px;display:flex;align-items:center;justify-content:center;border-radius:16px;overflow:hidden;background:var(--preview-bg,#a8c1cc)}
.ppm-preview-inner img{width:100%;height:360px;object-fit:cover}
.ppm-preview-title{padding:30px;text-align:center;font-family:"Plus Jakarta Sans",sans-serif;font-size:30px;font-weight:600}
.ppm-kicker{color:#efa4ce;text-transform:uppercase;letter-spacing:.1em;font-size:12px}
.ppm-single-title{margin:8px 0 18px;font-size:clamp(42px,6vw,72px);line-height:1.02}
.ppm-block{padding:15px 0;border-bottom:1px solid rgba(255,255,255,.12)}.ppm-block:last-child{border-bottom:0}.ppm-block h3{margin:0 0 8px}.ppm-block p{margin:0;color:#d8dbe2;line-height:1.65}
.ppm-main{background:#f5f5f6;padding:72px 0}
.ppm-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:32px;align-items:start}
.ppm-content-card,.ppm-details-card{background:#fff;border-radius:20px;box-shadow:0 14px 36px rgba(17,24,39,.08)}
.ppm-content-card{padding:38px}.ppm-content-card h2{font-size:clamp(30px,4vw,48px);line-height:1.15;margin:6px 0 20px}.ppm-content-card p{color:#4e5560;font-size:17px;line-height:1.75}
.ppm-details-card{padding:24px;position:sticky;top:30px}.ppm-details-card h3{margin:0 0 14px}
.ppm-detail-row{display:flex;justify-content:space-between;gap:15px;padding:13px 0;border-bottom:1px solid #eceef1}
.ppm-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.ppm-tag{background:#f0eef1;border-radius:999px;padding:8px 10px;font-size:12px}
.ppm-btn{display:inline-flex;background:#50173D;color:#fff!important;border-radius:9px;padding:13px 18px;text-decoration:none!important;margin-top:20px}
.ppm-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:30px}.ppm-gallery a{display:block;overflow:hidden;border-radius:16px}.ppm-gallery img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:.35s}.ppm-gallery a:hover img{transform:scale(1.04)}.ppm-gallery a:first-child{grid-column:1/-1}
.ppm-nav{background:#121722;padding:64px 0}.ppm-nav-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.ppm-nav-card{display:block;background:#252b3a;color:#fff!important;border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:20px;text-decoration:none!important}.ppm-nav-label{display:block;color:#aeb4bf;font-size:12px;margin-bottom:6px}
@media(max-width:900px){.ppm-hero-grid,.ppm-layout{grid-template-columns:1fr}.ppm-details-card{position:static}}
@media(max-width:640px){.ppm-gallery,.ppm-nav-grid{grid-template-columns:1fr}.ppm-gallery a:first-child{grid-column:auto}.ppm-content-card{padding:24px}.ppm-preview-inner,.ppm-preview-inner img{min-height:270px;height:270px}}


/* Portfolio single hero image: View-only hover action */
.ppm-preview-inner{position:relative}
.ppm-preview-inner:after{content:"";position:absolute;inset:0;background:rgba(12,16,25,.55);opacity:0;transition:opacity .28s ease;pointer-events:none}
.ppm-preview-inner:hover:after{opacity:1}
.ppm-view-trigger{position:absolute;left:50%;top:50%;z-index:2;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-width:132px;padding:14px 26px;border:1px solid #712158;border-radius:99px;background:#712158;color:#fff;font-family:"Plus Jakarta Sans",sans-serif;font-size:15px;font-weight:600;line-height:1;cursor:pointer;opacity:0;transform:translate(-50%,-42%);transition:all .28s ease;box-shadow:0 12px 28px rgba(0,0,0,.22)}
.ppm-preview-inner:hover .ppm-view-trigger{opacity:1;transform:translate(-50%,-50%)}
.ppm-view-trigger:hover{background:#fff;color:#712158;border-color:#712158}
.ppm-eye-icon{font-size:18px;line-height:1}
.ppm-lightbox[hidden]{display:none}
.ppm-lightbox{position:fixed;inset:0;z-index:999999;display:grid;place-items:center;padding:24px}
.ppm-lightbox-backdrop{position:absolute;inset:0;background:rgba(7,10,16,.86);backdrop-filter:blur(8px)}
.ppm-lightbox-dialog{position:relative;z-index:2;width:min(1100px,95vw);padding:16px;border-radius:20px;background:#fff;box-shadow:0 30px 90px rgba(0,0,0,.4)}
.ppm-lightbox-dialog img{display:block;width:100%;max-height:82vh;object-fit:contain;border-radius:14px}
.ppm-lightbox-close{position:absolute;top:-14px;right:-14px;width:44px;height:44px;border:0;border-radius:50%;background:#712158;color:#fff;font-size:28px;line-height:1;cursor:pointer;box-shadow:0 10px 26px rgba(0,0,0,.24)}
.ppm-lightbox-close:hover{background:#fff;color:#712158}
@media(max-width:640px){.ppm-view-trigger{opacity:1;transform:translate(-50%,-50%)}}


/* Single case-study side navigation: functionality only, existing layout unchanged. */
.ppm-hero{position:relative}
.ppm-side-nav{
    position:absolute;
    top:50%;
    z-index:20;
    display:flex;
    align-items:center;
    justify-content:center;
    width:54px;
    height:54px;
    padding:0;
    border:1px solid rgba(113,33,88,.18);
    border-radius:50%;
    background:#fff;
    color:#712158!important;
    text-decoration:none!important;
    box-shadow:0 12px 30px rgba(0,0,0,.14);
    transform:translateY(-50%);
    transition:background .25s ease,color .25s ease,border-color .25s ease,transform .25s ease;
}
.ppm-side-prev{left:36px}
.ppm-side-next{right:36px}
.ppm-side-nav svg{display:block;width:18px!important;height:18px!important;flex:0 0 18px}
.ppm-side-nav:hover,.ppm-side-nav:focus-visible{
    background:#712158;
    color:#fff!important;
    border-color:#712158;
    transform:translateY(-50%) scale(1.05);
}
@media(max-width:1320px){
    .ppm-side-prev{left:10px}
    .ppm-side-next{right:10px}
}
@media(max-width:900px){
    .ppm-side-nav{top:52%;width:46px;height:46px}
    .ppm-side-prev{left:8px}
    .ppm-side-next{right:8px}
}
@media(max-width:640px){
    .ppm-side-nav{top:auto;bottom:22px;width:44px;height:44px;transform:none}
    .ppm-side-nav:hover,.ppm-side-nav:focus-visible{transform:scale(1.05)}
    .ppm-side-prev{left:18px}
    .ppm-side-next{right:18px}
}

/* v2.2.2: Keep every gallery image consistent and auto-adjust the grid. */
.ppm-gallery{
    display:grid!important;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr))!important;
    gap:16px!important;
    align-items:stretch!important;
}
.ppm-gallery a,
.ppm-gallery a:first-child{
    grid-column:auto!important;
    display:block!important;
    width:100%!important;
    aspect-ratio:16/10!important;
    overflow:hidden!important;
    border-radius:16px!important;
    background:#f1f1f3!important;
}
.ppm-gallery img{
    display:block!important;
    width:100%!important;
    height:100%!important;
    aspect-ratio:auto!important;
    object-fit:cover!important;
}
@media(max-width:640px){
    .ppm-gallery{
        grid-template-columns:1fr!important;
    }
}

/* v2.3.1: Breadcrumb removed. Keep equal top/bottom hero spacing; side arrows remain case-study navigation. */
.ppm-hero{padding-top:60px!important;padding-bottom:60px!important;}
@media(max-width:640px){.ppm-hero{padding-top:40px!important;padding-bottom:88px!important;}}


/* v2.3.2: Simple Back to Examples navigation; spacing stays balanced. */
.ppm-back-examples{
    display:inline-flex!important;
    align-items:center!important;
    gap:7px!important;
    margin:0 0 30px!important;
    color:#fff!important;
    font-size:14px!important;
    font-weight:500!important;
    line-height:1.4!important;
    text-decoration:none!important;
    transition:color .25s ease!important;
}
.ppm-back-examples svg{flex:0 0 auto!important;}
.ppm-back-examples:hover{color:#c84993!important;}
@media(max-width:640px){
    .ppm-back-examples{margin-bottom:24px!important;font-size:13px!important;}
}


/* v2.4.4 — Point 16: clean layout when one/both Project sections are empty */
.ppm-layout.ppm-only-content{
    grid-template-columns:minmax(0,900px)!important;
    justify-content:center;
}
.ppm-layout.ppm-only-details{
    grid-template-columns:minmax(280px,420px)!important;
    justify-content:center;
}
.ppm-layout.ppm-only-details .ppm-details-card{
    position:static;
    width:100%;
}


.ppm-hero-project-description{
    margin: 0 0 18px;
}
.ppm-hero-project-description p{
    margin: 0;
}
