/* Project case-study modules: native containers and Gotham typography. */
.pp-case-study { --pp-case-gap: 40px; color: #373a36; }
.pp-case-study *, .pp-case-study *::before, .pp-case-study *::after { box-sizing: border-box; }
.pp-case-hero { position: relative; isolation: isolate; display: flex; align-items: end; min-height: 560px; background: #373a36; color: #fff; }
.pp-case-hero::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(0,0,0,.83), rgba(0,0,0,0) 85%); }
.pp-case-hero__image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.pp-case-hero--top .pp-case-hero__image { object-position: center top; }
.pp-case-hero--bottom .pp-case-hero__image { object-position: center bottom; }
.pp-case-hero__inner { padding-top: 100px; padding-bottom: 56px; }
.pp-case-hero .content h1 { color: #fff; font-family: 'Gotham Bold', Helvetica, Arial, sans-serif; font-size: 40px; line-height: 1.1; max-width: 20ch; margin: 0 0 20px; text-wrap: balance; }
.pp-case-hero .pp-case-hero__location { margin: 0; font-size: 18px; color: #fff; }
.pp-case-hero .btn { margin-top: 24px; }
.pp-case-blocks { display: flow-root; }
.pp-case-block { margin: var(--pp-case-gap) 0; }
.pp-case-block--grey { background: #eeefed; padding: 48px 0; }
.pp-case-block--charcoal { background: #373a36; color: #fff; padding: 48px 0; }
.pp-case-study .content h2 { font-family: 'Gotham Bold', Helvetica, Arial, sans-serif; font-size: 30px; line-height: 1.27; margin: 0 0 24px; color: inherit; text-wrap: balance; }
.pp-case-study .content h3 { font-family: 'Gotham Bold', Helvetica, Arial, sans-serif; font-size: 18px; line-height: 1.45; margin: 0 0 12px; color: inherit; }
.pp-case-study .content p { font-size: 16px; line-height: 1.6; margin: 0 0 16px; }
.pp-case-study .pp-case-copy > :last-child,
.pp-case-study .pp-case-question:last-child > :last-child { margin-bottom: 0; }
.pp-case-copy { min-width: 0; overflow-wrap: anywhere; }
.pp-case-copy > p, .pp-case-copy > ul, .pp-case-copy > ol { max-width: 75ch; }
.pp-case-overview { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); align-items: center; gap: 8%; }
.pp-case-facts { margin: 0; display: grid; gap: 20px; }
.pp-case-facts > div { border-bottom: 1px solid #c7cbc6; padding-bottom: 16px; }
.pp-case-facts dt { font-family: 'Gotham Bold', Helvetica, Arial, sans-serif; font-size: 14px; margin: 0 0 6px; }
.pp-case-facts dd { margin: 0; font-size: 16px; line-height: 1.5; }
.pp-case-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: 50px; }
.pp-case-row--left .pp-case-copy { grid-column: 2; grid-row: 1; }
.pp-case-row--left .pp-case-media { grid-column: 1; grid-row: 1; }
.pp-case-study figure { margin: 0; min-width: 0; }
.pp-case-study img { display: block; max-width: 100%; }
.pp-case-media img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.pp-case-media--contain img { object-fit: contain; }
.pp-case-study figcaption { margin-top: 12px; font-size: 14px; line-height: 1.5; }
.pp-case-interview { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 8%; align-items: start; }
.pp-case-question { margin-top: 28px; }
.pp-case-study .pp-case-question h3 { color: #007c48; }
.pp-case-block--charcoal .pp-case-question h3 { color: #fff; }
.pp-case-supporting { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.pp-case-supporting figure:first-child { grid-column: 1 / -1; }
.pp-case-supporting img { width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; }
.pp-case-supporting figure:first-child img { aspect-ratio: 4 / 3; }
.pp-case-images, .pp-case-products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.pp-case-images img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.pp-case-images--products img, .pp-case-products img { aspect-ratio: 4 / 3; object-fit: contain; background: #fff; width: 100%; height: auto; }
.pp-case-images--products figcaption { font-family: 'Gotham Bold', Helvetica, Arial, sans-serif; font-size: 16px; }
.pp-case-study .pp-case-quote { max-width: 850px; margin: 0 auto; text-align: center; }
.pp-case-quote blockquote { border: 0; padding: 0; margin: 0; }
.pp-case-study .pp-case-quote blockquote p { font-family: 'Gotham Bold', Helvetica, Arial, sans-serif; font-size: 30px; line-height: 1.4; margin: 0; text-wrap: balance; }
.pp-case-quote figcaption { margin-top: 24px; }
.pp-case-overview--text-only, .pp-case-row--text-only, .pp-case-interview--text-only { display: block; }
.pp-case-downloads { display: flex; flex-wrap: wrap; gap: 24px; }
.pp-case-study a.btn, .pp-case-study a.btn-link-dark { text-decoration: none; }
.pp-case-study a.btn:hover, .pp-case-study a.btn:focus, .pp-case-study a.btn:active, .pp-case-study a.btn-link-dark:hover, .pp-case-study a.btn-link-dark:focus, .pp-case-study a.btn-link-dark:active { text-decoration: none; }
.pp-case-study a.btn-link-dark { display: inline-flex; align-items: center; gap: 12px; color: inherit; transition: color .3s ease; }
.pp-case-study a.btn-link-dark:is(:hover, :focus-visible) { color: #009d5a; }
.pp-case-study .btn-link-dark .icon-arrow { color: inherit; background-color: currentColor; transition: none; }
.pp-case-study a:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.pp-case-study .btn-primary:is(:hover, :focus-visible) { background-color: #373a36; color: #fff; }
.pp-case-block--charcoal a { color: inherit; }
.pp-case-study .btn-primary { color: #fff; }
.pp-case-study .btn { margin-top: 12px; }
@media (max-width: 900px) {
    .pp-case-row { gap: 30px; }
    .pp-case-interview { gap: 40px; }
}
@media (max-width: 767px) {
    .pp-case-hero { min-height: 440px; }
    .pp-case-hero__inner { padding-top: 80px; padding-bottom: 32px; }
    .pp-case-hero .content h1 { font-size: 32px; }
    .pp-case-study .content h2 { font-size: 25px; }
    .pp-case-overview, .pp-case-row, .pp-case-interview { display: flex; flex-direction: column; align-items: stretch; gap: 28px; }
    .pp-case-row .pp-case-copy { order: 0; }
    .pp-case-row .pp-case-media { order: 1; }
    .pp-case-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pp-case-supporting { gap: 12px; }
    .pp-case-images, .pp-case-products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
    .pp-case-study .pp-case-quote blockquote p { font-size: 25px; }
}
@media (max-width: 600px) {
    .pp-case-study { --pp-case-gap: 28px; }
    .pp-case-block--grey, .pp-case-block--charcoal { padding: 28px 0; }
    .pp-case-hero { min-height: 390px; }
    .pp-case-hero .pp-case-hero__location { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
    .pp-case-study *, .pp-case-study *::before, .pp-case-study *::after { transition: none !important; animation: none !important; }
}

/* A continuous PDF-style spread, with three independently editable modules. */
@media (min-width: 1000px) {
    /* Full-width product sections use compact cards; editorial sidebars retain two columns. */
    .pp-case-blocks > .pp-case-block--products .pp-case-catalogue { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .pp-case-study .pp-case-story.container { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); grid-template-rows: auto auto 1fr; column-gap: 6%; row-gap: var(--pp-case-gap); margin-top: var(--pp-case-gap); margin-bottom: var(--pp-case-gap); }
    .pp-case-story > .pp-case-block--interview, .pp-case-story > .pp-case-block--interview > .container, .pp-case-story .pp-case-interview { display: contents; }
    .pp-case-story .pp-case-interview > .pp-case-copy { grid-column: 1; grid-row: 1 / 4; }
    .pp-case-story .pp-case-supporting { grid-column: 2; grid-row: 1; }
    .pp-case-story > :is(.pp-case-block--images, .pp-case-block--products) { grid-column: 2; grid-row: 2; margin: 0; padding: 28px; }
    .pp-case-story > .pp-case-block--quote { grid-column: 2; grid-row: auto; align-self: start; margin: 0; padding: 32px 28px; }
    .pp-case-story > :is(.pp-case-block--images, .pp-case-block--products) > .container, .pp-case-story > .pp-case-block--quote > .container { width: 100%; max-width: none; padding: 0; }
    .pp-case-story .pp-case-images { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
    .pp-case-story :is(.pp-case-block--images, .pp-case-block--products) h2, .pp-case-story .pp-case-quote blockquote p { font-size: 25px; }
}
@media (max-width: 999px) {
    .pp-case-story.container { width: 100%; max-width: none; padding: 0; }
}

/* Catalogue cards keep the PDF product-panel geometry. */
.pp-case-product-link { display: block; color: inherit; text-decoration: none; transition: color .3s ease; }
.pp-case-product-link:is(:hover, :focus-visible, :active) { color: #009D5A; text-decoration: none; }
.pp-case-product-link .pp-case-product-name { display: block; margin-top: 12px; font-family: 'Gotham Bold', Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.5; color: inherit; }
.pp-case-study .pp-case-product-description { font-size: 14px; line-height: 1.5; margin: 8px 0 0; }
@media (prefers-reduced-motion: reduce) { .pp-case-product-link { transition: none; } }

/* Compact project imagery in both selectable layouts. */
.single-projects .pp-case-media { width: 100%; max-width: 400px; justify-self: center; align-self: center; }
.single-projects .pp-case-supporting img { max-height: 220px; }
.single-projects .pp-case-gallery img { max-height: 200px; }
.single-projects .slider-gallery .gallery img { height: 240px; width: 100%; object-fit: cover; }
.single-projects #heritage_products .heritage_products { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; }
.single-projects #heritage_products .heritage_products__item { width: auto; min-width: 0; margin: 0; padding: 0; }
.single-projects #heritage_products .heritage_products__item img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: contain; background: white; }
.single-projects #heritage_products .heritage_products__item h3 { margin: 12px 0 0; color: inherit; font-size: 16px; }
@media (min-width: 1000px) {
 .pp-case-blocks > .pp-case-block--products .pp-case-catalogue { grid-template-columns: repeat(5, minmax(0, 1fr)); }
 .single-projects .pp-case-gallery { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 999px) { .single-projects #heritage_products .heritage_products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) {
 .single-projects #heritage_products .heritage_products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
 .single-projects .pp-case-media img { max-height: 240px; }
 .single-projects .slider-gallery .gallery img { height: 200px; }
 .single-projects .pp-case-gallery img, .single-projects .pp-case-supporting img { max-height: 180px; }
}
