:root {
    --pp-navy: #06182c;
    --pp-deep: #030b18;
    --pp-blue: #0069bc;
    --pp-sky: #26b9ee;
    --pp-orange: #ff6b2c;
    --pp-ink: #10263a;
    --pp-muted: #607386;
    --pp-line: #dae5ec;
    --pp-cloud: #f5f9fc;
    --pp-white: #fff
}

* {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth
}

body {
    margin: 0;
    background: var(--pp-white);
    color: var(--pp-ink);
    font-family: "DM Sans", sans-serif
}

a {
    text-decoration: none;
    color: inherit
}

img {
    display: block;
    max-width: 100%
}

.pp-shell {
    width: min(1180px, calc(100% - 48px));
    margin: auto
}

.pp-header {
    height: 78px;
    padding: 0 max(24px, calc((100vw - 1280px)/2));
    display: flex;
    align-items: center;
    gap: 36px;
    border-bottom: 1px solid #e7eef3;
    background: #fff;
    position: relative;
    z-index: 10
}

.pp-brand img {
    width: 154px;
    max-height: 47px;
    object-fit: contain
}

.pp-header nav {
    display: flex;
    align-items: center;
    gap: 28px;
    margin-left: auto
}

.pp-header nav a {
    color: #4d6477;
    font-size: 13px;
    font-weight: 600
}

.pp-header nav a:hover,
.pp-header nav .is-current {
    color: var(--pp-blue)
}

.pp-header__cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 11px 16px;
    border-radius: 999px;
    background: var(--pp-navy);
    color: #fff;
    font-size: 12px;
    font-weight: 700
}

.pp-header__cta i {
    color: var(--pp-sky);
    font-size: 11px
}

.pp-hero {
    overflow: hidden;
    background: var(--pp-deep);
    color: #fff;
    position: relative
}

.pp-hero:before {
    content: "";
    position: absolute;
    width: 630px;
    height: 630px;
    right: -180px;
    top: -300px;
    border: 1px solid rgba(80, 196, 242, .2);
    border-radius: 50%;
    box-shadow: 0 0 0 80px rgba(80, 196, 242, .035), 0 0 0 160px rgba(80, 196, 242, .025)
}

.pp-hero:after {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .26;
    background-image: linear-gradient(rgba(255, 255, 255, .055) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .055) 1px, transparent 1px);
    background-size: 58px 58px;
    mask-image: linear-gradient(90deg, #000, transparent 68%)
}

.pp-hero__grid {
    min-height: 584px;
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1.04fr .96fr;
    gap: 72px;
    align-items: center
}

.pp-hero__copy {
    max-width: 650px
}

.pp-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 999px;
    background: var(--pp-orange);
    color: #fff;
    font-size: 11px;
    font-weight: 700
}

.pp-pill i {
    font-size: 11px
}

.pp-overline {
    color: var(--pp-sky);
    margin: 23px 0 15px;
    font-size: 11px;
    letter-spacing: .15em;
    font-weight: 700
}

.pp-overline:before {
    content: "";
    display: inline-block;
    width: 22px;
    height: 2px;
    margin: 0 8px 3px 0;
    background: var(--pp-orange)
}

h1,
h2,
h3 {
    font-family: Manrope, sans-serif;
    margin: 0;
    letter-spacing: -.045em
}

h1 {
    font-size: clamp(42px, 5vw, 67px);
    line-height: 1.08
}

h1 em {
    color: var(--pp-sky);
    font-style: normal
}

.pp-lead {
    max-width: 590px;
    margin: 24px 0 31px;
    color: #bdd0df;
    font-size: 17px;
    line-height: 1.72
}

.pp-button {
    display: inline-flex;
    align-items: center;
    gap: 13px;
    padding: 14px 21px;
    border-radius: 999px;
    background: var(--pp-orange);
    box-shadow: 0 10px 24px rgba(255, 107, 44, .25);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    transition: transform .25s
}

.pp-button:hover {
    transform: translateY(-3px)
}

.pp-button i {
    font-size: 13px
}

.pp-actions {
    display: flex;
    align-items: center;
    gap: 25px
}

