/**
 * PluginPip 2027 / Typography system v1.3.2
 * A calmer, more legible editorial scale. Uses local system fonts only.
 * Loaded after page and navigation styles so this is the single place to
 * refine type rhythm without changing layout/content templates.
 */
:root {
  --body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --display: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --pp-type-tracking: .012em;
  --pp-type-weight: 750;
}

body {
  font-family: var(--body);
  line-height: 1.65;
  letter-spacing: .002em;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
p, li { overflow-wrap: break-word; }

/* Display typography: bold, no longer artificially narrow or overcompressed. */
.display-heading,
.page-title,
.footer-display,
.pp-stage__headline,
.pp-section-display,
.pp-narrative__title,
.pp-service-slab__body h3,
.pp-process__machine-screen strong,
.pp-audit h2,
.pp-case-feature__visual > strong,
.pp-case-feature__body h3,
.pp-work-next h2,
.pp-case-detail__hero h1,
.pp-case-detail__mockup > strong,
.pp-case-detail__story h2,
.pp-case-detail__next h2,
.pp-post__hero h1,
.pp-post__content h2,
.pp-post__content h3,
.pp-contact-content h2,
.pp-service-detail-hero h1,
.pp-service-detail-copy h2,
.pp-archive-hero h1 {
  font-family: var(--display);
  font-stretch: normal;
  font-weight: var(--pp-type-weight);
  letter-spacing: var(--pp-type-tracking);
  line-height: 1.1;
  text-wrap: balance;
}
.display-heading em,
.page-title em {
  font-family: inherit;
  font-weight: inherit;
  letter-spacing: .005em;
}

/* Homepage: keep the deliberate two-line arrangement, without letter collisions. */
.hero__title {
  font-family: var(--display);
  font-size: clamp(3.5rem, 9.1vw, 10.6rem);
  font-weight: var(--pp-type-weight);
  letter-spacing: .012em;
  line-height: 1.08;
}
.hero__line--two { font-size: .83em; margin-top: .23em; }
.intro-section__heading {
  font-size: clamp(3.5rem, 7.4vw, 8.8rem);
  line-height: 1.1;
  max-width: 1450px;
}
.services-section__title { font-size: clamp(3.4rem, 7.5vw, 8.8rem); }
.work-section__title { font-size: clamp(3.6rem, 8.6vw, 10.4rem); }
.approach-section__title { font-size: clamp(3.6rem, 8.5vw, 9.8rem); }
.journal-section__title { font-size: clamp(3.6rem, 8vw, 9.5rem); }
.footer-display { font-size: clamp(3.6rem, 10vw, 11.2rem); }
.page-title { font-size: clamp(3.5rem, 8.5vw, 10rem); }
.intro-section__lead,
.intro-section__statement,
.work-card__meta h3,
.approach-grid h3,
.journal-card h2,
.journal-card h3 {
  font-weight: 740;
  line-height: 1.17;
  letter-spacing: -.012em;
}
.service-card h3 {
  font-size: clamp(2.25rem, 3.1vw, 4.1rem);
  font-weight: 750;
  letter-spacing: -.008em;
  line-height: 1.09;
}
.work-card__big-name,
.work-card__placeholder > span:first-child:not(.work-card__mini-brand) {
  font-weight: 750;
  letter-spacing: .012em;
  line-height: 1.1;
  font-size: clamp(2.8rem, 4.8vw, 6rem);
}
.work-card__placeholder--ego .work-card__big-name { font-weight: 400; letter-spacing: -.04em; }
.footer-email,
.footer-brand__logo,
.brand { letter-spacing: -.015em; }

/* Interior hero sizes balanced for a natural-width typeface. */
.pp-stage__headline { font-size: clamp(3.9rem, 8.25vw, 9.4rem); }
.pp-about-headline { font-size: clamp(3.7rem, 7.4vw, 8.6rem); }
.pp-services-headline { font-size: clamp(4rem, 10.5vw, 11rem); }
.pp-work-headline { font-size: clamp(3.8rem, 7vw, 8.5rem); }
.pp-work-constellation { right: -1%; top: 27%; width: 28%; }
.pp-journal-headline { font-size: clamp(3.8rem, 8.4vw, 10rem); }
.pp-contact-headline { font-size: clamp(3.9rem, 8vw, 9.4rem); }
.pp-section-display { font-size: clamp(3.3rem, 7vw, 8.2rem); }
.pp-narrative__title { font-size: clamp(3.2rem, 6.8vw, 8rem); }
.pp-service-slab__body h3 { font-size: clamp(2.8rem, 5.5vw, 6.1rem); }
.pp-process__machine-screen strong { font-size: clamp(2.4rem, 3.5vw, 4.2rem); }
.pp-audit h2 { font-size: clamp(3.3rem, 6.5vw, 7.8rem); }
.pp-case-feature__visual > strong { font-size: clamp(3.3rem, 6.2vw, 7.2rem); }
.pp-case-feature__body h3 { font-size: clamp(2.8rem, 4.8vw, 5.7rem); }
.pp-work-next h2 { font-size: clamp(3.3rem, 7.3vw, 8.8rem); }
.pp-case-detail__hero h1 { font-size: clamp(3.6rem, 8.5vw, 10rem); }
.pp-case-detail__mockup > strong { font-size: clamp(3.6rem, 9vw, 10rem); }
.pp-case-detail__story h2 { font-size: clamp(3rem, 5.7vw, 6.8rem); }
.pp-case-detail__next h2 { font-size: clamp(3rem, 6.3vw, 7.5rem); }
.pp-post__hero h1 { font-size: clamp(3.4rem, 7.7vw, 9.2rem); }
.pp-contact-content h2 { font-size: clamp(3rem, 5.4vw, 6.2rem); }
.pp-service-detail-hero h1 { font-size: clamp(3.4rem, 7.6vw, 9rem); }
.pp-service-detail-copy h2 { font-size: clamp(2.8rem, 5vw, 6rem); }
.pp-archive-hero h1 { font-size: clamp(3.5rem, 7.7vw, 9.2rem); }
.pp-post__content h2 { font-size: clamp(1.65rem, 3vw, 2.9rem); }
.pp-post__content h3 { font-size: clamp(1.3rem, 2vw, 2.1rem); }

/* Card headings and supporting copy should not mimic the display font. */
.pp-outcome h3,
.pp-showcase-card h3,
.pp-process__steps h3,
.pp-article-card h3,
.pp-article-card__art b,
.pp-journal-float b {
  font-family: var(--body);
  font-weight: 750;
  letter-spacing: -.012em;
  line-height: 1.17;
}
.pp-about-headline__highlight { line-height: 1.16; }
.pp-case-feature__visual > strong,
.pp-case-detail__mockup > strong,
.pp-post__hero h1,
.pp-case-detail__hero h1 { overflow-wrap: anywhere; }

/* The menus already have their preferred lighter style, just share the family. */
.pp-mega-panel__intro h2,
.pp-menu-overlay__intro h2,
.pp-menu-directory__toggle { font-family: var(--display); }
.pp-menu-directory__toggle { font-weight: 720; letter-spacing: .018em; }
.pp-mega-trigger,
.pp-mega-column a,
.pp-menu-directory__columns a { letter-spacing: .005em; }

/* Comfortable paragraph rhythm for long-form and service pages. */
.entry-content,
.pp-post__content,
.pp-service-detail-copy,
.pp-narrative__text,
.pp-case-feature__body p,
.pp-contact-content__primary > p {
  line-height: 1.72;
}

@media (max-width: 980px) {
  .hero__title { font-size: clamp(2.7rem, 9.2vw, 6.2rem); }
  .hero__line--two { font-size: .82em; }
  .pp-services-headline { font-size: clamp(3.6rem, 11vw, 7rem); }
  .pp-service-slab__body h3 { font-size: clamp(2.6rem, 6.7vw, 5.5rem); }
}
@media (max-width: 760px) {
  .hero__title { font-size: clamp(1.9rem, 9.1vw, 4.35rem); line-height: 1.13; }
  .hero__line--two { font-size: .81em; margin-top: .36em; }
  .hero__stage { min-height: 300px; }
  .intro-section__heading { font-size: clamp(2.6rem, 9.2vw, 5.2rem); }
  .services-section__title,
  .work-section__title,
  .approach-section__title,
  .journal-section__title,
  .footer-display,
  .page-title { font-size: clamp(2.9rem, 10vw, 6rem); }
  .pp-stage__headline,
  .pp-about-headline,
  .pp-work-headline,
  .pp-journal-headline,
  .pp-contact-headline { font-size: clamp(2.6rem, 9.3vw, 5.2rem); }
  .pp-services-headline { font-size: clamp(3.15rem, 12vw, 6.2rem); }
  .pp-section-display,
  .pp-narrative__title,
  .pp-audit h2,
  .pp-work-next h2,
  .pp-case-detail__story h2,
  .pp-case-detail__next h2,
  .pp-contact-content h2,
  .pp-service-detail-copy h2 { font-size: clamp(2.7rem, 9.2vw, 5.5rem); }
  .pp-service-slab__body h3,
  .pp-case-feature__body h3,
  .pp-case-feature__visual > strong { font-size: clamp(2.35rem, 9vw, 4.8rem); }
  .pp-post__hero h1,
  .pp-case-detail__hero h1,
  .pp-service-detail-hero h1 { font-size: clamp(2.8rem, 9vw, 5.5rem); }
  .pp-case-detail__mockup > strong { font-size: clamp(2.6rem, 10vw, 5.4rem); }
  .pp-about-headline > span { max-width: 100%; }
  .pp-services-headline { white-space: normal; }
  /* On small screens the work symbols should never cover the heading or copy. */
  .pp-work-constellation { display: none; }
  /* Keep the enquiry illustration alongside the headline, not the body copy. */
  .pp-contact-smile { width: 112px; right: -.5rem; top: 5%; }
  .pp-service-slab__body h3 { overflow-wrap: anywhere; }
  .pp-case-feature__visual > strong { overflow-wrap: anywhere; }
  .pp-journal-float b { font-size: clamp(1.1rem, 5.5vw, 2rem); }
}
@media (max-width: 420px) {
  .hero__title { font-size: 9.2vw; }
  .intro-section__heading { font-size: 9vw; }
  .pp-service-detail-hero h1 { font-size: 9.3vw; }
  .hero__line--two { font-size: .8em; }
  .pp-stage__headline,
  .pp-about-headline,
  .pp-work-headline,
  .pp-journal-headline,
  .pp-contact-headline { font-size: 9.3vw; }
  .pp-services-headline { font-size: 12vw; }
  .pp-service-slab__body h3,
  .pp-case-feature__body h3 { font-size: 8.75vw; }
  .service-card h3 { font-size: clamp(2rem, 9.5vw, 3rem); }
  .pp-post__hero h1,
  .pp-case-detail__hero h1 { font-size: 9.3vw; }
}
