/*
Theme Name: Pennine
Theme URI: https://pennineinvestments.co.uk/
Author: Cleartwo
Author URI: https://cleartwo.co.uk/
Description: Custom theme for PENNINE. (Pennine Investments / Pennine Homes). ACF-driven, no page builder.
Version: 1.3.11
Text Domain: pennine
*/

/* FONTS:BEGIN (generated by _dev/get_fonts.py, do not hand-edit) */
/* Self-hosted fonts (SIL OFL). Generated by _dev/get_fonts.py from Google Fonts: Anton 400, Archivo 800, DM Sans 400-700 variable. */
@font-face { font-family: "Anton"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("assets/fonts/anton-400-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Anton"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("assets/fonts/anton-400-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Archivo"; font-style: normal; font-weight: 800; font-display: swap;
  src: url("assets/fonts/archivo-800-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Archivo"; font-style: normal; font-weight: 800; font-display: swap;
  src: url("assets/fonts/archivo-800-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "DM Sans"; font-style: normal; font-weight: 400 700; font-display: swap;
  src: url("assets/fonts/dm-sans-400-700-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "DM Sans"; font-style: normal; font-weight: 400 700; font-display: swap;
  src: url("assets/fonts/dm-sans-400-700-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
/* FONTS:END */

/* ==========================================================================
   PENNINE. static build  -  final theme CSS from day one (prefix: pn)
   Source of truth: build-notes PDF (14 Oct 2026) + amendments summary.
   NOTE: the separate brand-guidelines PDF uses a different palette and fonts
   (teal/cream/orange, Rama Gothic + Alexandria). The mock and the build notes
   use the green palette below, so that is what is built. Swap via :root only.
   ========================================================================== */

/* 0. TOKENS ---------------------------------------------------------------- */
:root {
  --forest:        #3D4B3A; /* main dark sections, cards */
  --deep:          #2E392D; /* header, deep sections */
  --cream:         #F2EDE4; /* light sections, light buttons */
  --cream-card:    #E6E0D4; /* cards on cream */
  --orange:        #E07A2F; /* primary buttons, orange sections */
  --orange-on-dark:#EE8A3C; /* highlighted words on green */
  --orange-on-cream:#C9621D;/* highlighted words on cream */
  --sage:          #A9BB9C; /* pills, active menu item, cards */
  --ink:           #1E2021; /* body text, footer */
  --dim:           #DCD6CA; /* secondary text on dark surfaces (mockup: lead, sub, card copy) */
  --dim2:          #C9C3B8; /* footer legal line */
  --dim3:          #A8A397; /* fine print on dark */
  --t2:            var(--ink); /* secondary text colour of the surface the element sits on (set per surface below) */

  --font-head: "Archivo", "Arial Black", sans-serif;           /* ExtraBold 800, tight tracking */
  --font-body: "DM Sans", system-ui, sans-serif;
  --font-logo: "Anton", Impact, sans-serif;                     /* wordmark only */

  --container: 1184px;   /* design frame is 1440 wide, content 1184 */
  --gutter: 24px;
  --r-card: 20px;
  --gap: 22px;           /* design grids use a 22px gutter at 1440 */
  --r-btn: 12px;
  --sec-pad: 106px;      /* design: pill sits ~106px below each band's top edge */
  --ease: .18s ease;
}

/* 1. BASE ------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--cream); color: var(--ink);
  font-family: var(--font-body); font-size: 16px; line-height: 1.55;
  -webkit-font-smoothing: antialiased; overflow-x: hidden;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4, p, figure, blockquote { margin: 0; }
button { font: inherit; color: inherit; cursor: pointer; background: none; border: 0; padding: 0; }
:focus-visible { outline: 2px solid var(--orange); outline-offset: 3px; }

.pn-container { width: 100%; max-width: calc(var(--container) + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter); }

/* 2. TYPE ------------------------------------------------------------------ */
.pn-h1, .pn-h2, .pn-h3 { font-family: var(--font-head); font-weight: 800; letter-spacing: -.037em; line-height: 1.02; }
.pn-h1 { font-size: clamp(3.25rem, 8.5vw, 7.6rem); line-height: .94; }  /* 122px at 1440: "Property" measures 487px in the design */
.pn-h2 { font-size: clamp(2.25rem, 5.2vw, 74.9px); margin-top: 32px; line-height: .985; } /* 76px at 1440: "Construction is our edge." measures 867px in the design */
.pn-h3 { font-size: clamp(2rem, 3.8vw, 3.4rem); }   /* 55px at 1440, read off "Invest with Pennine." (504px) */
.pn-h3--big { margin-top: 18px; }
.pn-hl { color: var(--orange-on-dark); }
.pn-sec--orange .pn-hl { color: var(--deep); }
.pn-sec--cream .pn-hl { color: var(--orange-on-cream); }
.pn-lead { font-size: 21px; line-height: 1.55; max-width: 580px; color: var(--t2); } /* design breaks line 1 after "into homes" */
.pn-sub { font-size: 21px; line-height: 1.55; max-width: 36em; margin-top: 24px; color: var(--t2); }
.pn-eyebrow { display: block; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.pn-eyebrow--orange { color: var(--orange-on-dark); }
.pn-fine { font-size: 12px; color: var(--dim3); margin-top: 24px; }

/* pill labels above each heading */
.pn-pill {
  display: inline-block; padding: 8px 20px; border-radius: 999px;
  font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; line-height: 1.2;
}
.pn-pill--sage   { background: var(--sage);   color: var(--ink); }
.pn-pill--forest { background: var(--forest); color: var(--cream); }
.pn-pill--ink    { background: var(--ink);    color: var(--cream); }
.pn-pill--orange { background: var(--orange); color: var(--ink); }
.pn-pill--block  { display: block; width: 100%; border-radius: 12px; padding: 14px 18px; }

/* 3. BUTTONS --------------------------------------------------------------- */
.pn-btn {
  display: inline-flex; align-items: center; justify-content: center; min-height: 54px;
  padding: 15px 28px; border-radius: var(--r-btn); font-weight: 700; font-size: 16px; line-height: 1.2;
  transition: background var(--ease), color var(--ease), transform var(--ease), box-shadow var(--ease);
}
.pn-btn:hover { transform: translateY(-2px); }
.pn-btn--orange { background: var(--orange); color: var(--ink); }
.pn-btn--orange:hover { background: #C96A22; }
.pn-btn--cream  { background: var(--cream);  color: var(--deep); }
.pn-btn--cream:hover  { background: #fff; }
.pn-btn--forest { background: var(--forest); color: var(--cream); }
.pn-btn--forest:hover { background: var(--deep); }
.pn-btn--ink    { background: var(--ink);    color: var(--cream); }
.pn-btn--ink:hover    { background: #000; }
.pn-btnrow { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px; }

/* orange corner tab hanging under the header (hidden on mobile) */
.pn-tab { display: inline-block; background: var(--orange); color: var(--ink); font-size: 14px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; padding: 14px 38px; border-radius: 0 0 var(--r-btn) var(--r-btn); }
.pn-tab--corner { position: absolute; top: 0; right: 28px; }

/* 4. HEADER (0 -> 77px) ---------------------------------------------------- */
.pn-header { position: sticky; top: 0; z-index: 50; background: var(--deep); color: var(--cream); border-bottom: 1px solid rgba(242,237,228,.08); }
.pn-header__inner { max-width: 1440px; margin-inline: auto; height: 77px; padding-inline: 100px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.pn-logo { font-family: var(--font-logo); font-size: 34px; line-height: 1; letter-spacing: .045em; text-transform: uppercase; color: var(--cream); }
.pn-logo__dot { color: var(--orange); }
.pn-logo--big { font-size: 64px; letter-spacing: .045em; }
.pn-nav { display: flex; align-items: center; gap: 14px; }
.pn-nav__list { display: flex; align-items: center; gap: 4px; }
.pn-nav__link { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 16px; border-radius: 999px; font-size: 15px; font-weight: 700; transition: background var(--ease), color var(--ease); }
.pn-nav__link:hover { color: var(--sage); }
.pn-nav__link.is-active { background: var(--sage); color: var(--ink); }
.pn-nav__caret { margin-left: 4px; font-size: .7em; }
.pn-nav__item--learn { position: relative; }
.pn-nav__sub { display: none; position: absolute; top: calc(100% + 8px); left: 0; min-width: 220px; padding: 10px; background: var(--deep); border: 1px solid rgba(242,237,228,.12); border-radius: 14px; box-shadow: 0 18px 40px rgba(0,0,0,.28); }
.pn-nav__item--learn.is-open .pn-nav__sub { display: block; }
.pn-nav__sub a { display: block; padding: 11px 14px; border-radius: 8px; font-size: .88rem; font-weight: 500; }
.pn-nav__sub a:hover { background: var(--forest); color: var(--sage); }
.pn-nav__cta { display: flex; gap: 10px; }
.pn-nav__cta .pn-btn { min-height: 50px; padding: 10px 20px; font-size: 15px; }
.pn-header__mini, .pn-menu-btn { display: none; }

/* 5. SECTION SCAFFOLD ------------------------------------------------------ */
.pn-sec { padding-block: var(--sec-pad); }
.pn-sec--cream  { background: var(--cream);  color: var(--ink); }
.pn-sec--cream :is(.pn-h1, .pn-h2), .pn-hero--cream :is(.pn-h1, .pn-h2) { color: var(--forest); }
.pn-sec--forest { background: var(--forest); color: var(--cream); }
.pn-sec--deep   { background: var(--deep);   color: var(--cream); }
.pn-sec--ink    { background: #1B1F1E;       color: var(--cream); }
.pn-sec--orange { background: var(--orange); color: var(--ink); }
.pn-sechead { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.pn-sechead .pn-btn { margin-bottom: 0; }
.pn-faq .pn-sechead .pn-btn { margin-bottom: 9px; }
.pn-cash { padding-block: 99.5px; }
.pn-acc__item.is-open .pn-acc__q { padding-bottom: 9px; min-height: 57px; }
.pn-projects .pn-h2, .pn-insights .pn-h2 { margin-top: 23px; }
.pn-how .pn-sub { max-width: 660px; margin-top: 30px; }

/* 6. HERO (77 -> 877px) ---------------------------------------------------- */
.pn-hero { position: relative; background: var(--forest); color: var(--cream); min-height: 800px; }
.pn-hero__inner { position: static; display: grid; grid-template-columns: 1fr 400px; align-items: start; column-gap: 80px; min-height: 800px; padding-block: 112px 64px; }
.pn-hero .pn-pill { margin-bottom: 33px; }
.pn-hero__art { border-radius: var(--r-card); overflow: hidden; aspect-ratio: 300 / 350; align-self: start; margin-top: 33px; }
.pn-hero__art svg { width: 100%; height: 100%; }
.pn-hero .pn-lead { margin-top: 28px; }

/* 7. SHORT VERSION --------------------------------------------------------- */
.pn-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--gap); margin-top: 56px; }
.pn-stat { border-top: 3px solid var(--forest); padding-top: 24px; }
.pn-stat strong { color: var(--forest); display: block; font-family: var(--font-head); font-weight: 800; font-size: clamp(2.5rem, 5.3vw, 4.75rem); letter-spacing: -.045em; line-height: 1; }
.pn-stat span { display: block; margin-top: 6px; font-size: 18px; color: var(--ink); }
.pn-stat--accent { border-top-color: var(--orange); }
.pn-stat--accent strong { color: var(--orange-on-cream); }

.pn-split { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); margin-top: 109px; }
.pn-card { border-radius: var(--r-card); padding: 44px; display: flex; flex-direction: column; align-items: flex-start; }
.pn-card p { font-size: 21px; line-height: 1.6; margin-top: 18px; max-width: 480px; color: var(--t2); }
.pn-card .pn-btn { margin-top: auto; }
.pn-card--forest { background: var(--forest); color: var(--cream); }
.pn-card--orange { background: var(--orange); color: var(--ink); }
.pn-card--deep   { background: var(--deep); color: var(--cream); }
.pn-card--cream  { background: var(--cream); color: var(--forest); }
.pn-split .pn-card { min-height: 400px; padding-right: 28px; padding-bottom: 36px; } /* design: heading runs to 31px from the card edge */
.pn-split .pn-h3 { margin-top: 15px; }
.pn-split .pn-btn { margin-top: auto; }

/* 8. HOW WE WORK ----------------------------------------------------------- */
.pn-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--gap); margin-top: 49px; }
.pn-step { background: var(--deep); border-radius: var(--r-card); padding: 35px 36px 20px; min-height: 255px; }
.pn-step__n { display: block; font-family: var(--font-head); font-weight: 800; font-size: 3.2rem; letter-spacing: -.04em; line-height: 1; color: var(--orange-on-dark); }
.pn-step h3 { font-family: var(--font-head); font-weight: 800; font-size: 25px; letter-spacing: -.02em; margin-top: 11px; }
.pn-step p { margin-top: 6px; font-size: 16px; line-height: 1.6; color: var(--t2); }
.pn-step--orange { background: var(--orange); color: var(--ink); }
.pn-step--orange .pn-step__n { color: var(--ink); }
.pn-step--orange p { color: var(--ink); }

/* 9. PROJECTS -------------------------------------------------------------- */
.pn-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--gap); margin-top: 32px; }
.pn-tile { display: block; }
.pn-tile__img { display: flex; align-items: flex-end; aspect-ratio: 280 / 350; border-radius: var(--r-card); padding: 24px; margin-bottom: 14px; }
.pn-tile__img em, .pn-post__img em { font-style: normal; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.pn-tile strong { color: var(--forest); display: block; font-family: var(--font-head); font-weight: 800; font-size: 25px; letter-spacing: -.015em; }
.pn-tile span:last-child { display: block; font-size: 16px; margin-top: 4px; color: var(--ink); }
.pn-tile:hover strong, .pn-post:hover strong { color: var(--orange-on-cream); }
.pn-tile__img--sage, .pn-post__img--sage { background: var(--sage); color: var(--ink); }
.pn-tile__img--forest, .pn-post__img--forest { background: var(--forest); color: var(--cream); }
.pn-tile__img--card { background: var(--cream-card); color: var(--ink); }
.pn-tile__img--orange, .pn-post__img--orange { background: var(--orange); color: var(--ink); }

/* 10. CASH OFFER ----------------------------------------------------------- */
.pn-cash__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.pn-cash .pn-h2 { margin-top: 28px; font-size: clamp(2.25rem, 4.6vw, 4.125rem); } /* design sets this heading at 66px */
.pn-cash .pn-btn { margin-top: 27px; }
.pn-qlist { border-top: 1px solid rgba(242,237,228,.18); }
.pn-qlist li { display: flex; align-items: center; gap: 28px; padding: 22.5px 0; border-bottom: 1px solid rgba(242,237,228,.18); font-size: 18px; line-height: 28px; font-weight: 500; }
.pn-qlist li span { line-height: 1; font-family: var(--font-head); font-weight: 800; font-size: 26px; letter-spacing: -.02em; color: var(--orange-on-dark); }

/* 11. PROMOTE AND LEARN ---------------------------------------------------- */
.pn-promo .pn-h2 { margin-top: 28px; }
.pn-promo__grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); margin-top: 46px; }
.pn-promo .pn-card { min-height: 400px; padding: 44px; }
.pn-promo .pn-btn { margin-top: auto; }
.pn-promo .pn-card p { margin-top: 22px; }

/* 12. PROMISES KEPT -------------------------------------------------------- */
.pn-quotes__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gap); margin-top: 31px; }
.pn-quote { background: var(--cream-card); border-radius: var(--r-card); padding: 36px; min-height: 240px; display: flex; flex-direction: column; justify-content: space-between; gap: 40px; color: var(--ink); }
.pn-quote p { font-size: 19px; line-height: 1.6; }
.pn-quote cite { font-style: normal; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--forest); }
.pn-badges { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.pn-badge { padding: 11px 22.5px; border-radius: 999px; font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.pn-badge--forest { background: var(--forest); color: var(--cream); }
.pn-badge--sage   { background: var(--sage);   color: var(--ink); }

/* 13. FAQ (accordion) ------------------------------------------------------ */
.pn-acc { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 14px; align-items: start; margin-top: 23px; }
.pn-acc__item { background: var(--deep); border-radius: 16px; overflow: hidden; }
.pn-acc__q { display: flex; align-items: center; gap: 14px; width: 100%; text-align: left; padding: 22px 24px; font-family: var(--font-head); font-weight: 800; letter-spacing: -.02em; font-size: 20px; line-height: 26px; min-height: 70px; transition: background var(--ease), color var(--ease); }
.pn-acc__q:hover { color: var(--sage); }
.pn-acc__tri { flex: none; width: 0; height: 0; border-style: solid; border-width: 6px 0 6px 10px; border-color: transparent transparent transparent currentColor; transition: transform var(--ease); }
.pn-acc__item.is-open .pn-acc__tri { transform: rotate(90deg); }
.pn-acc__a { padding: 0 24px 27px 28px; font-size: 16px; line-height: 27px; color: var(--t2); }

/* 14. INSIGHTS ------------------------------------------------------------- */
.pn-posts { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gap); margin-top: 31px; }
.pn-post { display: block; }
.pn-post__img { display: flex; align-items: flex-end; aspect-ratio: 380 / 238; border-radius: var(--r-card); padding: 24px; margin-bottom: 14px; }
.pn-post strong { color: var(--forest); display: block; font-family: var(--font-head); font-weight: 800; font-size: 22px; line-height: 1.2; letter-spacing: -.02em; }

/* 15. GOT CAPITAL FORM (one shared component, Home + Invest) --------------- */
.pn-capital .pn-h2 { margin-top: 28px; max-width: 12em; }
.pn-capital .pn-sub { margin-top: 26px; max-width: none; font-size: 21px; }
.pn-capform { display: grid; grid-template-columns: 1fr 1fr 1fr auto; gap: 14px; align-items: end; margin-top: 36px; }
.pn-field label { display: block; font-size: 14px; font-weight: 700; margin-bottom: 5px; }
.pn-field input { width: 100%; height: 54px; padding: 0 16px; border: 0; border-radius: 10px; background: #fff; color: var(--ink); font: inherit; }
.pn-capform__go { min-width: 150px; height: 54px; }
.pn-capform__thanks { margin-top: 20px; font-weight: 700; color: var(--sage); }
.pn-field input.is-bad { box-shadow: 0 0 0 2px #E5533D; }

/* 16. FOOTER --------------------------------------------------------------- */
.pn-footer { background: var(--ink); color: var(--cream); padding-block: 64px 41px; }
.pn-footer .pn-container { max-width: calc(1240px + var(--gutter) * 2); }
.pn-footer__top { display: grid; grid-template-columns: 512px 1fr; gap: 0; }
.pn-footer__tag { margin-top: 28px; font-size: 13px; font-weight: 700; letter-spacing: .136em; text-transform: uppercase; color: var(--sage); }
.pn-footer__mail { display: inline-block; margin-top: 12px; font-weight: 700; font-size: 16px; }
.pn-footer__mail:hover, .pn-footer a:hover { color: var(--orange-on-dark); }
.pn-footer__cols { display: grid; grid-template-columns: 256px 256px 1fr; gap: 0; padding-top: 14px; }
.pn-footer__col h4 { font-size: 12px; font-weight: 700; letter-spacing: .125em; text-transform: uppercase; color: var(--sage); margin-bottom: 5px; }
.pn-footer__col li a { display: inline-block; padding: 6px 0; font-size: 15px; line-height: 20px; }
.pn-footer__legal { display: flex; justify-content: space-between; gap: 24px; margin-top: 39px; padding-top: 24px; border-top: 1px solid rgba(242,237,228,.12); font-size: 13px; color: var(--dim2); }
.pn-footer__legal ul { display: flex; gap: 22px; }
.pn-footer__legal a { text-decoration: underline; }
.pn-footer__social { display: flex; justify-content: space-between; gap: 24px; margin-top: 48px; font-size: 13px; font-weight: 700; letter-spacing: .135em; text-transform: uppercase; color: var(--sage); }
.pn-footer__risk { margin-top: 46px; font-size: 12px; color: var(--dim3); }

/* 17. FLOATING WHATSAPP ---------------------------------------------------- */
.pn-float { position: fixed; right: 30px; bottom: 30px; z-index: 60; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--orange); color: var(--ink); box-shadow: 0 8px 22px rgba(0,0,0,.28); transition: transform var(--ease), background var(--ease); }
.pn-float:hover { transform: translateY(-2px) scale(1.08); background: #C96A22; }

/* 17b. INNER PAGE COMPONENTS (Invest, Sell, Projects, ...) ----------------- */
.pn-hero--page, .pn-hero--page .pn-hero__inner { min-height: 560px; }
.pn-hero--page .pn-hero__inner { grid-template-columns: 1fr 460px; padding-block: 96px 80px; }
.pn-hero--page .pn-h1 { font-size: clamp(3rem, 6.4vw, 5.75rem); }
.pn-hero--cream { background: var(--cream); color: var(--ink); }
.pn-hero--cream .pn-hl { color: var(--orange-on-cream); }
.pn-hero--page .pn-pill { margin-bottom: 28px; }
.pn-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 32px; }
.pn-chip { display: inline-block; padding: 9px 18px; border: 1.5px solid rgba(242,237,228,.55); border-radius: 999px; font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.pn-chip--orange { background: var(--orange); border-color: var(--orange); color: var(--ink); }

/* generic even grids: 2/3/4/5/6 columns, never a lone card on its own row */
.pn-g { display: grid; gap: var(--gap); margin-top: 48px; }
.pn-g--2 { grid-template-columns: repeat(2, 1fr); }
.pn-g--3 { grid-template-columns: repeat(3, 1fr); }
.pn-g--4 { grid-template-columns: repeat(4, 1fr); }
.pn-g--5 { grid-template-columns: repeat(5, 1fr); }
.pn-g--6 { grid-template-columns: repeat(6, 1fr); }
.pn-g--24 { gap: var(--gap); }

.pn-fc { background: var(--cream-card); color: var(--ink); border-radius: var(--r-card); padding: 32px; }
.pn-fc h3 { font-family: var(--font-head); font-weight: 800; font-size: 24px; letter-spacing: -.03em; line-height: 1.15; color: var(--forest); }
.pn-fc p { margin-top: 12px; font-size: 16px; line-height: 1.6; color: var(--t2); }
a.pn-fc { display: block; transition: background var(--ease), transform var(--ease); }
a.pn-fc:hover { background: #DCD5C6; transform: translateY(-2px); }
.pn-fc--sage { background: var(--sage); }
.pn-fc--sage h3 { color: var(--ink); }
.pn-fc--orange { background: var(--orange); }
.pn-fc--orange h3 { color: var(--ink); }
.pn-fc--forest { background: var(--forest); color: var(--cream); }
.pn-fc--forest h3 { color: var(--cream); }
.pn-fc--deep { background: var(--deep); color: var(--cream); }
.pn-fc--deep h3 { color: var(--cream); }

/* numbered card on dark, orange cap */
.pn-nc { background: var(--deep); color: var(--cream); border-radius: var(--r-card); border-top: 4px solid var(--orange); padding: 28px; }
.pn-nc .n { display: block; font-family: var(--font-head); font-weight: 800; font-size: 44px; letter-spacing: -.04em; line-height: 1; color: var(--orange-on-dark); }
.pn-nc h3 { font-family: var(--font-head); font-weight: 800; font-size: 24px; letter-spacing: -.03em; margin-top: 16px; line-height: 1.15; }
.pn-nc p { margin-top: 10px; font-size: 16px; line-height: 1.6; color: var(--t2); }

/* ruled steps (How it works): rule on top, big number, title, copy */
.pn-tl { border-top: 3px solid var(--orange); padding-top: 22px; }
.pn-tl .n { display: block; font-family: var(--font-head); font-weight: 800; font-size: 52px; letter-spacing: -.04em; line-height: 1; }
.pn-tl h3 { font-family: var(--font-head); font-weight: 800; font-size: 21px; letter-spacing: -.02em; margin-top: 14px; }
.pn-tl p { margin-top: 8px; font-size: 16px; line-height: 1.6; color: var(--t2); }
.pn-sec--cream .pn-tl { border-top-color: var(--forest); }
.pn-sec--cream .pn-tl--hl { border-top-color: var(--orange); }
.pn-sec--cream .pn-tl .n { color: var(--forest); }
.pn-sec--cream .pn-tl--hl .n { color: var(--orange-on-cream); }
.pn-tl .n--o { color: var(--orange-on-dark); }
.pn-tl--hl-dark { border-top-color: var(--orange); }
.pn-tl--hl-dark .n { color: var(--orange-on-dark); }
.pn-note { margin-top: 40px; font-size: .94rem; color: var(--ink); max-width: 52em; }
.pn-sec--forest .pn-note, .pn-sec--deep .pn-note { color: var(--sage); }

/* big stat tiles (Invest hero) */
.pn-bignum { background: var(--orange); color: var(--ink); border-radius: var(--r-card); padding: 32px; min-height: 310px; display: flex; flex-direction: column; justify-content: flex-end; }
.pn-bignum .pn-eyebrow { margin-bottom: 8px; }
.pn-bignum strong { font-family: var(--font-head); font-weight: 800; font-size: clamp(4rem, 11vw, 158px); letter-spacing: -.027em; line-height: 1; }
.pn-minis { display: grid; grid-template-columns: 165fr 201fr; gap: 14px; margin-top: 14px; }
.pn-mini { border-radius: var(--r-card); padding: 24px 32px; background: var(--deep); color: var(--cream); min-height: 161px; display: flex; flex-direction: column; justify-content: flex-end; }
.pn-mini--sage { background: var(--sage); color: var(--ink); }
.pn-mini strong { display: block; font-family: var(--font-head); font-weight: 800; font-size: 52px; letter-spacing: -.04em; line-height: 1; }
.pn-mini span { display: block; margin-top: 10px; font-size: 16px; }
.pn-mini span:not(.pn-eyebrow) { color: var(--t2); }

/* funding partner update mock */
.pn-update { display: grid; grid-template-columns: 1fr 360px; gap: 64px; align-items: start; }
.pn-update .pn-btn { margin-top: 25px; }
.pn-docmock { position: relative; background: var(--forest); color: var(--cream); border-radius: var(--r-card); padding: 32px; height: 456px; display: flex; flex-direction: column; justify-content: flex-end; box-shadow: 0 30px 60px rgba(0,0,0,.25); }
.pn-docmock .pn-pill { align-self: flex-start; margin-bottom: auto; font-size: 11px; }
.pn-docmock strong { font-family: var(--font-head); font-weight: 800; font-size: 52px; letter-spacing: -.045em; line-height: .98; }
.pn-docmock strong span { color: var(--orange-on-dark); }

/* project blocks (Projects page) */
.pn-proj { padding-block: 96px; color: var(--cream); }
.pn-proj--forest { background: var(--forest); }
.pn-proj--deep { background: var(--deep); }
.pn-proj__inner { display: grid; grid-template-columns: 1fr 420px; gap: 80px; align-items: center; }
.pn-proj__name { font-family: var(--font-head); font-weight: 800; font-size: clamp(3.5rem, 8vw, 7rem); letter-spacing: -.05em; line-height: .95; margin-top: 24px; }
.pn-proj p.pn-proj__desc { margin-top: 20px; max-width: 34em; color: var(--t2); font-size: 1.05rem; }
.pn-pstats { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 32px; margin-top: 40px; max-width: 560px; }
.pn-pstat { border-top: 2px solid rgba(242,237,228,.35); padding-top: 14px; }
.pn-pstat strong { display: block; font-family: var(--font-head); font-weight: 800; font-size: 2.2rem; letter-spacing: -.04em; line-height: 1; }
.pn-pstat span { display: block; margin-top: 6px; font-size: .8rem; color: var(--t2); }

/* photo carousel: native scroll-snap; arrows, dots and counter only read/set scrollLeft */
.pn-car { position: relative; }
.pn-car__vp { display: flex; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; border-radius: var(--r-card); }
.pn-car__vp::-webkit-scrollbar { display: none; }
.pn-car__slide { flex: 0 0 100%; scroll-snap-align: start; aspect-ratio: 1 / 1; display: flex; align-items: flex-end; padding: 24px; font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; background: var(--forest); color: var(--cream); border: 1px solid rgba(242,237,228,.12); }
.pn-proj--forest .pn-car__slide { background: var(--deep); }
.pn-car__slide--sage { background: var(--sage) !important; color: var(--ink); }
.pn-car__arrow { position: absolute; top: 50%; width: 44px; height: 44px; margin-top: -44px; border-radius: 50%; background: var(--cream); color: var(--ink); font-size: 1.4rem; line-height: 1; display: grid; place-items: center; transition: transform var(--ease), background var(--ease); }
.pn-car__arrow:hover { transform: scale(1.08); background: #fff; }
.pn-car__arrow--prev { left: 14px; }
.pn-car__arrow--next { right: 14px; }
.pn-car__bar { display: flex; align-items: center; justify-content: space-between; margin-top: 14px; }
.pn-car__dots { display: flex; gap: 8px; }
.pn-car__dot { width: 28px; height: 6px; padding: 0; border-radius: 3px; background: rgba(242,237,228,.3); transition: background var(--ease); }
.pn-car__dot[aria-current="true"] { background: var(--orange); }
.pn-car__count { font-size: .78rem; color: var(--sage); font-weight: 700; }

.pn-delivered { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 38px; }
.pn-dtile { display: flex; flex-direction: column; justify-content: flex-end; aspect-ratio: 283 / 353; border-radius: var(--r-card); padding: 18px 22px 22px; transition: transform var(--ease); }
.pn-dtile:hover { transform: translateY(-3px); }
.pn-dtile em { opacity: .75; letter-spacing: .1em; font-style: normal; font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; margin-bottom: auto; }
.pn-dtile strong { font-family: var(--font-head); font-weight: 800; font-size: 21px; letter-spacing: -.02em; line-height: 1.15; }
.pn-dtile span { font-size: 14px; margin-top: 4px; }
.pn-dtile--forest { background: var(--forest); color: var(--cream); }
.pn-dtile--sage { background: var(--sage); color: var(--ink); }
.pn-dtile--orange { background: var(--orange); color: var(--ink); }
.pn-dtile--deep { background: var(--deep); color: var(--cream); }
.pn-dtile--card { background: var(--cream-card); color: var(--ink); }

/* Promote */
.pn-phototall { min-height: 460px; border-radius: var(--r-card); background: var(--sage); color: var(--ink); display: flex; align-items: flex-end; padding: 22px; font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.pn-pro-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
.pn-callout { background: var(--forest); color: var(--cream); border-radius: var(--r-card); padding: 28px 32px; font-weight: 700; font-size: 1.05rem; line-height: 1.4; margin-top: 28px; }
.pn-bignumcard { border-radius: var(--r-card); padding: 40px; }
.pn-bignumcard strong { display: block; font-family: var(--font-head); font-weight: 800; font-size: clamp(5rem, 10vw, 9rem); letter-spacing: -.055em; line-height: .9; }
.pn-bignumcard--sage { background: var(--sage); color: var(--ink); }
.pn-bignumcard--orange { background: var(--orange); color: var(--ink); }
.pn-bignumcard p { margin-top: 18px; }
.pn-bars { margin-top: 28px; display: grid; gap: 10px; }
.pn-bar { display: grid; grid-template-columns: 110px 1fr; gap: 14px; align-items: center; font-size: .9rem; font-weight: 400; }
.pn-bar i { display: block; height: 30px; border-radius: 6px; background: var(--cream-card); position: relative; font-style: normal; }
.pn-bar i b { display: block; height: 100%; border-radius: 6px; background: #D6CFC4; color: var(--ink); font-weight: 700; font-size: .78rem; line-height: 30px; text-align: right; padding-right: 10px; }
.pn-bar--top { font-weight: 700; }
.pn-bar--top i b { background: var(--orange); color: var(--ink); }
.pn-reels { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; margin-top: 40px; }
.pn-reel em { display: flex; align-items: flex-end; aspect-ratio: 9 / 16; border-radius: 14px; padding: 12px; font-style: normal; font-size: .6rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.pn-reel strong { display: block; margin-top: 10px; font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: var(--forest); }
.pn-reel span { display: block; font-size: .8rem; }
.pn-reel:nth-child(1) em { background: var(--forest); color: var(--cream); }
.pn-reel:nth-child(2) em { background: var(--sage); }
.pn-reel:nth-child(3) em { background: var(--orange); }
.pn-reel:nth-child(4) em { background: var(--forest); color: var(--cream); }
.pn-reel:nth-child(5) em { background: var(--sage); }
.pn-reel:nth-child(6) em { background: var(--orange); }
.pn-cats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 16px; }
.pn-cat { background: var(--deep); border-radius: var(--r-card); padding: 28px; font-family: var(--font-head); font-weight: 800; font-size: 1.15rem; letter-spacing: -.02em; }
.pn-lines { display: grid; gap: 8px; margin-top: 22px; font-size: .94rem; }
.pn-lines li { color: var(--t2); }
.pn-lines li::before { content: "\2713"; margin-right: 10px; color: var(--orange-on-dark); font-weight: 700; }
.pn-fc--sage .pn-lines li::before { color: var(--forest); }

/* generic form card (Promote enquiry, Contact) */
.pn-formcard { background: var(--cream); color: var(--ink); border-radius: var(--r-card); padding: 32px; }
.pn-formcard .pn-field { margin-bottom: 18px; }
.pn-formcard .pn-field input, .pn-formcard .pn-field select, .pn-formcard .pn-field textarea { width: 100%; padding: 0 16px; border: 1px solid var(--cream-card); border-radius: 10px; background: #fff; color: var(--ink); font: inherit; }
.pn-formcard .pn-field input, .pn-formcard .pn-field select { height: 56px; }
.pn-formcard .pn-field textarea { min-height: 130px; padding: 14px 16px; resize: vertical; }
.pn-formcard .pn-btn { width: 100%; min-height: 56px; }
.pn-fields2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.pn-formcard .pn-field input.is-bad, .pn-formcard .pn-field select.is-bad { box-shadow: 0 0 0 2px #E5533D; }
.pn-form-thanks { padding: 24px 0; }
.pn-form-thanks[hidden] { display: none; }
.pn-form-thanks h3 { font-family: var(--font-head); font-weight: 800; font-size: 2.2rem; letter-spacing: -.04em; color: var(--forest); }

/* About */
.pn-team { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 48px; }
.pn-person em { display: flex; align-items: flex-end; aspect-ratio: 3 / 4; border-radius: var(--r-card); padding: 18px; font-style: normal; font-size: .62rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.pn-person strong { display: block; margin-top: 14px; font-family: var(--font-head); font-weight: 800; letter-spacing: -.02em; font-size: 1.05rem; color: var(--forest); }
.pn-person span { display: block; font-size: .88rem; }
.pn-person:nth-child(1) em { background: var(--forest); color: var(--cream); }
.pn-person:nth-child(2) em { background: var(--orange); }
.pn-person:nth-child(3) em { background: var(--cream-card); }
.pn-person:nth-child(4) em { background: var(--deep); color: var(--cream); }
.pn-journey { margin-top: 48px; border-top: 1px solid rgba(242,237,228,.2); }
.pn-journey li { display: grid; grid-template-columns: 160px 1fr; gap: 24px; padding: 26px 0; border-bottom: 1px solid rgba(242,237,228,.2); align-items: baseline; }
.pn-journey .y { font-family: var(--font-head); font-weight: 800; font-size: 2.6rem; letter-spacing: -.04em; line-height: 1; color: var(--orange); }
.pn-journey li:last-child .y { color: var(--cream); }
.pn-journey h3 { font-family: var(--font-head); font-weight: 800; font-size: 1.25rem; letter-spacing: -.02em; }
.pn-journey p { margin-top: 6px; font-size: .94rem; color: var(--t2); }
.pn-photo { min-height: 380px; border-radius: var(--r-card); background: var(--sage); color: var(--ink); display: flex; align-items: flex-end; padding: 22px; font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }

/* Learn pages */
.pn-subnav { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 32px; }
.pn-subnav a { display: inline-flex; align-items: center; min-height: 44px; padding: 9px 18px; border: 1.5px solid rgba(242,237,228,.55); border-radius: 999px; font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; transition: background var(--ease), color var(--ease); }
.pn-subnav a:hover { background: rgba(242,237,228,.12); }
.pn-subnav a.is-on { background: var(--orange); border-color: var(--orange); color: var(--ink); }
.pn-spots { background: var(--orange); color: var(--ink); border-radius: var(--r-card); padding: 36px; text-align: center; }
.pn-spots strong { display: block; font-family: var(--font-head); font-weight: 800; font-size: 8rem; letter-spacing: -.05em; line-height: 1; margin-top: 8px; }
.pn-event { display: grid; grid-template-columns: 76px 1fr auto; gap: 22px; align-items: center; background: var(--cream-card); border-radius: var(--r-card); padding: 18px 24px; color: var(--ink); }
.pn-event__date { display: grid; place-items: center; width: 76px; height: 76px; border-radius: 14px; background: var(--forest); color: var(--cream); text-align: center; line-height: 1; }
.pn-event__date small { display: block; font-size: .62rem; font-weight: 700; letter-spacing: .12em; }
.pn-event__date b { font-family: var(--font-head); font-size: 1.8rem; letter-spacing: -.04em; }
.pn-event:nth-child(2) .pn-event__date { background: var(--orange); color: var(--ink); }
.pn-event:nth-child(3) .pn-event__date { background: var(--sage); color: var(--ink); }
.pn-event h3 { font-family: var(--font-head); font-weight: 800; font-size: 1.3rem; letter-spacing: -.03em; color: var(--forest); }
.pn-event p { font-size: .88rem; margin-top: 4px; }
.pn-event p b { color: var(--orange-on-cream); font-weight: 700; }
.pn-events { display: grid; gap: 12px; margin-top: 40px; }
.pn-video { display: block; position: relative; }
.pn-video__thumb { display: grid; place-items: center; aspect-ratio: 16 / 10; border-radius: var(--r-card); }
.pn-video__play { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--ink); color: var(--cream); font-size: 1.1rem; transition: transform var(--ease); }
.pn-video:hover .pn-video__play { transform: scale(1.1); }
.pn-video em { display: block; margin-top: 12px; font-style: normal; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--sage); }
.pn-video strong { display: block; margin-top: 4px; font-family: var(--font-head); font-weight: 800; font-size: 24px; letter-spacing: -.03em; }
.pn-more { display: flex; flex-direction: column; min-height: 280px; }
.pn-more .pn-eyebrow { margin-bottom: 7px; }
.pn-more p { max-width: 305px; }
.pn-more h3 { font-family: var(--font-head); font-weight: 800; font-size: 34px; letter-spacing: -.04em; line-height: 1; }
.pn-more p { margin-top: 12px; font-size: 16px; }
.pn-more span.go { margin-top: auto; padding-top: 18px; font-weight: 700; font-size: 17px; }
.pn-product { display: flex; flex-direction: column; background: var(--cream-card); border-radius: var(--r-card); padding: 16px; color: var(--ink); }
.pn-product[hidden] { display: none; }
.pn-product__img { display: flex; align-items: flex-end; aspect-ratio: 16 / 11; border-radius: 14px; padding: 16px; font-size: .62rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 16px; }
.pn-product__kind { font-size: .62rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--forest); }
.pn-product h3 { font-family: var(--font-head); font-weight: 800; font-size: 1.2rem; letter-spacing: -.03em; line-height: 1.15; margin-top: 6px; color: var(--ink); }
.pn-product p { font-size: .88rem; margin-top: 6px; }
.pn-product__row { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 8px; }
.pn-product__price { font-family: var(--font-head); font-weight: 800; font-size: 1.5rem; letter-spacing: -.03em; color: var(--forest); }
.pn-product__row .pn-btn { min-height: 44px; padding: 10px 20px; }
.pn-feature { display: grid; grid-template-columns: 340px 1fr; gap: 56px; align-items: center; background: var(--orange); color: var(--ink); border-radius: var(--r-card); padding: 40px; }
.pn-feature__img { aspect-ratio: 4 / 3; border-radius: 16px; background: var(--deep); color: var(--cream); display: flex; align-items: flex-end; padding: 18px; font-size: .62rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.pn-feature h3 { font-family: var(--font-head); font-weight: 800; font-size: clamp(2rem, 3.6vw, 3.2rem); letter-spacing: -.045em; line-height: 1; margin-top: 18px; }
.pn-feature p { margin-top: 14px; }
.pn-feature__price { display: block; margin-top: 18px; font-family: var(--font-head); font-weight: 800; font-size: 2.2rem; letter-spacing: -.04em; }
.pn-feature .pn-btn { margin-top: 18px; }
.pn-filters { display: flex; flex-wrap: wrap; gap: 10px; margin: 36px 0 24px; }
.pn-filter { padding: 10px 18px; border-radius: 999px; background: var(--cream-card); color: var(--ink); font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; min-height: 44px; transition: background var(--ease), color var(--ease); }
.pn-filter:hover { background: #DCD5C6; }
.pn-filter.is-on { background: var(--forest); color: var(--cream); }
.pn-postfeat { display: grid; grid-template-columns: 1fr 1fr; border-radius: var(--r-card); overflow: hidden; background: var(--forest); color: var(--cream); }
.pn-postfeat__img { min-height: 320px; background: var(--orange); color: var(--ink); display: flex; align-items: flex-end; padding: 22px; font-size: .62rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.pn-postfeat__body { padding: 48px; align-self: center; }
.pn-postfeat h3 { font-family: var(--font-head); font-weight: 800; font-size: 3rem; letter-spacing: -.045em; line-height: 1; margin-top: 16px; }
.pn-postfeat p { margin-top: 14px; color: var(--t2); }
.pn-ctas2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.pn-cta2 { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-radius: var(--r-card); padding: 28px 32px; }
.pn-cta2 h3 { font-family: var(--font-head); font-weight: 800; font-size: 1.8rem; letter-spacing: -.04em; }
.pn-cta2--ink { background: var(--deep); color: var(--cream); }
.pn-cta2--sage { background: var(--sage); color: var(--ink); }
.pn-posts li[hidden] { display: none; }

/* Contact */
.pn-contact { text-align: center; position: relative; }
.pn-contact .pn-pill { margin-bottom: 20px; }
.pn-contact .pn-h1 { font-size: clamp(3.5rem, 8vw, 6.5rem); }
.pn-contact .pn-lead { margin: 20px auto 0; max-width: 32em; }
.pn-contact .pn-formcard { text-align: left; max-width: 560px; margin: 48px auto 0; }
.pn-routes a { display: flex; flex-direction: column; justify-content: space-between; min-height: 170px; border-radius: var(--r-card); padding: 26px; transition: transform var(--ease); }
.pn-routes a:hover { transform: translateY(-3px); }
.pn-routes small { font-size: .66rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.pn-routes strong { display: block; margin-top: 12px; font-family: var(--font-head); font-weight: 800; font-size: 1.6rem; letter-spacing: -.035em; line-height: 1.05; }
.pn-routes i { font-style: normal; font-size: 1.1rem; }

/* legal placeholder pages */
.pn-legal { max-width: 760px; }
.pn-legal p { margin-top: 18px; font-size: 1.05rem; }

/* 17c. CASH OFFER FORM (one component: /sell and /cash-offer) -------------- */
.pn-cform { background: var(--cream); color: var(--forest); border-radius: var(--r-card); padding: 28px 28px 32px; box-shadow: 0 30px 60px rgba(0,0,0,.28); }
.pn-cform__top { display: flex; justify-content: space-between; align-items: center; font-size: .66rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.pn-cform__top span:last-child { color: var(--ink); }
.pn-cform__bar { height: 5px; border-radius: 3px; background: var(--cream-card); margin-top: 12px; overflow: hidden; }
.pn-cform__bar i { display: block; height: 100%; width: 12.5%; background: var(--orange); transition: width .25s ease; }
.pn-cform__step { margin-top: 24px; }
.pn-cform__step[hidden] { display: none; }
.pn-cform__kicker { display: block; font-size: .66rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--orange-on-cream); margin-bottom: 8px; }
.pn-cform h2, .pn-cform h3.q { font-family: var(--font-head); font-weight: 800; font-size: 1.9rem; letter-spacing: -.045em; line-height: 1.02; }
.pn-cform__intro { margin-top: 12px; font-size: .88rem; color: var(--ink); }
.pn-cform__opts { display: grid; gap: 10px; margin-top: 20px; }
.pn-opt { display: block; width: 100%; text-align: left; padding: 15px 18px; min-height: 52px; border-radius: 12px; background: var(--cream-card); color: var(--ink); font-size: .9rem; line-height: 1.35; transition: background var(--ease), transform var(--ease); }
.pn-opt:hover { background: #DAD3C3; transform: translateY(-1px); }
.pn-opt.is-picked { background: var(--forest); color: var(--cream); }
.pn-cform__back { display: inline-flex; align-items: center; min-height: 44px; margin-top: 14px; font-size: .78rem; color: var(--ink); text-decoration: underline; }
.pn-cform label { display: block; font-size: .72rem; font-weight: 700; margin: 14px 0 6px; color: var(--ink); }
.pn-cform input[type="text"], .pn-cform input[type="tel"], .pn-cform input[type="email"], .pn-cform textarea { width: 100%; padding: 0 14px; border: 1px solid var(--cream-card); border-radius: 10px; background: #fff; color: var(--ink); font: inherit; }
.pn-cform input[type="text"], .pn-cform input[type="tel"], .pn-cform input[type="email"] { height: 52px; }
.pn-cform textarea { min-height: 110px; padding: 12px 14px; resize: vertical; }
.pn-cform input.is-bad { box-shadow: 0 0 0 2px #E5533D; }
.pn-cform .pn-btn { width: 100%; margin-top: 16px; min-height: 52px; }
.pn-cform .pn-btn[disabled] { background: #D4CFC0; color: #7a7a70; cursor: not-allowed; transform: none; }
.pn-cform__suggest { margin-top: 6px; background: #fff; border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,.14); overflow: hidden; }
.pn-cform__suggest[hidden] { display: none; }
.pn-cform__suggest button { display: block; width: 100%; text-align: left; padding: 13px 14px; font-size: .86rem; border-bottom: 1px solid #eee; color: var(--ink); }
.pn-cform__suggest button:hover { background: var(--cream); }
.pn-cform__suggest small { display: block; padding: 8px 14px; font-size: .68rem; color: #777; }
.pn-cform__ok { margin-top: 8px; font-size: .84rem; font-weight: 700; color: #2f7a45; }
.pn-cform__ok[hidden] { display: none; }
.pn-cform__thanks h2 { font-size: 3.2rem; }
.pn-cform__thanks h2 span { color: var(--orange-on-cream); }
.pn-cform__thanks p { margin-top: 14px; font-size: .94rem; color: var(--ink); }
.pn-cform__thanks button.again { margin-top: 18px; font-weight: 700; font-size: .84rem; text-decoration: underline; min-height: 44px; }

/* sell hero extras */
.pn-hero--sell .pn-hero__inner { grid-template-columns: 1fr 480px; align-items: start; }
.pn-hero--sell .pn-hero__copy { padding-top: 24px; }
.pn-hero--sell .pn-hero__copy p.pn-lead { margin-top: 28px; }

/* landing page */
.pn-lp-head { background: var(--deep); color: var(--cream); }
.pn-lp-head__inner { max-width: calc(1184px + var(--gutter) * 2); margin-inline: auto; height: 74px; padding-inline: var(--gutter); display: flex; align-items: center; gap: 17px; }
.pn-lp-head small { font-size: 15px; color: var(--sage); margin-left: auto; font-weight: 700; }
.pn-lp-head .pn-btn { min-height: 44px; padding: 8px 16px; font-size: 15px; border: 1px solid rgba(242,237,228,.5); background: none; color: var(--cream); }
.pn-lp-head .pn-btn:hover { background: rgba(242,237,228,.12); }
.pn-lp-foot { background: var(--ink); color: var(--cream); padding-block: 0; height: 114px; display: flex; align-items: center; }
.pn-lp-foot__inner { color: var(--dim); }
.pn-lp-foot .pn-logo { font-size: 26px; }
.pn-lp-foot__inner { width: 100%; max-width: calc(1184px + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter); display: flex; align-items: center; justify-content: space-between; gap: 20px; font-size: 13px; flex-wrap: wrap; }
.pn-lp-foot ul { display: flex; gap: 22px; }
.pn-lp-foot a { text-decoration: underline; min-height: 44px; display: inline-flex; align-items: center; }
.pn-lp-foot a:hover { color: var(--orange-on-dark); }
.pn-lpfacts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.pn-lpfact { background: var(--cream-card); border-radius: 14px; padding: 22px 24px; }
.pn-lpfact strong { display: block; font-family: var(--font-head); font-weight: 800; font-size: 1.7rem; letter-spacing: -.035em; color: var(--orange-on-cream); line-height: 1; }
.pn-lpfact span { display: block; margin-top: 8px; font-size: .84rem; font-weight: 700; color: var(--deep); }
.pn-lpbanner { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.pn-lpbanner .pn-h2 { margin: 0; color: var(--ink); }

/* 18. TABLET + MOBILE ------------------------------------------------------ */
@media (max-width: 1199px) {
  .pn-header__inner { padding-inline: 24px; }
  .pn-nav { gap: 12px; }
  .pn-nav__link { padding: 8px 10px; font-size: .8rem; }
  .pn-nav__cta .pn-btn { padding: 10px 14px; }
}

@media (max-width: 999px) {
  :root { --sec-pad: 64px; --gutter: 20px; }
  .pn-header__inner { padding-inline: 20px; height: 66px; }
  .pn-logo { font-size: 1.7rem; }
  .pn-header__mini { display: inline-flex; margin-left: auto; min-height: 40px; padding: 8px 14px; font-size: .8rem; }
  .pn-menu-btn { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid rgba(242,237,228,.4); border-radius: 10px; }
  .pn-menu-btn span, .pn-menu-btn span::before, .pn-menu-btn span::after { display: block; width: 18px; height: 2px; background: var(--cream); content: ""; position: relative; }
  .pn-menu-btn span::before { position: absolute; top: -6px; }
  .pn-menu-btn span::after  { position: absolute; top: 6px; }
  .pn-menu-btn[aria-expanded="true"] span { background: transparent; }
  .pn-menu-btn[aria-expanded="true"] span::before { top: 0; transform: rotate(45deg); }
  .pn-menu-btn[aria-expanded="true"] span::after  { top: 0; transform: rotate(-45deg); }

  /* full width menu panel */
  .pn-nav { display: none; position: absolute; inset: 66px 0 auto 0; flex-direction: column; align-items: stretch; gap: 0; padding: 8px 20px 24px; background: var(--deep); border-top: 1px solid rgba(242,237,228,.1); max-height: calc(100vh - 66px); overflow-y: auto; }
  .pn-nav.is-open { display: flex; }
  .pn-nav__list { flex-direction: column; align-items: stretch; gap: 0; }
  .pn-nav__list > li { border-bottom: 1px solid rgba(242,237,228,.1); }
  .pn-nav__link { width: 100%; border-radius: 0; padding: 14px 0; font-size: 1rem; background: none !important; }
  .pn-nav__link.is-active { color: var(--orange-on-dark); }
  .pn-nav__toggle { justify-content: space-between; }
  .pn-nav__sub { display: block; position: static; min-width: 0; padding: 0 0 8px 14px; background: none; border: 0; box-shadow: none; }
  .pn-nav__sub a { padding: 10px 0; font-size: .92rem; opacity: .85; }
  .pn-nav__caret { display: none; }
  .pn-nav__cta { margin-top: 20px; }
  .pn-nav__cta .pn-btn { flex: 1; }

  .pn-tab { display: none; }
  .pn-hero, .pn-hero__inner { min-height: 0; }
  .pn-hero__inner { grid-template-columns: 1fr; row-gap: 40px; padding-block: 48px 64px; }
  .pn-hero__art { width: 100%; max-width: none; aspect-ratio: 330 / 280; }
  .pn-hero .pn-pill { margin-bottom: 24px; }
  .pn-h1 { font-size: clamp(3rem, 14vw, 4.5rem); }
  .pn-h2 { font-size: clamp(2rem, 8vw, 3rem); }
  .pn-h3 { font-size: clamp(1.75rem, 7vw, 2.5rem); }
  .pn-stat strong { font-size: 2.5rem; }
  .pn-lead, .pn-sub { font-size: 1.05rem; }

  .pn-stats { grid-template-columns: 1fr 1fr; gap: 28px 20px; margin-top: 40px; }
  .pn-split, .pn-promo__grid, .pn-cash__inner, .pn-quotes__grid, .pn-posts, .pn-acc { grid-template-columns: 1fr; }
  .pn-split { margin-top: 48px; }
  .pn-split .pn-card, .pn-promo .pn-card { min-height: 0; padding: 32px; }
  .pn-steps, .pn-tiles { grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 36px; }
  .pn-step { padding: 22px; min-height: 0; }
  .pn-step__n { font-size: 2.25rem; }
  .pn-tile__img { padding: 16px; }
  .pn-sechead { flex-direction: column; align-items: flex-start; }
  .pn-sechead .pn-btn { min-height: 44px; }
  .pn-cash__inner { gap: 40px; }
  .pn-quote { min-height: 0; }
  .pn-capform { grid-template-columns: 1fr; }
  .pn-capform__go { width: 100%; }
  .pn-footer__top { grid-template-columns: 1fr; gap: 36px; }
  .pn-footer__cols { grid-template-columns: 1fr 1fr; }
  .pn-footer__col--learn { grid-column: 1 / -1; }
  .pn-footer__legal, .pn-footer__social { flex-direction: column; gap: 10px; }
  .pn-logo--big { font-size: 3.25rem; }
  .pn-float { width: 52px; height: 52px; right: 16px; bottom: 16px; }

  /* tap targets: at least 44px tall */
  .pn-header__mini { min-height: 44px; }
  .pn-logo { display: inline-flex; align-items: center; min-height: 44px; }
  .pn-footer__col li a, .pn-footer__mail, .pn-footer__legal a { display: inline-flex; align-items: center; min-height: 44px; }
  .pn-btnrow { flex-direction: column; align-items: flex-start; }
}

/* 17d. PAGE-SPECIFIC ADDITIONS ---------------------------------------------- */
.pn-sec--tight { padding-block: 64px; }
.pn-g--flush { margin-top: 0; }
.pn-h2--ink { color: var(--ink); }
.pn-h2--mt { margin-top: 72px; }
.pn-btn--mt { margin-top: 32px; }
.pn-hero__inner--split { grid-template-columns: 1fr 380px; align-items: end; }
.pn-hero--one, .pn-hero--one .pn-hero__inner { min-height: 440px; }
.pn-hero--one .pn-hero__inner { grid-template-columns: 1fr; padding-block: 88px 72px; }
.pn-photo--hero { min-height: 380px; }
.pn-faq--cream .pn-acc__item { background: var(--cream-card); color: var(--ink); }
.pn-faq--cream .pn-acc__q:hover { color: var(--orange-on-cream); }
.pn-agents .pn-update { grid-template-columns: 1fr 440px; }
.pn-agents__card { min-height: 0; }
.pn-agents__card p { margin-top: 12px; font-size: 1rem; }
.pn-agents__card .pn-btn { margin-top: 28px; align-self: stretch; }
.pn-h3--agents { font-size: 2rem; margin-top: 14px; }
.pn-co { min-height: 280px; }
.pn-co .pn-h3--co { font-size: 2.3rem; margin-top: auto; padding-top: 48px; }
.pn-co p { margin-top: 12px; font-size: 1rem; }
.pn-nc--plain { border-top: 0; }
.pn-bytype .pn-nc .n { color: var(--orange-on-dark); }
.pn-stats--2 { grid-template-columns: 1fr 1fr; margin-top: 0; gap: 36px 24px; }
.pn-reach__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 48px; align-items: stretch; margin-bottom: 24px; }
.pn-reach .pn-stats { margin-top: 0; align-content: center; }
.pn-stats--on-dark .pn-stat { border-top-color: rgba(242,237,228,.4); }
.pn-stats--on-dark .pn-stat span { color: var(--dim); }
.pn-stats--on-dark .pn-stat strong { color: var(--cream); }
.pn-stats--on-dark .pn-stat--accent { border-top-color: var(--orange); }
.pn-stats--on-dark .pn-stat--accent strong { color: var(--orange-on-dark); }
.pn-reach__cost { font-size: .94rem; }
.pn-bigfig { display: block; font-family: var(--font-head); font-weight: 800; font-size: 5.5rem; letter-spacing: -.05em; line-height: 1; margin-top: 12px; }
.pn-bigfig--orange { color: var(--orange); }
.pn-figlabel { display: block; margin-top: 8px; font-size: .94rem; font-weight: 700; }
.pn-plat { margin-top: 8px; font-size: .9rem; }
.pn-eyebrow--chart { margin-top: 32px; color: var(--forest); }
.pn-supplier { justify-content: center; }
.pn-supplier p { margin-top: 12px; }
.pn-supplier__row { margin-top: 28px; padding-top: 18px; border-top: 1px solid rgba(242,237,228,.2); width: 100%; }
.pn-supplier__row strong { font-family: var(--font-head); font-weight: 800; font-size: 2.6rem; letter-spacing: -.04em; line-height: 1; display: block; }
.pn-supplier__row span { font-size: .9rem; color: var(--t2); }
.pn-pipe { padding: 44px; min-height: 0; }
.pn-h3--pipe { font-size: 2.4rem; margin-top: 20px; }
.pn-pipe .pn-bigfig { margin-top: 24px; }
.pn-pipe__sub { font-weight: 700; margin-top: 6px; }
.pn-pipe .pn-btn { margin-top: 28px; }
.pn-way { padding: 44px; min-height: 0; }
.pn-h3--way { font-size: 2.6rem; margin-top: 10px; }
.pn-way__big { margin-top: 18px; font-size: 1rem; }
.pn-way__big strong { font-family: var(--font-head); font-weight: 800; font-size: 3rem; letter-spacing: -.04em; margin-right: 8px; }
.pn-way .pn-btn { margin-top: 28px; }
.pn-pro-2col--center { align-items: center; }
.pn-enquire__mail { display: inline-flex; align-items: center; min-height: 44px; margin-top: 24px; font-weight: 700; color: var(--sage); }
.pn-enquire__mail:hover { color: var(--orange-on-dark); }
.pn-n--sm { font-size: 1.7rem !important; letter-spacing: -.03em; }
.pn-tl--ink { border-top-color: var(--ink); }
.pn-tl--ink p { color: var(--ink); }
.pn-fc--num .n { display: block; font-family: var(--font-head); font-weight: 800; font-size: 3rem; letter-spacing: -.04em; line-height: 1; color: var(--orange-on-cream); }
.pn-fc--num h3 { margin-top: 16px; }
.pn-fc--event { min-height: 220px; }
.pn-fc--event h3 { font-size: 2rem; margin-top: 14px; }
.pn-fc--forest .pn-eyebrow--orange { color: var(--orange-on-dark); }
.pn-minis--3 { grid-template-columns: repeat(3, 1fr); margin-top: 32px; }
.pn-minis--3 .pn-mini strong { font-size: 2.2rem; margin-top: 4px; }
.pn-mini--forest { background: var(--forest); color: var(--cream); }
.pn-mini .pn-eyebrow { font-size: .6rem; }
.pn-sub--ink { color: var(--ink); }
.pn-callout--deep { background: var(--deep); margin-top: 40px; }
.pn-callout--deep .pn-eyebrow { display: inline-block; margin-right: 18px; }
.pn-route--forest { background: var(--forest); color: var(--cream); }
.pn-route--orange { background: var(--orange); color: var(--ink); }
.pn-route--sage { background: var(--sage); color: var(--ink); }
.pn-route--card { background: var(--cream-card); color: var(--forest); }
.pn-routes .pn-pill { margin-bottom: 0; }
.pn-routes .pn-g { margin-top: 32px; }
.pn-more-wrap { text-align: center; margin-top: 32px; }
.pn-filters--top { margin-top: 0; }
.pn-postfeat { margin-bottom: 16px; transition: transform var(--ease); }
.pn-postfeat:hover { transform: translateY(-2px); }
.pn-postfeat[hidden] { display: none; }
.pn-posts--grid { margin-top: 0; }
.pn-post__img--card { background: var(--cream-card); color: var(--ink); }
.pn-post__img--deep { background: var(--deep); color: var(--cream); }
.pn-lp-head__tag { display: block; }
.pn-hero--lp .pn-hero__inner { align-items: center; }

@media (max-width: 1199px) {
  .pn-g--6 { grid-template-columns: repeat(3, 1fr); }
  .pn-g--5 { grid-template-columns: repeat(3, 1fr); }
  .pn-reels { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 999px) {
  .pn-hero--page, .pn-hero--page .pn-hero__inner, .pn-hero--one, .pn-hero--one .pn-hero__inner { min-height: 0; }
  .pn-hero--page .pn-hero__inner { grid-template-columns: 1fr; padding-block: 48px 64px; row-gap: 36px; }
  .pn-hero--sell .pn-hero__inner, .pn-hero__inner--split { grid-template-columns: 1fr; }
  .pn-hero--sell .pn-hero__copy { padding-top: 0; }
  .pn-hero--page .pn-h1, .pn-contact .pn-h1 { font-size: clamp(2.75rem, 12vw, 4rem); }
  .pn-g--3, .pn-g--2 { grid-template-columns: 1fr; }
  .pn-g--4 { grid-template-columns: 1fr 1fr; }
  .pn-g--5, .pn-g--6 { grid-template-columns: 1fr 1fr; }
  .pn-g { margin-top: 32px; gap: 14px; }
  .pn-g--24 { gap: 14px; }
  .pn-g--flush { margin-top: 0; }
  .pn-g--5 > :last-child { grid-column: 1 / -1; }
  .pn-update, .pn-agents .pn-update, .pn-proj__inner, .pn-pro-2col, .pn-reach__grid, .pn-feature, .pn-postfeat { grid-template-columns: 1fr; gap: 36px; }
  .pn-bignum { min-height: 190px; }
  .pn-docmock { aspect-ratio: auto; min-height: 280px; }
  .pn-proj { padding-block: 64px; }
  .pn-proj__name { font-size: clamp(3rem, 16vw, 4.5rem); }
  .pn-pstat strong { font-size: 1.7rem; }
  .pn-delivered { grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 32px; }
  .pn-dtile { padding: 16px; aspect-ratio: 1 / 1.05; }
  .pn-reels { grid-template-columns: 1fr 1fr; }
  .pn-cats { grid-template-columns: 1fr 1fr; }
  .pn-team { grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 32px; }
  .pn-journey li { grid-template-columns: 90px 1fr; gap: 14px; }
  .pn-journey .y { font-size: 1.9rem; }
  .pn-minis--3 { grid-template-columns: 1fr; }
  .pn-event { grid-template-columns: 64px 1fr; padding: 16px; }
  .pn-event__date { width: 64px; height: 64px; }
  .pn-event .pn-btn { grid-column: 1 / -1; }
  .pn-feature { padding: 24px; }
  .pn-postfeat__body { padding: 28px; }
  .pn-postfeat h3 { font-size: 2.2rem; }
  .pn-ctas2 { grid-template-columns: 1fr; }
  .pn-cta2 { flex-direction: column; align-items: flex-start; padding: 24px; }
  .pn-lpfacts { grid-template-columns: 1fr 1fr; gap: 12px; }
  .pn-lp-head__inner, .pn-lp-foot__inner { padding-inline: 20px; }
  .pn-lp-head__inner { height: 60px; }
  .pn-lp-head__tag { display: none; }
  .pn-lp-foot__inner { flex-direction: column; align-items: flex-start; }
  .pn-lpbanner { flex-direction: column; align-items: flex-start; }
  .pn-fields2 { grid-template-columns: 1fr; gap: 0; }
  .pn-formcard { padding: 22px; }
  .pn-bigfig { font-size: 4rem; }
  .pn-pipe, .pn-way { padding: 28px; }
  .pn-h3--pipe, .pn-h3--way { font-size: 2rem; }
  .pn-cform { padding: 22px 20px 26px; }
  .pn-cform h2, .pn-cform h3.q { font-size: 1.6rem; }
  .pn-cform__thanks h2 { font-size: 2.6rem; }
  .pn-spots strong { font-size: 6rem; }
  .pn-bar { grid-template-columns: 96px 1fr; font-size: .82rem; }
  .pn-more-wrap .pn-btn { width: 100%; }
  .pn-btnrow .pn-btn { width: auto; }
  .pn-hero--lp .pn-chips { display: flex; flex-direction: column; align-items: flex-start; gap: 11px; margin-top: 26px; }
  .pn-hero--lp .pn-hero__inner { row-gap: 28px; }
  .pn-g .pn-fc { padding: 20px 18px; }
  .pn-g .pn-fc h3 { font-size: 1.1rem; }
  .pn-g .pn-fc p { font-size: .86rem; }
  .pn-nc { padding: 22px 18px; }
  .pn-nc .n { font-size: 2.25rem; }
}

/* grid children may shrink below their content width (stops carousels / long words forcing overflow) */
.pn-g > *, .pn-hero__inner > *, .pn-proj__inner > *, .pn-update > *, .pn-pro-2col > *, .pn-reach__grid > *, .pn-stats > * { min-width: 0; }
.pn-stats--on-dark { grid-template-columns: 1fr 1fr; }

/* 17e. INVEST (design page 2) */
.pn-page--invest .pn-hero__inner { grid-template-columns: 1fr 380px; padding-block: 112px 104px; min-height: 0; }
.pn-page--invest .pn-hero--page { min-height: 0; }
.pn-page--invest .pn-h1 { font-size: clamp(2.75rem, 5.8vw, 83.5px); }
.pn-page--invest .pn-why .pn-fc { min-height: 200px; }
.pn-page--invest .pn-invest-what .pn-g--5 { gap: 18px; }
.pn-page--invest .pn-nc { min-height: 303px; }

.pn-page--invest .pn-hero .pn-lead { margin-top: 40px; }
.pn-page--invest .pn-why .pn-g { margin-top: 38px; }
.pn-page--invest .pn-fc { padding: 38px 36px 28px; }
.pn-page--invest .pn-nc { padding: 28px 36px; }
.pn-invest-update { position: relative; padding-block: 104px; }
.pn-tab--ink { background: var(--ink); color: var(--cream); }

/* 17f. SELL (design page 3) */
.pn-page--sell .pn-h1 { font-size: clamp(2.75rem, 7.4vw, 106.6px); line-height: .947; }
.pn-page--sell .pn-hero__inner { grid-template-columns: 1fr 440px; column-gap: 64px; padding-block: 112px 104px; min-height: 0; }
.pn-page--sell .pn-hero--page { min-height: 0; }
.pn-page--sell .pn-hero--sell .pn-hero__copy { padding-top: 13px; }
.pn-page--sell .pn-hero--sell .pn-hero__copy p.pn-lead { margin-top: 38px; }
.pn-chips { gap: 10px 12px; }
.pn-chip { font-size: 13px; padding: 9px 22px; line-height: 1.2; }
.pn-cform { padding: 36px 37px 40px; min-height: 622px; }
.pn-cform__top { font-size: 13px; }
.pn-cform__bar { height: 6px; margin-top: 14px; }
.pn-cform__kicker { font-size: 13px; }
.pn-cform h2, .pn-cform h3.q { font-size: 38px; line-height: 42px; letter-spacing: -.024em; }
.pn-cform__intro { font-size: 16px; line-height: 26px; margin-top: 16px; }
.pn-cform__opts { gap: 16px; margin-top: 9px; }
.pn-opt { min-height: 57px; padding: 15px 20px; font-size: 16px; font-weight: 500; }
.pn-cform label { font-size: 13px; }
.pn-page--sell .pn-situ .pn-g { gap: 18px; }
.pn-situ .pn-fc { border-top: 3px solid var(--orange); padding: 35px 36px 38px; }
.pn-situ .pn-fc h3 { font-size: 23px; }
.pn-page--sell .pn-tl h3 { font-size: 23px; margin-top: 6px; }
.pn-page--sell .pn-note { margin-top: 33px; }
.pn-sell-how { padding-bottom: 79px; }
.pn-agents .pn-sub { max-width: 816px; }
.pn-faq--cream .pn-acc { margin-top: 33px; }
.pn-faq--cream .pn-sechead .pn-btn { margin-bottom: -10px; }
.pn-page--sell .pn-hero--sell .pn-lead { max-width: 540px; }
.pn-page--sell .pn-agents .pn-update { grid-template-columns: 1fr 320px; gap: 48px; align-items: start; }
.pn-page--sell .pn-chips { margin-top: 26px; }
.pn-faq--cream .pn-h2 { margin-top: 25px; }
.pn-page--sell .pn-agents__card { padding: 36px; min-height: 311px; }
.pn-page--sell .pn-agents__card .pn-h3--agents { margin-top: 16px; }
.pn-page--sell .pn-agents__card p { margin-top: 16px; font-size: 16px; }
.pn-page--sell .pn-agents__card .pn-btn { margin-top: auto; }
.pn-note { font-size: 16px; }
.pn-h3--agents { font-size: 23px; letter-spacing: -.02em; }

/* 17g. PROJECTS (design page 4) */
.pn-page--projects .pn-h1 { font-size: clamp(2.75rem, 7.4vw, 106.6px); line-height: .947; }
.pn-page--projects .pn-hero--page { min-height: 0; }
.pn-page--projects .pn-hero__inner--split { grid-template-columns: 1fr 360px; align-items: end; padding-block: 112px 108px; min-height: 0; column-gap: 64px; }
.pn-proj { padding-block: 126px; }
.pn-proj__inner { grid-template-columns: 1fr 460px; gap: 64px; }
.pn-proj__name { font-size: clamp(4rem, 9.2vw, 132px); line-height: .95; letter-spacing: -.037em; margin-top: 24px; }
.pn-proj p.pn-proj__desc { font-size: 21px; max-width: 680px; }
.pn-pstats { grid-template-columns: repeat(2, 330px); gap: 19px 16px; max-width: none; margin-top: 29px; }
.pn-pstat strong { font-size: 42px; }
.pn-pstat span { font-size: 16px; margin-top: 5px; }
.pn-car__slide { aspect-ratio: 460 / 345; font-size: 13px; padding: 24px; }
.pn-car__count { font-size: 12px; }

.pn-track .pn-note { margin-top: 30px; font-size: 14px; }

/* 17h. PROMOTE (design page 5) --------------------------------------------- */
.pn-page--promote .pn-h1 { font-size: clamp(2.75rem, 7.4vw, 106.6px); line-height: .947; }
.pn-page--promote .pn-hero--page { min-height: 0; }
.pn-page--promote .pn-hero__inner { grid-template-columns: 1fr 380px; column-gap: 64px; padding-block: 112px 104px; min-height: 0; align-items: start; }
.pn-page--promote .pn-phototall { margin-top: 30px; min-height: 520px; padding: 20px; font-size: 12px; line-height: 16px; letter-spacing: .13em; }
.pn-pill { line-height: 1.2; }

.pn-who .pn-pro-2col { grid-template-columns: 756px 380px; gap: 48px; }
.pn-who .pn-callout { font-size: 20px; line-height: 23px; padding: 26px 30px; margin-top: 25px; }
.pn-page--promote .pn-hero .pn-lead { margin-top: 36px; }
.pn-stats--2 { margin-top: 80px; gap: 23px 21px; }
.pn-stats--2 .pn-stat strong { font-size: 60px; }
.pn-stats--2 .pn-stat span { font-size: 16px; }

.pn-bytype .pn-g { margin-top: 40px; gap: 16px; }
.pn-bytype .pn-nc { min-height: 135px; padding: 26px 26px 37px; display: flex; flex-direction: column; justify-content: space-between; }
.pn-bytype .pn-nc h3 { font-family: var(--font-body); font-size: 16px; font-weight: 400; letter-spacing: 0; margin-top: 0; line-height: 1.25; }
.pn-bytype .pn-note, .pn-sponsor .pn-note { margin-top: 20px; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }

.pn-reach .pn-reach__grid { grid-template-columns: 581px 1fr; gap: 22px; margin-top: 41px; margin-bottom: 0; }
.pn-reach__card { border-radius: var(--r-card); overflow: hidden; }
.pn-reach__big { background: var(--sage); color: var(--ink); padding: 40px; height: 380px; display: flex; flex-direction: column; justify-content: flex-end; }
.pn-reach__big .pn-bigfig { font-size: 170px; line-height: 1; margin: 0; letter-spacing: -.04em; }
.pn-reach__big p { font-size: 19px; line-height: 25px; margin-top: 16px; max-width: 470px; font-weight: 700; }
.pn-reach__cost { padding: 30px 40px; font-size: 17px; line-height: 24px; background: var(--forest); }
.pn-reach__cost b { display: block; margin: -4px 0 0; font-family: var(--font-head); font-weight: 800; font-size: 44px; line-height: 1; letter-spacing: -.037em; color: var(--orange-on-dark); }
.pn-reach__cost p:first-child { font-weight: 700; color: var(--cream); }
.pn-reach__cost p:last-child { font-size: 16px; color: var(--t2); }
.pn-reach .pn-stats--on-dark { grid-template-columns: 1fr 1fr; gap: 0 21px; align-content: space-between; height: 542px; margin-top: 0; padding-top: 12px; }
.pn-reach .pn-stats--on-dark .pn-stat { border-top: 0; padding-top: 0; }
.pn-reach .pn-stats--on-dark .pn-stat strong { font-size: 52px; }
.pn-reach .pn-stats--on-dark .pn-stat span { font-size: 16px; }
.pn-platforms { display: grid; grid-template-columns: 581px 581px; gap: 22px; margin-top: 30px; }
.pn-platform { border-radius: var(--r-card); padding: 28px 36px 36px; height: 323px; display: flex; flex-direction: column; align-items: flex-start; }
.pn-platform--sage { background: var(--sage); color: var(--ink); }
.pn-platform--orange { background: var(--orange); color: var(--ink); }
.pn-platform__name { font-family: var(--font-head); font-weight: 800; font-size: 24px; letter-spacing: -.037em; line-height: 1.2; }
.pn-platform .pn-plat { font-size: 16px; margin-top: 8px; margin-bottom: 8px; line-height: 1.5; }
.pn-platform .pn-bigfig { font-size: 96px; line-height: 1; margin-top: 0; }
.pn-platform .pn-figlabel { font-size: 17px; margin-top: 2px; }
.pn-followers { margin-top: 20px; font-size: 17px; font-weight: 700; }
.pn-followers b { font-family: var(--font-head); font-weight: 800; font-size: 32px; letter-spacing: -.03em; }
.pn-reach .pn-note { margin-top: 30px; font-size: 13px; }

.pn-proof__top { display: grid; grid-template-columns: 832px 320px; gap: 32px; align-items: stretch; }
.pn-proof .pn-eyebrow--chart { margin-top: 18px; font-size: 13px; }
.pn-proof .pn-bars { margin-top: 16px; gap: 12px; }
.pn-bar { grid-template-columns: 191px 1fr; gap: 0; font-size: 17px; }
.pn-bar i { height: 40px; background: transparent; }
.pn-bar i b { font-size: 15px; line-height: 40px; padding-right: 14px; }
.pn-proof .pn-note { margin-top: 22px; font-size: 13px; }
.pn-supplier { background: var(--forest); color: var(--cream); border-radius: var(--r-card); padding: 36px; display: flex; flex-direction: column; justify-content: flex-start; }
.pn-supplier__n { display: block; font-family: var(--font-head); font-weight: 800; font-size: 110px; line-height: 1; letter-spacing: -.05em; }
.pn-supplier p { font-size: 18px; line-height: 29px; margin-top: 7px; margin-bottom: 9px; font-weight: 700; }
.pn-supplier__row { margin-top: 10px; padding-top: 11px; border-top: 1px solid rgba(242,237,228,.2); }
.pn-supplier__row strong { font-size: 44px; line-height: 48px; }
.pn-supplier__row span { font-size: 16px; display: block; margin-top: 5px; }
.pn-h2--mt { margin-top: 106px; }
.pn-reels { grid-template-columns: repeat(6, 1fr); gap: 16px; margin-top: 32px; }
.pn-reel em { aspect-ratio: 184 / 327; padding: 20px; font-size: 12px; letter-spacing: .1em; border-radius: var(--r-card); }
.pn-reel strong { font-size: 13px; margin-top: 10px; line-height: 1.2; }
.pn-reel span { font-size: 15px; display: flex; justify-content: space-between; margin-top: 12px; }
.pn-reel span b { font-weight: 700; }

.pn-partners .pn-g--cards { gap: 16px; margin-top: 26px; }
.pn-partners .pn-fc { min-height: 220px; padding: 62px 36px 36px; }
.pn-partners .pn-fc--cream-on { background: var(--sage); }
.pn-cats { gap: 16px; margin-top: 24px; }
.pn-cat { height: 140px; display: flex; align-items: flex-end; padding: 0 36px 34px; font-size: 24px; }

.pn-pipeline { padding-block: 104px; }
.pn-pipes { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); }
.pn-pipe { border-radius: var(--r-card); padding: 44px; height: 462px; display: flex; flex-direction: column; align-items: flex-start; }
.pn-pipe .pn-pill { display: block; width: 100%; text-align: left; }
.pn-pipes--ways { margin-top: 32px; }
.pn-pipes--ways .pn-pipe { height: 444px; }
.pn-pipe--deep { background: var(--deep); color: var(--cream); }
.pn-pipe--orange { background: var(--orange); color: var(--ink); }
.pn-pipe--sage { background: var(--sage); color: var(--ink); }
.pn-pipe--forest { background: var(--forest); color: var(--cream); }
.pn-pipe__h { font-family: var(--font-head); font-weight: 800; font-size: 40px; line-height: 1.04; letter-spacing: -.037em; margin-top: 12px; }
.pn-pipe .pn-eyebrow + .pn-pipe__h { margin-top: 12px; }
.pn-pipe__fig { display: flex; align-items: center; gap: 17px; margin-top: 47px; }
.pn-pipes--ways .pn-pipe__fig { margin-top: 35px; }
.pn-pipe__fig strong { font-family: var(--font-head); font-weight: 800; font-size: 80px; line-height: 1; letter-spacing: -.05em; white-space: nowrap; }
.pn-pipe__fig span { font-size: 17px; line-height: 22px; max-width: 14em; font-weight: 700; }
.pn-pipe--figo .pn-pipe__fig strong { color: var(--orange-on-dark); }
.pn-pipe p { font-size: 16px; line-height: 25.5px; margin-top: 41px; max-width: 484px; color: var(--t2); }
.pn-pipe .pn-lines { font-size: 16px; line-height: 25px; margin-top: 22px; }
.pn-pipe .pn-lines { gap: 0; }
.pn-pipe .pn-lines li::before { color: currentColor; font-weight: 400; margin-right: 6px; }
.pn-pipe .pn-btn { margin-top: auto; }
.pn-ways { margin-top: 105px; }

.pn-enquire__inner { display: grid; grid-template-columns: 1fr 728px; gap: 48px; align-items: start; }
.pn-enquire { padding-block: 104px; }
.pn-enquire .pn-formcard { padding: 36px; }
.pn-enquire .pn-field { margin-bottom: 16px; }
.pn-enquire .pn-field label { font-size: 14px; line-height: 16px; margin-bottom: 10px; display: block; }
.pn-enquire .pn-field input, .pn-enquire .pn-field select { height: 54px; }
.pn-enquire .pn-field textarea { height: 158px; min-height: 0; }
.pn-enquire .pn-fields2 { gap: 16px; }
.pn-enquire .pn-formcard .pn-btn { min-height: 54px; margin-top: 0; }
.pn-enquire__mail { font-size: 18px; margin-top: 17px; color: var(--cream); }

/* 17i. ABOUT (design page 6) ------------------------------------------------ */
.pn-page--about .pn-h1 { font-size: clamp(2.75rem, 7.4vw, 106.6px); line-height: .947; }
.pn-page--about .pn-hero--page { min-height: 0; }
.pn-page--about .pn-hero__inner { grid-template-columns: 1fr 380px; column-gap: 64px; padding-block: 112px 78px; min-height: 0; align-items: start; }
.pn-page--about .pn-hero .pn-lead { max-width: 590px; margin-top: 28px; }
.pn-page--about .pn-photo--hero { min-height: 380px; height: 380px; margin-top: 117px; padding: 20px; font-size: 12px; line-height: 16px; }
.pn-page--about .pn-group .pn-g { gap: 22px; margin-top: 41px; }
.pn-co { height: 280px; min-height: 0; padding: 36px; }
.pn-co .pn-eyebrow { font-size: 13px; margin-bottom: auto; }
.pn-co .pn-h3--co { font-size: 40px; line-height: .95; letter-spacing: -.037em; margin-top: 0; padding-top: 0; }
.pn-co p { font-size: 16px; line-height: 26px; margin-top: 18px; }
.pn-journey { margin-top: 28px; }
.pn-journey li { grid-template-columns: 150px 1fr; gap: 24px; padding: 31.7px 0 15.4px; align-items: start; }
.pn-journey .y { font-size: 52px; }
.pn-journey h3 { font-size: 24px; letter-spacing: -.02em; line-height: 1.2; margin-top: 21px; }
.pn-journey p { font-size: 16px; line-height: 26px; margin-top: 6px; }
.pn-team { gap: 20px; margin-top: 41px; }
.pn-person em { aspect-ratio: 281 / 351; padding: 20px; font-size: 12px; letter-spacing: .1em; }
.pn-person strong { font-size: 21px; margin-top: 8px; }
.pn-person span { font-size: 16px; margin-top: 8px; }
.pn-page--about .pn-badges { margin-top: 28px; }

/* 17j. CONTACT (design page 11) --------------------------------------------- */
.pn-page--contact .pn-contact { padding-block: 112px 98px; }
.pn-page--contact .pn-h1 { font-size: clamp(2.75rem, 7.4vw, 106.6px); line-height: .947; margin-top: 33px; }
.pn-page--contact .pn-contact .pn-lead { margin-top: 2px; max-width: 590px; }
.pn-page--contact .pn-contact .pn-formcard { max-width: 640px; margin-top: 38px; padding: 36px; }
.pn-page--contact .pn-field { margin-bottom: 16px; }
.pn-page--contact .pn-field label { font-size: 14px; line-height: 16px; margin-bottom: 10px; display: block; }
.pn-page--contact .pn-field input, .pn-page--contact .pn-field select { height: 54px; }
.pn-page--contact .pn-field textarea { height: 116px; min-height: 0; }
.pn-page--contact .pn-formcard .pn-btn { min-height: 54px; }
.pn-page--contact .pn-fields2 { gap: 16px; }
.pn-routes { padding-block: 104px; }
.pn-routes .pn-g { margin-top: 0; gap: 20px; }
.pn-routes a { min-height: 200px; padding: 30px; }
.pn-routes small { font-size: 13px; }
.pn-routes strong { font-size: 26px; line-height: 29px; margin-top: -5px; letter-spacing: -.02em; }

/* 17k. PENNINE CIRCLE (design page 7) ---------------------------------------- */
.pn-page--learn .pn-h1 { font-size: clamp(2.75rem, 7.4vw, 106.6px); line-height: .947; }
.pn-page--learn .pn-hero__inner { grid-template-columns: 1fr 360px; column-gap: 64px; padding-block: 112px 104px; min-height: 0; align-items: start; }
.pn-page--learn .pn-hero--page { min-height: 0; }
.pn-page--learn .pn-hero__stats { margin-top: 0; align-self: center; }
.pn-page--learn .pn-hero .pn-lead { margin-top: 36px; }
.pn-page--learn .pn-hero .pn-btnrow { margin-top: 36px; }
.pn-subnav { gap: 10px 12px; margin-top: 34px; }
.pn-subnav a { font-size: 13px; padding: 9px 20px; min-height: 0; line-height: 1.2; }
.pn-spots { height: 220px; padding: 48px 36px 36px; text-align: left; display: flex; flex-direction: column; justify-content: space-between; }
.pn-spots strong { font-size: 120px; line-height: 1; margin: 0; text-align: center; letter-spacing: -.02em; }
.pn-spots .pn-eyebrow { text-align: center; }
.pn-page--learn .pn-hero__stats .pn-minis { grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 14px; }
.pn-page--learn .pn-mini { min-height: 119px; padding: 20px 24px 16px; }
.pn-page--learn .pn-mini strong { font-size: 48px; }

/* Circle sections */
.pn-page--learn .pn-sec .pn-pro-2col { grid-template-columns: 400px 1fr; gap: 56px; }
.pn-page--learn .pn-sec .pn-pro-2col .pn-g--2 { grid-template-columns: 356px 356px; gap: 16px; margin-top: 0; }
.pn-page--learn .pn-sec .pn-pro-2col .pn-fc { padding: 26px 26px 98px; }
.pn-page--learn .pn-sec .pn-pro-2col .pn-fc h3 { font-size: 20px; letter-spacing: -.02em; line-height: 1.25; }
.pn-page--learn .pn-sec .pn-pro-2col .pn-fc p { font-size: 16px; line-height: 26px; margin-top: 7px; }
.pn-page--learn .pn-sec .pn-pro-2col .pn-sub { font-size: 21px; max-width: none; }
.pn-page--learn .pn-sec .pn-g--4 { gap: var(--gap); }
.pn-n--sm { font-size: 38px !important; }
.pn-g--18 { gap: 18px; }
.pn-page--learn .pn-sec .pn-tl { padding-top: 8px; }
.pn-page--learn .pn-sec .pn-tl--ink { padding-top: 13px; }
.pn-page--learn .pn-sec .pn-tl--ink h3 { margin-top: 5px; font-size: 24px; }
.pn-page--learn .pn-sec .pn-nc h3, .pn-page--learn .pn-sec .pn-fc--num h3 { margin-top: 2px; }
.pn-video__thumb { aspect-ratio: 380 / 213; }
a.pn-fc.pn-more { display: flex; min-height: 300px; padding: 36px; }
.pn-fc--num .n { font-size: 44px; }
.pn-page--learn .pn-sec .pn-nc { background: var(--forest); border-top: 0; padding: 32px 36px 36px; min-height: 217px; }
.pn-page--learn .pn-sec .pn-nc h3 { font-size: 24px; margin-top: 12px; }
.pn-page--learn .pn-sec .pn-fc--num { padding: 32px 36px 36px; min-height: 216px; }
.pn-page--learn .pn-sec .pn-fc--num h3 { font-size: 24px; margin-top: 12px; }
.pn-page--learn .pn-sec .pn-fc--num p { font-size: 16px; line-height: 26px; margin-top: 8px; }
.pn-page--learn .pn-sec .pn-nc p { line-height: 26px; margin-top: 8px; }
.pn-page--learn .pn-btnrow { margin-top: 30px; }

/* 17l. EVENTS (design page 8) ------------------------------------------------ */
.pn-page--learn .pn-hero--one .pn-hero__inner { grid-template-columns: 1fr; padding-block: 112px 104px; }
.pn-events-top { padding-block: 104px; }
.pn-fc--event { height: 240px; min-height: 0; padding: 36px; }
.pn-fc--event .pn-eyebrow { font-size: 13px; }
.pn-fc--event h3 { font-size: 34px; margin-top: 12px; letter-spacing: -.018em; line-height: 1.1; }
.pn-fc--event p { font-size: 16px; line-height: 25.5px; margin-top: 14px; }
.pn-page--learn .pn-sec .pn-pro-2col--mm .pn-sub { max-width: none; }
.pn-page--learn .pn-sec .pn-pro-2col--mm { grid-template-columns: 1fr 420px; gap: 48px; align-items: start; }
.pn-pro-2col--mm .pn-photo { height: 480px; min-height: 0; margin-top: 63px; padding: 20px; font-size: 12px; line-height: 16px; }
.pn-minis--3 { grid-template-columns: repeat(3, 228px); gap: 12px; margin-top: 20px; }
.pn-minis--3 .pn-mini { min-height: 110px; padding: 20px; display: block; border-radius: var(--r-card); }
.pn-minis--3 .pn-mini .pn-eyebrow { font-size: 11px; margin-bottom: 6px; }
.pn-minis--3 .pn-mini strong { font-size: 44px; line-height: 1; margin: 0; }
.pn-pro-2col--mm .pn-btn--mt { margin-top: 21px; }
/* design: the Upcoming pill sits on the section edge (no top padding) */
.pn-upcoming { padding-top: 0; }
.pn-event { grid-template-columns: 110px 1fr auto; gap: 24px; padding: 18px 22px; height: 154px; align-items: center; }
.pn-event__date { width: 110px; height: 110px; border-radius: 16px; }
.pn-event__date small { font-size: 12px; }
.pn-event__date b { font-size: 44px; line-height: 1; font-weight: 800; }
.pn-event h3 { font-size: 24px; letter-spacing: -.02em; }
.pn-event p { font-size: 16px; margin-top: 3px; }
.pn-events { gap: 14px; margin-top: 29px; }
.pn-page--learn .pn-upcoming .pn-note { margin-top: 31px; }
.pn-page--learn .pn-sec .pn-pill { padding-block: 9.5px; }
body.pn-page--learn .pn-g--24:not(.pn-g--flush), body.pn-page--learn .pn-g--18 { margin-top: 42px; }
.pn-page--learn .pn-upcoming { padding-bottom: 120px; }
.pn-page--learn .pn-sponsor { padding-bottom: 95px; }
body.pn-page--learn .pn-sponsor .pn-note { margin-top: 34px; }
.pn-callout--row span:not(.pn-eyebrow) + span { position: relative; }
.pn-callout--row span:not(.pn-eyebrow) + span::before { content: "\00b7"; position: absolute; left: -30px; }
.pn-sponsor { position: relative; }
.pn-sponsor__row { display: flex; align-items: flex-end; justify-content: space-between; gap: 48px; margin-top: -5px; }
.pn-sponsor__row .pn-sub { font-size: 17px; max-width: 890px; margin-top: 16px; }
.pn-sponsor .pn-h2 { margin-top: 23px; }
.pn-sponsor .pn-g--4 { gap: 16px; margin-top: 36px; }
.pn-sponsor .pn-nc { height: 216px; padding: 32px 36px; }
.pn-page--learn .pn-sponsor .pn-nc { background: var(--deep); }
.pn-sponsor .pn-nc h3 { font-size: 20px; margin-top: 12px; white-space: nowrap; }
.pn-page--learn .pn-sponsor .pn-nc h3 { font-size: 20px; }
.pn-callout--row { display: flex; align-items: baseline; gap: 59px; font-weight: 400; }
.pn-callout--row .pn-eyebrow { margin-right: -29px; }
.pn-sponsor .pn-callout--deep { margin-top: 28px; font-size: 16px; padding: 30px 32px; }

@media (max-width: 999px) { .pn-br { display: none; } }
.pn-bm { display: none; }

/* 17m. TOOLKIT (design page 9) ----------------------------------------------- */
.pn-feature { grid-template-columns: 300px 1fr; gap: 40px; padding: 44px; margin-top: 0; align-items: center; }
.pn-feature__img { aspect-ratio: auto; height: 225px; font-size: 12px; padding: 20px; border-radius: 20px; }
.pn-feature .pn-pill { padding: 8px 20px; }
.pn-feature h3 { font-size: 56px; line-height: 1; letter-spacing: -.037em; margin-top: 18px; }
.pn-feature p { font-size: 21px; margin-top: 20px; }
.pn-feature__buy { display: flex; align-items: center; gap: 16px; margin-top: 26px; }
.pn-feature__price { font-size: 52px; line-height: 1; margin: 0; }
.pn-feature .pn-btn { margin-top: 0; min-height: 50px; padding: 0 24px; font-size: 15px; }
.pn-filters { gap: 10px 12px; margin: 48px 0 27px; }
.pn-filter { font-size: 13px; padding: 10px 20px; min-height: 0; line-height: 1.2; }
.pn-page--learn .pn-g--3[data-filterable] { gap: 20px; }
.pn-product { padding: 18px; min-height: 461px; }
.pn-product__img { aspect-ratio: 345 / 259; font-size: 12px; padding: 18px; margin-bottom: 10px; }
.pn-product__kind { font-size: 13px; }
.pn-product h3 { font-size: 22px; margin-top: 8px; letter-spacing: -.03em; }
.pn-product p { font-size: 16px; margin-top: 14px; }
.pn-page--learn .pn-sec .pn-note { margin-top: 12px; font-size: 13px; }
.pn-gofurther .pn-sub { margin-top: 13px; }
.pn-product__price { font-size: 28px; }
.pn-product__row .pn-btn { min-height: 50px; padding: 0 24px; font-size: 15px; }
.pn-gofurther { display: grid; grid-template-columns: 1fr auto; align-items: center; column-gap: 48px; }
.pn-gofurther > * { grid-column: 1; }
.pn-gofurther .pn-pill { justify-self: start; }
.pn-gofurther .pn-btn { grid-column: 2; grid-row: 1 / span 3; min-height: 50px; padding: 0 24px; font-size: 15px; }
.pn-gofurther .pn-btn--mt { margin-top: 0; }

/* 17n. INSIGHTS (design page 10) --------------------------------------------- */
.pn-filters--top { margin: 0 0 25px; }
.pn-postfeat { grid-template-columns: 544px 1fr; height: 360px; margin-bottom: 0; }
.pn-postfeat__img { min-height: 0; padding: 20px; font-size: 12px; }
.pn-postfeat__body { padding: 48px; }
.pn-postfeat .pn-eyebrow { font-size: 13px; }
.pn-postfeat h3 { font-size: 51.8px; line-height: 1; letter-spacing: -.037em; margin-top: 12px; }
.pn-postfeat p { font-size: 16px; line-height: 26px; margin-top: 16px; max-width: 535px; }
.pn-posts--grid { gap: 37px var(--gap); margin-top: 56px; }
.pn-post__img { padding: 0 18px 16px; margin-bottom: 12px; }
.pn-ctas-sec { padding-block: 104px; }
.pn-page--learn .pn-hero--one .pn-hero__inner { padding-bottom: 104px; }
.pn-page--learn .pn-hero--insights .pn-hero__inner { padding-bottom: 109px; }
.pn-page--learn .pn-hero .pn-lead { max-width: none; }
.pn-more-wrap { margin-top: 38px; }
.pn-more-wrap .pn-btn { min-width: 202px; }
.pn-cta2 { padding: 36px; height: 126px; }
.pn-cta2 h3 { font-size: 32px; letter-spacing: -.02em; }
.pn-ctas2 { gap: 22px; }

/* 17o. CASH OFFER LANDING (design page 12) ------------------------------------ */
.pn-page--landing .pn-hero--lp .pn-cform { min-height: 577px; }
.pn-page--landing .pn-hero__inner { padding-block: 72px 104px; }
.pn-lpfacts-sec { padding-block: 56px; }
.pn-lpfacts { gap: 14px; }
.pn-lpfact { padding: 19px 22px; height: 97px; }
.pn-lpfact strong { font-size: 30px; }
.pn-lpfact span { font-size: 16px; margin-top: 10px; font-weight: 700; }
.pn-lpbanner-sec { padding-block: 73px; }
.pn-lpbanner .pn-h2 { font-size: 56px; line-height: 1; letter-spacing: -.037em; }
.pn-lp-foot ul { gap: 20px; }
.pn-page--landing .pn-hero--lp .pn-hero__inner { align-items: start; }
.pn-page--landing .pn-hero--lp .pn-chips { gap: 10px 10px; }
.pn-page--landing .pn-faq .pn-acc { margin-top: 33px; }
.pn-page--landing .pn-faq .pn-sechead .pn-btn { margin-bottom: -9px; }

/* 18b. MOBILE DESIGN TOKENS (read off the 390px mobile boards) ---------------- */
@media (max-width: 999px) {
  .pn-header__inner { height: 76px; padding-inline: 28px; }
  .pn-logo { font-size: 36px; }
  .pn-nav { inset: 76px 0 auto 0; max-height: calc(100vh - 76px); }
  .pn-hero__inner { padding-block: 64px 64px; row-gap: 40px; }
  .pn-hero--page .pn-hero__inner, .pn-page--sell .pn-hero__inner, .pn-page--learn .pn-hero__inner { padding-block: 64px 64px; }
  .pn-hero .pn-pill, .pn-hero--page .pn-pill { margin-bottom: 24px; }
  .pn-h1, .pn-hero--page .pn-h1, .pn-page--sell .pn-h1, .pn-page--projects .pn-h1, .pn-page--promote .pn-h1, .pn-page--about .pn-h1, .pn-page--contact .pn-h1, .pn-page--learn .pn-h1, .pn-page--invest .pn-h1 { font-size: 55px; line-height: .94; letter-spacing: -.037em; }
  .pn-page--invest .pn-h1, .pn-page--sell .pn-h1, .pn-page--projects .pn-h1 { font-size: 51px; }
  .pn-page--landing .pn-h1 { font-size: 44px; }
  .pn-lead, .pn-sub, .pn-hero .pn-lead { font-size: 18px; line-height: 28px; max-width: none; }
  .pn-hero .pn-lead { margin-top: 24px; }
  .pn-hero .pn-btnrow { margin-top: 28px; }
  .pn-h2 { font-size: 36px; line-height: .97; margin-top: 24px; }
  .pn-br { display: none; }
  .pn-stat strong { font-size: 40px; }
  .pn-stat span { font-size: 18px; line-height: 29px; }
}

/* 18c. MOBILE: shared components (Home board) */
@media (max-width: 999px) {
  .pn-bm { display: inline; }
  .pn-pill { padding: 10px 20px; }
  .pn-hero__art { aspect-ratio: 350 / 410; }
  .pn-page--home .pn-hero__inner { padding-bottom: 174px; }
  .pn-stats { margin-top: 72px; gap: 22px 14px; }
  .pn-stat { padding-top: 20px; }
  .pn-split { margin-top: 38px; gap: 22px; }
  .pn-split .pn-card { padding: 26px; min-height: 0; }
  .pn-pill--block { padding: 10px 20px; }
  .pn-split .pn-h3 { font-size: 38px; line-height: .97; margin-top: 22px; }
  .pn-card p { font-size: 18px; line-height: 28px; margin-top: 18px; }
  .pn-split .pn-btn { margin-top: 24px; }
  .pn-steps { gap: 14px; margin-top: 48px; }
  .pn-step { padding: 26px; min-height: 0; }
  .pn-step__n { font-size: 40px; }
  .pn-step h3 { font-size: 25px; margin-top: 8px; }
  .pn-step p { font-size: 16px; line-height: 26px; margin-top: 10px; }
  .pn-sechead { gap: 24px; }
  .pn-tiles { gap: 14px; margin-top: 32px; }
  .pn-tile__img { aspect-ratio: 168 / 210; padding: 22px; margin-bottom: 14px; }
  .pn-tile strong { font-size: 26px; }
  .pn-tile span:last-child { font-size: 16px; line-height: 26px; margin-top: 10px; }
  .pn-qlist li { padding: 20px 0; font-size: 18px; gap: 30px; }
  .pn-qlist li span { font-size: 26px; min-width: 32px; }
  .pn-cash__inner { gap: 66px; }
  .pn-quotes__grid { gap: 22px; margin-top: 30px; }
  .pn-quote { padding: 26px; min-height: 240px; gap: 20px; }
  .pn-quote p { font-size: 20px; line-height: 30px; }
  .pn-badges { flex-direction: column; align-items: flex-start; gap: 10px; margin-top: 32px; }
  .pn-badge { padding: 10px 20px; }
  .pn-acc { gap: 14px; }
  .pn-capital .pn-h2 { font-size: 38px; }
  .pn-capform { gap: 0; margin-top: 30px; }
  .pn-capform .pn-field { margin-bottom: 16px; }
  .pn-field label { font-size: 15px; margin-bottom: 8px; }
  .pn-field input { height: 54px; }
  .pn-capform__go { width: 100%; height: 54px; margin-top: 6px; }
  .pn-fine { margin-top: 28px; font-size: 13px; line-height: 21px; }
  .pn-footer { padding-block: 64px 41px; }
  .pn-footer .pn-container { padding-inline: 28px; }
  .pn-logo--big { font-size: 64px; }
  .pn-footer__cols { grid-template-columns: 1fr 1fr; row-gap: 32px; }
  .pn-footer__col--learn { grid-column: 1 / -1; }
}

/* 18d. MOBILE: Home sections */
@media (max-width: 999px) {
  .pn-cash { padding-block: 64px; }
  .pn-cash .pn-h2 { font-size: 40px; line-height: .97; margin-top: 24px; }
  .pn-cash .pn-sub { margin-top: 20px; }
  .pn-cash .pn-btn { margin-top: 28px; }
  .pn-qlist li { padding: 20.5px 0; line-height: 24px; }
  .pn-promo .pn-h2 { margin-top: 24px; }
  .pn-promo__grid { margin-top: 38px; gap: 22px; }
  .pn-promo .pn-card { padding: 26px; min-height: 0; }
  .pn-promo .pn-card .pn-eyebrow { font-size: 13px; }
  .pn-promo .pn-h3--big { font-size: 38px; line-height: .97; margin-top: 18px; }
  .pn-promo .pn-card p { margin-top: 18px; }
  .pn-promo .pn-btn { margin-top: 24px; }
  .pn-sechead .pn-btn { min-height: 54px; margin-bottom: 0; }
  .pn-insights .pn-sechead { gap: 30px; }
  .pn-posts { gap: 22px; margin-top: 32px; }
  .pn-post__img { aspect-ratio: 350 / 218; padding: 0 22px 20px; }
  .pn-capital .pn-sub { font-size: 18px; line-height: 27px; margin-top: 20px; }
  .pn-footer__col li a { padding: 6px 0; min-height: 0; line-height: 20px; position: relative; }
  .pn-footer__col li a::after { content: ""; position: absolute; inset: -6px -4px; }
  .pn-footer__mail, .pn-footer__legal a { min-height: 0; position: relative; }
  .pn-footer__mail::after, .pn-footer__legal a::after { content: ""; position: absolute; inset: -12px -4px; }
}

/* 18e. MOBILE: grids stack to one column; sets of four stay 2 + 2 */
@media (max-width: 999px) {
  .pn-g--5, .pn-g--6 { grid-template-columns: 1fr; }
  .pn-g--5 > :last-child { grid-column: auto; }
  .pn-g--6 { gap: 0; margin-top: 30px; }
  .pn-g--6 .pn-tl { border-top-width: 4px; padding: 22px 0; }
  .pn-g--6 .pn-tl .n { font-size: 52px; }
  .pn-g--6 .pn-tl h3 { font-size: 21px; margin-top: 14px; }
  .pn-g--6 .pn-tl p { font-size: 16px; line-height: 24px; margin-top: 8px; }
  .pn-g--5 { gap: 22px; margin-top: 30px; }
  .pn-nc { padding: 26px; min-height: 0; border-top-width: 6px; }
  .pn-nc .n { font-size: 44px; }
  .pn-nc h3 { font-size: 24px; margin-top: 10px; }
  .pn-nc p { font-size: 16px; line-height: 25px; margin-top: 14px; }
  .pn-page--invest .pn-nc { min-height: 240px; }
  .pn-page--invest .pn-fc { min-height: 200px; padding: 26px; }
  .pn-fc { padding: 26px; }
  .pn-fc h3 { font-size: 24px; }
  .pn-fc p { font-size: 16px; line-height: 25px; }
}

/* 18f. MOBILE: page-specific desktop hero grids must collapse */
@media (max-width: 999px) {
  body.pn-page .pn-hero__inner { grid-template-columns: 1fr; padding-block: 64px 64px; min-height: 0; row-gap: 40px; column-gap: 0; align-items: start; }
  body.pn-page--home .pn-hero__inner { padding-bottom: 174px; }
  body.pn-page .pn-hero, body.pn-page .pn-hero--page { min-height: 0; }
  body.pn-page .pn-hero__stats { align-self: auto; margin-top: 0; }
  body.pn-page .pn-hero__copy { padding-top: 0; }
  body.pn-page .pn-hero--sell .pn-hero__copy { padding-top: 0; }
  body.pn-page .pn-update, body.pn-page .pn-proj__inner, body.pn-page .pn-pro-2col, body.pn-page .pn-reach__grid, body.pn-page .pn-proof__top, body.pn-page .pn-enquire__inner, body.pn-page .pn-sec .pn-pro-2col, body.pn-page .pn-sec .pn-pro-2col--mm { grid-template-columns: 1fr; gap: 32px; }
}

/* 18g. MOBILE: reset fixed desktop widths of the page-specific blocks */
@media (max-width: 999px) {
  .pn-pstats { grid-template-columns: 1fr 1fr; gap: 20px 14px; margin-top: 28px; max-width: none; }
  .pn-pstat strong { font-size: 34px; }
  .pn-car__slide { aspect-ratio: 350 / 262; }
  body.pn-page .pn-hero__inner--split { grid-template-columns: 1fr; }
  .pn-reach .pn-reach__grid { grid-template-columns: 1fr; }
  .pn-reach__big { height: auto; min-height: 320px; padding: 30px; }
  .pn-reach__big .pn-bigfig { font-size: 130px; }
  .pn-reach .pn-stats--on-dark { height: auto; grid-template-columns: 1fr 1fr; gap: 28px 14px; padding-top: 28px; }
  .pn-platforms { grid-template-columns: 1fr; gap: 22px; }
  .pn-platform { height: auto; min-height: 0; padding: 28px; }
  .pn-platform .pn-bigfig { font-size: 80px; }
  .pn-proof__top { grid-template-columns: 1fr; }
  .pn-supplier { min-height: 0; }
  .pn-reels { grid-template-columns: 1fr 1fr; gap: 14px; }
  .pn-bar { grid-template-columns: 110px 1fr; font-size: 14px; }
  .pn-who .pn-pro-2col, .pn-pro-2col { grid-template-columns: 1fr; }
  .pn-stats--2 { margin-top: 36px; gap: 22px 14px; }
  .pn-stats--2 .pn-stat strong { font-size: 40px; }
  .pn-bytype .pn-nc { min-height: 120px; }
  .pn-partners .pn-g--cards { gap: 16px; margin-top: 30px; }
  .pn-partners .pn-fc { min-height: 0; padding: 26px; }
  .pn-cats { grid-template-columns: 1fr 1fr; gap: 14px; }
  .pn-cat { height: 100px; padding: 0 22px 22px; font-size: 20px; }
  .pn-pipes { grid-template-columns: 1fr; gap: 22px; }
  .pn-pipe { height: auto; padding: 26px; }
  .pn-pipes--ways .pn-pipe { height: auto; }
  .pn-pipe__h { font-size: 34px; }
  .pn-pipe__fig { margin-top: 20px; flex-wrap: wrap; }
  .pn-pipe__fig strong { font-size: 64px; }
  .pn-pipe p { margin-top: 18px; max-width: none; }
  .pn-pipe .pn-btn { margin-top: 24px; }
  .pn-ways { margin-top: 64px; }
  .pn-pipeline { padding-block: 64px; }
  .pn-enquire { padding-block: 64px; }
  .pn-enquire__inner { grid-template-columns: 1fr; gap: 36px; }
  .pn-enquire .pn-formcard { padding: 24px; }
  .pn-delivered { grid-template-columns: 1fr 1fr; gap: 14px; }
  .pn-dtile { aspect-ratio: 168 / 210; padding: 16px; }
  .pn-dtile strong { font-size: 18px; }
  .pn-proj { padding-block: 64px; }
  .pn-proj__name { font-size: 80px; margin-top: 20px; }
  .pn-proj p.pn-proj__desc { font-size: 18px; line-height: 28px; max-width: none; }
  .pn-update, .pn-agents .pn-update, body.pn-page--sell .pn-agents .pn-update { grid-template-columns: 1fr; gap: 32px; }
  .pn-docmock { height: 380px; }
  .pn-invest-update { padding-block: 64px; }
  .pn-team { grid-template-columns: 1fr 1fr; gap: 14px; }
  .pn-journey li { grid-template-columns: 150px 1fr; gap: 24px; padding: 32px 0 20px; }
  .pn-journey .y { font-size: 52px; }
  .pn-journey h3 { font-size: 20px; margin-top: 4px; }
  .pn-journey p { font-size: 16px; line-height: 24px; }
  .pn-co { height: auto; min-height: 230px; padding: 26px; }
  .pn-co .pn-h3--co { font-size: 34px; padding-top: 28px; }
  .pn-spots { height: auto; padding: 36px 26px; }
  .pn-spots strong { font-size: 100px; }
  .pn-page--learn .pn-sec .pn-pro-2col .pn-g--2 { grid-template-columns: 1fr; }
  .pn-page--learn .pn-sec .pn-pro-2col .pn-fc { padding: 26px; }
  .pn-event { height: auto; grid-template-columns: 78px 1fr; gap: 16px; padding: 16px; }
  .pn-event__date { width: 78px; height: 78px; }
  .pn-event__date b { font-size: 32px; }
  .pn-minis--3 { grid-template-columns: 1fr; gap: 12px; margin-top: 30px; }
.pn-page--about .pn-photo--hero { margin-top: 0; height: 380px; }
body.pn-page--about .pn-hero__inner { row-gap: 60px; }
  .pn-minis--3 .pn-mini { min-height: 122px; padding: 26px; }
  .pn-minis--3 .pn-mini strong { font-size: 44px; }
  .pn-pro-2col--mm .pn-photo { height: 480px; margin-top: 28px; }
  .pn-sponsor__row { flex-direction: column; align-items: flex-start; gap: 22px; margin-top: 12px; }
  .pn-sponsor .pn-nc { height: auto; }
  .pn-callout--row { flex-direction: column; align-items: flex-start; gap: 10px; }
  .pn-callout--row .pn-eyebrow { margin-right: 0; }
  .pn-feature { grid-template-columns: 1fr; padding: 26px; }
  .pn-feature h3 { font-size: 38px; }
  .pn-feature__price { font-size: 40px; }
  .pn-gofurther { grid-template-columns: 1fr; }
  .pn-gofurther .pn-btn { grid-column: 1; grid-row: auto; margin-top: 28px; }
  .pn-product { min-height: 0; }
  .pn-postfeat { grid-template-columns: 1fr; height: auto; }
  .pn-postfeat__img { height: 240px; }
  .pn-postfeat h3 { font-size: 36px; }
  .pn-cta2 { height: auto; flex-direction: column; align-items: flex-start; padding: 26px; }
  .pn-cta2 h3 { font-size: 28px; }
  .pn-routes .pn-g { gap: 14px; }
  .pn-page--contact .pn-contact { padding-block: 64px; }
  .pn-page--contact .pn-contact .pn-formcard { margin-top: 36px; }
  .pn-cform { min-height: 0; }
  .pn-page--landing .pn-hero--lp .pn-cform { min-height: 0; }
  .pn-lpfacts { grid-template-columns: 1fr 1fr; gap: 14px; }
  .pn-lpfact { height: auto; padding: 18px; }
  .pn-lpbanner-sec, .pn-lpfacts-sec { padding-block: 48px; }
  .pn-lpbanner .pn-h2 { font-size: 40px; }
}

/* 18h. MOBILE: projects + misc */
.pn-car__dot { width: 12px; height: 12px; border-radius: 50%; }
.pn-car__dot[aria-current="true"] { width: 28px; border-radius: 6px; }
.pn-car__dots { align-items: center; }
@media (max-width: 999px) {
  .pn-proj__name { font-size: 56px; line-height: 1; margin-top: 18px; }
  .pn-pstats { gap: 22px 24px; margin-top: 30px; }
  .pn-pstat { border-top: 3px solid rgba(169,187,156,.6); padding-top: 12px; }
  .pn-pstat strong { font-size: 36px; line-height: 1.1; }
  .pn-pstat span { font-size: 16px; line-height: 25px; }
  .pn-car__arrow { width: 52px; height: 52px; margin-top: -52px; }
  .pn-car__arrow--prev { left: 16px; }
  .pn-car__arrow--next { right: 16px; }
  .pn-car__bar { margin-top: 18px; }
}

@media (max-width: 999px) {
  .pn-sponsor .pn-g--4 { grid-template-columns: 1fr; }
  .pn-sponsor .pn-nc h3 { white-space: normal; }
  .pn-reach .pn-stats--on-dark .pn-stat strong { font-size: 34px; }
  .pn-reach__big .pn-bigfig { font-size: 118px; }
  .pn-page--invest .pn-mini strong, .pn-mini strong { font-size: 40px; }
  .pn-minis { grid-template-columns: 1fr 1fr; }
}

/* 18i. In-between widths (1000-1199): compact desktop header so it never overflows */
@media (min-width: 1000px) and (max-width: 1199px) {
  .pn-header__inner { padding-inline: 20px; gap: 12px; }
  .pn-logo { font-size: 28px; }
  .pn-nav { gap: 8px; }
  .pn-nav__list { gap: 0; }
  .pn-nav__link { padding: 8px 8px; font-size: 13px; }
  .pn-nav__cta { gap: 6px; }
  .pn-nav__cta .pn-btn { padding: 10px 12px; font-size: 13px; min-height: 44px; }
}

@media (max-width: 1199px) {
  .pn-footer__top { grid-template-columns: 1fr 1.6fr; gap: 32px; }
  .pn-footer__cols { grid-template-columns: repeat(3, 1fr); }
  .pn-logo--big { font-size: 52px; }
}
@media (max-width: 999px) {
  .pn-footer__top { grid-template-columns: 1fr; }
  .pn-footer__cols { grid-template-columns: 1fr 1fr; }
  .pn-logo--big { font-size: 64px; }
}

/* 18j. In-between widths (1000-1199): fluid versions of the fixed desktop grids */
@media (min-width: 1000px) and (max-width: 1199px) {
  .pn-who .pn-pro-2col { grid-template-columns: 1fr 1fr; gap: 32px; }
  .pn-reach .pn-reach__grid { grid-template-columns: 1fr 1fr; gap: 22px; }
  .pn-reach .pn-stats--on-dark { height: auto; gap: 24px 14px; }
  .pn-reach .pn-stats--on-dark .pn-stat strong { font-size: 36px; }
  .pn-reach__big .pn-bigfig { font-size: 120px; }
  .pn-platforms { grid-template-columns: 1fr 1fr; }
  .pn-platform { height: auto; min-height: 323px; }
  .pn-proof__top { grid-template-columns: 1fr 300px; gap: 28px; }
  .pn-bar { grid-template-columns: 140px 1fr; }
  .pn-proj__inner { grid-template-columns: 1fr 380px; gap: 40px; }
  .pn-pstats { grid-template-columns: 1fr 1fr; }
  .pn-enquire__inner { grid-template-columns: 1fr 1fr; gap: 32px; }
  .pn-update { grid-template-columns: 1fr 320px; gap: 40px; }
  .pn-page--learn .pn-sec .pn-pro-2col { grid-template-columns: 1fr 1.5fr; gap: 40px; }
  .pn-page--learn .pn-sec .pn-pro-2col .pn-g--2 { grid-template-columns: 1fr 1fr; }
  .pn-page--learn .pn-sec .pn-pro-2col--mm { grid-template-columns: 1fr 340px; gap: 32px; }
  .pn-minis--3 { grid-template-columns: repeat(3, 1fr); }
  .pn-reels { grid-template-columns: repeat(3, 1fr); }
  body.pn-page--sell .pn-hero__inner { grid-template-columns: 1fr 400px; column-gap: 40px; }
  body.pn-page--invest .pn-hero__inner, body.pn-page--learn .pn-hero__inner, body.pn-page--promote .pn-hero__inner, body.pn-page--about .pn-hero__inner { column-gap: 40px; }
  .pn-sponsor .pn-g--4 { grid-template-columns: 1fr 1fr; }
  .pn-sponsor .pn-nc h3 { white-space: normal; }
  .pn-event { grid-template-columns: 110px 1fr; }
  .pn-event .pn-btn { grid-column: 2; justify-self: start; }
  .pn-event { height: auto; }
  .pn-g--5, .pn-g--6 { grid-template-columns: repeat(3, 1fr); }
  .pn-pipe { height: auto; min-height: 462px; }
  .pn-pipes--ways .pn-pipe { min-height: 444px; }
  .pn-cats { grid-template-columns: repeat(2, 1fr); }
  .pn-delivered { grid-template-columns: repeat(2, 1fr); }
  .pn-feature { grid-template-columns: 240px 1fr; }
  .pn-feature h3 { font-size: 40px; }
  .pn-postfeat { grid-template-columns: 1fr 1fr; }
  .pn-postfeat h3 { font-size: 38px; }
}
@media (max-width: 359px) {
  body.pn-page .pn-h1 { font-size: 42px; }
  .pn-h2 { font-size: 30px; }
  .pn-stat strong, .pn-mini strong, .pn-pstat strong { font-size: 28px; }
  .pn-split .pn-h3, .pn-promo .pn-h3--big { font-size: 30px; }
  .pn-proj__name { font-size: 44px; }
  .pn-logo { font-size: 30px; }
  .pn-header__inner { padding-inline: 14px; }
}

/* 18k. MOBILE: sets of four stack in one column; steps become ruled rows */
@media (max-width: 999px) {
  .pn-g--4 { grid-template-columns: 1fr; gap: 22px; }
  .pn-g--4 .pn-tl, .pn-g--3 .pn-tl { border-top-width: 4px; padding: 22px 0 22px; }
  .pn-sell-how .pn-g, .pn-g--4:has(.pn-tl) { gap: 0; margin-top: 30px; }
  .pn-tl .n { font-size: 52px; }
  .pn-tl h3 { font-size: 22px; margin-top: 14px; }
  .pn-tl p { font-size: 16px; line-height: 24px; margin-top: 8px; }
  .pn-situ .pn-g { gap: 22px; margin-top: 30px; }
  .pn-situ .pn-fc { border-top-width: 6px; padding: 26px; min-height: 180px; }
  .pn-situ .pn-fc h3 { font-size: 24px; }
  .pn-situ .pn-fc p { font-size: 16px; line-height: 25px; margin-top: 12px; }
  .pn-routes .pn-g { grid-template-columns: 1fr; }
  .pn-routes a { min-height: 190px; }
}

/* 18l. MOBILE: cards from the About / Events / Insights boards */
@media (max-width: 999px) {
  .pn-co .pn-h3--co { font-size: 40px; padding-top: 34px; }
  .pn-co { height: 280px; min-height: 0; }
  .pn-events-top { padding-block: 64px; }
  .pn-events-top .pn-g { gap: 22px; }
  .pn-fc--event { height: 240px; }
  .pn-fc--event h3 { font-size: 34px; }
  .pn-postfeat { padding: 26px; }
  .pn-postfeat__img { height: 360px; border-radius: 0; }
  .pn-postfeat__body { padding: 28px 48px 20px; }
  .pn-filters--top { margin-bottom: 25px; }
  .pn-filter { padding: 10px 20px; }
}

/* 18m. MOBILE: landing page, cash-offer form, reels */
@media (max-width: 999px) {
  body.pn-page--landing .pn-hero__inner { padding-block: 76px 64px; row-gap: 44px; }
  .pn-lp-head__inner { height: 74px; padding-inline: 28px; }
  .pn-cform { padding: 26px; border-radius: 28px; }
  .pn-cform h2, .pn-cform h3.q { font-size: 38px; line-height: 40px; }
  .pn-cform__intro { font-size: 16px; line-height: 26px; }
  .pn-opt { padding: 20px 22px; min-height: 80px; border-radius: 14px; }
  .pn-lp-foot { height: auto; padding-block: 36px; }
  .pn-lp-foot__inner { gap: 14px; }
  .pn-reel em { aspect-ratio: 168 / 300; }
  .pn-reels { margin-top: 28px; row-gap: 22px; }
  .pn-reel span { border-top: 1px solid rgba(61,75,58,.25); padding-top: 12px; }
}

/* 18n. MOBILE: Sell hero */
@media (max-width: 999px) {
  body.pn-page--sell .pn-hero__inner { padding-top: 76px; row-gap: 56px; }
  body.pn-page--sell .pn-hero .pn-lead { margin-top: 30px; }
  body.pn-page--sell .pn-chips { gap: 13px; margin-top: 28px; }
}

@media (max-width: 999px) {
  .pn-situ .pn-g { margin-top: 57px; }
  .pn-sell-how .pn-g, .pn-g--4:has(.pn-tl) { margin-top: 55px; }
  .pn-g--4 .pn-tl, .pn-g--3 .pn-tl { padding: 23px 0; }
  .pn-sell-how .pn-note { margin-top: 38px; }
}

/* 18o. MOBILE: Projects */
@media (max-width: 999px) {
  .pn-dtile { aspect-ratio: 1 / 1; padding: 14px 14px 16px; border-radius: 28px; }
  .pn-dtile em { font-size: 11px; }
  .pn-dtile strong { font-size: 18px; line-height: 1.15; }
  .pn-dtile span { font-size: 16px; margin-top: 4px; }
  .pn-delivered { margin-top: 48px; gap: 14px; }
  .pn-track .pn-note { margin-top: 28px; font-size: 16px; }
  .pn-proj { padding-block: 72px; }
  body.pn-page--projects .pn-hero__inner--split { row-gap: 24px; padding-bottom: 66px; }
}

/* 18p. MOBILE: About journey + team */
@media (max-width: 999px) {
  .pn-journey li { padding: 24px 0 24px; }
  .pn-journey h3 { font-size: 24px; line-height: 26px; margin-top: 21px; }
  .pn-journey p { font-size: 16px; line-height: 25px; margin-top: 8px; }
  .pn-journey { margin-top: 38px; }
  .pn-team { gap: 22px 14px; margin-top: 38px; }
  .pn-person em { aspect-ratio: 168 / 210; }
  .pn-page--about .pn-badges { margin-top: 28px; }
}

/* 18q. MOBILE: Promote */
@media (max-width: 999px) {
  .pn-bytype .pn-g { gap: 16px; margin-top: 30px; }
  .pn-bytype .pn-nc { min-height: 135px; }
  .pn-partners .pn-fc { display: flex; flex-direction: column; justify-content: flex-end; min-height: 220px; padding: 26px; }
  .pn-partners .pn-fc--cream-on { background: var(--sage); }
  .pn-cat { height: 140px; }
  .pn-pipe .pn-pill { display: block; width: 100%; }
  .pn-pipeline .pn-pipes:not(.pn-pipes--ways) .pn-pipe__fig, .pn-pipe--forest .pn-pipe__fig { flex-direction: column; align-items: flex-start; gap: 6px; }
  .pn-pipe__fig span { font-weight: 700; max-width: none; }
  .pn-pipe__h { font-size: 40px; line-height: 1; margin-top: 18px; }
}


/* 19. SURFACES: which secondary-text colour sits on which background (mockup: #DCD6CA on green, ink on light) ---------- */
.pn-sec--forest, .pn-sec--deep, .pn-sec--ink, .pn-hero, .pn-proj, .pn-footer, .pn-lp-head, .pn-lp-foot,
.pn-card--forest, .pn-card--deep, .pn-nc, .pn-step, .pn-supplier, .pn-docmock, .pn-mini, .pn-pipe--deep, .pn-pipe--forest,
.pn-postfeat, .pn-callout, .pn-acc__item, .pn-cat, .pn-cta2--ink, .pn-route--forest, .pn-reach__cost { --t2: var(--dim); }
.pn-hero--cream, .pn-sec--cream, .pn-sec--orange, .pn-card--orange, .pn-card--cream, .pn-fc, .pn-fc--sage, .pn-fc--orange,
.pn-step--orange, .pn-mini--sage, .pn-bignum, .pn-spots, .pn-feature, .pn-pipe--orange, .pn-pipe--sage, .pn-platform, .pn-reach__big,
.pn-event, .pn-product, .pn-quote, .pn-formcard, .pn-cform, .pn-lpfact, .pn-dtile--sage, .pn-dtile--orange, .pn-dtile--card,
.pn-route--orange, .pn-route--sage, .pn-route--card, .pn-cta2--sage, .pn-faq--cream .pn-acc__item { --t2: var(--ink); }
.pn-fc--forest, .pn-fc--deep, .pn-dtile--forest, .pn-dtile--deep { --t2: var(--dim); }

/* 20. MOBILE SPEC (390px boards): sizes and gaps measured with the ink-row tool ------------------------------------ */
@media (max-width: 999px) {
  .pn-h2 { font-size: 40px; line-height: 1; margin-top: 31px; }
  /* footer */
  .pn-footer { padding-block: 81px 37px; }
  .pn-footer__tag { margin-top: 11px; line-height: 17px; }
  .pn-footer__top { gap: 26px; }
  .pn-footer__cols { grid-template-columns: 1fr auto; }
  .pn-footer__legal { margin-top: 42px; }
  .pn-footer__risk { line-height: 20px; }
  .pn-footer__mail { margin-top: 15px; }
  .pn-footer__top { gap: 23px; }
  .pn-footer__legal { line-height: 21px; gap: 12px; }
  .pn-footer__social { gap: 8px; }
  .pn-how { padding-bottom: 60px; }
  .pn-projects { padding-bottom: 60px; }
  /* events: intro cards and stat boxes */
  .pn-g .pn-fc--event { padding: 26px; height: 240px; }
  .pn-g .pn-fc--event h3 { font-size: 34px; margin-top: 12px; line-height: 1.1; }
  .pn-g .pn-fc--event p { font-size: 18px; line-height: 26px; margin-top: 14px; }
  .pn-minis.pn-minis--3 { grid-template-columns: 1fr; }
  /* home */
  .pn-page--home .pn-h1 { font-size: 57px; }
  .pn-page--home .pn-hero .pn-pill { margin-bottom: 30px; }
  .pn-page--home .pn-hero__art { aspect-ratio: 350 / 410; }
  .pn-page--home .pn-hero .pn-lead { margin-top: 32px; }
  body.pn-page--home .pn-hero__inner { row-gap: 22px; }
  .pn-page--home .pn-stats { margin-top: 56px; }
  .pn-page--home .pn-stat { padding-top: 21px; }
  .pn-page--home .pn-stats { row-gap: 14px; }
  .pn-page--home .pn-split { margin-top: 64px; }
  .pn-page--home .pn-split .pn-h3 { font-size: 36px; line-height: 1; margin-top: 20px; max-width: 7.5em; }
  .pn-page--home .pn-split .pn-btn { margin-top: 21px; }
  .pn-page--home .pn-step h3 { line-height: 28px; margin-top: 12px; }
  .pn-page--home .pn-step p { margin-top: 14px; }
  .pn-sechead { gap: 20px; }
  .pn-insights .pn-sechead { gap: 20px; }
  .pn-capital .pn-h2 { font-size: 40px; line-height: 1; margin-top: 26px; }
  .pn-capital .pn-sub { margin-top: 26px; }
  .pn-capform { margin-top: 35px; }
  .pn-capform .pn-field { margin-bottom: 15px; }
  .pn-capform .pn-field label { font-size: 14px; line-height: 16px; margin-bottom: 10px; }
  .pn-capform__go { margin-top: -1px; }
  .pn-capital .pn-fine { font-size: 12px; line-height: 20px; margin-top: 26px; }
  .pn-projects .pn-h2 { margin-top: 24px; }
  .pn-page--home .pn-tile__img { margin-bottom: 14px; }
  .pn-page--home .pn-tile strong { line-height: 28px; }
  .pn-page--home .pn-tile span:last-child { margin-top: 15px; }
  /* projects: track record */
  .pn-track .pn-h2 { margin-top: 27px; }
  .pn-track .pn-delivered { margin-top: 40px; }
  .pn-track .pn-note { font-size: 14px; }
  /* about: hero */
  .pn-page--about .pn-hero .pn-h1 { font-size: 53px; line-height: 51px; }
  .pn-page--about .pn-hero .pn-pill { margin-bottom: 29px; }
  .pn-journey-sec .pn-h2 { margin-top: 27px; }
  .pn-journey { margin-top: 40px; }
  .pn-journey li { padding: 23px 0 25px; }
  .pn-journey h3 { margin-top: 23px; }
  .pn-journey p { line-height: 25.5px; }
  .pn-team { gap: 13px 14px; margin-top: 40px; }
  .pn-page--about .pn-badges { margin-top: 30px; }
  /* sell */
  .pn-page--sell .pn-h1 { font-size: 54px; line-height: 51px; }
  .pn-page--sell .pn-chip { padding-block: 10px; border-width: 2px; padding-inline: 20px; }
  .pn-page--sell .pn-hero .pn-pill { margin-bottom: 29px; }
  body.pn-page--sell .pn-hero--sell .pn-hero__copy p.pn-lead { margin-top: 30px; }
  body.pn-page--sell .pn-hero__inner { row-gap: 52px; }
  body.pn-page--sell .pn-chips { gap: 9.4px; margin-top: 30px; }
  .pn-cform h2, .pn-cform h3.q { line-height: 43px; }
  .pn-cform__kicker { margin-bottom: 10px; }
  .pn-cform__bar { margin-top: 10px; }
  .pn-page--sell .pn-situ .pn-g { margin-top: 40px; }
  .pn-page--sell .pn-situ .pn-fc p { margin-top: 10px; }
  .pn-sell-how .pn-note { margin-top: 13px; }
  .pn-sell-how { padding-bottom: 64px; }
  /* learn pages: hero */
  body.pn-page--learn .pn-hero .pn-hero__inner.pn-hero__inner { padding-block: 64px 64px; }
  body.pn-page--learn .pn-hero .pn-h1 { font-size: 53px; line-height: 51px; }
  body.pn-page--learn .pn-hero .pn-pill { margin-bottom: 28px; }
  body.pn-page--learn .pn-hero .pn-lead { margin-top: 31px; }
  body.pn-page--learn .pn-subnav { margin-top: 31px; }
  .pn-subnav { gap: 10px; }
  /* toolkit: featured product + filters */
  .pn-feature .pn-feature__img { height: 223px; padding: 20px 20px 17px; }
  .pn-feature h3 { font-size: 36px; line-height: 36px; margin-top: 23px; }
  .pn-feature__price { font-size: 52px; }
  .pn-feature p { font-size: 18px; line-height: 28px; margin-top: 20px; }
  .pn-feature__buy { flex-direction: column; align-items: flex-start; gap: 17px; margin-top: 19px; }
  .pn-store .pn-filters { margin-top: 62px; margin-bottom: 23px; }
  .pn-postfeat h3 { font-size: 34px; line-height: 34px; }
  body.pn-page--learn .pn-postfeat { gap: 0; }
  .pn-postfeat__body { padding: 47px 48px 48px; }
  .pn-postfeat p { margin-top: 18px; }
  body.pn-page--learn .pn-posts--grid { margin-top: 64px; gap: 37px 22px; }
  .pn-ctas-sec { padding-block: 64px; }
  .pn-events-top, .pn-routes, .pn-pipeline, .pn-enquire, .pn-invest-update { padding-block: 64px; }
  .pn-events-top .pn-g { margin-top: 0; }
  body.pn-page--learn .pn-pro-2col--mm .pn-h2 { margin-top: 25px; }
  body.pn-page--learn .pn-minis--3 .pn-mini { min-height: 122px; padding: 27px 26px 24px; }
  body.pn-page--learn .pn-minis--3 .pn-mini .pn-eyebrow { margin-bottom: 0; }
  .pn-event { grid-template-columns: 76px 1fr; gap: 16px; padding: 32px 26px 26px; align-items: start; }
  .pn-event__date { width: 76px; height: 76px; }
  .pn-event h3 { line-height: 28px; }
  .pn-event .pn-btn { margin-top: -3px; }
  .pn-event__date b { font-size: 26px; }
  .pn-upcoming .pn-h2 { margin-top: 27px; }
  .pn-upcoming .pn-events { gap: 14px; margin-top: 32px; }
  body.pn-page--learn .pn-upcoming { padding-bottom: 64px; }
  body.pn-page--learn .pn-sponsor { padding-bottom: 64px; }
  body.pn-page--learn .pn-upcoming .pn-note { margin-top: 12px; }
  body.pn-page--learn .pn-sponsor .pn-sub { margin-top: 7px; }
  .pn-sponsor .pn-sub + .pn-btn, .pn-sponsor .pn-btn { margin-top: 10px; }
  body.pn-page--learn .pn-sponsor .pn-g--4 { gap: 16px; }
  .pn-callout--row, .pn-sponsor .pn-callout--deep { flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 13px 28px; padding: 26px; line-height: 26px; }
  .pn-callout--row .pn-eyebrow { width: 100%; margin: 0; }
  .pn-callout--row span:not(.pn-eyebrow) + span::before { display: none; }
  /* contact */
  .pn-contact .pn-pill { margin-bottom: 0; }
  .pn-contact .pn-h1 { margin-top: 21px; font-size: 54px; line-height: 54px; }
  body.pn-page--contact .pn-contact .pn-lead { margin-top: 25px; }
  body.pn-page--contact .pn-contact .pn-formcard { padding: 26px; margin-top: 42px; }
  body.pn-page--contact .pn-fields2 { gap: 0; }
  body.pn-page .pn-routes .pn-g { gap: 20px; }
  body.pn-page .pn-routes a { min-height: 200px; padding: 26px; display: flex; flex-direction: column; align-items: flex-start; }
  body.pn-page .pn-routes strong { font-size: 26px; line-height: 28px; margin-top: 8px; }
  body.pn-page .pn-routes i { margin-top: auto; font-size: 15px; line-height: 18px; font-style: normal; }
  /* cash-offer landing */
  body.pn-page--landing .pn-hero--lp .pn-h1 { font-size: 44px; line-height: 43px; }
  body.pn-page--landing .pn-hero--lp .pn-chips { flex-direction: row; flex-wrap: wrap; gap: 10px; }
  body.pn-page--landing .pn-hero--lp .pn-pill { margin-bottom: 23px; }
  .pn-lpfacts { gap: 14px; }
  .pn-lpfact { padding: 20px 22px 18px; }
  .pn-lpfact strong { font-size: 24px; }
  .pn-lpfact span { font-size: 15px; line-height: 21px; margin-top: 6px; }
  body.pn-page--landing .pn-faq .pn-acc { margin-top: 41px; }
  .pn-lp-foot a { min-height: 0; position: relative; display: inline; }
  .pn-lp-foot a::after { content: ""; position: absolute; inset: -12px -4px; }
  .pn-lp-foot .pn-logo { text-decoration: none; }
  body.pn-page--landing .pn-lp-foot { padding-block: 42px 37px; }
  .pn-lp-foot .pn-logo { margin-bottom: 9px; }
  .pn-lp-foot ul { margin-top: 1px; }
  /* invest */
  body.pn-page--invest .pn-hero .pn-h1 { font-size: 47.5px; line-height: 46px; }
  body.pn-page--invest .pn-hero .pn-pill { margin-bottom: 28px; }
  body.pn-page--invest .pn-hero .pn-lead { margin-top: 30px; }
  body.pn-page--invest .pn-hero .pn-btnrow { margin-top: 31px; }
  body.pn-page--invest .pn-hero__inner { row-gap: 56px; }
  body.pn-page--invest .pn-bignum { min-height: 260px; padding: 26px; }
  body.pn-page--invest .pn-bignum strong { font-size: 75px; }
  body.pn-page--invest .pn-hero__stats .pn-mini strong, body.pn-page--invest .pn-mini strong { font-size: 51px; }
  body.pn-page--invest .pn-hero__stats .pn-minis { grid-template-columns: 147fr 189fr; }
  body.pn-page--invest .pn-hero__stats .pn-mini { padding-inline: 26px; }
  body.pn-page--invest .pn-invest-what .pn-nc { padding-inline: 26px; }
  body.pn-page--invest .pn-invest-what .pn-g { margin-top: 42px; }
  .pn-docmock { height: 220px; min-height: 0; padding: 26px; }
  .pn-docmock .pn-pill { font-size: 10px; padding: 9px 16px; }
  .pn-docmock strong { font-size: 38px; line-height: 35px; letter-spacing: -.037em; max-width: 4em; }
  body.pn-page--invest .pn-invest-update .pn-update { gap: 56px; }
  body.pn-page--invest .pn-invest-steps .pn-g--6 { margin-top: 53px; }
  body.pn-page--invest .pn-invest-steps .pn-tl h3 { line-height: 21px; margin-top: 12px; }
  body.pn-page--invest .pn-invest-steps .pn-tl p { margin-top: 15px; line-height: 26px; }
  body.pn-page--invest .pn-invest-steps .pn-tl:last-child { padding-bottom: 0; }
  body.pn-page--invest .pn-invest-steps { padding-bottom: 60px; }
  body.pn-page--invest .pn-invest-steps .pn-tl { padding-bottom: 19px; }
  /* promote */
  body.pn-page--promote .pn-hero .pn-pill { margin-bottom: 29px; }
  body.pn-page--promote .pn-hero .pn-lead { margin-top: 28px; }
  body.pn-page--promote .pn-hero .pn-btnrow { margin-top: 30px; }
  body.pn-page--promote .pn-hero__inner { row-gap: 26px; }
  body.pn-page--promote .pn-pipe__fig strong { font-size: 58px; line-height: 58px; }
  body.pn-page--promote .pn-pipe__fig strong { margin-top: -6px; }
  body.pn-page--promote .pn-pipe__fig span { margin-top: 11px; }
  body.pn-page--promote .pn-pipes--ways .pn-pipe__fig { margin-top: 25px; }
  body.pn-page--promote .pn-pipes--ways .pn-pipe:first-child .pn-pipe__fig { margin-top: 17px; }
  body.pn-page--promote .pn-pipe p { margin-top: 16px; }
  body.pn-page--promote .pn-pipes--ways .pn-pipe:last-child .pn-lines { margin-top: 17px; }
  body.pn-page--promote .pn-pipe .pn-btn { margin-top: 15px; }
  body.pn-page--promote .pn-enquire .pn-h2 { margin-top: 26px; }
  body.pn-page--promote .pn-enquire .pn-fields2 { gap: 0; }
  body.pn-page--promote .pn-enquire .pn-formcard { padding: 26px; }
  body.pn-page--promote .pn-enquire .pn-enquire__inner { gap: 47px; }
  body.pn-page--promote .pn-enquire .pn-field textarea { display: block; }
  body.pn-page--promote .pn-bytype .pn-g { margin-top: 36px; }
  body.pn-page--promote .pn-bytype .pn-note { margin-top: 25px; }
  body.pn-page--promote .pn-bytype { padding-bottom: 63px; }
  body.pn-page--promote .pn-partners .pn-h2 { margin-top: 23px; }
  body.pn-page--promote .pn-partners .pn-g--cards { margin-top: 32px; }
  body.pn-page--promote .pn-proof .pn-h2 { margin-top: 23px; }
  body.pn-page--promote .pn-bar { grid-template-columns: 206px 1fr; font-size: 17px; }
  body.pn-page--promote .pn-bar i { height: 42px; }
  body.pn-page--promote .pn-bar i b { border-radius: 12px; line-height: 42px; font-size: 16px; }
  body.pn-page--promote .pn-proof .pn-bars { gap: 10px; }
  body.pn-page--promote .pn-h2--mt { margin-top: 62px; }
  body.pn-page--promote .pn-reels { margin-top: 33px; row-gap: 19px; }
  body.pn-page--promote .pn-reel strong { font-size: 13px; letter-spacing: .14em; }
  body.pn-page--promote .pn-reel span { padding-top: 7px; }
  body.pn-page--promote .pn-proof { padding-bottom: 97px; }
  body.pn-page--promote .pn-supplier { padding: 26px; }
  body.pn-page--promote .pn-supplier__n { font-size: 110px; }
  body.pn-page--promote .pn-supplier p { font-size: 17.5px; line-height: 28px; margin-top: -5px; margin-bottom: 21px; max-width: 270px; }
  body.pn-page--promote .pn-supplier__row { margin-top: 0; padding: 17px 0 23px; }
  body.pn-page--promote .pn-supplier__row:last-child { padding-bottom: 3px; }
  body.pn-page--promote .pn-supplier__row strong { font-size: 44px; line-height: 44px; }
  body.pn-page--promote .pn-supplier__row span { font-size: 16px; line-height: 22px; margin-top: 1px; }
  body.pn-page--promote .pn-sec--cream .pn-h2 { margin-top: 26px; }
  body.pn-page--promote .pn-bytype .pn-h2 { margin-top: 27px; }
  body.pn-page--promote .pn-bytype .pn-note { margin-top: 29px; }
  body.pn-page--promote .pn-reach__big { min-height: 380px; padding: 40px 40px 34px; }
  body.pn-page--promote .pn-reach__big .pn-bigfig { font-size: 100px; }
  body.pn-page--promote .pn-reach__big p { font-size: 17px; line-height: 24px; margin-top: 12px; }
  body.pn-page--promote .pn-reach__big p { max-width: 250px; }
  body.pn-page--promote .pn-reach__cost { padding: 29px 40px 31px; }
  body.pn-page--promote .pn-reach__cost b { line-height: 40px; }
  body.pn-page--promote .pn-reach__cost p:first-child { line-height: 22px; }
  body.pn-page--promote .pn-reach__cost p:last-child { line-height: 26px; margin-top: 8px; }
  body.pn-page--promote .pn-reach .pn-reach__grid { gap: 24px; }
  body.pn-page--promote .pn-reach .pn-stats--on-dark .pn-stat { border-top: 3px solid var(--sage); padding-top: 21px; }
  body.pn-page--promote .pn-reach .pn-stats--on-dark .pn-stat--accent { border-top-color: var(--orange); }
  body.pn-page--promote .pn-reach .pn-stats--on-dark { gap: 24px 14px; padding-top: 0; }
  body.pn-page--promote .pn-reach .pn-stats--on-dark .pn-stat span { line-height: 26px; }
  body.pn-page--promote .pn-platform { padding: 26px 26px 18px; }
  body.pn-page--promote .pn-platform .pn-bigfig { font-size: 76px; }
  body.pn-page--promote .pn-followers { width: 100%; border-top: 2px solid var(--ink); padding-top: 9px; margin-top: 14px; }
  body.pn-page--promote .pn-followers b { font-size: 28px; }
  body.pn-page--promote .pn-stats--2 { grid-template-columns: 1fr 1fr; gap: 28px 20px; margin-top: 19px; }
  body.pn-page--promote .pn-stats--2 .pn-stat { padding-top: 18px; }
  body.pn-page--promote .pn-stats--2 .pn-stat span { margin-top: 4px; line-height: 26px; }
  .pn-invest-update .pn-h2 { margin-top: 27px; }
  body.pn-page--invest .pn-why .pn-g .pn-fc { padding: 29px 26px; }
  body.pn-page--invest .pn-why .pn-g { gap: 22px; }
  body.pn-page--invest .pn-why .pn-g .pn-fc h3 { font-size: 24px; line-height: 1.15; }
  body.pn-page--invest .pn-why .pn-g .pn-fc p { font-size: 16px; line-height: 26px; margin-top: 12px; }
  .pn-lpbanner-sec, .pn-lpfacts-sec { padding-block: 64px; }
  .pn-lpbanner .pn-h2 { font-size: 34px; line-height: 1; }
  body.pn-page--landing .pn-hero--lp .pn-chip { border-width: 2px; padding: 10px 20px; }
  body.pn-page--learn .pn-sponsor .pn-callout--deep { padding: 26px 26px 20px; }
  body.pn-page--learn .pn-sponsor .pn-note { margin-top: 32px; }
  /* circle: hero stats */
  body.pn-page--learn .pn-hero .pn-btnrow { margin-top: 30px; }
  body.pn-page--learn .pn-spots { height: 220px; padding: 36px 26px; justify-content: center; }
  body.pn-page--learn .pn-spots strong { font-size: 76px; margin-top: 7px; }
  body.pn-page--learn .pn-hero__stats .pn-mini { min-height: 124px; padding: 20px 24px 27px; }
  body.pn-page--learn .pn-btnrow + .pn-subnav { margin-top: 38px; }
  body.pn-page--learn .pn-who .pn-h2, body.pn-page--learn .pn-sec--cream .pn-pro-2col .pn-h2 { margin-top: 25px; }
  body.pn-page--learn .pn-sec--cream .pn-pro-2col .pn-g { margin-top: 26px; }
  body.pn-page--learn .pn-g--24:not(.pn-g--flush) { margin-top: 40px; }
  body.pn-page--learn .pn-g--18 { margin-top: 41px; gap: 18px; }
  body.pn-page--learn .pn-g--24 .pn-tl { padding: 15px 0 3px; }
  body.pn-page--learn .pn-g--24 .pn-tl p { margin-top: 6px; }
  body.pn-page--learn .pn-g--18 .pn-tl { padding: 19px 0 6px; }
  body.pn-page--learn .pn-g--18 .pn-tl h3 { margin-top: 3px; }
  body.pn-page--learn .pn-g--18 .pn-tl p { margin-top: 7px; }
  .pn-video__play { width: 72px; height: 72px; font-size: 1.5rem; }
  .pn-video strong { margin-top: 7px; }
  .pn-video { margin-bottom: 4px; }
  body.pn-page--learn .pn-more { margin-bottom: 8px; }
  .pn-video:last-child, body.pn-page--learn .pn-more:last-child { margin-bottom: 0; }
  .pn-video__thumb { aspect-ratio: 350 / 197; }
  body.pn-page--learn .pn-sec .pn-nc, body.pn-page--learn .pn-sec .pn-fc--num { padding: 22px 26px 24px; min-height: 200px; }
  body.pn-page--learn .pn-sec .pn-nc p, body.pn-page--learn .pn-sec .pn-fc--num p { margin-top: 12px; }
  body.pn-page--learn .pn-sec .pn-sub, body.pn-page--learn .pn-sec .pn-pro-2col .pn-sub { font-size: 18px; line-height: 28px; }
  body.pn-page--learn .pn-sec .pn-g > .pn-fc { padding-block: 24px 26px; }
  body.pn-page--learn .pn-hero__stats .pn-mini span { margin-top: 1px; }
  body.pn-page--learn .pn-hero__stats { margin-top: 15px; }
  .pn-cta2 h3 { font-size: 32px; line-height: 1.2; }
  .pn-product h3 { margin-top: 10px; font-size: 22.4px; }
  .pn-page--learn .pn-store .pn-note { margin-top: 23px; }
  .pn-gofurther .pn-h2 { margin-top: 21px; }
  .pn-gofurther .pn-sub { margin-top: 21px; }
  .pn-gofurther .pn-btn { margin-top: 33px; }
  .pn-product__row { padding-top: 11px; }
  .pn-subnav a { border-width: 2px; padding: 10px 20px; }
  .pn-subnav a.is-on { border-width: 0; padding: 10px 22px; }
  .pn-sell-how .pn-g { margin-top: 46px; }
  .pn-agents .pn-h2 { margin-top: 26px; }
  .pn-page--sell .pn-agents__card { padding: 26px; min-height: 0; }
  .pn-page--sell .pn-agents__card .pn-h3--agents { font-size: 22px; line-height: 26px; margin-top: 12px; }
  .pn-page--sell .pn-agents__card p { margin-top: 17px; }
  .pn-page--sell .pn-agents__card p + p { margin-top: 13px; }
  .pn-page--sell .pn-agents__card .pn-btn { margin-top: 17px; }
  body.pn-page--sell .pn-agents .pn-update { gap: 50px; }
  .pn-cform__intro { margin-top: 13px; }
  .pn-cform__opts { gap: 14px; margin-top: 13px; }
  .pn-opt { line-height: 21px; padding-block: 19px; }
  .pn-person span { margin-top: 10px; }
  .pn-cash .pn-h2 { line-height: 1; margin-top: 27px; }
  .pn-qlist li { padding-block: 19px; }
  .pn-cash .pn-sub { margin-top: 27px; }
  .pn-cash .pn-btn { margin-top: 29px; }
  .pn-cash__inner { gap: 64px; }
  .pn-promo .pn-h2 { margin-top: 32px; }
  .pn-promo__grid { margin-top: 44px; }
  .pn-promo .pn-btn { margin-top: 20px; }
  .pn-quotes__grid { margin-top: 33px; }
  .pn-quote p { font-size: 19px; }
  .pn-badge { line-height: 15px; }
  .pn-faq .pn-h2 { margin-top: 23px; }
  .pn-faq--cream .pn-h2 { margin-top: 23px; }
  .pn-faq--cream .pn-acc { margin-top: 42px; }
  /* accordion: arrow sits inline with the first line, wrapped lines run under it */
  .pn-acc__q { display: block; padding: 24px 40px 24px 28px; line-height: 22px; min-height: 70px; }
  .pn-acc__item.is-open .pn-acc__q { padding-bottom: 10px; min-height: 0; }
  .pn-acc__tri { display: inline-block; margin-right: 12px; vertical-align: -1px; }
  .pn-acc__a { padding-bottom: 24px; }
  .pn-promo .pn-h3 { font-size: 36px; line-height: 1; }
  .pn-page--home .pn-stat span { margin-top: 10px; }
  .pn-page--home .pn-hero .pn-btnrow { margin-top: 31px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .pn-btn:hover, .pn-float:hover { transform: none; }
  * { transition-duration: .01ms !important; }
}


/* ==========================================================================
   WORDPRESS ADDITIONS (not in the static build)
   ========================================================================== */

/* A real photo dropped into one of the design's placeholder blocks (ACF image field) fills the block. */
[class*="__img"]:has(> img), .pn-photo:has(> img), .pn-phototall:has(> img), .pn-video__thumb:has(> img),
.pn-hero__art:has(> img), .pn-proof__chart:has(> img), .pn-car__slide:has(> img), .pn-person em:has(> img) { position: relative; overflow: hidden; padding: 0; }
[class*="__img"] > img, .pn-photo > img, .pn-phototall > img, .pn-video__thumb > img,
.pn-hero__art > img, .pn-proof__chart > img, .pn-car__slide > img, .pn-person em > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }

.pn-footer__social a { color: inherit; text-decoration: none; }
.pn-footer__social a:hover { text-decoration: underline; }

/* Single article (until Pennine supplies an article design) */
.pn-article__meta { margin-top: 10px; font-size: .9rem; opacity: .7; }
.pn-article__img { margin-top: 22px; }
.pn-article__img img { width: 100%; height: auto; border-radius: var(--r-card); display: block; }
.pn-legal ul, .pn-legal ol { margin: 18px 0 0 1.2em; }
.pn-legal li { margin-top: 6px; }

/* Contact Form 7 (standing rules): wrappers, spinner, error tips, no inline success box (we redirect to /thank-you/) */
.wpcf7-form-control-wrap { display: block; }
form.wpcf7-form { position: relative; }
.wpcf7 .hidden-fields-container { display: none; }
.wpcf7-spinner { position: absolute; margin: 0; right: 0; bottom: 0; }
.pn-field { position: relative; }
.wpcf7-not-valid-tip { position: absolute; left: 0; margin-top: 0; font-size: 12px; font-weight: 700; color: #E5533D; }
.pn-cform .wpcf7-not-valid-tip { position: static; display: block; margin-top: 4px; }
.wpcf7-not-valid { box-shadow: 0 0 0 2px #E5533D !important; }
.wpcf7-response-output { margin: 14px 0 0 !important; padding: 10px 14px !important; border-radius: 10px; font-size: 14px; border-width: 2px !important; }
.wpcf7 form.sent .wpcf7-response-output { display: none; }
.pn-capform .wpcf7-response-output { grid-column: 1 / -1; }
.pn-capform .wpcf7-form-control-wrap input { width: 100%; }
input.pn-btn { border: 0; cursor: pointer; font-family: inherit; -webkit-appearance: none; appearance: none; }
.pn-cform .wpcf7-form-control-wrap { display: block; }

/* Thank-you page (/thank-you/): reuses the Contact hero look; the tick is pure CSS because WordPress strips <svg> from page content */
.pn-ty .pn-ty__tick { display: block; position: relative; width: 84px; height: 84px; margin: 0 auto 28px; border-radius: 50%; background: var(--orange); }
.pn-ty .pn-ty__tick::after { content: ""; position: absolute; left: 50%; top: 50%; width: 17px; height: 32px; margin: -4px 0 0 -2px; border: solid var(--ink); border-width: 0 5px 5px 0; transform: translate(-50%, -50%) rotate(45deg); }
.pn-ty .pn-h1 { margin-top: 0; }
.pn-ty .pn-btnrow { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 14px; margin-top: 36px; }
@media (max-width: 767px) { .pn-ty .pn-btnrow { flex-direction: column; } .pn-ty .pn-btn { width: 100%; max-width: 320px; } }
.pn-ty .pn-ty__note { margin-top: 28px; opacity: .8; }
.pn-page--thanks .pn-contact { padding-block: 112px 120px; }
@media (max-width: 767px) { .pn-page--thanks .pn-contact { padding-block: 64px; } }

/* Cookie banner (inc/tracking.php + assets/js/consent.js). Accept and Reject are the same size: refusing must be as easy as accepting. */
.pn-consent { position: fixed; z-index: 100; left: 24px; bottom: 24px; width: min(440px, calc(100vw - 48px)); background: var(--cream); color: var(--ink); border-radius: var(--r-card); padding: 24px; box-shadow: 0 24px 60px rgba(0,0,0,.32); }
.pn-consent[hidden] { display: none; }
.pn-consent__title { font-family: var(--font-head); font-weight: 800; font-size: 1.35rem; letter-spacing: -.03em; line-height: 1.1; color: var(--forest); }
.pn-consent__text { margin-top: 10px; font-size: .92rem; line-height: 1.5; }
.pn-consent__text a { text-decoration: underline; font-weight: 700; }
.pn-consent__prefs { display: grid; gap: 12px; margin-top: 16px; }
.pn-consent__prefs[hidden] { display: none; }
.pn-consent__opt { display: flex; align-items: flex-start; gap: 12px; font-size: .86rem; line-height: 1.4; cursor: pointer; }
.pn-consent__opt input { flex: none; width: 20px; height: 20px; margin-top: 2px; accent-color: var(--orange); }
.pn-consent__btns { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 18px; }
.pn-consent__btns .pn-btn { flex: 1 1 150px; min-height: 48px; padding: 12px 18px; font-size: 15px; }
.pn-consent__btns .pn-btn[hidden] { display: none; }
.pn-consent__manage { flex: 1 1 100%; min-height: 44px; font-size: .86rem; font-weight: 700; text-decoration: underline; color: var(--forest); }
@media (max-width: 767px) { .pn-consent { left: 0; right: 0; bottom: 0; width: auto; max-height: 88vh; overflow: auto; border-radius: 20px 20px 0 0; padding: 20px 20px 24px; } }
.pn-linkbtn { font: inherit; color: inherit; text-decoration: underline; cursor: pointer; padding: 0; }
@media (max-width: 1199px) { .pn-footer__legal .pn-linkbtn { display: inline-flex; align-items: center; min-height: 44px; } }

.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
