.campaign-service-page {
    --pd-dark: #100a13;
    --pd-card-dark: #0d0910;
    overflow-x: hidden;
    background: var(--lw-paper);
    color: var(--lw-ink);
    cursor: auto;
}

.campaign-service-page main { overflow: hidden; }
:where(.campaign-service-page main h1,
       .campaign-service-page main h2,
       .campaign-service-page main h3,
       .campaign-service-page main p) { margin: 0; }
.campaign-service-page main em { color: var(--lw-plum); font-weight: 500; }
.campaign-service-page a,
.campaign-service-page button { cursor: pointer; }
.campaign-service-page ::selection { background: var(--lw-plum); color: var(--lw-paper); }

.campaign-service-page .cursor-dot {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10000;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--lw-plum);
    pointer-events: none;
    transform: translate(-50%, -50%);
}
.campaign-service-page .cursor-ring {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9999;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(159, 8, 116, .55);
    border-radius: 50%;
    pointer-events: none;
    transform: translate(-50%, -50%);
    transition: width .35s ease, height .35s ease, border-color .35s ease, opacity .35s ease;
}
.campaign-service-page.hovering .cursor-ring { width: 66px; height: 66px; border-color: var(--lw-plum); }
.campaign-service-page.hovering .cursor-dot { opacity: .35; }

.pd-hero { min-height: 100svh; }
.pd-hero > picture { position: absolute; inset: 0; z-index: -1; }
.pd-hero .lw-hero__image { object-position: right center; }