.pp-link {
    color: var(--pp-blue);
    font-size: 13px;
    font-weight: 700
}

.pp-link i {
    margin-left: 7px
}

.pp-link--light {
    color: #fff
}

.pp-hero__art {
    position: relative
}

.pp-hero__art>img,
.pp-media-stack__main {
    width: 100%;
    height: 405px;
    object-fit: cover;
    border-radius: 20px
}

.pp-hero__art--about {
    padding: 20px 0 18px 20px
}

.pp-hero__art--about:before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 72%;
    height: 82%;
    border: 1px solid var(--pp-sky);
    border-radius: 20px
}

.pp-image-note {
    position: absolute;
    left: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 15px 17px;
    border-radius: 13px;
    background: #fff;
    color: var(--pp-ink);
    box-shadow: 0 16px 35px rgba(0, 0, 0, .24);
    font-size: 11px;
    line-height: 1.45
}

.pp-image-note i {
    padding: 10px;
    border-radius: 9px;
    background: #e7f7fd;
    color: var(--pp-blue);
    font-size: 17px
}

.pp-marquee {
    overflow: hidden;
    background: var(--pp-orange);
    color: #fff;
    font-family: Manrope, sans-serif;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .09em;
    white-space: nowrap
}

.pp-marquee div {
    padding: 16px 0;
    animation: pp-scroll 26s linear infinite
}

.pp-marquee span {
    margin: 0 27px;
    color: #54230e
}

@keyframes pp-scroll {
    to {
        transform: translateX(-30%)
    }
}

.pp-section {
    padding: 110px 0
}

.pp-split {
    display: grid;
    grid-template-columns: .94fr 1.06fr;
    gap: 98px;
    align-items: center
}

.pp-collage {
    min-height: 525px;
    position: relative
}

.pp-collage>p {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .14em;
    color: var(--pp-blue)
}

.pp-collage__large {
    position: absolute;
    left: 0;
    top: 38px;
    width: 69%;
    height: 400px;
    object-fit: cover;
    border-radius: 16px
}

.pp-collage__small {
    position: absolute;
    right: 0;
    top: 92px;
    width: 37%;
    height: 207px;
    object-fit: cover;
    border: 5px solid #fff;
    border-radius: 16px
}

.pp-collage__quote {
    position: absolute;
    bottom: 12px;
    right: 3%;
    padding: 22px 25px;
    border-radius: 14px;
    background: var(--pp-navy);
    color: #fff;
    font-size: 16px;
    line-height: 1.4
}

.pp-collage__quote strong {
    color: var(--pp-sky)
}

.pp-story-copy h2,
.pp-section-heading h2,
.pp-intro-grid h2,
.pp-marketing-intro h2,
.pp-channel-band h2,
.pp-process h2 {
    font-size: clamp(31px, 3.4vw, 46px);
    line-height: 1.17
}

.pp-story-copy>p:not(.pp-overline) {
    margin: 22px 0 0;
    max-width: 550px;
    color: var(--pp-muted);
    font-size: 15px;
    line-height: 1.85
}

.pp-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 9px;
    margin-top: 36px
}

.pp-stats div {
    border-top: 2px solid var(--pp-blue);
    padding-top: 12px
}

.pp-stats strong {
    display: block;
    color: var(--pp-blue);
    font-family: Manrope, sans-serif;
    font-size: 24px
}

.pp-stats span {
    display: block;
    margin-top: 4px;
    color: var(--pp-muted);
    font-size: 10px;
    line-height: 1.35
}

.pp-values {
    background: var(--pp-cloud)
}

.pp-section-heading {
    max-width: 700px
}

.pp-section-heading>p:not(.pp-overline) {
    margin-top: 16px;
    color: var(--pp-muted);
    font-size: 15px;
    line-height: 1.75
}

.pp-values__grid,
.pp-proof__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 17px;
    margin-top: 52px
}

.pp-values article,
.pp-proof article {
    min-height: 267px;
    padding: 28px;
    border: 1px solid var(--pp-line);
    border-radius: 17px;
    background: #fff;
    position: relative
}

