/* ============================================================
   PAW PATROL campaign template — 1:1 mirror of live's
   page-paw-patrol.php (old "guidedogs" fractal theme).
   Everything is scoped under .pp-campaign.
   Grid / heading / helper / campaign rules are EXTRACTED from
   live's own CSS (core.css, utils/helpers.css, base/headings.css,
   objects/ratio.css, objects/object-fit.css, header.css) via
   scripts/cache/asset-*.css — do not "improve" values by hand.
   Hand-written parts: the carousel (live uses slick.js; ours is
   vanilla but styled to live's .slick-arrow spec), bg tokens and
   the pre-title apricot bar (live keeps those in modules we do
   not mirror wholesale).
   ============================================================ */

.pp-campaign { overflow-x: clip; }
.pp-campaign img { max-width: 100%; height: auto; }

/* o-container — live header.css */
.pp-campaign .o-container { margin-left: 2.4rem; margin-right: 2.4rem; max-width: 1248px; }
@media (min-width: 62em) { .pp-campaign .o-container { margin-left: 6.4rem; margin-right: 6.4rem; } }
@media (min-width: 75em) { .pp-campaign .o-container { margin-left: 9.6rem; margin-right: 9.6rem; } }
@media (min-width: 90em) { .pp-campaign .o-container { margin-left: auto; margin-right: auto; width: 100%; } }

/* neutralise Bootstrap 5's .row>* full-width child rule (live uses flexboxgrid) */
.pp-campaign .row { --bs-gutter-x: 0; --bs-gutter-y: 0; }
.pp-campaign .row > * { width: auto; padding-left: 1.6rem; padding-right: 1.6rem; margin-top: 0; }