.pd-principles {
    min-height: 45.8rem;
    padding-top: 3.7rem;
    padding-bottom: 4.4rem;
    background: var(--lw-paper);
    color: var(--lw-ink);
}
.pd-principles .lw-section-title { color: var(--lw-ink); }
.pd-principles__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.55rem;
    width: min(calc(100% - 7.7vw), var(--lw-content-max));
    margin: 3.3rem auto 0;
}
.pd-principle-card {
    position: relative;
    min-height: 34.5rem;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: .55rem;
    background: var(--pd-card-dark);
    box-shadow: 0 18px 42px rgba(0, 0, 0, .24);
    isolation: isolate;
    transition: transform .55s cubic-bezier(.16, 1, .3, 1), box-shadow .55s ease;
}
.pd-principle-card::after {
    content: "";
    position: absolute;
    inset: 31% 0 0;
    z-index: -1;
    background: linear-gradient(180deg, transparent, rgba(5, 4, 7, .82) 31%, rgba(5, 4, 7, .98));
}
.pd-principle-card > img {
    position: absolute;
    inset: 0;
    z-index: -2;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .9s cubic-bezier(.16, 1, .3, 1), filter .9s ease;
}
.pd-principle-card:hover { transform: translateY(-8px); box-shadow: 0 28px 56px rgba(0, 0, 0, .36); }
.pd-principle-card:hover > img { transform: scale(1.045); filter: brightness(1.08); }
.pd-principle-card__copy { position: absolute; inset: auto 1.55rem 1.55rem; }
.pd-principle-card__copy span { color: #c32491; font: 500 var(--lw-type-proof-number)/.9 var(--lw-serif); }
.pd-principle-card__copy b { display: block; width: 1.55rem; height: 1px; margin: .6rem 0 .7rem; background: #c32491; }
.pd-principle-card__copy h3 { color: #fff; font: 500 var(--lw-type-step-title)/1.08 var(--lw-serif); letter-spacing: -.025em; }
.pd-principle-card__copy p { margin-top: .9rem !important; color: rgba(255, 255, 255, .82); font: 400 var(--lw-type-body)/1.5 var(--lw-sans); }

.pd-process { min-height: 25.7rem; padding-top: 4rem; padding-bottom: 4.5rem; }
.pd-process .lw-process__grid { margin-top: 3.55rem; }
.pd-process .lw-process-step h3 { min-height: 3.55rem; margin-top: 1.35rem; }
.pd-process .lw-process-step p { max-width: 16rem; }

.pd-channels { min-height: 47.2rem; padding-top: 4rem; padding-bottom: 4.8rem; }
.pd-channels .lw-heading-rule { margin-bottom: 2.8rem; }
.pd-channels .lw-offer-card { grid-template-rows: 19rem 1fr; min-height: 33rem; }
.pd-channels .lw-offer-card__copy { padding-top: 1.55rem; }
.pd-channels .lw-offer-card__copy p { max-width: 22rem; }

.campaign-service-page .lw-faq { min-height: 29.5rem; padding-top: 4.7rem; padding-bottom: 4.5rem; }
.campaign-service-page .lw-faq__intro h2,
.campaign-service-page .contact__intro h2 { font-size: clamp(3.8rem, 5vw, 4.8rem); line-height: .9; }
.campaign-service-page .lw-faq__intro p,
.campaign-service-page .contact__intro p { font-size: var(--lw-type-body); line-height: 1.55; }
.campaign-service-page .contact {
    width: min(calc(100% - 7.7vw), var(--lw-content-max));
    max-width: var(--lw-content-max);
    min-height: 34.375rem;
    grid-template-columns: 49.45% 50.55%;
    gap: 0;
    margin-inline: auto;
    padding: 3.5rem 0 6.5rem;
    box-shadow: 0 0 0 100vmax var(--lw-paper);
    clip-path: inset(0 -100vmax);
}
.campaign-service-page .contact::before { top: 3rem; bottom: 3rem; left: 5.65rem; }
.campaign-service-page .contact::after { top: 3rem; left: calc(5.65rem - .32rem); }
.campaign-service-page .contact__intro { position: relative; padding: .7rem 0 0 9.525rem; }
.campaign-service-page .contact__intro::before {
    content: "";
    position: absolute;
    left: 2.775rem;
    bottom: 6.25rem;
    width: 7.5rem;
    height: 1px;
    background: rgba(17, 16, 15, .38);
}
.campaign-service-page .contact__intro::after {
    content: "";
    position: absolute;
    left: 15.15rem;
    bottom: 1.95rem;
    width: 1px;
    height: 5.3rem;
    background: rgba(17, 16, 15, .2);
}
.campaign-service-page .contact-form {
    position: relative;
    width: 100%;
    min-width: 0;
    grid-template-columns: 1fr 1fr;
    gap: 2.52rem 2.3rem;
    padding-top: .25rem;
}
.campaign-service-page .contact-form label { gap: .65rem; }
.campaign-service-page .contact-form input { min-height: 1.55rem; padding: .1rem 0 .45rem; }
.campaign-service-page .contact-form textarea { min-height: 4rem; padding: .1rem 0 .45rem; }
.campaign-service-page .button--contact { margin-top: 0; font-size: var(--lw-type-control); }
.campaign-service-page .contact-form__status { position: absolute; left: 0; bottom: -1.5rem; margin: 0; font-size: var(--lw-type-body); }

@media (max-width: 1020px) {
    .pd-principles__grid { width: 90%; }
    .pd-process .lw-process__grid { gap: 2rem; }
    .campaign-service-page .contact { width: 100%; max-width: none; grid-template-columns: .85fr 1.15fr; gap: 4rem; padding: 4rem 5vw 6.5rem; }
    .campaign-service-page .contact::before { top: 2rem; bottom: 2.6rem; left: 6vw; }
    .campaign-service-page .contact::after { top: 2rem; left: calc(6vw - .32rem); }
    .campaign-service-page .contact__intro { padding: 0 0 0 4rem; }
    .campaign-service-page .contact__intro::before,
    .campaign-service-page .contact__intro::after { content: none; }
    .campaign-service-page .contact-form { gap: 1.65rem 2rem; padding-top: .9rem; }
    .campaign-service-page .contact-form__status { position: static; margin: -.9rem 0 0; }
}

@media (max-width: 760px) {
    .campaign-service-page,
    .campaign-service-page a,
    .campaign-service-page button { cursor: auto; }
    .campaign-service-page .cursor-dot,
    .campaign-service-page .cursor-ring { display: none; }
    .pd-hero { min-height: 100svh; align-items: end; }
    .pd-hero > picture { inset: 0; width: auto; }
    .pd-hero::after { background: linear-gradient(180deg, rgba(246, 241, 235, .1) 0 28%, rgba(246, 241, 235, .96) 68%, var(--lw-paper)); }
    .pd-hero .lw-hero__image { object-position: right center; }
    .pd-principles { padding: 4.5rem 1.25rem; }
    .pd-principles__grid { grid-template-columns: 1fr; width: 100%; margin-top: 3rem; }
    .pd-principle-card { min-height: 36rem; }
    .pd-process { padding: 4.5rem 1.25rem; }
    .pd-process .lw-process__grid { grid-template-columns: 1fr; gap: 2.75rem; }
    .pd-process .lw-process-step h3 { min-height: 0; }
    .pd-channels .lw-offer-card { grid-template-rows: 16rem 16.5rem; min-height: 0; }
    .campaign-service-page .lw-faq { padding-top: 4.7rem; padding-bottom: 4.7rem; }
    .campaign-service-page .lw-faq__intro h2,
    .campaign-service-page .contact__intro h2 { font-size: 4.6rem; }
    .campaign-service-page .contact { min-height: 0; grid-template-columns: 1fr; gap: 3.5rem; padding: 5.2rem 1.25rem 5rem 3.2rem; }
    .campaign-service-page .contact::before { left: 1.35rem; top: 1.8rem; bottom: 2rem; }
    .campaign-service-page .contact::after { left: 1.03rem; top: 1.8rem; }
    .campaign-service-page .contact__intro { padding: 0; }
    .campaign-service-page .contact-form { grid-template-columns: 1fr; }
    .campaign-service-page .contact-form__full,
    .campaign-service-page .button--contact,
    .campaign-service-page .contact-form__status { grid-column: 1; }
    .campaign-service-page .button--contact { width: 100%; margin-top: 1.5rem; }
}

@media (prefers-reduced-motion: reduce) {
    .pd-principle-card,
    .pd-principle-card > img { transition: none; }
}