.pp-values article>i,
.pp-proof article>i {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    margin-bottom: 31px;
    border-radius: 12px;
    background: #e8f7fd;
    color: var(--pp-blue);
    font-size: 19px
}

.pp-values article>span {
    position: absolute;
    right: 27px;
    top: 30px;
    color: #a2b0bc;
    font-size: 12px;
    font-weight: 700
}

.pp-values h3,
.pp-proof h3 {
    font-size: 18px
}

.pp-values p,
.pp-proof p {
    margin: 11px 0 0;
    color: var(--pp-muted);
    font-size: 13px;
    line-height: 1.75
}

.pp-team-callout {
    padding: 82px 0;
    background: linear-gradient(115deg, #06213d, #005c9f);
    color: #fff
}

.pp-team-callout .pp-shell {
    display: grid;
    grid-template-columns: 1fr .65fr;
    gap: 80px;
    align-items: end
}

.pp-team-callout h2 {
    margin-top: 19px;
    font-size: clamp(31px, 3.5vw, 46px);
    line-height: 1.18
}

.pp-team-callout p {
    margin: 0 0 22px;
    color: #c6e9f7;
    font-size: 14px;
    line-height: 1.75
}

.pp-team-callout .pp-link {
    color: #fff
}

.pp-footer {
    padding: 42px max(24px, calc((100vw - 1180px)/2));
    display: flex;
    align-items: center;
    gap: 28px;
    background: #020a13;
    color: #8ca1b1
}

.pp-footer .pp-brand img {
    width: 135px
}

.pp-footer p {
    margin-right: auto;
    font-size: 12px
}

.pp-footer div {
    display: flex;
    gap: 18px
}

.pp-footer a,
.pp-footer small {
    font-size: 11px
}

.pp-footer a:hover {
    color: #fff
}

.pp-search-art {
    padding: 25px 0 25px 20px
}

.pp-search-art:before {
    content: "";
    position: absolute;
    inset: 0 0 0 0;
    border-radius: 20px;
    border: 1px solid rgba(69, 201, 248, .75);
    transform: translate(-17px, 18px)
}

.pp-search-card {
    position: absolute;
    bottom: 0;
    left: 0;
    padding: 17px 20px;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 16px 35px rgba(0, 0, 0, .28);
    color: var(--pp-ink)
}

.pp-search-card span,
.pp-search-card small {
    display: block;
    color: var(--pp-muted);
    font-size: 10px
}

.pp-search-card strong {
    display: block;
    margin: 5px 0;
    color: var(--pp-blue);
    font-family: Manrope, sans-serif;
    font-size: 17px
}

.pp-search-card strong i {
    color: var(--pp-orange)
}

.pp-intro-grid {
    padding: 90px 0;
    border-bottom: 1px solid var(--pp-line)
}

.pp-intro-grid .pp-shell {
    display: grid;
    grid-template-columns: 1fr .8fr;
    gap: 100px
}

.pp-intro-grid .pp-shell>p {
    align-self: end;
    color: var(--pp-muted);
    font-size: 16px;
    line-height: 1.85
}

.pp-service-cards {
    background: #f7fbfd
}

.pp-service-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    margin-top: 45px
}

.pp-service-grid article {
    min-height: 310px;
    padding: 26px;
    border-radius: 16px;
    background: #fff;
    border: 1px solid var(--pp-line);
    display: flex;
    flex-direction: column
}

.pp-service-grid article>i {
    color: var(--pp-blue);
    font-size: 25px;
    margin-bottom: 46px
}

.pp-service-grid h3 {
    font-size: 17px;
    line-height: 1.3
}

.pp-service-grid p {
    margin: 11px 0;
    color: var(--pp-muted);
    font-size: 12.5px;
    line-height: 1.7
}

.pp-service-grid a {
    margin-top: auto;
    color: var(--pp-blue);
    font-size: 12px;
    font-weight: 700
}

.pp-service-grid a i {
    margin-left: 7px
}

.pp-service-grid__feature {
    background: var(--pp-navy) !important;
    border-color: var(--pp-navy) !important;
    color: #fff
}

.pp-service-grid__feature>i,
.pp-service-grid__feature a {
    color: var(--pp-sky) !important
}

.pp-service-grid__feature p {
    color: #bdd0df
}