/* bg tokens (live core.css values) */
.pp-campaign .bg-color--blue-light { background-color: #a4dbde; }
.pp-campaign .bg-color--white { background-color: #fff; }
.pp-campaign .bg-color--orange { background-color: #ff6e33; }
.pp-campaign .border-color--apricot { border-color: #f8a087; }

/* pre-title accent bar */
.pp-campaign .u-pre-title--centered { text-align: center; }
.pp-campaign .u-pre-title--border-apricot .u-pre-title__element:after { background-color: #f8a087; }

/* inline icons */
.pp-campaign .c-icon { display: inline-block; line-height: 0; }
.pp-campaign .c-icon svg { width: 1em; height: 1em; fill: currentColor; }
.pp-campaign .c-icon--full-width svg { width: 100%; height: 100%; }
.pp-campaign .campaign-vision-condition__shape svg { color: #282829; }

/* statement CTA renders BLACK on the orange banner (live) */
.pp-campaign .campaign-statement .c-btn--primary { --c-btn-color: var(--color-n-black, #282829); background: #282829 !important; color: #fff !important; }
.pp-campaign .campaign-statement .c-btn--primary::before { background: #282829 !important; }

/* skelly's style.css sets heading fonts (size/weight/line-height/letter-spacing)
   on h1-h6/.u-h* with !important, AND shrinks the root font-size at mobile
   breakpoints (60/58/55/51% vs live's constant 62.5%), so live's rem values
   can't be trusted below 1200px. Re-assert live's ENTIRE heading system here
   in PX (live rem x 10px root), scoped + !important. Source: live headings.css.
   MOBILE FIX 2026-07-16: previously only the >=62em sizes were pinned, so on
   mobile every heading rendered at skelly sizes (h2 = 50px on a 390px screen). */
.pp-campaign .u-h1, .pp-campaign h1 { font-size: 38px !important; font-weight: 700 !important; letter-spacing: -1px !important; line-height: 1em !important; }
.pp-campaign .u-h2, .pp-campaign h2 { font-size: 26px !important; font-weight: 700 !important; letter-spacing: -1px !important; line-height: 1em !important; }
.pp-campaign .u-h3, .pp-campaign h3 { font-size: 24px !important; font-weight: 700 !important; letter-spacing: -1px !important; line-height: 1.13em !important; }
.pp-campaign .u-h4, .pp-campaign h4 { font-size: 22px !important; font-weight: 600 !important; letter-spacing: -1px !important; line-height: 1.25em !important; }
.pp-campaign .u-h5, .pp-campaign h5 { font-size: 20px !important; font-weight: 700 !important; letter-spacing: normal !important; line-height: 1.3em !important; }
.pp-campaign .u-h6, .pp-campaign h6, .pp-campaign .u-pre-title__element { font-size: 18px !important; font-weight: 600 !important; letter-spacing: normal !important; line-height: 1.18em !important; }
.pp-campaign .u-pre-title__element { font-weight: 700 !important; }
@media screen and (min-width: 30em) {
  .pp-campaign .u-h1, .pp-campaign h1 { font-size: calc(38px + 6.11111vw - 29.33333px) !important; }
  .pp-campaign .u-h2, .pp-campaign h2 { font-size: calc(26px + 4.16667vw - 20px) !important; }
  .pp-campaign .u-h3, .pp-campaign h3 { font-size: calc(24px + 2.22222vw - 10.66667px) !important; }
  .pp-campaign .u-h4, .pp-campaign h4 { font-size: calc(22px + .83333vw - 4px) !important; }
  .pp-campaign .u-h5, .pp-campaign h5 { font-size: calc(20px + .55556vw - 2.66667px) !important; }
  .pp-campaign .u-h6, .pp-campaign h6, .pp-campaign .u-pre-title__element { font-size: calc(18px + .55556vw - 2.66667px) !important; }
}
@media screen and (min-width: 75em) {
  .pp-campaign .u-h1, .pp-campaign h1 { font-size: 82px !important; }
  .pp-campaign .u-h2, .pp-campaign h2 { font-size: 56px !important; }
  .pp-campaign .u-h3, .pp-campaign h3 { font-size: 40px !important; }
  .pp-campaign .u-h4, .pp-campaign h4 { font-size: 28px !important; }
  .pp-campaign .u-h5, .pp-campaign h5 { font-size: 24px !important; }
  .pp-campaign .u-h6, .pp-campaign h6, .pp-campaign .u-pre-title__element { font-size: 22px !important; }
}
/* campaign-specific sizes (higher specificity beats the generic system above).
   NOTE: the banner h1 is an h1.u-h2 — on mobile it takes u-h2 sizes (26px), the
   old base pin of 4.6rem was wrong (live only sizes it up at >=62em). */
.pp-campaign h2.u-large { font-size: 24px !important; line-height: 1.222em !important; letter-spacing: normal !important; }
@media (max-width: 47.99em) { .pp-campaign h2.u-large { font-size: 20px !important; } }
@media (min-width: 62em) {
  .pp-campaign .campaign-banner__text h1 { font-size: 72px !important; }
  .pp-campaign .campaign-banner__text h2 { font-size: 32px !important; }
  .pp-campaign .campaign-vision-condition .u-h3 { font-size: 46px !important; }
}
/* vision-condition copy: on live the container div carries .u-h4, and the <p>s
   INHERIT that type (22px/600/1.25em). skelly's own p rules re-size them, so
   force inherit; live then pins p to 2.4rem at >=62em.
   Same pattern for ANY p nested inside a u-h*-classed wrapper (e.g. the
   "ADVANCE SCREENINGS" p lives inside an h4.u-h1). */
.pp-campaign .campaign-vision-condition__content p,
.pp-campaign .u-h1 p, .pp-campaign .u-h2 p, .pp-campaign .u-h3 p,
.pp-campaign .u-h4 p, .pp-campaign .u-h5 p, .pp-campaign .u-h6 p { font-size: inherit !important; font-weight: inherit !important; line-height: inherit !important; letter-spacing: inherit !important; }
@media (min-width: 62em) { .pp-campaign .campaign-vision-condition__content p { font-size: 24px !important; } }

/* ---- carousel (vanilla stand-in for live's slick) ---- */
.pp-campaign .carousel-gallery-images { position: relative; overflow: hidden; }
.pp-campaign .pp-track { display: flex; transition: transform .5s ease; will-change: transform; }
.pp-campaign .carousel-gallery-images__item { flex: 0 0 100%; min-width: 100%; }
.pp-campaign .o-ratio { position: relative; display: block; overflow: hidden; }
.pp-campaign .o-ratio > img { position: absolute; inset: 0; width: 100%; height: 100%; }
.pp-campaign .u-object-fit { object-fit: cover; }
/* arrows — live .carousel-gallery-images .slick-arrow spec */
.pp-campaign .carousel-gallery-images .pp-arrow { -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); background: rgba(0,0,0,.4); border: none; bottom: 0; color: #fff; height: 8rem; width: 8rem; position: absolute; transition: all .1s ease-out; z-index: 2; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0; }
.pp-campaign .carousel-gallery-images .pp-arrow svg { width: 2.9rem; height: 2.9rem; }
.pp-campaign .carousel-gallery-images .pp-arrow:hover,
.pp-campaign .carousel-gallery-images .pp-arrow:focus { background: rgba(0,0,0,.8); }
.pp-campaign .carousel-gallery-images .pp-arrow[disabled] { background: rgba(0,0,0,.05); cursor: default; }
/* image-gallery--full-width puts both arrows bottom-RIGHT */
.pp-campaign .image-gallery--full-width .pp-arrow--prev { right: 8rem; left: auto; }
.pp-campaign .image-gallery--full-width .pp-arrow--next { right: 0; left: auto; }
@media (max-width: 47.99em) {
  .pp-campaign .carousel-gallery-images .pp-arrow { height: 5.5rem; width: 5.5rem; }
  .pp-campaign .carousel-gallery-images .pp-arrow svg { width: 2rem; height: 2rem; }
  .pp-campaign .image-gallery--full-width .pp-arrow--prev { right: 5.5rem; }
}
/* one caption at a time */
.pp-campaign .carousel-gallery-text > div { display: none; }
.pp-campaign .carousel-gallery-text > div.is-active { display: block; }

/* ============================================================
   EXTRACTED FROM LIVE CSS (scoped) — generated, do not hand-edit
   ============================================================ */
.pp-campaign .row{display:-moz-flex;display:flex;-moz-flex:0 1 auto;flex:0 1 auto;-moz-flex-direction:row;flex-direction:row;flex-wrap:wrap;margin-left:-1.6rem;margin-right:-1.6rem}
.pp-campaign .top-xs{-moz-align-items:flex-start;align-items:flex-start}
.pp-campaign .first-xs{order:-1}
.pp-campaign .gutter-b{padding-bottom:4rem}
.pp-campaign .gutter-tb{padding-bottom:5.4rem;padding-top:5.4rem}
.pp-campaign .gutter-tb--md{padding-bottom:4rem;padding-top:4rem}
.pp-campaign .gutter-tb.bg-color--blue-light+.gutter-tb.bg-color--blue-light,
.pp-campaign .gutter-tb.bg-color--orange+.gutter-tb.bg-color--orange,
.pp-campaign .gutter-tb.bg-color--white+.gutter-tb.bg-color--white{padding-top:0}
.pp-campaign .u-visuallyhidden{clip:rect(0 0 0 0);border:0;height:1px;left:-9999px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}
.pp-campaign .u-m-bx2{margin-bottom:1.6rem}
.pp-campaign .u-p-tx2{padding-top:1.6rem}
.pp-campaign .u-p-lx2{padding-left:1.6rem}
.pp-campaign .u-p-rx2{padding-right:1.6rem}
.pp-campaign .u-m-tx3{margin-top:2.4rem}
.pp-campaign .u-m-bx3{margin-bottom:2.4rem}
.pp-campaign .u-p-rx3{padding-right:2.4rem}
.pp-campaign .u-m-bx4{margin-bottom:3.2rem}
.pp-campaign .u-m-bx5{margin-bottom:4rem}
.pp-campaign .u-m-tx8{margin-top:6.4rem}
.pp-campaign .u-m-tx12{margin-top:9.6rem}
.pp-campaign .u-m-tx14{margin-top:11.2rem}
.pp-campaign .u-p-bx14{padding-bottom:11.2rem}
.pp-campaign .u-no-m{margin:0!important}
.pp-campaign .u-no-m-b{margin-bottom:0!important}
.pp-campaign .u-block{display:block!important}
.pp-campaign .u-inline-block{display:inline-block!important}
.pp-campaign .u-none{display:none!important}
.pp-campaign .u-text-center{text-align:center}
.pp-campaign .u-text-left{text-align:left}
.pp-campaign .u-text-right{text-align:right}
.pp-campaign .u-small{font-size:1.6rem;line-height:1.444em}
.pp-campaign .u-medium{font-size:1.8rem;line-height:1.333em}
.pp-campaign .u-large{font-size:2.4rem}
.pp-campaign .u-large{line-height:1.222em}
.pp-campaign .weight-600{font-weight:600}
.pp-campaign .bg-color--orange{background:#ff6e33}
.pp-campaign .bg-color--blue-light{background:#a4dbde}
.pp-campaign .bg-color--white{background:#fff}
.pp-campaign .border-color--apricot{border-color:#f8a087!important}
.pp-campaign .img-wrap img{max-height:100%;max-width:100%;vertical-align:middle}
.pp-campaign .bg-img-only{background-position:50%;background-size:cover;padding-top:56.25%}
.pp-campaign .u-h1,
.pp-campaign .u-h2,
.pp-campaign .u-h3,
.pp-campaign .u-h4,
.pp-campaign .u-pre-title__element{font-weight:500;margin-bottom:3.2rem;margin-top:0}
.pp-campaign .u-h1{font-size:3.8rem;font-weight:700;letter-spacing:-.1rem;line-height:1em}
.pp-campaign .u-h2{font-size:2.6rem;font-weight:500;font-weight:700;letter-spacing:-.1rem;line-height:1em;margin-bottom:3.2rem;margin-top:0}
.pp-campaign .u-h3{font-size:2.4rem;font-weight:500;font-weight:700;letter-spacing:-.1rem;line-height:1.13em;margin-bottom:3.2rem;margin-top:0}
.pp-campaign .u-h4{font-size:2.2rem;font-weight:500;font-weight:600;letter-spacing:-.1rem;line-height:1.25em;margin-bottom:3.2rem;margin-top:0}
.pp-campaign .u-pre-title__element{font-size:1.8rem;font-weight:500;font-weight:600;letter-spacing:normal;line-height:1.18em;margin-bottom:3.2rem;margin-top:0}
.pp-campaign .u-pre-title__element{font-weight:700;margin:0}
.pp-campaign .u-pre-title__element:after{background-color:#ff6e33;content:"";display:block;height:.5rem;margin:1em 0;width:8.3rem}
.pp-campaign [class*=bg-color-] .u-pre-title__element:after{background-color:#282829}
.pp-campaign .u-pre-title--border-apricot .u-pre-title__element:after{background-color:#f8a087}
.pp-campaign .u-pre-title--centered{text-align:center}
.pp-campaign .u-pre-title--centered .u-pre-title__element:after{content:"";margin-left:auto;margin-right:auto}
.pp-campaign .o-ratio{display:block!important;overflow:hidden;position:relative}
.pp-campaign .o-ratio iframe,
.pp-campaign .o-ratio img{left:0;position:absolute;top:0}
.pp-campaign .o-ratio iframe{height:100%;width:100%}
.pp-campaign .o-ratio--54{padding-bottom:54%}
.pp-campaign .bg-img-only[class*=o-ratio]{padding-top:0}
.pp-campaign .u-object-fit{font-family:"object-fit: cover; object-position: 50% 50%;";height:100%;left:0;object-fit:cover;object-position:50% 50%;padding:0;position:absolute;top:0;width:100%}
.pp-campaign .c-btn:focus-visible{box-shadow:0 0 0 3px #fff!important;outline-offset:3px!important}
.pp-campaign .u-object-fit{font-family:"object-fit: cover; object-position: 50% 50%;";height:100%;left:0;object-fit:cover;object-position:50% 50%;padding:0;position:absolute;top:0;width:100%}
.pp-campaign .u-img-preloader{opacity:0;transition:opacity .5s cubic-bezier(.4,0,0,1)}
.pp-campaign .c-btn--hover-sweep-out:before{right:0;width:100%}
.pp-campaign .c-btn--hover-sweep-out:focus:not([disabled]):before,
.pp-campaign .c-btn--hover-sweep-out:hover:not([disabled]):before{width:0}
.pp-campaign .c-btn--icon-right .c-btn__icon{margin-left:.5em;order:2}
.pp-campaign .c-btn--icon-right:focus:not([disabled]) .c-btn__icon svg,
.pp-campaign .c-btn--icon-right:hover:not([disabled]) .c-btn__icon svg{transform:translate(8px)}
.pp-campaign .c-btn{align-items:center;background:transparent;border:none;cursor:pointer;display:inline-flex;font-size:1.8rem;font-weight:400;line-height:1.3em;text-decoration:none}
.pp-campaign .c-btn__icon{font-size:1.9rem;width:1.45em}
.pp-campaign .c-btn__icon svg{transition:all .3s cubic-bezier(.4,0,0,1),color 0s cubic-bezier(.4,0,0,1)}
.pp-campaign .c-btn>*{position:relative;z-index:2}
.pp-campaign .c-btn:focus:not(:active,[disabled]){outline:none}
.pp-campaign .c-btn:focus:active:not([disabled]){outline:0}
.pp-campaign .c-btn--primary{background:transparent;border-radius:100px;box-shadow:0 0 0 1px #ff6e33,inset 0 0 0 1px #ff6e33;overflow:hidden;padding:1em 1.8em;position:relative;text-align:center;transition:all .3s cubic-bezier(.4,0,0,1),background 0s cubic-bezier(.4,0,0,1) .3s;vertical-align:top}
.pp-campaign .c-btn--primary[disabled]{background:#e2dedd;box-shadow:0 0 0 1px #e2dedd,inset 0 0 0 1px #e2dedd;color:#69696a}
.pp-campaign .c-btn--primary[disabled]:before{content:none}
.pp-campaign .c-btn--primary[disabled] .c-btn__icon{color:#69696a}
.pp-campaign .c-btn--primary[disabled]:focus,
.pp-campaign .c-btn--primary[disabled]:hover{background:#e2dedd!important;color:#69696a!important}
.pp-campaign .c-btn--primary[disabled]:focus .c-icon svg,
.pp-campaign .c-btn--primary[disabled]:hover .c-icon svg{transform:translate(0)!important}
.pp-campaign .c-btn--sm{padding:.7em 1.6em}
.pp-campaign .c-btn--primary{background:#ff6e33;color:#282829}
.pp-campaign .c-btn--primary[class*=c-btn--hover-sweep]:before{background:#ff6e33}
.pp-campaign .c-btn--primary:focus:not(:active,[disabled]){box-shadow:0 0 0 2px #ff6e33,inset 0 0 0 1px #ff6e33;text-decoration:underline}
.pp-campaign .c-btn--primary:active:not([disabled]){opacity:.8}
.pp-campaign .c-btn--primary:focus:not([disabled]),
.pp-campaign .c-btn--primary:hover:not([disabled]){background:none;color:#282829;transition:all .3s cubic-bezier(.4,0,0,1),background 0s cubic-bezier(.4,0,0,1)}
.pp-campaign .c-video{margin-bottom:32px}
.pp-campaign .c-video__responsive{height:0;margin-bottom:32px;padding-bottom:56.25%;position:relative;width:100%}
.pp-campaign .c-video__responsive iframe{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}
.pp-campaign .carousel-gallery-images .bg-img-only{min-height:100%}
.pp-campaign .carousel-gallery__current,
.pp-campaign .carousel-gallery__total{display:inline-block;min-width:30px}
.pp-campaign .carousel-gallery__current{text-align:right}
.pp-campaign .c-icon{display:inline-block;vertical-align:middle}
.pp-campaign .c-icon svg{display:block;height:1em;margin-left:auto;margin-right:auto;max-height:100%;max-width:100%;width:1em}
.pp-campaign .c-icon--full-width svg{height:auto;width:100%}
.pp-campaign .campaign-banner{height:200vh;position:relative}
.pp-campaign .campaign-banner .o-container{margin:0 1.6rem!important;width:100%}
.pp-campaign .campaign-banner .campaign-banner__video .o-container{margin:0 auto!important}
.pp-campaign .campaign-banner__text{align-items:center;background:#282829;color:#fff;display:flex;height:100vh;justify-content:center;position:absolute;text-align:center;width:100%;z-index:2}
.pp-campaign .campaign-banner__text__img{display:none}
.pp-campaign .campaign-banner__text h2{margin:0 auto 6rem;max-width:67rem}
.pp-campaign .campaign-banner__text a{animation:fadePulse 1s ease-in-out infinite alternate;color:#fff;font-size:1.6rem;font-weight:600;opacity:1}
.pp-campaign .campaign-banner__text a span{border-bottom:2px solid #ff6e33}
.pp-campaign .campaign-banner__text a .c-icon{font-size:75%}
.pp-campaign .campaign-banner__video{align-items:center;background-color:#282829;display:flex;height:100vh;justify-content:center;position:sticky;top:0}
.pp-campaign .campaign-banner__video .campaign-video .campaign-video__embed{position:relative}
.pp-campaign .campaign-banner__video .campaign-video .campaign-video__embed:before{content:"";display:block;padding-top:100%;width:100%}
.pp-campaign .campaign-banner__video .campaign-video .campaign-video__embed>iframe{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}
.pp-campaign .campaign-process{background-color:#282829;padding:0;transition:background-color .75s ease-in}
.pp-campaign .campaign-process .o-container{opacity:0;transition:opacity .75s ease-in}
.pp-campaign .campaign-process.in{background-color:#fff}
.pp-campaign .campaign-process.in .o-container{opacity:1}
.pp-campaign .campaign-process .u-pre-title h3{font-size:2.2rem;font-weight:600;margin-top:5rem}
.pp-campaign .campaign-process__step-container{margin-top:10rem}
.pp-campaign .campaign-process__step-container:first-child{margin-top:0}
.pp-campaign .campaign-process__step{background-color:#f1f1f3;padding:3rem}
.pp-campaign .campaign-process__step .img-wrap{height:20rem;margin-bottom:1rem;width:auto}
.pp-campaign .campaign-process__heading{font-weight:600}
.pp-campaign .campaign-video{overflow:hidden}
.pp-campaign .campaign-video,
.pp-campaign .campaign-video>.o-container{position:relative}
.pp-campaign .campaign-video__thumb{align-items:center;bottom:0;cursor:pointer;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:1}
.pp-campaign .campaign-video__thumb svg{color:#fff;display:block;height:9rem;position:relative;width:9rem;z-index:1}
.pp-campaign .campaign-video__thumb img{bottom:0;height:auto;left:0;max-width:100%;position:absolute;right:0;top:0;z-index:0}
.pp-campaign .campaign-video__thumb:focus svg .campaign-video__play-circle,
.pp-campaign .campaign-video__thumb:hover svg .campaign-video__play-circle{color:#282829}
.pp-campaign .campaign-video__thumb:focus svg .campaign-video__play,
.pp-campaign .campaign-video__thumb:hover svg .campaign-video__play{color:#fff}
.pp-campaign .campaign-video__play-circle{color:#fff;transition:color .2s ease-out}
.pp-campaign .campaign-video__play{color:#282829;transition:color .2s ease-out}
.pp-campaign .campaign-video__embed{bottom:0;left:0;position:absolute;position:relative;right:0;top:0;z-index:0}
.pp-campaign .campaign-video__embed:before{content:"";display:block;padding-top:52%;width:100%}
.pp-campaign .campaign-video__embed>iframe{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}
.pp-campaign .campaign-statement{margin-bottom:6rem;margin-top:0}
.pp-campaign .campaign-statement-container{overflow:hidden;padding-bottom:4rem;padding-top:8rem;position:relative}
.pp-campaign .campaign-statement__img{display:block;height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}
.pp-campaign .campaign-statement__img img{display:block;height:100%;object-fit:cover;object-position:0 50%;opacity:1;width:100%}
.pp-campaign .campaign-statement__content-logo{max-width:27.8rem}
.pp-campaign .campaign-statement__content-logo img{height:auto;width:100%}
.pp-campaign .campaign-statement .u-pre-title__element:after{background-color:initial;margin:.5em}
.pp-campaign .campaign-testimonials__title{align-items:center;display:flex;flex-direction:row;margin-bottom:6rem;padding-top:6rem}
.pp-campaign .campaign-testimonials__icon-container{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);height:100%}
.pp-campaign .campaign-testimonials__icon-container svg{display:block;height:35rem}
.pp-campaign .campaign-vision-condition{background-color:#282829;color:#fff;overflow:hidden;position:relative}
.pp-campaign .campaign-vision-condition.white{background-color:#fff;color:#282829}
.pp-campaign .campaign-vision-condition .list--bordered-top__divider{border-top-width:2px;width:2.5rem}
.pp-campaign .campaign-vision-condition__fade{opacity:0;transition:opacity .75s ease-in-out}
.pp-campaign .campaign-vision-condition__fade.in{opacity:1}
.pp-campaign .campaign-vision-condition__statement{margin-top:8rem}
.pp-campaign .campaign-vision-condition__shape{bottom:auto;height:40rem;left:auto;position:absolute;right:0;top:0;width:35rem}
.pp-campaign .spacer--negative-md{margin-top:-3rem}
@media (-ms-high-contrast:none){
.pp-campaign .c-icon svg{height:1em}
}
@media (height <= 600px){
.pp-campaign .campaign-banner .campaign-banner__video .o-container{max-width:60rem}
}
@media (height <= 800px){
.pp-campaign .campaign-banner .campaign-banner__video .o-container{max-width:80rem}
}
@media (max-width:47.99em){
.pp-campaign .campaign-banner__video .campaign-video .campaign-video__thumb img{height:100%;object-fit:cover;width:100%}
}
@media (min-width:48em){
.pp-campaign .gutter-b{padding-bottom:9rem;padding-bottom:13.5rem}
.pp-campaign .gutter-tb{padding-bottom:9rem;padding-bottom:13.5rem;padding-top:9rem;padding-top:13.5rem}
.pp-campaign .gutter-tb--md{padding-bottom:5.2rem;padding-bottom:9.6rem;padding-top:5.2rem;padding-top:9.6rem}
.pp-campaign .campaign-banner__video .campaign-video .campaign-video__embed{position:relative}
.pp-campaign .campaign-banner__video .campaign-video .campaign-video__embed:before{content:"";display:block;padding-top:52%;width:100%}
.pp-campaign .campaign-banner__video .campaign-video .campaign-video__embed>iframe{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}
.pp-campaign .campaign-vision-condition{margin-top:0}
}
@media (min-width:62em){
.pp-campaign .campaign-banner__text__content{align-self:center;padding-left:6rem;text-align:left}
.pp-campaign .campaign-banner__text__img{display:flex}
.pp-campaign .campaign-banner__text h1{font-size:7.2rem;margin-bottom:5rem;max-width:70rem}
.pp-campaign .campaign-banner__text h2{font-size:3.2rem;margin-bottom:14rem;margin-left:0}
.pp-campaign .campaign-process__step-container{margin-top:0}
.pp-campaign .campaign-statement{margin-bottom:10rem}
.pp-campaign .campaign-statement-container{padding-bottom:5rem;padding-top:10rem}
.pp-campaign .campaign-testimonials__title{margin-bottom:0;padding-bottom:6rem}
.pp-campaign .campaign-testimonials__icon-container svg{height:45rem;width:24rem}
.pp-campaign .campaign-vision-condition .u-h3{font-size:4.6rem}
.pp-campaign .campaign-vision-condition__content p{font-size:2.4rem;margin-bottom:2rem}
.pp-campaign .campaign-vision-condition__statement{margin-top:12rem}
.pp-campaign .spacer--negative-md{margin-top:-6rem}
}
@media (min-width:75em){
.pp-campaign .campaign-statement{margin-bottom:14rem}
.pp-campaign .campaign-statement-container{padding-bottom:7rem;padding-top:14rem}
.pp-campaign .campaign-vision-condition__shape{height:60rem;margin-top:6rem;width:50rem}
}
@media only screen and (min-width:18.75em){
.pp-campaign .col-xs-16{flex-basis:100%;max-width:100%}
.pp-campaign .col-xs-16{-moz-flex-grow:0;flex-grow:0;flex-shrink:0;padding-left:1.6rem;padding-right:1.6rem}
.pp-campaign .top-xs{-moz-align-items:flex-start;align-items:flex-start}
.pp-campaign .first-xs{order:-1}
}
@media only screen and (min-width:48em){
.pp-campaign .col-sm-6{flex-basis:37.5%;max-width:37.5%}
.pp-campaign .col-sm-6{-moz-flex-grow:0;flex-grow:0;flex-shrink:0;padding-left:1.6rem;padding-right:1.6rem}
.pp-campaign .col-sm-10{flex-basis:62.5%;max-width:62.5%}
.pp-campaign .col-sm-10{-moz-flex-grow:0;flex-grow:0;flex-shrink:0;padding-left:1.6rem;padding-right:1.6rem}
.pp-campaign .col-sm-16{flex-basis:100%;max-width:100%}
.pp-campaign .col-sm-16{-moz-flex-grow:0;flex-grow:0;flex-shrink:0;padding-left:1.6rem;padding-right:1.6rem}
.pp-campaign .u-m-sm-bx5{margin-bottom:4rem}
}
@media only screen and (min-width:62em){
.pp-campaign .col-md{flex-basis:auto}
.pp-campaign .col-md{-moz-flex-grow:0;flex-grow:0;flex-shrink:0;padding-left:1.6rem;padding-right:1.6rem}
.pp-campaign .col-md-4{flex-basis:25%;max-width:25%}
.pp-campaign .col-md-4{-moz-flex-grow:0;flex-grow:0;flex-shrink:0;padding-left:1.6rem;padding-right:1.6rem}
.pp-campaign .col-md-7{-moz-flex-grow:0;flex-grow:0;flex-shrink:0;padding-left:1.6rem;padding-right:1.6rem}
.pp-campaign .col-md-7{flex-basis:43.75%;max-width:43.75%}
.pp-campaign .col-md-8{flex-basis:50%;max-width:50%}
.pp-campaign .col-md-8,
.pp-campaign .col-md-9{-moz-flex-grow:0;flex-grow:0;flex-shrink:0;padding-left:1.6rem;padding-right:1.6rem}
.pp-campaign .col-md-9{flex-basis:56.25%;max-width:56.25%}
.pp-campaign .col-md-12{flex-basis:75%;max-width:75%}
.pp-campaign .col-md-12{-moz-flex-grow:0;flex-grow:0;flex-shrink:0;padding-left:1.6rem;padding-right:1.6rem}
.pp-campaign .col-md-offset-2{margin-left:12.5%}
.pp-campaign .col-md-offset-2{-moz-flex-grow:0;flex-grow:0;flex-shrink:0;padding-left:1.6rem;padding-right:1.6rem}
.pp-campaign .col-md{flex-basis:0;-moz-flex-grow:1;flex-grow:1;max-width:100%}
.pp-campaign .u-p-md-rx4{padding-right:3.2rem}
.pp-campaign .u-m-md-tx16{margin-top:12.8rem}
.pp-campaign .u-block-md{display:block!important}
}
@media only screen and (min-width:75em){
.pp-campaign .col-lg-4{flex-basis:25%;max-width:25%}
.pp-campaign .col-lg-4{-moz-flex-grow:0;flex-grow:0;flex-shrink:0;padding-left:1.6rem;padding-right:1.6rem}
.pp-campaign .col-lg-8{flex-basis:50%;max-width:50%}
.pp-campaign .col-lg-8{-moz-flex-grow:0;flex-grow:0;flex-shrink:0;padding-left:1.6rem;padding-right:1.6rem}
.pp-campaign .col-lg-12{flex-basis:75%;max-width:75%}
.pp-campaign .col-lg-12{-moz-flex-grow:0;flex-grow:0;flex-shrink:0;padding-left:1.6rem;padding-right:1.6rem}
.pp-campaign .col-lg-offset-2{margin-left:12.5%}
.pp-campaign .col-lg-offset-2{-moz-flex-grow:0;flex-grow:0;flex-shrink:0;padding-left:1.6rem;padding-right:1.6rem}
.pp-campaign .no-wrap-lg{flex-wrap:nowrap}
}
@media screen and (min-width:30em){
.pp-campaign .u-h1{font-size:calc(3.8rem + 6.11111vw - 29.33333px)}
.pp-campaign .u-h2{font-size:calc(2.6rem + 4.16667vw - 20px)}
.pp-campaign .u-h3{font-size:calc(2.4rem + 2.22222vw - 10.66667px)}
.pp-campaign .u-h4{font-size:calc(2.2rem + .83333vw - 4px)}
.pp-campaign .u-pre-title__element{font-size:calc(1.8rem + .55556vw - 2.66667px)}
.pp-campaign .c-btn{font-size:calc(1.8rem + .27778vw - 1.33333px)}
.pp-campaign .campaign-process .u-pre-title h3{font-size:calc(-18px + 8.33333vw)}
}
@media screen and (min-width:75em){
.pp-campaign .u-h1{font-size:8.2rem}
.pp-campaign .u-h2{font-size:5.6rem}
.pp-campaign .u-h3{font-size:4rem}
.pp-campaign .u-h4{font-size:2.8rem}
.pp-campaign .u-pre-title__element{font-size:2.2rem}
.pp-campaign .c-btn{font-size:2rem}
.pp-campaign .campaign-process .u-pre-title h3{font-size:2.8rem}
}

/* ============================================================
   MOBILE PX RE-ASSERTS (2026-07-16, hand-written — keep LAST)
   skelly shrinks the root font-size below 1200px (60/58/55/51%)
   while live's root is always 10px, so the extracted rem type
   sizes above render up to 18% small on mobile. Re-assert the
   remaining non-heading type in px (same values, live-root px).
   Later-in-file + equal specificity = these win over the
   extracted rem versions above.
   ============================================================ */
/* UTILITY MARGINS must beat the heading base (2026-07-16, "on a roll" mobile fix):
   the extracted heading block (.u-h1...u-pre-title__element { margin-top:0 }) sits
   LATER in this file than the u-m-* utilities, flipping live's cascade (live loads
   utils/helpers.css after base/headings.css, so utilities win there). Re-assert
   them here, after everything. */
.pp-campaign .u-m-tx3 { margin-top: 2.4rem; }
.pp-campaign .u-m-tx8 { margin-top: 6.4rem; }
.pp-campaign .u-m-tx12 { margin-top: 9.6rem; }
.pp-campaign .u-m-tx14 { margin-top: 11.2rem; }
.pp-campaign .u-m-bx2 { margin-bottom: 1.6rem; }
.pp-campaign .u-m-bx3 { margin-bottom: 2.4rem; }
.pp-campaign .u-m-bx4 { margin-bottom: 3.2rem; }
.pp-campaign .u-m-bx5 { margin-bottom: 4rem; }
@media only screen and (min-width: 48em) {
	.pp-campaign .u-m-sm-bx5 { margin-bottom: 4rem; }
}
@media only screen and (min-width: 62em) {
	.pp-campaign .u-m-md-tx16 { margin-top: 12.8rem; }
}

/* Apricot divider dash under "The PAW Patrol is on a roll!" — the extraction only
   kept border-top-WIDTH; the style/margins live in live's lists.css (not extracted),
   so the dash rendered 0px. Live: 2px solid, 25px wide, 24px margins. */
.pp-campaign .list--bordered-top__divider,
.pp-campaign .campaign-vision-condition .list--bordered-top__divider {
	border-top: 2px solid #f8a087;
	width: 25px;
	margin: 24px 0;
}

/* Partnering-band chevron: live px sizes (35rem/45rem at live's constant 10px root;
   the local root shrink undersized the clip window and the parallax reveal) */
.pp-campaign .campaign-testimonials__icon-container svg { height: 350px; }
@media (min-width: 62em) {
	.pp-campaign .campaign-testimonials__icon-container svg { height: 450px; width: 240px; }
}

/* !important because skelly's style.css pins .c-btn { font-size: 17px !important } */
.pp-campaign .u-small { font-size: 16px !important; }
.pp-campaign .u-medium { font-size: 18px !important; }
.pp-campaign .u-large { font-size: 24px !important; }
.pp-campaign .c-btn { font-size: 18px !important; }
.pp-campaign .campaign-banner__text a { font-size: 16px !important; }
@media screen and (min-width: 30em) {
  .pp-campaign .c-btn { font-size: calc(18px + .27778vw - 1.33333px) !important; }
}
@media screen and (min-width: 75em) {
  .pp-campaign .c-btn { font-size: 20px !important; }
}
