/* Effective shared styles from the owner-approved internal About implementation.
   No page grids, photographs, tool layouts or private assets are imported. */
/* Opt-in motion primitives; approved CTA keeps its own animation owner. */
.sh-goal-panel p{min-block-size:5.2em} /* Four lines: stable space for every approved goal. */
[data-motion~="lift"],[data-motion~="tilt"]{transition:transform 180ms cubic-bezier(.2,.7,.2,1)}
[data-motion~="border"]{transition:border-color 180ms ease-out}
[data-motion~="zoom"]{overflow:hidden}
[data-motion~="zoom"]>img{transition:transform 240ms cubic-bezier(.2,.7,.2,1)}
[data-motion~="arrow"] .pp-icon,.sh-services a .pp-icon,.re-links a .pp-icon{transition:transform 180ms ease-out}
[data-motion~="border"]:focus-within{border-color:var(--pink)}
.sh-services a:focus-visible,.re-links a:focus-visible{outline:2px solid var(--pink);outline-offset:5px}
@media(hover:hover) and (pointer:fine){
  [data-motion~="lift"]:is(:hover,:focus-within){transform:translateY(-3px)}
  [data-motion~="tilt"]:is(:hover,:focus-within){transform:rotate(.6deg)}
  [data-motion~="zoom"]:is(:hover,:focus-within)>img{transform:scale(1.025)}
  [data-motion~="border"]:hover{border-color:var(--pink)}
  [data-motion~="arrow"]:is(:hover,:focus-within) .pp-icon,
  .sh-services a:is(:hover,:focus-visible) .pp-icon,
  .re-links a:is(:hover,:focus-visible) .pp-icon{transform:translate(3px,-2px)}
}
@keyframes pp-content-enter{from{opacity:.65;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes pp-text-enter{from{transform:translateY(8px)}to{transform:none}}
[data-motion~="reveal"].is-revealed{animation:pp-content-enter 240ms ease-out}
[data-motion~="accordion"][open]>:not(summary){animation:pp-content-enter 180ms ease-out}
.pp-text-reveal{overflow:hidden}
@media(min-width:769px){.pp-text-reveal.is-revealed>span{display:block;animation:pp-text-enter 320ms cubic-bezier(.2,.7,.2,1)}}
@supports(animation-timeline:scroll()){
  [data-motion~="progress"]{transform-origin:left;animation:pp-progress linear;animation-timeline:scroll(root)}
  @keyframes pp-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
}
@media(prefers-reduced-motion:reduce){
  [data-motion],[data-motion]>img,[data-motion] .pp-icon,.pp-text-reveal>span,
  .sh-services a .pp-icon,.re-links a .pp-icon,
  [data-motion~="accordion"][open]>:not(summary){animation:none!important;transition:none!important;transform:none!important}
}
:root {
  --pink:#E84274;
  --brand-dark:#141416;
  --brand-announcement:#ffe238;
  --brand-heading-tracking:-.045em;
}
.announcement-bar{background:var(--brand-announcement)!important;color:#19191b}
.nav-inner{padding:16px 28px;min-height:84px}
nav[aria-label="Primary navigation"] .mega-menu{border-radius:24px}
.btn,.btn:hover,.btn:active{text-decoration:none}
.btn{font-family:'Outfit',sans-serif;font-size:.96rem;font-weight:600;line-height:1.5;border-radius:999px;padding:15px 28px;transition:transform .2s ease,filter .2s ease}
.btn:not(.btn-outline){border:0}
.btn:focus-visible{outline:3px solid var(--pink);outline-offset:5px}
.cs-filters select{border:1px solid var(--line);border-radius:10px;min-height:44px;padding:8px 32px 8px 12px;background-color:#f7f6f3}
.cs-filters select:focus-visible{outline:2px solid var(--pink);outline-offset:3px}
/* Commercial headings only: calculators, forms and legal text retain their scale. */
body:has(.pp-final-cta) .pp-hero h1 {
  font-size:clamp(2.8rem,5vw,5rem);line-height:1.06;
  letter-spacing:var(--brand-heading-tracking);text-wrap:balance;
}
body:has(.pp-final-cta) .pp-hero h1 .hero-accent {
  font-family:'Instrument Serif',serif;font-weight:400;font-style:italic;color:var(--pink);
}
body:has(.pp-final-cta):not(:has(.team-gallery)) main > section:not(.pp-final-cta) > .wrap h2:not(article h2):not(.cs-case h2) {
  font-family:'Outfit',sans-serif;font-size:clamp(2rem,4.4vw,4.2rem);
  font-weight:600;line-height:1.07;letter-spacing:var(--brand-heading-tracking);text-wrap:balance;
}
/* Exact section rhythm from the effective approved About rules. Compact logo
   strips and unique hero/storytelling layouts retain their own dimensions. */
body:has(.pp-final-cta):not(:has(.team-gallery)) main > section:not(.pp-hero):not(.pp-final-cta):not(.roster) {
  padding-block:76px;
}
/* Approved About surfaces, retaining the existing content/grid rather than
   moving internal team photographs or creative assets into the release. */
body.about-page:not(:has(.team-gallery)){background:#faf9f6}
body.about-page:not(:has(.team-gallery)) .about-hero-photo img{border-radius:12px}
body.about-page:not(:has(.team-gallery)) .about-thinking,body.about-page:not(:has(.team-gallery)) .about-reach{background:#19191b;color:#fff}
body.about-page:not(:has(.team-gallery)) .about-thinking p:not(.kicker),body.about-page:not(:has(.team-gallery)) .about-reach p{color:#d6d3d4}
body.about-page:not(:has(.team-gallery)) .about-thinking .kicker,body.about-page:not(:has(.team-gallery)) .about-reach .kicker{color:var(--pink)}
body.about-page:not(:has(.team-gallery)) .about-thinking .about-statement{color:#fff;font-size:clamp(1.4rem,2.7vw,2.2rem);line-height:1.35}
body.about-page:not(:has(.team-gallery)) .about-journey{background:none;gap:14px;align-items:start}
body.about-page:not(:has(.team-gallery)) .about-journey li{border:1px solid #454547;border-radius:12px;background:#202022;color:#fff;padding:28px 22px;min-height:240px;box-shadow:none}
body.about-page:not(:has(.team-gallery)) .about-journey li:nth-child(2){background:#29292b;margin-top:24px}
body.about-page:not(:has(.team-gallery)) .about-journey li:nth-child(3){background:var(--pink);color:#17171b;margin-top:48px}
body.about-page:not(:has(.team-gallery)) .about-journey li:nth-child(4){background:#faf9f6;color:#21191e;border-color:#faf9f6;margin-top:72px}
body.about-page:not(:has(.team-gallery)) .about-stats>div{background:transparent;border:0;border-top:1px solid #555557;border-radius:0;padding:28px 0;min-height:200px}
body.about-page:not(:has(.team-gallery)) .about-stats dd{font-size:clamp(3.6rem,6.2vw,6rem);color:#f7f4ef;letter-spacing:-.065em}
body.about-page:not(:has(.team-gallery)) .about-stats dt{color:#f7f4f4}
body.about-page:not(:has(.team-gallery)) .about-stats dd .about-stat-plus{color:var(--pink)}
body.about-page:not(:has(.team-gallery)) .about-process li{border:1px solid #dedbd5;border-radius:12px;padding:24px;background:#fff;font-size:1.55rem}
body.about-page:not(:has(.team-gallery)) .about-process{display:grid;gap:12px}
body.about-page:not(:has(.team-gallery)) .about-process .about-human{background:#eee8e5;color:#302a2d;border-color:#dedbd5}
@media(max-width:1000px){body.about-page:not(:has(.team-gallery)) .about-journey li{margin-top:0!important}}
.pp-final-cta.about-section {
  padding:56px 0;background:var(--brand-dark);color:#fff;border:0;border-radius:0;
}
.pp-final-cta.about-section h2 {
  font:600 clamp(2rem,4.4vw,4.2rem)/1.07 'Outfit',sans-serif;
  letter-spacing:var(--brand-heading-tracking);max-width:20ch;margin:0 0 24px;
  color:#fff;text-wrap:balance;
}
.pp-final-cta.about-section p{font-size:1.08rem;line-height:1.7;color:#e8dfe7;max-width:58ch;margin:0}
.pp-final-cta .btn-row{display:flex;margin-top:34px;gap:16px;flex-wrap:wrap}
.pp-final-cta .btn.btn-primary{background:#fff!important;color:#17171b;box-shadow:none}
.pp-final-cta .liquid-carve-layer{background:linear-gradient(135deg,#FF9D00,#F22F83)}
.pp-final-cta.about-section .pp-final-microcopy{font-size:.875rem;margin-top:16px}
.pp-final-cta.about-section .pp-final-secondary{font-size:.875rem;margin-top:12px}
.pp-final-secondary a{display:inline-flex;align-items:center;min-height:44px;text-underline-offset:4px}
footer{background:var(--brand-dark);border:0;border-radius:0;margin-top:0;padding-top:48px}
body:has(.pp-final-cta) footer{padding-top:0}
footer .footer-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:40px}
footer .footer-brand{grid-column:1/-1;display:grid;grid-template-columns:1.4fr 1fr;gap:16px 64px;padding-bottom:48px;border-bottom:1px solid #414143}
footer .footer-brand>a{grid-column:1/-1}
footer .footer-brand>p:first-of-type{grid-column:1;grid-row:2/4;font-size:clamp(3rem,6vw,6rem);font-weight:700;line-height:1.02;letter-spacing:-.045em;color:#fff;max-width:10ch;margin:16px 0}
footer .footer-brand>p:nth-of-type(2){grid-column:2;font-size:1.2rem;max-width:30ch;align-self:end;color:#d8d6d2}
footer .footer-brand .footer-contact{grid-column:2;align-self:start;gap:14px}
footer .footer-contact a{width:fit-content;border:1px solid #515153;border-radius:999px;padding:12px 16px;min-height:44px}
footer .footer-col h4{font-size:1.1rem;color:#fff}
footer .footer-icon{color:var(--pink);background:transparent;border:0}
footer .footer-col li a{display:inline-flex;align-items:center;min-height:40px;color:#d8d6d2}
footer .footer-social{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:32px 0}
footer .footer-social>a{justify-content:space-between;border:1px solid #515153;border-radius:12px;padding:18px;font-size:1.15rem;color:#fff;min-height:60px}
footer a:hover{color:var(--pink)}
footer a:focus-visible{outline:2px solid var(--pink);outline-offset:5px}
@media(max-width:720px){
 .nav-inner{min-height:62px;padding:10px 18px}
 body:has(.pp-final-cta) .pp-hero h1{font-size:clamp(2.5rem,10.8vw,3rem);line-height:1.08}
 body:has(.pp-final-cta):not(:has(.team-gallery)) main > section:not(.pp-hero):not(.pp-final-cta):not(.roster){padding-block:48px}
 body:has(.pp-final-cta):not(:has(.team-gallery)) main > section:not(.pp-final-cta) > .wrap h2:not(article h2):not(.cs-case h2){font-size:2.1rem;line-height:1.12;letter-spacing:-.035em}
 body.about-page:not(:has(.team-gallery)) .about-journey li{padding:20px 14px;min-height:175px}
 body.about-page:not(:has(.team-gallery)) .about-stats>div{padding:20px 0;min-height:145px}
 body.about-page:not(:has(.team-gallery)) .about-stats dd{font-size:3.5rem}
 body.about-page:not(:has(.team-gallery)) .about-process li{padding:20px;font-size:1.35rem}
 .pp-final-cta.about-section{padding:40px 0}
 .pp-final-cta.about-section h2{font-size:2.1rem;line-height:1.12;letter-spacing:-.035em;max-width:none}
 footer .footer-grid{grid-template-columns:1fr 1fr;gap:28px 18px}
 footer .footer-brand{display:flex;flex-direction:column;gap:18px;padding-bottom:32px}
 footer .footer-brand>p:first-of-type{font-size:3.8rem;max-width:10ch;margin:8px 0}
 footer .footer-brand>p:nth-of-type(2){font-size:1rem;align-self:start}
 footer .footer-brand .footer-contact{gap:12px}
 footer .footer-social{grid-template-columns:1fr 1fr}
 footer .footer-social>a{font-size:1rem;padding:14px}
 footer .footer-col li a{font-size:.9rem}
}
@media(prefers-reduced-motion:reduce){
 .btn,.btn::after{transition:none}
 .btn:hover{transform:none}
}