.pp-process {
    background: var(--pp-navy);
    color: #fff
}

.pp-process__head {
    max-width: 600px
}

.pp-process__steps {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    margin-top: 52px;
    border-top: 1px solid rgba(255, 255, 255, .2)
}

.pp-process__steps article {
    padding: 27px 30px 0;
    border-right: 1px solid rgba(255, 255, 255, .2)
}

.pp-process__steps article:first-child {
    padding-left: 0
}

.pp-process__steps article:last-child {
    border: 0
}

.pp-process__steps b {
    color: var(--pp-sky);
    font-size: 13px
}

.pp-process__steps h3 {
    margin: 31px 0 10px;
    font-size: 19px
}

.pp-process__steps p {
    color: #b5cad9;
    font-size: 13px;
    line-height: 1.7
}

.pp-final-cta {
    padding: 99px 0;
    background: linear-gradient(140deg, #e5f7ff, #fff7f1);
    text-align: center
}

.pp-final-cta h2 {
    max-width: 750px;
    margin: 19px auto 29px;
    font-size: clamp(33px, 4vw, 52px);
    line-height: 1.1
}

.pp-hero--marketing {
    background: linear-gradient(125deg, #06182c, #072f52)
}

.pp-media-stack {
    height: 430px
}

.pp-media-stack__main {
    height: 390px;
    width: 82%;
    margin-left: auto
}

.pp-media-stack:before {
    content: "";
    position: absolute;
    right: 0;
    top: 0;
    width: 82%;
    height: 390px;
    border-radius: 18px;
    background: linear-gradient(135deg, transparent 45%, rgba(0, 25, 49, .25));
    z-index: 1
}

.pp-media-stack__tile {
    position: absolute;
    z-index: 2;
    top: 0;
    left: 0;
    padding: 22px;
    border: 1px solid rgba(255, 255, 255, .3);
    border-radius: 15px;
    background: rgba(3, 11, 24, .86);
    color: #fff
}

.pp-media-stack__tile i {
    display: block;
    margin-bottom: 11px;
    color: var(--pp-sky);
    font-size: 21px
}

.pp-media-stack__tile span {
    font-size: 12px;
    line-height: 1.4
}

.pp-media-stack__metric {
    position: absolute;
    z-index: 2;
    right: 0;
    bottom: 0;
    padding: 17px 20px;
    border-radius: 13px;
    background: var(--pp-orange);
    color: #fff
}

.pp-media-stack__metric small,
.pp-media-stack__metric strong {
    display: block
}

.pp-media-stack__metric small {
    font-size: 10px;
    opacity: .75
}

.pp-media-stack__metric strong {
    margin-top: 4px;
    font-size: 14px;
    line-height: 1.3
}

.pp-marketing-intro {
    text-align: center
}

.pp-marketing-intro h2 {
    max-width: 800px;
    margin: auto
}

.pp-marketing-intro>div>p:last-child {
    max-width: 670px;
    margin: 21px auto 0;
    color: var(--pp-muted);
    font-size: 15px;
    line-height: 1.8
}

.pp-channel-band {
    background: #f5f9fc
}

.pp-channel-band .pp-shell {
    display: grid;
    grid-template-columns: .82fr 1.18fr;
    gap: 90px;
    align-items: center
}

.pp-channel-band__image {
    position: relative
}

.pp-channel-band__image img {
    height: 485px;
    width: 100%;
    object-fit: cover;
    border-radius: 17px
}

.pp-channel-band__image span {
    position: absolute;
    bottom: 0;
    left: 0;
    padding: 17px 21px;
    background: var(--pp-navy);
    border-radius: 0 12px 0 0;
    color: #fff;
    font-family: Manrope, sans-serif;
    font-size: 12px;
    line-height: 1.45;
    letter-spacing: .08em
}

.pp-channel-list {
    margin-top: 30px;
    border-top: 1px solid var(--pp-line)
}

.pp-channel-list a {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 4px;
    border-bottom: 1px solid var(--pp-line);
    transition: padding .2s
}

.pp-channel-list a:hover {
    padding-left: 8px;
    color: var(--pp-blue)
}

.pp-channel-list a>i:first-child {
    width: 26px;
    color: var(--pp-blue);
    font-size: 19px;
    text-align: center
}

.pp-channel-list span {
    flex: 1
}

.pp-channel-list b,
.pp-channel-list small {
    display: block
}

.pp-channel-list b {
    font-size: 14px
}

.pp-channel-list small {
    margin-top: 2px;
    color: var(--pp-muted);
    font-size: 11px
}

.pp-channel-list a>i:last-child {
    font-size: 11px
}

.pp-proof {
    padding-top: 105px
}

.pp-proof article {
    border-top: 3px solid var(--pp-orange)
}

@media(max-width:900px) {
    .pp-header nav {
        display: none
    }

    .pp-header__cta {
        margin-left: auto
    }

    .pp-hero__grid,
    .pp-split,
    .pp-team-callout .pp-shell,
    .pp-intro-grid .pp-shell,
    .pp-channel-band .pp-shell {
        grid-template-columns: 1fr;
        gap: 46px
    }

    .pp-hero__grid {
        padding: 75px 0
    }

    .pp-hero__art {
        max-width: 600px
    }

    .pp-split {
        gap: 45px
    }

    .pp-section {
        padding: 75px 0
    }

    .pp-values__grid,
    .pp-proof__grid,
    .pp-service-grid {
        grid-template-columns: repeat(2, 1fr)
    }

    .pp-channel-band__image {
        max-width: 570px
    }

    .pp-footer {
        flex-wrap: wrap
    }

    .pp-footer p {
        margin-right: 0
    }

    .pp-footer small {
        margin-left: auto
    }
}

@media(max-width:560px) {
    .pp-shell {
        width: min(100% - 34px, 1180px)
    }

    .pp-header {
        height: 68px;
        padding: 0 17px
    }

    .pp-brand img {
        width: 130px
    }

    .pp-header__cta {
        padding: 10px 12px;
        font-size: 10px
    }

    .pp-hero__grid {
        min-height: 0;
        padding: 57px 0
    }

    .pp-lead {
        font-size: 15px
    }

    .pp-hero__art>img,
    .pp-media-stack__main {
        height: 290px
    }

    .pp-image-note {
        max-width: 235px
    }

    .pp-actions {
        align-items: flex-start;
        flex-direction: column;
        gap: 19px
    }

    .pp-stats,
    .pp-values__grid,
    .pp-proof__grid,
    .pp-service-grid {
        grid-template-columns: 1fr
    }

    .pp-collage {
        min-height: 430px
    }

    .pp-collage__large {
        height: 320px;
        width: 75%
    }

    .pp-collage__small {
        top: 96px;
        height: 160px;
        width: 42%
    }

    .pp-collage__quote {
        padding: 16px;
        font-size: 13px
    }

    .pp-team-callout .pp-shell {
        gap: 25px
    }

    .pp-process__steps {
        grid-template-columns: 1fr;
        gap: 0
    }

    .pp-process__steps article,
    .pp-process__steps article:first-child {
        padding: 22px 0;
        border-right: 0;
        border-bottom: 1px solid rgba(255, 255, 255, .2)
    }

    .pp-process__steps article:last-child {
        border: 0
    }

    .pp-process__steps h3 {
        margin: 15px 0 8px
    }

    .pp-media-stack {
        height: 340px
    }

    .pp-channel-band__image img {
        height: 320px
    }

    .pp-footer {
        display: grid;
        gap: 18px
    }

    .pp-footer p {
        margin: 0
    }

    .pp-footer small {
        margin: 0
    }

    .pp-footer div {
        flex-wrap: wrap
    }
}

.pp-legal {
    background: #f7fbfd
}

.pp-legal .pp-shell {
    max-width: 850px
}

.pp-legal h2 {
    margin-bottom: 38px;
    font-size: clamp(34px, 4vw, 52px)
}

.pp-legal h3 {
    margin: 31px 0 9px;
    font-size: 19px
}

.pp-legal h3:first-of-type {
    margin-top: 0
}

.pp-legal p {
    color: var(--pp-muted);
    font-size: 14px;
    line-height: 1.9
}