/*
Theme Name: Paws For Purpose
Theme URI: https://paws-for-purpose.org
Author: Paws For Purpose
Author URI: https://paws-for-purpose.org
Description: Custom block theme for Paws For Purpose, a 501(c)(3) that places trained White English Labradors and English Cream Golden Retrievers as service and therapy dogs. Design tokens and component primitives are defined in CLAUDE.md at the project root.
Version: 0.1.0
Requires at least: 6.6
Tested up to: 6.9
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pawsforpurpose
*/

/*
 * Most styling lives in theme.json (palette, typography, spacing, element defaults).
 * This file holds the few rules theme.json can't express:
 *   - text-wrap: pretty on headings
 *   - object-position via the custom --p4p-focal property on .wp-block-image
 *   - eyebrow underline (until promoted to a block-style)
 *
 * Do not hardcode hex colors here. Reference CSS custom properties emitted by
 * theme.json (var(--wp--preset--color--navy), var(--wp--custom--radius--pill), ...).
 */


:where(h1, h2, h3, h4, h5, h6) {
    text-wrap: pretty;
}

/* =====================================================================
 * Button — kind + size block-styles on core/button.
 * Selectors target the inner <a class="wp-block-button__link"> because
 * that is the actual styled element; the .is-style-* class sits on the
 * outer wrapper.
 * =================================================================== */

.wp-block-button > .wp-block-button__link {
    font-family: var(--wp--preset--font-family--sans);
    font-weight: 700;
    letter-spacing: 0.01em;
    text-decoration: none;
    border: none;
    border-radius: var(--wp--custom--radius--pill);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    white-space: nowrap;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}

.wp-block-button > .wp-block-button__link:hover {
    transform: translateY(-1px);
}

/* Kinds */

.wp-block-button.is-style-kind-primary > .wp-block-button__link {
    background-color: var(--wp--preset--color--navy);
    color: var(--wp--preset--color--paper);
    box-shadow: 0 2px 0 var(--wp--preset--color--navy-deep);
}

.wp-block-button.is-style-kind-navy > .wp-block-button__link {
    background-color: var(--wp--preset--color--navy);
    color: var(--wp--preset--color--cream);
    box-shadow: 0 2px 0 var(--wp--preset--color--navy-deep);
}

.wp-block-button.is-style-kind-sage > .wp-block-button__link {
    background-color: var(--wp--preset--color--sage);
    color: var(--wp--preset--color--cream);
    box-shadow: 0 2px 0 var(--wp--preset--color--sage-deep);
}

.wp-block-button.is-style-kind-outline > .wp-block-button__link {
    background-color: transparent;
    color: var(--wp--preset--color--navy);
    box-shadow: inset 0 0 0 1.5px var(--wp--preset--color--navy);
}

.wp-block-button.is-style-kind-ghost > .wp-block-button__link {
    background-color: transparent;
    color: var(--wp--preset--color--navy);
    box-shadow: none;
}

.wp-block-button.is-style-kind-outline-cream > .wp-block-button__link {
    background-color: transparent;
    color: var(--wp--preset--color--cream);
    box-shadow: inset 0 0 0 1.5px rgba(237, 240, 242, 0.4);
}

.wp-block-button.is-style-kind-outline-cream > .wp-block-button__link:hover {
    box-shadow: inset 0 0 0 1.5px rgba(237, 240, 242, 0.7);
}

/* Sizes — match design-files/components.jsx exactly */

.wp-block-button.is-style-size-sm > .wp-block-button__link {
    font-size: 13px;
    padding: 8px 16px;
}

.wp-block-button.is-style-size-md > .wp-block-button__link {
    font-size: 15px;
    padding: 12px 22px;
}

.wp-block-button.is-style-size-lg > .wp-block-button__link {
    font-size: 17px;
    padding: 16px 30px;
}

/* =====================================================================
 * Eyebrow — small uppercase label with a 28×2 left-rule before the text.
 * Source: design-files/components.jsx Eyebrow component.
 * =================================================================== */

.wp-block-paragraph.is-style-eyebrow {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--wp--preset--color--navy-deep);
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 8px;
}

.wp-block-paragraph.is-style-eyebrow::before {
    content: "";
    display: inline-block;
    width: 28px;
    height: 2px;
    background-color: currentColor;
    opacity: 0.8;
    flex-shrink: 0;
}

/* =====================================================================
 * Photo — block style on core/image. Adds brand radius and surfaces
 * --p4p-focal as a hook the team can set per-image via a custom HTML
 * `style="--p4p-focal:50% 30%"` to keep faces in frame.
 * =================================================================== */

.wp-block-image.is-style-p4p-photo > img,
.wp-block-image.is-style-p4p-photo-bordered > img {
    border-radius: var(--wp--custom--radius--lg);
    object-position: var(--p4p-focal, 50% 50%);
}

.wp-block-image.is-style-p4p-photo-bordered {
    padding: 8px;
    background-color: var(--wp--preset--color--sage);
    border-radius: var(--wp--custom--radius--lg);
    display: inline-block;
}

.wp-block-image.is-style-p4p-photo-bordered > img {
    display: block;
}

/* Image without a registered style still respects --p4p-focal if set. */
.wp-block-image img {
    object-position: var(--p4p-focal, 50% 50%);
}

/* =====================================================================
 * Separator — brand variants on core/separator.
 * =================================================================== */

.wp-block-separator.is-style-p4p-hairline {
    background-color: var(--wp--preset--color--line);
    color: var(--wp--preset--color--line);
    border: 0;
    height: 1px;
    max-width: var(--wp--custom--section--inner-max);
    margin-block: 32px;
    opacity: 1;
}

.wp-block-separator.is-style-p4p-sage-rule {
    background-color: var(--wp--preset--color--sage);
    color: var(--wp--preset--color--sage);
    border: 0;
    height: 2px;
    width: 28px;
    margin-block: 16px;
    margin-inline: 0;
    opacity: 1;
}

/* =====================================================================
 * Paw mark (block pattern) — adopt currentColor so the parent text
 * color drives the paw color.
 * =================================================================== */

.p4p-paw {
    display: inline-block;
    vertical-align: middle;
}

/* =====================================================================
 * Logo circle — 48px round cream container holding the inline paw mark.
 * Used in the header and footer brand blocks.
 * =================================================================== */

.p4p-logo-circle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    padding: 4px;
    border-radius: 50%;
    background-color: var(--wp--preset--color--cream);
    color: var(--wp--preset--color--navy);
    flex-shrink: 0;
    text-decoration: none;
}

.p4p-logo-circle > svg,
.p4p-logo-circle > img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* New header logo — full transparent wordmark on navy background.
   Includes the dog mark + PAWS FOR PURPOSE / SNOWY PINES wordmark
   in one image so it always renders pixel-perfect. */
.p4p-logo-link {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    flex-shrink: 0;
}

.p4p-logo-img {
    height: 96px;
    width: auto;
    display: block;
}

/* =====================================================================
 * Footer link colors — scoped fix for WP's missing per-element link CSS.
 * The block markup sets style.elements.link.color.text but WP's style
 * engine isn't emitting the matching .wp-elements-{hash} rules in this
 * template-part context, so set link colors directly on the footer.
 * =================================================================== */

footer.wp-block-template-part a {
    color: rgba(237, 240, 242, 0.95);
    text-decoration: none;
    transition: color .15s ease;
}

footer.wp-block-template-part a:hover {
    color: var(--wp--preset--color--cream);
    text-decoration: underline;
}

/* The bottom-row Privacy / Terms / copyright stay subtler. */
footer.wp-block-template-part .wp-block-group > .wp-block-group a {
    color: rgba(237, 240, 242, 0.7);
}

/* =====================================================================
 * HOMEPAGE SECTIONS — page-specific layout for templates/front-page.html.
 * Each block of rules is scoped by a single .p4p-* hook.
 * =================================================================== */

/* ---- Hero ---------------------------------------------------------- */

.p4p-hero {
    position: relative;
    overflow: hidden;
}

.p4p-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0.06;
    pointer-events: none;
    background-image:
        radial-gradient(circle at 20% 30%, var(--wp--preset--color--gold-deep) 0, transparent 40%),
        radial-gradient(circle at 80% 70%, var(--wp--preset--color--sage)      0, transparent 50%);
}

.p4p-hero > * {
    position: relative;
}

.p4p-hero-stats {
    display: flex;
    gap: 36px;
    font-size: 13px;
    color: rgba(237, 240, 242, 0.75);
}

.p4p-hero-stats > div {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.p4p-hero-stats strong {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 22px;
    font-weight: 700;
    color: var(--wp--preset--color--cream);
    line-height: 1;
}

.p4p-hero-photo {
    position: relative;
}

.p4p-hero-photo > img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: var(--p4p-focal, 50% 35%);
    border-radius: var(--wp--custom--radius--xl);
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.4);
}

.p4p-hero-callout {
    position: absolute;
    bottom: -24px;
    left: -24px;
    background-color: var(--wp--preset--color--cream);
    color: var(--wp--preset--color--navy-deep);
    padding: 16px 20px;
    border-radius: var(--wp--custom--radius--lg);
    max-width: 240px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
    margin: 0;
}

.p4p-hero-callout__quote {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.3;
    margin: 0 0 4px;
}

.p4p-hero-callout__attr {
    font-size: 12px;
    color: var(--wp--preset--color--muted);
    margin: 0;
}

/* ---- Mission Triad ------------------------------------------------- */

.p4p-mission-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--wp--custom--card--gap-3);
}

.p4p-mission-card {
    background-color: var(--wp--preset--color--paper);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--lg);
    padding: var(--wp--custom--card--padding);
    margin: 0;
}

.p4p-mission-card__icon {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background-color: var(--p4p-tone, var(--wp--preset--color--navy));
    color: var(--wp--preset--color--cream);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 22px;
}

.p4p-mission-card__tag {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.14em;
    color: var(--p4p-tone, var(--wp--preset--color--navy));
    text-transform: uppercase;
    margin: 0 0 10px;
}

.p4p-mission-card__title {
    font-size: 28px;
    font-weight: 600;
    line-height: 1.12;
    letter-spacing: -0.01em;
    margin: 0 0 12px;
}

.p4p-mission-card__body {
    font-size: 16px;
    line-height: 1.6;
    color: var(--wp--preset--color--body);
    margin: 0;
}

/* ---- Impact Band --------------------------------------------------- */

.p4p-impact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.p4p-impact-tile {
    background-color: rgba(237, 240, 242, 0.05);
    border: 1px solid rgba(237, 240, 242, 0.12);
    border-radius: var(--wp--custom--radius--lg);
    padding: 22px;
}

.p4p-impact-tile strong {
    display: block;
    font-family: var(--wp--preset--font-family--sans);
    font-size: 36px;
    font-weight: 600;
    color: var(--wp--preset--color--sage);
    line-height: 1;
    margin-bottom: 8px;
}

.p4p-impact-tile span {
    font-size: 14px;
    line-height: 1.4;
    color: rgba(237, 240, 242, 0.9);
}

/* ---- Process Strip ------------------------------------------------- */

.p4p-process-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    background-color: var(--wp--preset--color--line);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--lg);
    overflow: hidden;
}

.p4p-process-step {
    background-color: var(--wp--preset--color--paper);
    padding: 28px;
}

.p4p-process-step__num {
    display: block;
    font-family: var(--wp--preset--font-family--sans);
    font-size: 32px;
    font-weight: 600;
    color: var(--wp--preset--color--gold);
    line-height: 1;
    margin-bottom: 14px;
}

.p4p-process-step__title {
    font-size: 22px;
    font-weight: 600;
    line-height: 1.12;
    margin: 0 0 10px;
}

.p4p-process-step__body {
    font-size: 14px;
    line-height: 1.6;
    color: var(--wp--preset--color--body);
    margin: 0;
}

/* ---- Story Feature ------------------------------------------------- */

.p4p-story-photo {
    position: relative;
}

.p4p-story-photo > img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: var(--p4p-focal, 50% 30%);
    border-radius: var(--wp--custom--radius--lg);
}

.p4p-story-badge {
    position: absolute;
    bottom: 16px;
    left: 16px;
    background-color: var(--wp--preset--color--gold);
    color: var(--wp--preset--color--cream);
    padding: 8px 14px;
    border-radius: var(--wp--custom--radius--pill);
    font-family: var(--wp--preset--font-family--mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

/* ---- Trainers Strip ------------------------------------------------ */

.p4p-trainers-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--wp--custom--card--gap-3);
}

.p4p-trainer {
    margin: 0;
    flex: 0 0 calc((100% - 3 * var(--wp--custom--card--gap-3)) / 4);
    min-width: 200px;
}

.p4p-trainer > img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: var(--p4p-focal, 50% 30%);
    border-radius: var(--wp--custom--radius--lg);
    margin-bottom: 16px;
}

.p4p-trainer figcaption h4 {
    font-size: 22px;
    font-weight: 600;
    line-height: 1.12;
    margin: 0 0 4px;
}

.p4p-trainer__cred {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--wp--preset--color--sage-deep);
}

/* ---- Get Involved -------------------------------------------------- */

.p4p-involve-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--wp--custom--card--gap-4);
}

.p4p-involve-card {
    background-color: var(--wp--preset--color--paper);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--lg);
    padding: var(--wp--custom--card--padding);
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.p4p-involve-card__tag {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: var(--wp--preset--color--sage-deep);
    margin: 0;
}

.p4p-involve-card__title {
    font-size: 28px;
    font-weight: 600;
    line-height: 1.12;
    letter-spacing: -0.01em;
    color: var(--wp--preset--color--navy-deep);
    margin: 0;
}

.p4p-involve-card__body {
    font-size: 16px;
    line-height: 1.6;
    color: var(--wp--preset--color--body);
    margin: 0;
    flex: 1;
}

.p4p-involve-card .wp-block-button {
    align-self: flex-start;
}

/* =====================================================================
 * DONATE PAGE — page-specific layout for the Donate page (post id 17).
 * Sections: Hero (two-CTA stack) → Tiers → Other ways → Testimonial → FAQ
 * =================================================================== */

/* ---- Donate hero gradient backdrop ------------------------------- */

.p4p-donate-hero {
    position: relative;
    overflow: hidden;
}

.p4p-donate-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0.05;
    pointer-events: none;
    background-image: radial-gradient(circle at 15% 30%, var(--wp--preset--color--gold-deep) 0, transparent 45%);
}

.p4p-donate-hero > * {
    position: relative;
}

/* ---- Give-card stack (PayPal + DAF) ------------------------------ */

.p4p-give-stack {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.p4p-give-card {
    background-color: var(--wp--preset--color--cream);
    color: var(--wp--preset--color--body);
    border-radius: var(--wp--custom--radius--xl);
    padding: 28px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
    margin: 0;
}

.p4p-give-card__tag {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    margin: 0 0 10px;
}

.p4p-give-card--paypal .p4p-give-card__tag {
    color: var(--wp--preset--color--navy-deep);
}

.p4p-give-card--daf .p4p-give-card__tag {
    color: var(--wp--preset--color--sage-deep);
}

.p4p-give-card__title {
    font-size: 24px;
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: -0.01em;
    color: var(--wp--preset--color--navy-deep);
    margin: 0 0 10px;
}

.p4p-give-card__body {
    font-size: 14px;
    line-height: 1.55;
    color: var(--wp--preset--color--body);
    margin: 0 0 16px;
}

/* ---- Tier grid (6 cards) ----------------------------------------- */

.p4p-tier-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.p4p-tier {
    background-color: var(--wp--preset--color--paper);
    border: 1px solid var(--wp--preset--color--line);
    border-top: 3px solid var(--wp--preset--color--gold);
    border-radius: var(--wp--custom--radius--lg);
    padding: 28px;
    margin: 0;
}

.p4p-tier__amt {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 36px;
    font-weight: 600;
    line-height: 1;
    color: var(--wp--preset--color--navy-deep);
    margin-bottom: 6px;
}

.p4p-tier__name {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: var(--wp--preset--color--sage-deep);
    margin-bottom: 14px;
}

.p4p-tier__body {
    font-size: 14px;
    line-height: 1.6;
    color: var(--wp--preset--color--body);
    margin: 0;
}

/* ---- Other-ways grid (3 cards) ----------------------------------- */

.p4p-other-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.p4p-other {
    background-color: var(--wp--preset--color--paper);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--lg);
    padding: 26px;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.p4p-other__tag {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: var(--wp--preset--color--sage-deep);
    margin: 0;
}

.p4p-other__title {
    font-size: 22px;
    font-weight: 600;
    line-height: 1.15;
    color: var(--wp--preset--color--navy-deep);
    margin: 0 0 4px;
}

.p4p-other__body {
    font-size: 14px;
    line-height: 1.55;
    color: var(--wp--preset--color--body);
    margin: 0 0 12px;
    flex: 1;
}

.p4p-other .wp-block-button {
    align-self: flex-start;
}

/* ---- Partnership levels (3-card grid on navy-deep) ---------------- */

.p4p-partner-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    align-items: stretch;
}

.p4p-partner {
    background-color: var(--wp--preset--color--paper);
    color: var(--wp--preset--color--body);
    border-radius: var(--wp--custom--radius--lg);
    padding: 32px;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.p4p-partner__tag {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--p4p-tone, var(--wp--preset--color--sage-deep));
    margin: 0;
}

.p4p-partner__amt {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 36px;
    font-weight: 600;
    line-height: 1;
    color: var(--wp--preset--color--navy-deep);
    margin: 0;
}

.p4p-partner__amt span {
    font-size: 14px;
    font-weight: 500;
    color: var(--wp--preset--color--muted);
    margin-left: 6px;
    display: inline-block;
}

.p4p-partner__position {
    font-size: 14px;
    line-height: 1.55;
    color: var(--wp--preset--color--body);
    margin: 0;
}

.p4p-partner__perks {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}

.p4p-partner__perks li {
    font-size: 14px;
    line-height: 1.5;
    color: var(--wp--preset--color--body);
    padding-left: 22px;
    position: relative;
}

.p4p-partner__perks li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--wp--preset--color--sage);
    font-weight: 700;
}

.p4p-partner .wp-block-button {
    align-self: flex-start;
    margin-top: 8px;
}

/* ---- Testimonial quote mark -------------------------------------- */

.p4p-quote-mark {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 96px;
    line-height: 1;
    color: var(--wp--preset--color--gold);
    margin-bottom: -20px;
}

/* ---- FAQ details/summary ---------------------------------------- */

.p4p-faq-item {
    background-color: var(--wp--preset--color--paper);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--md);
    padding: 18px 22px;
    margin-bottom: 10px;
}

.p4p-faq-item > summary {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 18px;
    font-weight: 600;
    color: var(--wp--preset--color--navy-deep);
    cursor: pointer;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
}

.p4p-faq-item > summary::-webkit-details-marker { display: none; }

.p4p-faq-item > summary::after {
    content: "+";
    font-size: 22px;
    font-weight: 400;
    color: var(--wp--preset--color--gold);
    transition: transform .15s ease;
    flex-shrink: 0;
}

.p4p-faq-item[open] > summary::after {
    content: "−";
}

.p4p-faq-item[open] > summary {
    margin-bottom: 12px;
}

.p4p-faq-item p {
    font-size: 16px;
    line-height: 1.6;
    color: var(--wp--preset--color--body);
    margin: 0;
}

/* =====================================================================
 * SERVICE DOGS PAGE — page-specific layout for /service-dogs/
 * Sections: Hero → Stats → Tracks (alternating image/text) → Wagology →
 * Differentiators → Inquiry (form mockup, swap for WPForms in task #10).
 * =================================================================== */

/* Shared script accent for Caveat-flavored emphasis spans. */
.p4p-script-accent {
    font-family: var(--wp--preset--font-family--script);
    font-style: normal;
    font-weight: 700;
    color: var(--wp--preset--color--sage);
    display: inline-block;
}

/* ---- Hero ---------------------------------------------------------- */

.p4p-sd-hero__title {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 76px;
    font-weight: 600;
    line-height: 1.0;
    letter-spacing: -0.02em;
    color: var(--wp--preset--color--cream);
    margin: 0;
    text-wrap: balance;
}

.p4p-sd-hero__photo > img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: var(--p4p-focal, 50% 40%);
    border-radius: var(--wp--custom--radius--xl);
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.4);
}

/* ---- Stats strip --------------------------------------------------- */

.p4p-sd-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
}

.p4p-sd-stats > div {
    text-align: center;
    position: relative;
}

.p4p-sd-stats > div + div::before {
    content: "";
    position: absolute;
    left: -15px;
    top: 8px;
    bottom: 8px;
    width: 1px;
    background-color: var(--wp--preset--color--line);
}

.p4p-sd-stats strong {
    display: block;
    font-family: var(--wp--preset--font-family--sans);
    font-size: 56px;
    font-weight: 600;
    color: var(--wp--preset--color--navy-deep);
    line-height: 1;
    letter-spacing: -0.02em;
    margin-bottom: 10px;
}

.p4p-sd-stats span {
    font-size: 13px;
    line-height: 1.4;
    color: var(--wp--preset--color--muted);
}

/* ---- Tracks (alternating image/text rows) -------------------------- */

.p4p-sd-tracks {
    display: grid;
    gap: 24px;
}

.p4p-sd-track {
    display: grid;
    grid-template-columns: 1fr 1.3fr;
    gap: 50px;
    align-items: center;
    background-color: var(--wp--preset--color--paper);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--xl);
    overflow: hidden;
    margin: 0;
}

.p4p-sd-track--reverse {
    grid-template-columns: 1.3fr 1fr;
}

.p4p-sd-track--reverse .p4p-sd-track__photo {
    order: 2;
}

.p4p-sd-track__photo > img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: var(--p4p-focal, 50% 40%);
}

.p4p-sd-track__body {
    padding: 36px 40px;
}

.p4p-sd-track__tag {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--wp--preset--color--navy-deep);
    text-transform: uppercase;
    margin: 0 0 12px;
}

.p4p-sd-track__title {
    font-size: 28px;
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: -0.01em;
    margin: 0 0 14px;
}

.p4p-sd-track__desc {
    font-size: 16px;
    line-height: 1.55;
    color: var(--wp--preset--color--body);
    margin: 0 0 16px;
}

.p4p-sd-track__who {
    border-top: 1px solid var(--wp--preset--color--line);
    padding-top: 12px;
}

.p4p-sd-track__who-label {
    display: block;
    font-family: var(--wp--preset--font-family--mono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.10em;
    color: var(--wp--preset--color--navy-deep);
    text-transform: uppercase;
    margin-bottom: 4px;
}

.p4p-sd-track__who p {
    font-size: 14px;
    line-height: 1.55;
    color: var(--wp--preset--color--body);
    margin: 0;
}

.p4p-sd-track__note {
    background-color: var(--wp--preset--color--gold-soft);
    border-left: 3px solid var(--wp--preset--color--gold);
    padding: 10px 14px;
    border-radius: var(--wp--custom--radius--sm);
    font-size: 14px;
    line-height: 1.55;
    color: var(--wp--preset--color--body);
    margin: 0 0 16px;
}

.p4p-sd-track__note strong {
    color: var(--wp--preset--color--gold-deep);
    font-weight: 700;
}

/* ---- Wagology cards ------------------------------------------------ */

.p4p-sd-wag {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.p4p-sd-wag__card {
    background-color: var(--wp--preset--color--paper);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--lg);
    padding: 32px 28px;
    margin: 0;
}

.p4p-sd-wag__num {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 56px;
    font-weight: 600;
    color: var(--wp--preset--color--gold);
    line-height: 1;
    margin-bottom: 14px;
}

.p4p-sd-wag__title {
    font-size: 22px;
    font-weight: 600;
    line-height: 1.15;
    margin: 0 0 6px;
}

.p4p-sd-wag__hrs {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.10em;
    color: var(--wp--preset--color--body);
    margin: 0 0 14px;
}

.p4p-sd-wag__body {
    font-size: 14px;
    line-height: 1.6;
    color: var(--wp--preset--color--body);
    margin: 0;
}

/* ---- Differentiators (2x2 numbered cards) -------------------------- */

.p4p-sd-diff {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}

.p4p-sd-diff__card {
    display: flex;
    gap: 20px;
    padding: 28px;
    background-color: var(--wp--preset--color--paper);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--lg);
    margin: 0;
}

.p4p-sd-diff__num {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 30px;
    font-weight: 600;
    color: var(--wp--preset--color--gold);
    line-height: 1;
    flex-shrink: 0;
    width: 36px;
}

.p4p-sd-diff__body h4 {
    font-size: 22px;
    font-weight: 600;
    line-height: 1.15;
    margin: 0 0 8px;
}

.p4p-sd-diff__body p {
    font-size: 16px;
    line-height: 1.55;
    color: var(--wp--preset--color--body);
    margin: 0;
}

/* ---- Inquiry section ---------------------------------------------- */

.p4p-sd-inquiry__title {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 48px;
    font-weight: 600;
    line-height: 1.05;
    letter-spacing: -0.01em;
    color: var(--wp--preset--color--cream);
    margin: 0;
}

.p4p-sd-expect {
    background-color: rgba(237, 240, 242, 0.06);
    border: 1px solid rgba(237, 240, 242, 0.12);
    border-radius: var(--wp--custom--radius--lg);
    padding: 22px 24px;
    margin: 0;
}

.p4p-sd-expect__tag {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--wp--preset--color--sage);
    text-transform: uppercase;
    margin: 0 0 10px;
}

.p4p-sd-expect ul {
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 14px;
    color: rgba(237, 240, 242, 0.85);
    line-height: 1.7;
}

.p4p-sd-expect li {
    padding-left: 16px;
    position: relative;
}

.p4p-sd-expect li::before {
    content: "•";
    position: absolute;
    left: 0;
    color: var(--wp--preset--color--sage);
}

/* ---- Service dog inquiry form (static mockup) --------------------- */

.p4p-sd-form {
    background-color: var(--wp--preset--color--cream);
    color: var(--wp--preset--color--body);
    border-radius: var(--wp--custom--radius--xl);
    padding: 40px;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.3);
}

.p4p-sd-form__tag {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.10em;
    color: var(--wp--preset--color--navy-deep);
    text-transform: uppercase;
    margin: 0 0 20px;
}

.p4p-sd-form__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}

.p4p-sd-form__field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.p4p-sd-form__field--full {
    grid-column: span 2;
}

.p4p-sd-form__field label {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 13px;
    font-weight: 700;
    color: var(--wp--preset--color--navy-deep);
    letter-spacing: 0.02em;
}

.p4p-sd-form__field label span {
    color: var(--wp--preset--color--gold);
}

.p4p-sd-form__field input,
.p4p-sd-form__field select,
.p4p-sd-form__field textarea {
    width: 100%;
    padding: 12px 14px;
    font-family: var(--wp--preset--font-family--sans);
    font-size: 15px;
    color: var(--wp--preset--color--body);
    background-color: var(--wp--preset--color--paper);
    border: 1.5px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--md);
    outline: none;
    box-sizing: border-box;
}

.p4p-sd-form__field textarea {
    resize: vertical;
    font-family: var(--wp--preset--font-family--sans);
}

.p4p-sd-form__field input:focus,
.p4p-sd-form__field select:focus,
.p4p-sd-form__field textarea:focus {
    border-color: var(--wp--preset--color--navy);
}

.p4p-sd-form__note {
    margin-top: 18px;
    margin-bottom: 0;
    font-size: 12px;
    color: var(--wp--preset--color--muted);
}

.p4p-sd-form__submit {
    margin-top: 22px;
}

.p4p-sd-form__submit > .wp-block-button__link {
    width: 100%;
    justify-content: center;
}

/* =====================================================================
 * THERAPY DOGS PAGE — page-specific layout for /therapy-dogs/
 * Sections: Hero (+ FCB band) → Stats → Why Arkansas → Bear feature →
 * How it works → Research → Voices → Cost story → Dual CTA → Nominate.
 * =================================================================== */

/* ---- Hero photo + 236 callout + Founding Partner band ------------- */

.p4p-td-hero__photo {
    position: relative;
}

.p4p-td-hero__photo > img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: var(--p4p-focal, 50% 35%);
    border-radius: var(--wp--custom--radius--xl);
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.4);
}

.p4p-td-callout {
    position: absolute;
    bottom: -24px;
    left: -32px;
    background-color: var(--wp--preset--color--cream);
    color: var(--wp--preset--color--navy-deep);
    padding: 18px 24px;
    border-radius: var(--wp--custom--radius--lg);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
    max-width: 260px;
    margin: 0;
}

.p4p-td-callout__tag {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 17px;
    font-weight: 800;
    letter-spacing: 0.14em;
    color: var(--wp--preset--color--navy-deep);
    text-transform: uppercase;
    margin: 0 0 10px;
}

.p4p-td-callout__num {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 32px;
    font-weight: 600;
    line-height: 1;
    color: var(--wp--preset--color--navy-deep);
    margin: 0;
}

.p4p-td-callout__label {
    font-size: 13px;
    color: var(--wp--preset--color--muted);
    margin: 4px 0 0;
}

.p4p-td-fcb {
    border-top: 1px solid rgba(237, 240, 242, 0.15);
    background-color: rgba(0, 0, 0, 0.18);
    padding: 28px 0;
    margin: 0 -40px;
}

.p4p-td-fcb__inner {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 40px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
}

.p4p-td-fcb__brand {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-shrink: 0;
}

.p4p-td-fcb__tag {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--wp--preset--color--sage);
    text-transform: uppercase;
}

.p4p-td-fcb__rule {
    width: 1px;
    height: 48px;
    background-color: rgba(237, 240, 242, 0.2);
}

.p4p-td-fcb__logo {
    background-color: var(--wp--preset--color--cream);
    padding: 14px 28px;
    border-radius: var(--wp--custom--radius--md);
    display: flex;
    align-items: center;
    height: 78px;
    box-sizing: border-box;
}

.p4p-td-fcb__logo img {
    height: 50px;
    width: auto;
    display: block;
}

.p4p-td-fcb__copy {
    font-size: 14px;
    color: rgba(237, 240, 242, 0.7);
    max-width: 460px;
    text-align: right;
    margin: 0;
}

/* ---- Stats strip (similar to SD but bigger numbers) --------------- */

.p4p-td-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
}

.p4p-td-stats > div {
    text-align: center;
    position: relative;
}

.p4p-td-stats > div + div::before {
    content: "";
    position: absolute;
    left: -15px;
    top: 8px;
    bottom: 8px;
    width: 1px;
    background-color: var(--wp--preset--color--line);
}

.p4p-td-stats strong {
    display: block;
    font-family: var(--wp--preset--font-family--sans);
    font-size: 60px;
    font-weight: 600;
    color: var(--wp--preset--color--navy-deep);
    line-height: 1;
    letter-spacing: -0.02em;
    margin-bottom: 10px;
}

.p4p-td-stats span {
    font-size: 13px;
    line-height: 1.4;
    color: var(--wp--preset--color--muted);
}

/* ---- Why Arkansas — 4 challenge cards ----------------------------- */

.p4p-td-why {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}

.p4p-td-why__card {
    background-color: var(--wp--preset--color--paper);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--lg);
    padding: 28px 24px;
    margin: 0;
}

.p4p-td-why__bar {
    display: block;
    width: 36px;
    height: 4px;
    background-color: var(--wp--preset--color--gold);
    border-radius: 2px;
    margin-bottom: 18px;
}

.p4p-td-why__card h4 {
    font-size: 22px;
    font-weight: 600;
    line-height: 1.15;
    margin: 0 0 12px;
}

.p4p-td-why__card p {
    font-size: 14px;
    line-height: 1.55;
    color: var(--wp--preset--color--muted);
    margin: 0;
}

/* ---- Bear feature — quote + pullquote ----------------------------- */

.p4p-td-bear__quote {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 48px;
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: -0.015em;
    color: var(--wp--preset--color--navy-deep);
    margin: 0;
    text-wrap: pretty;
}

.p4p-td-bear__pull {
    margin: 0;
    padding: 18px 22px;
    background-color: var(--wp--preset--color--paper);
    border-left: 3px solid var(--wp--preset--color--gold);
    border-radius: 0 var(--wp--custom--radius--md) var(--wp--custom--radius--md) 0;
}

.p4p-td-bear__pull p {
    font-size: 17px;
    font-style: italic;
    line-height: 1.5;
    color: var(--wp--preset--color--body);
    margin: 0 0 10px;
}

.p4p-td-bear__pull cite {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.10em;
    color: var(--wp--preset--color--body);
    text-transform: uppercase;
    font-style: normal;
}

/* ---- How it works — 5-step list ----------------------------------- */

.p4p-td-process {
    display: grid;
    gap: 18px;
}

.p4p-td-step {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 28px;
    padding: 24px 28px;
    background-color: var(--wp--preset--color--paper);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--lg);
    margin: 0;
}

.p4p-td-step__num {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 44px;
    font-weight: 600;
    color: var(--wp--preset--color--gold);
    line-height: 1;
}

.p4p-td-step h4 {
    font-size: 22px;
    font-weight: 600;
    line-height: 1.15;
    margin: 0 0 8px;
}

.p4p-td-step p {
    font-size: 16px;
    line-height: 1.55;
    color: var(--wp--preset--color--muted);
    margin: 0;
}

/* ---- Research section --------------------------------------------- */

.p4p-td-research__title {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 44px;
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: var(--wp--preset--color--cream);
    margin: 0;
    text-wrap: balance;
    text-align: center;
}

.p4p-td-findings {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-bottom: 50px;
}

.p4p-td-finding {
    background-color: rgba(237, 240, 242, 0.06);
    border: 1px solid rgba(237, 240, 242, 0.12);
    border-radius: var(--wp--custom--radius--lg);
    padding: 32px 28px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.p4p-td-finding strong {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 56px;
    font-weight: 600;
    color: var(--wp--preset--color--sage);
    line-height: 1;
    margin-bottom: 4px;
}

.p4p-td-finding__label {
    font-size: 17px;
    font-weight: 600;
    color: var(--wp--preset--color--cream);
}

.p4p-td-finding__src {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 11px;
    letter-spacing: 0.12em;
    color: rgba(237, 240, 242, 0.6);
    text-transform: uppercase;
}

.p4p-td-research-detail {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}

.p4p-td-research-detail article {
    border-top: 2px solid var(--wp--preset--color--sage);
    padding-top: 20px;
}

.p4p-td-research-detail h4 {
    font-size: 22px;
    font-weight: 600;
    line-height: 1.15;
    color: var(--wp--preset--color--cream);
    margin: 0 0 10px;
}

.p4p-td-research-detail p {
    font-size: 16px;
    line-height: 1.55;
    color: rgba(237, 240, 242, 0.78);
    margin: 0;
}

/* ---- Voices — 3 testimonial cards --------------------------------- */

.p4p-td-voices {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.p4p-td-voice {
    background-color: var(--wp--preset--color--paper);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--lg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    margin: 0;
}

.p4p-td-voice > img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: var(--p4p-focal, 50% 50%);
}

.p4p-td-voice__body {
    padding: 28px 26px 30px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.p4p-td-voice__mark {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 56px;
    font-weight: 600;
    color: var(--wp--preset--color--gold);
    line-height: 0.6;
    margin-bottom: 8px;
}

.p4p-td-voice__quote {
    font-size: 16px;
    line-height: 1.55;
    color: var(--wp--preset--color--body);
    margin: 0 0 22px;
    flex: 1;
}

.p4p-td-voice__attr {
    border-top: 1px solid var(--wp--preset--color--line);
    padding-top: 14px;
}

.p4p-td-voice__name {
    font-size: 14px;
    font-weight: 700;
    color: var(--wp--preset--color--navy-deep);
    margin: 0;
}

.p4p-td-voice__role {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.08em;
    color: var(--wp--preset--color--body);
    text-transform: uppercase;
    margin: 4px 0 0;
}

/* ---- Cost story --------------------------------------------------- */

.p4p-td-cost__title {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 52px;
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: -0.015em;
    color: var(--wp--preset--color--navy-deep);
    margin: 0;
    text-align: center;
    text-wrap: balance;
}

.p4p-td-cost-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    margin-top: 40px;
}

.p4p-td-cost-grid article {
    background-color: var(--wp--preset--color--paper);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--md);
    padding: 22px 20px;
    text-align: left;
}

.p4p-td-cost-grid h5 {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.2;
    margin: 0 0 8px;
}

.p4p-td-cost-grid p {
    font-size: 14px;
    line-height: 1.5;
    color: var(--wp--preset--color--muted);
    margin: 0;
}

/* ---- Dual CTA — Sponsor + Nominate cards -------------------------- */

.p4p-td-dual {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}

.p4p-td-dual__card {
    border-radius: var(--wp--custom--radius--xl);
    padding: 50px 44px;
    color: var(--wp--preset--color--cream);
    margin: 0;
}

.p4p-td-dual__card--navy {
    background-color: var(--wp--preset--color--navy);
}

.p4p-td-dual__card--sage {
    background-color: var(--wp--preset--color--sage);
}

.p4p-td-dual__tag {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--wp--preset--color--sage);
    text-transform: uppercase;
    margin: 0 0 16px;
}

.p4p-td-dual__tag--sage {
    color: var(--wp--preset--color--sage-soft);
    font-size: 11px;
    letter-spacing: 0.16em;
}

.p4p-td-dual__title {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 36px;
    font-weight: 600;
    line-height: 1.1;
    color: var(--wp--preset--color--cream);
    margin: 0 0 14px;
}

.p4p-td-dual__body {
    font-size: 16px;
    line-height: 1.55;
    color: rgba(237, 240, 242, 0.85);
    margin: 0 0 28px;
}

.p4p-td-dual__card--navy .p4p-td-dual__body {
    color: rgba(237, 240, 242, 0.78);
}

/* ---- Founding Partner spotlight (navy-deep, 40/60 split) ----------- */

.p4p-td-spotlight {
    display: grid;
    grid-template-columns: 38% 1fr;
    gap: 70px;
    align-items: center;
}

.p4p-td-spotlight__logo {
    background-color: var(--wp--preset--color--cream);
    border-radius: var(--wp--custom--radius--xl);
    padding: 50px 40px 32px;
    text-align: center;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.3);
}

.p4p-td-spotlight__logo img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto 24px;
}

.p4p-td-spotlight__since {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    color: var(--wp--preset--color--sage-deep);
    text-transform: uppercase;
    margin: 0;
}

.p4p-td-spotlight__body .is-style-eyebrow {
    margin: 0 0 18px;
}

.p4p-td-spotlight__title {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 44px;
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: -0.015em;
    color: var(--wp--preset--color--cream);
    margin: 0 0 22px;
    text-wrap: balance;
}

.p4p-td-spotlight__lead {
    font-size: 17px;
    line-height: 1.6;
    color: rgba(237, 240, 242, 0.85);
    margin: 0 0 16px;
}

.p4p-td-spotlight__quote {
    margin: 24px 0 28px;
    padding: 16px 22px;
    border-left: 3px solid var(--wp--preset--color--sage);
    background-color: rgba(237, 240, 242, 0.04);
    border-radius: 0 var(--wp--custom--radius--md) var(--wp--custom--radius--md) 0;
}

.p4p-td-spotlight__quote p {
    font-size: 17px;
    font-style: italic;
    line-height: 1.5;
    color: var(--wp--preset--color--cream);
    margin: 0 0 10px;
}

.p4p-td-spotlight__quote cite {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.10em;
    color: var(--wp--preset--color--sage);
    text-transform: uppercase;
    font-style: normal;
}

.p4p-td-spotlight__ask {
    font-size: 16px;
    line-height: 1.55;
    color: var(--wp--preset--color--sage);
    margin: 24px 0 28px;
}

/* ---- Nominate sidebar "What happens after" box -------------------- */

.p4p-td-after {
    background-color: var(--wp--preset--color--paper);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--lg);
    padding: 24px 26px;
    margin: 0;
}

.p4p-td-after h5 {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.2;
    margin: 0 0 10px;
}

.p4p-td-after ol {
    margin: 0;
    padding-left: 22px;
    font-size: 14px;
    color: var(--wp--preset--color--body);
    line-height: 1.7;
}

/* ---- Nominate form — extra elements layered on .p4p-sd-form ------- */

.p4p-td-form {
    background-color: var(--wp--preset--color--paper);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--xl);
    padding: 40px;
    color: var(--wp--preset--color--body);
}

.p4p-td-form__tag {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.10em;
    color: var(--wp--preset--color--navy-deep);
    text-transform: uppercase;
    margin: 0 0 14px;
}

.p4p-td-form__title {
    font-size: 28px;
    font-weight: 600;
    line-height: 1.15;
    color: var(--wp--preset--color--navy-deep);
    margin: 0 0 24px;
}

.p4p-td-form__section {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.10em;
    color: var(--wp--preset--color--navy-deep);
    text-transform: uppercase;
    margin: 30px 0 12px;
}

.p4p-td-form__section:first-of-type {
    margin-top: 0;
}

.p4p-td-form .p4p-sd-form__grid {
    margin-bottom: 0;
}

.p4p-td-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.p4p-td-pills label {
    display: inline-flex;
    align-items: center;
    padding: 9px 16px;
    background-color: var(--wp--preset--color--cream-soft);
    border: 1.5px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--pill);
    font-family: var(--wp--preset--font-family--sans);
    font-size: 13px;
    color: var(--wp--preset--color--body);
    font-weight: 500;
    cursor: pointer;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease, transform .15s ease;
    user-select: none;
}

.p4p-td-pills label:hover {
    border-color: var(--wp--preset--color--navy);
    transform: translateY(-1px);
}

/* Hide native input visually but keep it focusable & in the form. */
.p4p-td-pills input {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* When the input is checked, fill the whole pill (navy + cream text). */
.p4p-td-pills label:has(input:checked) {
    background-color: var(--wp--preset--color--navy);
    border-color: var(--wp--preset--color--navy);
    color: var(--wp--preset--color--cream);
    font-weight: 600;
}

/* Keyboard focus ring on the pill itself. */
.p4p-td-pills label:has(input:focus-visible) {
    outline: 2px solid var(--wp--preset--color--navy);
    outline-offset: 2px;
}

.p4p-td-form__hint {
    font-size: 12px;
    color: var(--wp--preset--color--muted);
    margin: 6px 0 0;
}

.p4p-td-form__terms {
    margin-top: 14px;
    margin-bottom: 0;
    font-size: 12px;
    color: var(--wp--preset--color--muted);
    text-align: center;
}

/* =====================================================================
 * ABOUT PAGE — page-specific layout for /about/
 * =================================================================== */

.p4p-ab-mission__photo > img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: var(--p4p-focal, 50% 40%);
    border-radius: var(--wp--custom--radius--xl);
}

/* Figures — 4 stats with gold left border */
.p4p-ab-figures {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
}

.p4p-ab-figure {
    border-left: 2px solid var(--wp--preset--color--gold);
    padding-left: 22px;
    display: flex;
    flex-direction: column;
}

.p4p-ab-figure strong {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 56px;
    font-weight: 600;
    color: var(--wp--preset--color--cream);
    line-height: 1;
    margin-bottom: 8px;
}

.p4p-ab-figure__label {
    font-size: 15px;
    font-weight: 700;
    color: var(--wp--preset--color--cream);
    margin-bottom: 4px;
}

.p4p-ab-figure__sub {
    font-size: 12px;
    color: rgba(237, 240, 242, 0.6);
}

/* Team photo strip + caption */
.p4p-ab-team-photo {
    margin-bottom: 56px;
}

.p4p-ab-team-photo > img {
    display: block;
    width: 100%;
    aspect-ratio: 21 / 9;
    object-fit: cover;
    object-position: var(--p4p-focal, 50% 50%);
    border-radius: var(--wp--custom--radius--lg);
}

.p4p-ab-team-photo__caption {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 13px;
    color: var(--wp--preset--color--muted);
    letter-spacing: 0.10em;
    text-transform: uppercase;
    margin: 10px 0 0;
}

/* Section head w/ gold rule */
.p4p-ab-section-head {
    margin-bottom: 28px;
}

.p4p-ab-section-head__tag {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: var(--wp--preset--color--navy-deep);
    text-transform: uppercase;
    margin: 0 0 6px;
}

.p4p-ab-section-head__rule {
    display: block;
    height: 2px;
    width: 48px;
    background-color: var(--wp--preset--color--gold);
}

/* Leadership grid (4-up large cards) */
.p4p-ab-leaders {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-bottom: 0;
}

.p4p-ab-leader {
    background-color: var(--wp--preset--color--paper);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--lg);
    overflow: hidden;
    margin: 0;
}

.p4p-ab-leader__avatar {
    width: 100%;
    aspect-ratio: 4 / 5;
    background: linear-gradient(135deg, var(--p4p-tone-1, var(--wp--preset--color--navy)), var(--p4p-tone-2, var(--wp--preset--color--navy-deep)));
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--wp--preset--color--cream);
}

.p4p-ab-leader__avatar::after {
    content: attr(data-initial);
    font-family: var(--wp--preset--font-family--script);
    font-size: 140px;
    font-weight: 700;
    line-height: 1;
    opacity: 0.9;
}

.p4p-ab-leader__body {
    padding: 22px;
}

.p4p-ab-leader__body h4 {
    font-size: 20px;
    font-weight: 600;
    line-height: 1.15;
    margin: 0 0 4px;
}

.p4p-ab-leader__role {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 12px;
    color: var(--wp--preset--color--sage-deep);
    font-weight: 700;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    margin: 0 0 12px;
}

.p4p-ab-leader__body p:not(.p4p-ab-leader__role) {
    font-size: 14px;
    line-height: 1.55;
    color: var(--wp--preset--color--body);
    margin: 0;
}

/* Board of Directors grid */
.p4p-ab-board-intro {
    font-size: 16px;
    line-height: 1.55;
    color: var(--wp--preset--color--muted);
    max-width: 720px;
    margin: 0 0 28px;
}

.p4p-ab-board {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}

.p4p-ab-director {
    background-color: var(--wp--preset--color--paper);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--md);
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
}

.p4p-ab-director__avatar {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--p4p-tone-1, var(--wp--preset--color--navy)), var(--p4p-tone-2, var(--wp--preset--color--navy-deep)));
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--wp--preset--color--cream);
    margin-bottom: 8px;
}

.p4p-ab-director__avatar::after {
    content: attr(data-initial);
    font-family: var(--wp--preset--font-family--script);
    font-size: 36px;
    font-weight: 700;
    opacity: 0.9;
}

.p4p-ab-director__name {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 18px;
    font-weight: 600;
    color: var(--wp--preset--color--navy-deep);
    line-height: 1.2;
    margin: 0;
}

.p4p-ab-director__role {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.10em;
    color: var(--wp--preset--color--sage-deep);
    text-transform: uppercase;
    margin: 0;
}

.p4p-ab-director__aff {
    font-size: 13px;
    color: var(--wp--preset--color--muted);
    line-height: 1.45;
    margin: 2px 0 0;
}

/* People cards — unified photo card used by Operational Leadership + Board.
   Cards are equal-height; bio text is line-clamped so all cards align;
   --with-toggle variant adds a Read full bio button that removes the clamp. */
.p4p-ab-people {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
}

/* 3-up variant — used by Operational Leadership when there are only
   3 members. Cards stay the same width as the 4-up Board cards but
   center inside the container instead of left-aligning. */
.p4p-ab-people.p4p-ab-people--3up {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 22px;
}

.p4p-ab-people.p4p-ab-people--3up .p4p-ab-people-card {
    flex: 0 0 calc((100% - 66px) / 4);
    min-width: 180px;
}

.p4p-ab-people-card {
    background-color: var(--wp--preset--color--paper);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--md);
    overflow: hidden;
    margin: 0;
    display: flex;
    flex-direction: column;
}

.p4p-ab-people-card__photo {
    position: relative;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    border-bottom: 3px solid var(--wp--preset--color--sage);
    background: var(--wp--preset--color--sage-soft);
}

.p4p-ab-people-card__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: var(--p4p-focal, 50% 30%);
    display: block;
}

.p4p-ab-people-card__body {
    padding: 22px 20px 20px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1;
}

.p4p-ab-people-card__name {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 19px;
    font-weight: 600;
    color: var(--wp--preset--color--navy-deep);
    line-height: 1.2;
    letter-spacing: -0.005em;
    margin: 0;
}

.p4p-ab-people-card__role {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: var(--wp--preset--color--sage-deep);
    text-transform: uppercase;
    margin: 0 0 2px;
}

.p4p-ab-people-card__aff {
    font-size: 13px;
    color: var(--wp--preset--color--muted);
    line-height: 1.45;
    margin: 0 0 6px;
}

.p4p-ab-people-card__bio {
    font-size: 14px;
    line-height: 1.55;
    color: var(--wp--preset--color--body);
    margin: 0;
    flex: 1;
}

.p4p-ab-people-card--with-toggle .p4p-ab-people-card__bio {
    display: -webkit-box;
    -webkit-line-clamp: 6;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.p4p-ab-people-card.is-expanded .p4p-ab-people-card__bio {
    -webkit-line-clamp: unset;
    overflow: visible;
}

.p4p-ab-people-card__toggle {
    align-self: flex-start;
    background: none;
    border: 0;
    padding: 8px 0 0;
    margin-top: auto;
    font-family: var(--wp--preset--font-family--mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--wp--preset--color--navy-deep);
    cursor: pointer;
    border-bottom: 1px solid var(--wp--preset--color--sage);
    line-height: 1.4;
    transition: color 0.15s ease, border-color 0.15s ease;
}

.p4p-ab-people-card__toggle:hover,
.p4p-ab-people-card__toggle:focus-visible {
    color: var(--wp--preset--color--sage-deep);
    border-bottom-color: var(--wp--preset--color--sage-deep);
    outline: none;
}

/* Values — 3-up with navy top borders + numbered eyebrows */
.p4p-ab-values {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.p4p-ab-values article {
    border-top: 2px solid var(--wp--preset--color--navy-deep);
    padding-top: 22px;
    margin: 0;
}

.p4p-ab-value__num {
    display: block;
    font-family: var(--wp--preset--font-family--mono);
    font-size: 11px;
    color: var(--wp--preset--color--muted);
    font-weight: 700;
    letter-spacing: 0.16em;
    margin-bottom: 14px;
}

.p4p-ab-values h3 {
    font-size: 28px;
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: -0.01em;
    margin: 0 0 12px;
}

.p4p-ab-values p {
    font-size: 16px;
    line-height: 1.6;
    color: var(--wp--preset--color--body);
    margin: 0;
}

/* Financials bar chart */
.p4p-ab-finchart {
    background-color: var(--wp--preset--color--paper);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--lg);
    padding: 28px;
}

.p4p-ab-finchart__tag {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 11px;
    font-weight: 700;
    color: var(--wp--preset--color--muted);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    margin: 0 0 18px;
}

.p4p-ab-finchart__row {
    margin-bottom: 14px;
}

.p4p-ab-finchart__row:last-child {
    margin-bottom: 0;
}

.p4p-ab-finchart__head {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    margin-bottom: 6px;
}

.p4p-ab-finchart__head span:first-child {
    color: var(--wp--preset--color--body);
    font-weight: 600;
}

.p4p-ab-finchart__head span:last-child {
    color: var(--wp--preset--color--muted);
    font-family: var(--wp--preset--font-family--mono);
}

.p4p-ab-finchart__bar {
    height: 6px;
    background-color: var(--wp--preset--color--line);
    border-radius: 3px;
    overflow: hidden;
}

.p4p-ab-finchart__bar > div {
    height: 100%;
}

/* =====================================================================
 * CONTACT PAGE — page-specific layout for /contact/
 * =================================================================== */

/* Router cards — 3-card grid that links to specialized intake forms */
.p4p-ct-router {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.p4p-ct-routercard {
    background-color: var(--wp--preset--color--paper);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--lg);
    padding: 32px 28px;
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    height: 100%;
    transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.p4p-ct-routercard:hover {
    transform: translateY(-2px);
    border-color: var(--wp--preset--color--navy);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.08);
}

.p4p-ct-routercard__tag {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--wp--preset--color--navy-deep);
    text-transform: uppercase;
    margin: 0 0 12px;
}

.p4p-ct-routercard__title {
    font-size: 28px;
    font-weight: 600;
    line-height: 1.15;
    color: var(--wp--preset--color--navy-deep);
    margin: 0 0 12px;
}

.p4p-ct-routercard__body {
    font-size: 16px;
    line-height: 1.55;
    color: var(--wp--preset--color--muted);
    margin: 0 0 24px;
    flex: 1;
}

.p4p-ct-routercard__cta {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 14px;
    font-weight: 700;
    color: var(--wp--preset--color--navy);
}

/* Contact info column */
.p4p-ct-info {
    display: grid;
    gap: 22px;
}

.p4p-ct-info__item {
    margin: 0;
}

.p4p-ct-info__tag {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--wp--preset--color--navy-deep);
    text-transform: uppercase;
    margin: 0 0 6px;
}

.p4p-ct-info__value {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 22px;
    font-weight: 600;
    color: var(--wp--preset--color--navy-deep);
    line-height: 1.3;
    margin: 0;
}

.p4p-ct-info__value a {
    color: inherit;
    text-decoration: none;
}

.p4p-ct-info__value a:hover {
    text-decoration: underline;
}

.p4p-ct-info__sub {
    font-size: 14px;
    color: var(--wp--preset--color--muted);
    margin: 4px 0 0;
}

.p4p-ct-info__contact {
    background-color: var(--wp--preset--color--paper);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--lg);
    padding: 20px 22px;
    margin: 0;
}

.p4p-ct-info__contact .p4p-ct-info__tag {
    margin-bottom: 8px;
}

.p4p-ct-info__name {
    font-family: var(--wp--preset--font-family--sans);
    font-weight: 700;
    color: var(--wp--preset--color--navy-deep);
    margin: 0 0 4px;
}

/* Contact form — reuses .p4p-sd-form__grid + .p4p-sd-form__field styles */
.p4p-ct-form {
    background-color: var(--wp--preset--color--paper);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--xl);
    padding: 40px 40px 36px;
    color: var(--wp--preset--color--body);
}

.p4p-ct-form .p4p-sd-form__grid {
    margin-bottom: 0;
}

.p4p-ct-formnote {
    margin-top: 20px;
    padding: 14px 16px;
    background-color: var(--wp--preset--color--cream-soft);
    border-radius: var(--wp--custom--radius--md);
    font-size: 13px;
    color: var(--wp--preset--color--muted);
    line-height: 1.5;
}

.p4p-ct-formnote strong {
    color: var(--wp--preset--color--navy-deep);
}

.p4p-ct-formnote a {
    color: var(--wp--preset--color--navy);
    text-decoration: underline;
}

/* Map — stylized placeholder until Google Maps embed wired in */
.p4p-ct-map {
    position: relative;
    height: 380px;
    background: linear-gradient(180deg, #DDE9D6 0%, #C6D8C0 100%);
    overflow: hidden;
    margin-top: 0;
}

.p4p-ct-map__lines {
    position: absolute;
    inset: 0;
}

.p4p-ct-map__pin {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -100%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.p4p-ct-map__label {
    background-color: var(--wp--preset--color--paper);
    padding: 12px 18px;
    border-radius: var(--wp--custom--radius--lg);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
    font-family: var(--wp--preset--font-family--sans);
    font-weight: 700;
    font-size: 14px;
    color: var(--wp--preset--color--navy-deep);
    white-space: nowrap;
}

.p4p-ct-map__note {
    position: absolute;
    bottom: 16px;
    right: 16px;
    font-family: var(--wp--preset--font-family--mono);
    font-size: 10px;
    letter-spacing: 0.12em;
    color: var(--wp--preset--color--navy-deep);
    background: rgba(255, 255, 255, 0.85);
    padding: 6px 10px;
    border-radius: 4px;
    margin: 0;
}

/* =====================================================================
 * VOLUNTEER PAGE — page-specific layout for /volunteer/
 * =================================================================== */

.p4p-vl-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    font-family: var(--wp--preset--font-family--mono);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.08em;
    color: rgba(237, 240, 242, 0.7);
    text-transform: uppercase;
}

.p4p-vl-hero-meta__sep {
    opacity: 0.4;
}

/* Role cards — 2x2 grid */
.p4p-vl-roles {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}

.p4p-vl-role {
    background-color: var(--wp--preset--color--paper);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--xl);
    padding: 32px 32px 28px;
    margin: 0;
}

.p4p-vl-role--gated {
    opacity: 0.78;
}

.p4p-vl-role__tag {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--wp--preset--color--gold);
    text-transform: uppercase;
    margin: 0 0 12px;
}

.p4p-vl-role--gated .p4p-vl-role__tag {
    color: var(--wp--preset--color--muted);
}

.p4p-vl-role__title {
    font-size: 26px;
    font-weight: 600;
    line-height: 1.15;
    margin: 0 0 12px;
}

.p4p-vl-role__body {
    font-size: 16px;
    line-height: 1.55;
    color: var(--wp--preset--color--body);
    margin: 0 0 16px;
}

.p4p-vl-role__commit {
    display: inline-block;
    font-family: var(--wp--preset--font-family--mono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--wp--preset--color--navy-deep);
    background-color: var(--wp--preset--color--cream-soft);
    padding: 8px 12px;
    border-radius: var(--wp--custom--radius--md);
    text-transform: uppercase;
    margin: 0;
}

.p4p-vl-role__note {
    margin: 16px 0 0;
    padding: 12px 14px;
    background-color: var(--wp--preset--color--cream-soft);
    border-left: 3px solid var(--wp--preset--color--muted);
    border-radius: var(--wp--custom--radius--sm);
    font-size: 13px;
    line-height: 1.5;
    color: var(--wp--preset--color--body);
}

.p4p-vl-role__note strong {
    color: var(--wp--preset--color--navy-deep);
}

/* Path-to-employment callout below the roles grid */
.p4p-vl-pathway {
    margin: 32px 0 0;
    padding: 28px 32px;
    background-color: var(--wp--preset--color--navy-deep);
    color: var(--wp--preset--color--cream);
    border-radius: var(--wp--custom--radius--lg);
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 24px;
    align-items: center;
}

.p4p-vl-pathway__tag {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: var(--wp--preset--color--sage);
    text-transform: uppercase;
    margin: 0;
    white-space: nowrap;
}

.p4p-vl-pathway__body {
    font-size: 15px;
    line-height: 1.55;
    color: rgba(237, 240, 242, 0.9);
    margin: 0;
}

/* Application form aside */
.p4p-vl-aside__title {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 44px;
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: -0.015em;
    color: var(--wp--preset--color--navy-deep);
    margin: 0;
    text-wrap: balance;
}

.p4p-vl-expect {
    background-color: var(--wp--preset--color--paper);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--lg);
    padding: 22px 24px;
    margin: 0;
}

.p4p-vl-expect__tag {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.10em;
    color: var(--wp--preset--color--navy-deep);
    text-transform: uppercase;
    margin: 0 0 14px;
}

.p4p-vl-expect ol {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 14px;
    line-height: 1.7;
    color: var(--wp--preset--color--body);
}

.p4p-vl-expect li {
    margin-bottom: 8px;
}

.p4p-vl-expect li:last-child {
    margin-bottom: 0;
}

.p4p-vl-expect strong {
    color: var(--wp--preset--color--navy-deep);
}

/* Application form card */
.p4p-vl-form {
    background-color: var(--wp--preset--color--paper);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--xl);
    padding: 40px 44px;
    color: var(--wp--preset--color--body);
}

/* Role pills (selectable buttons) */
.p4p-vl-rolepills {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin-bottom: 32px;
}

.p4p-vl-rolepill {
    text-align: left;
    padding: 18px 20px;
    background-color: var(--wp--preset--color--paper);
    color: var(--wp--preset--color--navy-deep);
    border: 1.5px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--lg);
    cursor: pointer;
    font-family: inherit;
    width: 100%;
    transition: all 0.15s ease;
}

.p4p-vl-rolepill:hover:not(:disabled) {
    border-color: var(--wp--preset--color--navy);
    transform: translateY(-1px);
}

.p4p-vl-rolepill--disabled,
.p4p-vl-rolepill:disabled {
    cursor: not-allowed;
    opacity: 0.6;
    color: var(--wp--preset--color--muted);
}

.p4p-vl-rolepill__head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 6px;
}

.p4p-vl-rolepill__label {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 18px;
    font-weight: 700;
}

.p4p-vl-rolepill__badge {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.10em;
    color: var(--wp--preset--color--muted);
    padding: 2px 8px;
    background-color: var(--wp--preset--color--cream-soft);
    border-radius: var(--wp--custom--radius--sm);
    text-transform: uppercase;
}

.p4p-vl-rolepill__sub {
    display: block;
    font-family: var(--wp--preset--font-family--sans);
    font-size: 13px;
    opacity: 0.7;
    line-height: 1.4;
    color: inherit;
}

.p4p-vl-consent {
    margin-top: 14px;
    padding: 14px 16px;
    background-color: var(--wp--preset--color--cream-soft);
    border-radius: var(--wp--custom--radius--md);
    font-size: 13px;
    color: var(--wp--preset--color--muted);
    line-height: 1.6;
}

.p4p-vl-consent strong {
    color: var(--wp--preset--color--navy-deep);
}

/* =====================================================================
 * PARTNERS PAGE — page-specific layout for /partners/
 * =================================================================== */

.p4p-pt-herocard {
    background-color: var(--wp--preset--color--cream);
    padding: 50px 50px;
    border-radius: var(--wp--custom--radius--xl);
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.4);
    text-align: center;
}

.p4p-pt-herocard__tag {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--wp--preset--color--navy-deep);
    text-transform: uppercase;
    margin: 0 0 24px;
}

.p4p-pt-herocard img {
    height: 80px;
    width: auto;
    display: block;
    margin: 0 auto;
}

/* Featured partnership card */
.p4p-pt-feature {
    background-color: var(--wp--preset--color--paper);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--xl);
    padding: 60px 56px;
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: 60px;
    align-items: center;
}

.p4p-pt-feature__logo-card {
    background-color: var(--wp--preset--color--cream-soft);
    padding: 32px 28px;
    border-radius: var(--wp--custom--radius--lg);
    margin-bottom: 22px;
    text-align: center;
}

.p4p-pt-feature__logo-card img {
    height: 64px;
    width: auto;
    margin: 0 auto;
    display: block;
}

.p4p-pt-feature__since {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--wp--preset--color--navy-deep);
    text-transform: uppercase;
    margin: 0 0 8px;
}

.p4p-pt-feature__program {
    font-size: 22px;
    font-weight: 600;
    line-height: 1.15;
    margin: 0 0 8px;
}

.p4p-pt-feature__locale {
    font-size: 14px;
    color: var(--wp--preset--color--muted);
    margin: 0;
}

.p4p-pt-feature__story .is-style-eyebrow {
    margin: 0 0 14px;
}

.p4p-pt-feature__title {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 40px;
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: -0.015em;
    color: var(--wp--preset--color--navy-deep);
    margin: 0 0 20px;
    text-wrap: balance;
}

.p4p-pt-feature__lead {
    font-size: 18px;
    line-height: 1.55;
    color: var(--wp--preset--color--body);
    margin: 0 0 18px;
}

.p4p-pt-feature__body {
    font-size: 16px;
    line-height: 1.55;
    color: var(--wp--preset--color--muted);
    margin: 0 0 28px;
}

/* Foundation partners — grid that scales as more funders are added. */
.p4p-pt-foundations {
    display: grid;
    gap: 24px;
    max-width: 980px;
    margin: 0 auto;
}

.p4p-pt-foundation {
    background-color: var(--wp--preset--color--cream-soft);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--xl);
    padding: 40px 48px;
    display: grid;
    grid-template-columns: 38% 1fr;
    gap: 48px;
    align-items: center;
    margin: 0;
}

.p4p-pt-foundation__logo-card {
    background-color: var(--wp--preset--color--paper);
    border-radius: var(--wp--custom--radius--lg);
    padding: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 160px;
}

.p4p-pt-foundation__logo-card img {
    max-width: 100%;
    max-height: 140px;
    width: auto;
    height: auto;
    display: block;
    object-fit: contain;
}

.p4p-pt-foundation__name {
    font-size: 24px;
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: -0.01em;
    color: var(--wp--preset--color--navy-deep);
    margin: 0 0 16px;
}

.p4p-pt-foundation__quote {
    margin: 0 0 16px;
    padding: 14px 18px;
    border-left: 3px solid var(--wp--preset--color--gold);
    background-color: var(--wp--preset--color--paper);
    border-radius: 0 var(--wp--custom--radius--md) var(--wp--custom--radius--md) 0;
    font-size: 16px;
    font-style: italic;
    line-height: 1.5;
    color: var(--wp--preset--color--body);
}

.p4p-pt-foundation__body {
    font-size: 15px;
    line-height: 1.55;
    color: var(--wp--preset--color--muted);
    margin: 0;
}

/* =====================================================================
 * FAQ PAGE — page-specific layout for /faq/
 * =================================================================== */

.p4p-fq-section-title {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 30px;
    font-weight: 600;
    color: var(--wp--preset--color--navy-deep);
    margin: 50px 0 24px;
    padding-bottom: 14px;
    border-bottom: 2px solid var(--wp--preset--color--gold);
}

.p4p-fq-section-title:first-of-type {
    margin-top: 0;
}

/* =====================================================================
 * SERVICE DOG HOME PAGE — page-specific layout for /service-dog-home/
 * =================================================================== */

/* Full-bleed cinematic hero */
.p4p-hm-hero {
    position: relative;
    height: 620px;
    overflow: hidden;
    background-color: var(--wp--preset--color--navy-deep);
}

.p4p-hm-hero > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: var(--p4p-focal, 50% 50%);
    display: block;
}

.p4p-hm-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg,
        rgba(15, 38, 56, 0.15) 0%,
        rgba(15, 38, 56, 0.45) 50%,
        rgba(15, 38, 56, 0.85) 100%);
    pointer-events: none;
}

.p4p-hm-hero__content {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 0 40px 56px;
    max-width: 1180px;
    margin: 0 auto;
}

.p4p-hm-hero__content .is-style-eyebrow {
    margin: 0 0 18px;
}

.p4p-hm-hero__title {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 68px;
    font-weight: 600;
    line-height: 1.02;
    letter-spacing: -0.015em;
    color: var(--wp--preset--color--cream);
    margin: 0 0 22px;
    text-wrap: balance;
    max-width: 860px;
}

.p4p-hm-hero__lead {
    font-size: 18px;
    line-height: 1.55;
    color: rgba(237, 240, 242, 0.85);
    max-width: 660px;
    margin: 0 0 24px;
}

.p4p-hm-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    font-family: var(--wp--preset--font-family--mono);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.08em;
    color: rgba(237, 240, 242, 0.78);
    text-transform: uppercase;
}

/* Reusable photo wrapper with aspect-ratio modifiers */
.p4p-hm-photo > img {
    display: block;
    width: 100%;
    object-fit: cover;
    object-position: var(--p4p-focal, 50% 50%);
    border-radius: var(--wp--custom--radius--xl);
}

.p4p-hm-photo--4-3 > img { aspect-ratio: 4 / 3; }
.p4p-hm-photo--4-5 > img { aspect-ratio: 4 / 5; }
.p4p-hm-photo--16-9 > img { aspect-ratio: 16 / 9; }
.p4p-hm-photo--4-3 > img { aspect-ratio: 4 / 3; }

/* Numbers strip */
.p4p-hm-numbers {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 28px;
    max-width: 1180px;
    margin: 0 auto;
}

.p4p-hm-numbers > div {
    padding-left: 28px;
    border-left: 1px solid rgba(237, 240, 242, 0.18);
    display: flex;
    flex-direction: column;
}

.p4p-hm-numbers > div:first-child {
    border-left: none;
    padding-left: 0;
}

.p4p-hm-numbers strong {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 56px;
    font-weight: 600;
    color: var(--wp--preset--color--sage);
    line-height: 1;
    margin-bottom: 8px;
}

.p4p-hm-numbers__l {
    font-size: 16px;
    font-weight: 700;
    color: var(--wp--preset--color--cream);
    margin-bottom: 4px;
}

.p4p-hm-numbers__s {
    font-size: 14px;
    color: rgba(237, 240, 242, 0.7);
    line-height: 1.4;
}

/* Chapter divider */
.p4p-hm-divider {
    max-width: 980px;
    margin: 0 auto;
    padding: 0 40px;
    text-align: center;
}

.p4p-hm-divider__chapter {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: var(--wp--preset--color--gold);
    text-transform: uppercase;
    margin: 0 0 14px;
}

.p4p-hm-divider__title {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 42px;
    font-weight: 600;
    line-height: 1.12;
    letter-spacing: -0.015em;
    color: var(--wp--preset--color--navy-deep);
    margin: 0 0 14px;
    text-wrap: balance;
}

.p4p-hm-divider__kicker {
    font-size: 18px;
    line-height: 1.55;
    color: var(--wp--preset--color--muted);
    max-width: 720px;
    margin: 0 auto;
}

/* Photo + text spread (alternating sides) */
.p4p-hm-spread {
    max-width: 1180px;
    margin: 30px auto 0;
    padding: 0 40px;
    display: grid;
    gap: 50px;
    align-items: center;
}

.p4p-hm-spread--photo-left {
    grid-template-columns: 1.2fr 1fr;
}

.p4p-hm-spread--photo-right {
    grid-template-columns: 1fr 1.2fr;
}

.p4p-hm-spread--photo-right .p4p-hm-spread__photo {
    order: 2;
}

.p4p-hm-spread__photo > img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: var(--p4p-focal, 50% 50%);
    border-radius: var(--wp--custom--radius--xl);
    max-height: 460px;
}

.p4p-hm-spread__caption {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.10em;
    color: var(--wp--preset--color--navy-deep);
    text-transform: uppercase;
    margin: 0 0 14px;
}

.p4p-hm-spread__text p:not(.p4p-hm-spread__caption) {
    font-size: 16px;
    line-height: 1.6;
    color: var(--wp--preset--color--body);
    margin: 0;
}

/* Public-environment simulators (chapter 4) */
.p4p-hm-sims {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin: 0;
}

.p4p-hm-sim {
    margin: 0;
}

.p4p-hm-sim__photo > img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: var(--p4p-focal, 50% 50%);
    border-radius: var(--wp--custom--radius--lg);
    margin-bottom: 18px;
}

.p4p-hm-sim__tag {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--wp--preset--color--sage);
    text-transform: uppercase;
    margin: 0 0 8px;
}

.p4p-hm-sim__title {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 22px;
    font-weight: 600;
    color: var(--wp--preset--color--cream);
    margin: 0 0 10px;
}

.p4p-hm-sim__body {
    font-size: 14px;
    line-height: 1.55;
    color: rgba(237, 240, 242, 0.78);
    margin: 0;
}

/* "Plus —" callout below sims */
.p4p-hm-plus {
    margin: 60px 0 0;
    padding: 28px 32px;
    background-color: rgba(237, 240, 242, 0.06);
    border: 1px solid rgba(237, 240, 242, 0.14);
    border-radius: var(--wp--custom--radius--lg);
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 24px;
    align-items: center;
}

.p4p-hm-plus__mark {
    font-family: var(--wp--preset--font-family--script);
    font-size: 36px;
    color: var(--wp--preset--color--sage);
    line-height: 1;
    font-weight: 700;
}

.p4p-hm-plus p {
    font-size: 15px;
    color: rgba(237, 240, 242, 0.82);
    line-height: 1.6;
    margin: 0;
}

/* Closing section */
.p4p-hm-close__title {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 48px;
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: -0.015em;
    color: var(--wp--preset--color--navy-deep);
    margin: 0;
    text-align: center;
    text-wrap: balance;
}

.p4p-hm-close__caption {
    margin: 24px 0 0;
    text-align: center;
    font-family: var(--wp--preset--font-family--mono);
    font-size: 14px;
    letter-spacing: 0.14em;
    color: var(--wp--preset--color--muted);
    text-transform: uppercase;
}

/* =====================================================================
 * STORY (Bear and friends) — single-story layout + editorial elements
 * =================================================================== */

.p4p-br-title {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 88px;
    font-weight: 600;
    line-height: 0.98;
    letter-spacing: -0.02em;
    color: var(--wp--preset--color--navy-deep);
    text-align: center;
    text-wrap: balance;
    margin: 0;
}

.p4p-br-hero-photo > img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    object-position: var(--p4p-focal, 50% 35%);
    border-radius: var(--wp--custom--radius--xl);
}

/* Editorial body prose with optional drop cap */
.p4p-br-prose {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 19px;
    line-height: 1.65;
    color: var(--wp--preset--color--body);
    margin: 0 0 22px;
}

.p4p-br-prose:last-child {
    margin-bottom: 0;
}

.p4p-br-dropcap {
    float: left;
    font-family: var(--wp--preset--font-family--sans);
    font-size: 86px;
    line-height: 0.85;
    font-weight: 600;
    color: var(--wp--preset--color--gold);
    padding-right: 14px;
    padding-top: 6px;
}

/* Photo essay — 3-column figure grid */
.p4p-br-essay {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}

.p4p-br-essay--two-up {
    grid-template-columns: repeat(2, 1fr);
    max-width: 880px;
    margin: 0 auto;
}

/* =====================================================================
 * GLOBAL SECTION PADDING REDUCTION
 * User feedback 2026-05-06: section vertical gaps were too generous,
 * making pages feel long. This collapses common large paddings so every
 * page tightens without per-section edits. Mobile overrides earlier in
 * this file (at ≤640px) still apply where they're more aggressive.
 * =================================================================== */

section.alignfull[style*="padding-top:110px"]    { padding-top: 50px !important; }
section.alignfull[style*="padding-top:100px"]    { padding-top: 46px !important; }
section.alignfull[style*="padding-top:90px"]     { padding-top: 42px !important; }
section.alignfull[style*="padding-top:80px"]     { padding-top: 38px !important; }
section.alignfull[style*="padding-top:70px"]     { padding-top: 34px !important; }
section.alignfull[style*="padding-top:60px"]     { padding-top: 30px !important; }
section.alignfull[style*="padding-top:50px"]     { padding-top: 26px !important; }
section.alignfull[style*="padding-top:40px"]     { padding-top: 22px !important; }

section.alignfull[style*="padding-bottom:110px"] { padding-bottom: 50px !important; }
section.alignfull[style*="padding-bottom:100px"] { padding-bottom: 46px !important; }
section.alignfull[style*="padding-bottom:90px"]  { padding-bottom: 42px !important; }
section.alignfull[style*="padding-bottom:80px"]  { padding-bottom: 38px !important; }
section.alignfull[style*="padding-bottom:70px"]  { padding-bottom: 34px !important; }
section.alignfull[style*="padding-bottom:60px"]  { padding-bottom: 30px !important; }
section.alignfull[style*="padding-bottom:50px"]  { padding-bottom: 26px !important; }
section.alignfull[style*="padding-bottom:40px"]  { padding-bottom: 22px !important; }

.p4p-br-essay__col {
    margin: 0;
}

.p4p-br-essay__col > img {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    object-position: var(--p4p-focal, 50% 50%);
    border-radius: var(--wp--custom--radius--lg);
    margin-bottom: 16px;
}

.p4p-br-essay__col h4 {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 22px;
    font-weight: 600;
    color: var(--wp--preset--color--navy-deep);
    margin: 0 0 8px;
}

.p4p-br-essay__col p {
    font-size: 14px;
    line-height: 1.55;
    color: var(--wp--preset--color--muted);
    margin: 0;
}

/* Big pull quote on navy-deep */
.p4p-br-pullquote {
    margin: 0;
}

.p4p-br-pullquote__mark {
    display: block;
    font-family: var(--wp--preset--font-family--sans);
    font-size: 120px;
    line-height: 0.6;
    color: var(--wp--preset--color--gold);
    margin-bottom: 0;
}

.p4p-br-pullquote p {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 44px;
    line-height: 1.25;
    font-weight: 500;
    font-style: italic;
    color: var(--wp--preset--color--cream);
    margin: 0 0 32px;
    letter-spacing: -0.01em;
    text-wrap: balance;
}

.p4p-br-pullquote cite {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--wp--preset--color--sage);
    text-transform: uppercase;
    font-style: normal;
}

/* Day-with-Bear timeline */
.p4p-br-day {
    display: grid;
    gap: 0;
}

.p4p-br-day__row {
    display: grid;
    grid-template-columns: 160px 1fr;
}

.p4p-br-day__time {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 13px;
    font-weight: 700;
    color: var(--wp--preset--color--gold);
    letter-spacing: 0.08em;
    padding: 24px 24px 24px 0;
    border-right: 2px solid var(--wp--preset--color--line);
    position: relative;
}

.p4p-br-day__row:not(:first-child) .p4p-br-day__time {
    border-top: 1px solid var(--wp--preset--color--line);
}

.p4p-br-day__time::after {
    content: "";
    position: absolute;
    right: -7px;
    top: 30px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background-color: var(--wp--preset--color--gold);
    border: 2px solid var(--wp--preset--color--cream-soft);
}

.p4p-br-day__content {
    padding: 24px 0 24px 32px;
}

.p4p-br-day__row:not(:first-child) .p4p-br-day__content {
    border-top: 1px solid var(--wp--preset--color--line);
}

.p4p-br-day__content h4 {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 22px;
    font-weight: 600;
    color: var(--wp--preset--color--navy-deep);
    margin: 0 0 6px;
}

.p4p-br-day__content p {
    font-size: 15px;
    line-height: 1.55;
    color: var(--wp--preset--color--body);
    margin: 0;
}

/* =====================================================================
 * STORY ARCHIVE — grid of story cards on /stories/
 * =================================================================== */

.p4p-story-archive .wp-block-post-template {
    gap: 24px;
}

.p4p-story-archive .p4p-story-card {
    overflow: hidden;
    border: 1px solid var(--wp--preset--color--line);
    transition: transform .15s ease, box-shadow .15s ease;
}

.p4p-story-archive .p4p-story-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 32px rgba(0, 0, 0, 0.08);
}

.p4p-story-archive .p4p-story-card .wp-block-post-featured-image {
    margin: 0;
}

.p4p-story-archive .p4p-story-card .wp-block-post-featured-image img {
    border-radius: 0;
    display: block;
    width: 100%;
}

.p4p-story-archive .p4p-story-card .wp-block-post-excerpt__excerpt {
    font-size: 14px;
    line-height: 1.55;
    color: var(--wp--preset--color--body);
    margin: 0 0 12px;
}

.p4p-story-archive .p4p-story-card .wp-block-post-excerpt__more-link {
    font-family: var(--wp--preset--font-family--sans);
    font-weight: 700;
    color: var(--wp--preset--color--navy);
    text-decoration: none;
    font-size: 14px;
}

/* =====================================================================
 * WPFORMS — style the plugin's output to match the brand.
 * Targets .wpforms-container which wraps every form on the front-end.
 * =================================================================== */

.wpforms-container {
    margin: 0;
    font-family: var(--wp--preset--font-family--sans) !important;
}

.wpforms-container .wpforms-field {
    padding: 0 0 16px 0 !important;
}

.wpforms-container label.wpforms-field-label {
    font-family: var(--wp--preset--font-family--sans) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    color: var(--wp--preset--color--navy-deep) !important;
    letter-spacing: 0.02em !important;
    margin-bottom: 8px !important;
    display: block !important;
}

.wpforms-container .wpforms-required-label,
.wpforms-container label.wpforms-field-label .wpforms-required {
    color: var(--wp--preset--color--gold) !important;
    margin-left: 2px;
}

.wpforms-container input[type=text],
.wpforms-container input[type=email],
.wpforms-container input[type=tel],
.wpforms-container input[type=url],
.wpforms-container input[type=number],
.wpforms-container select,
.wpforms-container textarea {
    width: 100% !important;
    padding: 12px 14px !important;
    font-family: var(--wp--preset--font-family--sans) !important;
    font-size: 15px !important;
    color: var(--wp--preset--color--body) !important;
    background-color: var(--wp--preset--color--paper) !important;
    border: 1.5px solid var(--wp--preset--color--line) !important;
    border-radius: var(--wp--custom--radius--md) !important;
    box-sizing: border-box !important;
    line-height: 1.4 !important;
    transition: border-color .15s ease;
}

.wpforms-container input:focus,
.wpforms-container select:focus,
.wpforms-container textarea:focus {
    border-color: var(--wp--preset--color--navy) !important;
    outline: none !important;
}

.wpforms-container .wpforms-field-sublabel {
    font-family: var(--wp--preset--font-family--sans) !important;
    font-size: 12px !important;
    color: var(--wp--preset--color--muted) !important;
}

.wpforms-container .wpforms-field-description {
    font-family: var(--wp--preset--font-family--sans) !important;
    font-size: 12px !important;
    color: var(--wp--preset--color--muted) !important;
    margin-top: 6px !important;
}

/* Submit button — match our primary button (navy pill, cream text) */
.wpforms-container .wpforms-submit-container {
    padding-top: 8px;
}

.wpforms-container button[type=submit].wpforms-submit {
    font-family: var(--wp--preset--font-family--sans) !important;
    font-weight: 700 !important;
    font-size: 15px !important;
    letter-spacing: 0.01em !important;
    background-color: var(--wp--preset--color--navy) !important;
    color: var(--wp--preset--color--paper) !important;
    border: none !important;
    border-radius: var(--wp--custom--radius--pill) !important;
    padding: 14px 28px !important;
    box-shadow: 0 2px 0 var(--wp--preset--color--navy-deep) !important;
    cursor: pointer;
    transition: transform .15s ease;
}

.wpforms-container button[type=submit].wpforms-submit:hover {
    transform: translateY(-1px);
}

/* Validation error states */
.wpforms-container .wpforms-error {
    color: var(--wp--preset--color--gold-deep) !important;
    font-size: 12px !important;
    margin-top: 4px !important;
}

.wpforms-container input.wpforms-error,
.wpforms-container select.wpforms-error,
.wpforms-container textarea.wpforms-error {
    border-color: var(--wp--preset--color--gold-deep) !important;
}

/* Confirmation message after submit */
.wpforms-confirmation-container,
.wpforms-confirmation-container-full {
    background-color: var(--wp--preset--color--cream-soft) !important;
    border: 1px solid var(--wp--preset--color--line) !important;
    border-left: 3px solid var(--wp--preset--color--sage) !important;
    border-radius: var(--wp--custom--radius--md) !important;
    padding: 18px 22px !important;
    color: var(--wp--preset--color--body) !important;
    font-family: var(--wp--preset--font-family--sans) !important;
    font-size: 15px !important;
    line-height: 1.55 !important;
}

/* =====================================================================
 * NAVIGATION SUBMENU — style desktop dropdowns to match the navy nav.
 * (Mobile overlay is already handled by the nav block's overlayMenu props.)
 * =================================================================== */

.wp-block-navigation .wp-block-navigation__submenu-container {
    background-color: var(--wp--preset--color--navy-deep);
    border: 1px solid rgba(237, 240, 242, 0.18);
    border-radius: var(--wp--custom--radius--md);
    padding: 6px;
    min-width: 220px;
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.35);
    z-index: 100;
}

.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    color: var(--wp--preset--color--cream);
    padding: 10px 14px;
    border-radius: var(--wp--custom--radius--sm);
    font-size: 14px;
    text-decoration: none;
    display: block;
    transition: background-color .15s ease, color .15s ease;
}

.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible {
    background-color: rgba(237, 240, 242, 0.08);
    color: var(--wp--preset--color--sage);
}

.wp-block-navigation .wp-block-navigation__submenu-icon {
    margin-left: 6px;
    fill: currentColor;
}

/* =====================================================================
 * ACCESSIBILITY — focus rings + skip link
 * =================================================================== */

/* Skip-to-content link injected via wp_body_open hook (functions.php).
   Visible only when focused via keyboard. */
.p4p-skip-link {
    position: absolute;
    top: 0;
    left: 0;
    padding: 12px 20px;
    background-color: var(--wp--preset--color--navy-deep);
    color: var(--wp--preset--color--cream);
    text-decoration: none;
    font-family: var(--wp--preset--font-family--sans);
    font-weight: 700;
    font-size: 14px;
    z-index: 100000;
    transform: translateY(-100%);
    transition: transform .15s ease;
}

.p4p-skip-link:focus {
    transform: translateY(0);
    outline: 2px solid var(--wp--preset--color--sage);
    outline-offset: -2px;
}

/* Visible focus rings on all interactive elements — only when keyboard-focused. */
:where(a, button, input, select, textarea, [tabindex]:not([tabindex="-1"])):focus-visible {
    outline: 2px solid var(--wp--preset--color--navy);
    outline-offset: 2px;
    border-radius: 2px;
}

/* On dark navy-deep sections, switch focus ring to sage for contrast. */
:where(.has-navy-deep-background-color, .has-navy-background-color, footer.wp-block-template-part)
    :where(a, button, input, select, textarea):focus-visible {
    outline-color: var(--wp--preset--color--sage);
}

/* Screen-reader-only utility (used elsewhere if needed). */
.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    word-wrap: normal !important;
}

/* =====================================================================
 * RESPONSIVE — tablet (≤980px) + mobile (≤640px)
 * Strategy: at tablet, multi-column grids relax; at mobile, everything
 * collapses to a single column with smaller typography and tighter padding.
 * =================================================================== */

/* ---- Tablet ≤980px ---- */
@media (max-width: 980px) {
    /* 4-col + 3-col grids → 2-col */
    .p4p-process-grid,
    .p4p-trainers-grid,
    .p4p-pt-levels,
    .p4p-td-why,
    .p4p-td-cost-grid,
    .p4p-ab-leaders,
    .p4p-ab-board,
    .p4p-ab-people,
    .p4p-hm-numbers,
    .p4p-sd-stats,
    .p4p-td-stats,
    .p4p-ab-figures,
    .p4p-mission-grid,
    .p4p-involve-grid,
    .p4p-tier-grid,
    .p4p-other-grid,
    .p4p-partner-grid,
    .p4p-td-findings,
    .p4p-td-voices,
    .p4p-pt-foundations,
    .p4p-ab-values,
    .p4p-ct-router,
    .p4p-vl-roles,
    .p4p-vl-rolepills,
    .p4p-hm-sims,
    .p4p-br-essay,
    .p4p-sd-wag,
    .p4p-sd-diff {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    /* Featured-style cards stack */
    .p4p-pt-feature {
        grid-template-columns: 1fr !important;
        gap: 40px;
        padding: 40px 32px;
    }

    .p4p-pt-foundation {
        grid-template-columns: 1fr !important;
        gap: 32px;
        padding: 32px;
    }

    .p4p-td-spotlight {
        grid-template-columns: 1fr !important;
        gap: 40px;
    }

    /* Service Dogs alternating tracks → 1-col, photo on top */
    .p4p-sd-track,
    .p4p-sd-track--reverse {
        grid-template-columns: 1fr !important;
    }

    .p4p-sd-track--reverse .p4p-sd-track__photo {
        order: 0;
    }

    .p4p-sd-track__photo > img {
        aspect-ratio: 16 / 9;
    }

    .p4p-sd-track__body {
        padding: 28px 32px;
    }

    /* Hero headlines scale down */
    .p4p-sd-hero__title,
    .p4p-br-title {
        font-size: 56px;
    }

    .p4p-hm-hero__title {
        font-size: 56px;
    }

    /* Hero photos slightly less tall */
    .p4p-hero-photo > img,
    .p4p-sd-hero__photo > img,
    .p4p-td-hero__photo > img {
        aspect-ratio: 4 / 5;
    }

    /* Day-with-Bear timeline — narrower time column */
    .p4p-br-day__row {
        grid-template-columns: 110px 1fr;
    }

    /* Cinematic SDH hero shorter */
    .p4p-hm-hero {
        height: 480px;
    }

    .p4p-hm-hero__content {
        padding: 0 32px 40px;
    }

    /* Photo essay 3-col → 1-col is too aggressive at tablet; allow 3 */
    /* Keep .p4p-br-essay at 3 columns at tablet */

    /* Sims grid 3-col stays 3 */
}

/* ---- Mobile ≤640px ---- */
@media (max-width: 640px) {
    /* Every multi-column grid → 1-col */
    .p4p-mission-grid,
    .p4p-impact-grid,
    .p4p-trainers-grid,
    .p4p-process-grid,
    .p4p-involve-grid,
    .p4p-tier-grid,
    .p4p-other-grid,
    .p4p-partner-grid,
    .p4p-td-why,
    .p4p-td-findings,
    .p4p-td-research-detail,
    .p4p-td-voices,
    .p4p-td-cost-grid,
    .p4p-td-dual,
    .p4p-pt-levels,
    .p4p-ab-leaders,
    .p4p-ab-board,
    .p4p-ab-people,
    .p4p-ab-values,
    .p4p-ab-figures,
    .p4p-ct-router,
    .p4p-vl-roles,
    .p4p-vl-rolepills,
    .p4p-hm-numbers,
    .p4p-hm-sims,
    .p4p-br-essay,
    .p4p-sd-stats,
    .p4p-td-stats,
    .p4p-sd-wag,
    .p4p-sd-diff,
    .p4p-hm-plus,
    .p4p-hm-hero__meta {
        grid-template-columns: 1fr !important;
    }

    /* Track body padding tightens so text isn't cramped */
    .p4p-sd-track__body {
        padding: 28px 24px;
    }

    /* Founding Partner band wraps + stacks */
    .p4p-td-fcb__inner {
        flex-direction: column;
        gap: 18px;
        align-items: flex-start;
    }

    .p4p-td-fcb__copy {
        text-align: left;
    }

    /* Plus-callout in SDH chapter 4 — mark above body */
    .p4p-hm-plus {
        gap: 12px;
    }

    /* ===== Therapy Dogs page — mobile-specific compaction ===== */

    /* Research title: avoid balance-wrapping which makes weird lines on narrow viewports */
    .p4p-td-research__title {
        text-wrap: pretty;
        font-size: 28px;
    }

    /* Research findings — tighter padding so the stat tiles fit */
    .p4p-td-finding {
        padding: 24px 22px;
        gap: 6px;
    }

    .p4p-td-finding strong {
        font-size: 44px;
    }

    .p4p-td-finding__label {
        font-size: 16px;
    }

    .p4p-td-findings {
        margin-bottom: 32px;
    }

    /* Research detail (Emotional & Social) — left-align body, top border still sage */
    .p4p-td-research-detail h4 {
        font-size: 20px;
    }

    .p4p-td-research-detail p {
        font-size: 15px;
    }

    /* Voices — testimonial cards mobile */
    .p4p-td-voice__body {
        padding: 22px 20px 24px;
    }

    .p4p-td-voice__mark {
        font-size: 40px;
        margin-bottom: 4px;
    }

    .p4p-td-voice__quote {
        font-size: 15px;
        line-height: 1.6;
        margin-bottom: 18px;
    }

    .p4p-td-voice__name {
        font-size: 14px;
    }

    .p4p-td-voice__role {
        font-size: 12px;
    }

    /* Cost story — title scales down further, tiles get tighter */
    .p4p-td-cost__title {
        font-size: 28px;
        text-wrap: pretty;
    }

    .p4p-td-cost-grid {
        margin-top: 28px;
        gap: 12px;
    }

    .p4p-td-cost-grid article {
        padding: 18px 20px;
    }

    .p4p-td-cost-grid h5 {
        font-size: 17px;
    }

    /* Founding Partner spotlight — much tighter on mobile */
    .p4p-td-spotlight {
        gap: 28px;
    }

    .p4p-td-spotlight__logo {
        padding: 32px 24px 20px;
    }

    .p4p-td-spotlight__since {
        font-size: 10px;
        letter-spacing: 0.14em;
    }

    .p4p-td-spotlight__title {
        font-size: 28px !important;
    }

    .p4p-td-spotlight__lead {
        font-size: 15px;
    }

    .p4p-td-spotlight__quote {
        padding: 12px 16px;
    }

    .p4p-td-spotlight__quote p {
        font-size: 15px;
    }

    .p4p-td-spotlight__ask {
        font-size: 14px;
        margin: 16px 0 22px;
    }

    /* Section padding shrinks on Therapy Dogs heroes too */
    .p4p-td-stats,
    .p4p-td-fcb__inner {
        padding-left: 0;
        padding-right: 0;
    }

    /* ===== About page — mobile-specific compaction ===== */

    /* Figures band: stat numbers smaller, gap tighter so 4 stats don't take a full screen */
    .p4p-ab-figures {
        gap: 22px;
    }

    .p4p-ab-figure {
        padding-left: 16px;
    }

    .p4p-ab-figure strong {
        font-size: 40px;
    }

    .p4p-ab-figure__label {
        font-size: 14px;
    }

    .p4p-ab-figure__sub {
        font-size: 11px;
    }

    /* Team photo: super-wide 21/9 → flatter 3/2 on mobile so it stays visible */
    .p4p-ab-team-photo > img {
        aspect-ratio: 3 / 2;
    }

    .p4p-ab-team-photo {
        margin-bottom: 36px;
    }

    /* Leadership avatars: stop the giant 4/5 gradient blocks. 3/2 landscape with smaller initial. */
    .p4p-ab-leader__avatar {
        aspect-ratio: 3 / 2;
    }

    .p4p-ab-leader__avatar::after {
        font-size: 80px;
    }

    .p4p-ab-leader__body {
        padding: 18px 20px 22px;
    }

    .p4p-ab-leader__body h4 {
        font-size: 18px;
    }

    .p4p-ab-leader__role {
        font-size: 11px;
    }

    .p4p-ab-leaders {
        gap: 16px;
    }

    /* Board cards: tighten */
    .p4p-ab-board {
        gap: 14px;
    }

    .p4p-ab-director {
        padding: 18px 20px;
    }

    .p4p-ab-director__avatar {
        width: 48px;
        height: 48px;
    }

    .p4p-ab-director__avatar::after {
        font-size: 28px;
    }

    .p4p-ab-board-intro {
        font-size: 14px;
    }

    /* Values "How we operate" — tighten H3 + spacing, swap navy top border for shorter rule */
    .p4p-ab-values {
        gap: 28px;
    }

    .p4p-ab-values article {
        padding-top: 16px;
    }

    .p4p-ab-values h3 {
        font-size: 22px;
    }

    .p4p-ab-values p {
        font-size: 15px;
    }

    .p4p-ab-value__num {
        margin-bottom: 8px;
    }

    /* Section-head gold rule (used for Operational Leadership / Board of Directors labels) */
    .p4p-ab-section-head {
        margin-bottom: 18px;
    }

    /* Financials chart: tighten label + bar layout */
    .p4p-ab-finchart {
        padding: 20px 22px;
    }

    .p4p-ab-finchart__head {
        font-size: 12px;
    }

    /* ===== Contact page — mobile-specific compaction ===== */

    /* Router cards (Who are you looking for?) — tighter padding/title at mobile width */
    .p4p-ct-router {
        gap: 14px;
    }

    .p4p-ct-routercard {
        padding: 24px 22px;
    }

    .p4p-ct-routercard__title {
        font-size: 22px;
    }

    .p4p-ct-routercard__body {
        font-size: 15px;
        margin-bottom: 18px;
    }

    .p4p-ct-routercard:hover {
        transform: none;
    }

    /* Contact info column — phone/email values smaller so they don't wrap weirdly */
    .p4p-ct-info__value {
        font-size: 19px;
        word-break: break-word;
    }

    .p4p-ct-info__contact {
        padding: 16px 18px;
    }

    /* Contact form note — tighter on mobile */
    .p4p-ct-formnote {
        padding: 12px 14px;
        font-size: 12px;
    }

    /* Map height shorter on mobile so it doesn't dominate */
    .p4p-ct-map__label {
        font-size: 12px;
        padding: 10px 14px;
    }

    /* ===== Volunteer page — mobile-specific compaction ===== */

    /* Role cards (Ways to volunteer) — tighter padding + smaller title */
    .p4p-vl-role {
        padding: 22px 20px;
    }

    .p4p-vl-role__tag {
        font-size: 12px;
    }

    .p4p-vl-role__title {
        font-size: 22px;
        margin-bottom: 10px;
    }

    .p4p-vl-role__body {
        font-size: 15px;
        margin-bottom: 14px;
    }

    .p4p-vl-role__commit {
        font-size: 11px;
        padding: 6px 10px;
    }

    .p4p-vl-role__note {
        margin-top: 12px;
        padding: 10px 12px;
        font-size: 12px;
    }

    .p4p-vl-roles {
        gap: 14px;
    }

    /* Path to Employment — was a 2-col (tag + body) on navy-deep, now stacked + tighter */
    .p4p-vl-pathway {
        padding: 20px 22px;
        margin-top: 22px;
        gap: 8px;
    }

    .p4p-vl-pathway__tag {
        font-size: 11px;
        white-space: normal;
    }

    .p4p-vl-pathway__body {
        font-size: 14px;
    }

    /* Role pills — tighter, with min-height so the badge'd one doesn't tower */
    .p4p-vl-rolepills {
        gap: 10px;
    }

    .p4p-vl-rolepill {
        padding: 14px 16px;
    }

    .p4p-vl-rolepill__head {
        gap: 8px;
        margin-bottom: 4px;
        flex-wrap: wrap;
    }

    .p4p-vl-rolepill__label {
        font-size: 16px;
    }

    .p4p-vl-rolepill__badge {
        font-size: 10px;
        padding: 2px 6px;
    }

    .p4p-vl-rolepill__sub {
        font-size: 12px;
    }

    /* Form card — tighten internal padding so the form doesn't feel cramped */
    .p4p-vl-form {
        padding: 24px 22px;
    }

    /* Volunteer "What to expect" sidebar — tighten */
    .p4p-vl-expect {
        padding: 18px 20px;
    }

    .p4p-vl-aside__title {
        font-size: 28px;
    }

    /* ===== Partners page — mobile-specific compaction ===== */

    /* Hero FCB logo card — tighter padding, logo smaller */
    .p4p-pt-herocard {
        padding: 26px 22px;
    }

    .p4p-pt-herocard__tag {
        font-size: 11px;
        margin-bottom: 16px;
    }

    .p4p-pt-herocard img {
        height: 56px;
    }

    /* PT Featured (FCB founding investment) — more aggressive padding shrink */
    .p4p-pt-feature {
        padding: 24px 22px !important;
        gap: 28px !important;
    }

    .p4p-pt-feature__logo-card {
        padding: 22px 18px;
        margin-bottom: 16px;
    }

    .p4p-pt-feature__logo-card img {
        height: 48px;
    }

    .p4p-pt-feature__since {
        font-size: 11px;
    }

    .p4p-pt-feature__program {
        font-size: 18px;
    }

    .p4p-pt-feature__locale {
        font-size: 13px;
    }

    .p4p-pt-feature__title {
        font-size: 26px !important;
    }

    .p4p-pt-feature__lead {
        font-size: 16px;
        margin-bottom: 14px;
    }

    .p4p-pt-feature__body {
        font-size: 15px;
        margin-bottom: 22px;
    }

    /* Foundation Partner card (Dircks) — tighter */
    .p4p-pt-foundation {
        padding: 24px 22px;
        gap: 24px;
    }

    .p4p-pt-foundation__logo-card {
        padding: 22px;
        min-height: 120px;
    }

    .p4p-pt-foundation__logo-card img {
        max-height: 110px;
    }

    .p4p-pt-foundation__name {
        font-size: 20px;
        margin-bottom: 12px;
    }

    .p4p-pt-foundation__quote {
        padding: 12px 14px;
        font-size: 15px;
    }

    .p4p-pt-foundation__body {
        font-size: 14px;
    }

    /* Snowy Pines photo (kept at desktop aspect 4/5) — flatten on mobile */
    .p4p-pt-photo > img {
        aspect-ratio: 16 / 9;
    }

    /* Tier cards (Become a partner — Friend/Champion/Regional/Statewide) */
    .p4p-pt-levels {
        gap: 14px;
    }

    .p4p-pt-level {
        padding: 22px 20px;
    }

    .p4p-pt-level__tier {
        font-size: 12px;
    }

    .p4p-pt-level__range {
        font-size: 22px;
        margin-bottom: 12px;
    }

    .p4p-pt-level__body {
        font-size: 14px;
    }

    .p4p-pt-level__badge {
        font-size: 9px;
        padding: 3px 8px;
        right: 14px;
    }

    /* ===== Service Dog Home — mobile-specific compaction ===== */

    /* Numbers band on navy: stat numbers smaller, gap tighter */
    .p4p-hm-numbers {
        gap: 22px;
    }

    .p4p-hm-numbers strong {
        font-size: 40px;
    }

    .p4p-hm-numbers__l {
        font-size: 15px;
    }

    .p4p-hm-numbers__s {
        font-size: 12px;
    }

    /* Chapter 4 simulator cards: 4/5 portrait photos are too tall stacked, swap to 4/3 */
    .p4p-hm-sim__photo > img {
        aspect-ratio: 4 / 3;
        margin-bottom: 14px;
    }

    .p4p-hm-sim__tag {
        font-size: 12px;
    }

    .p4p-hm-sim__title {
        font-size: 19px;
        margin-bottom: 8px;
    }

    .p4p-hm-sim__body {
        font-size: 13px;
    }

    .p4p-hm-sims {
        gap: 28px;
    }

    /* Plus-callout: tighter padding, smaller "Plus —" mark, content reads as a stacked card */
    .p4p-hm-plus {
        margin-top: 40px;
        padding: 18px 20px;
    }

    .p4p-hm-plus__mark {
        font-size: 28px;
    }

    .p4p-hm-plus p {
        font-size: 14px;
    }

    /* Chapter divider sizing across all 4 chapters */
    .p4p-hm-divider {
        padding: 0 22px;
    }

    .p4p-hm-divider__chapter {
        font-size: 13px;
    }

    .p4p-hm-divider__title {
        font-size: 28px;
    }

    .p4p-hm-divider__kicker {
        font-size: 15px;
    }

    /* Chapter spreads (image + caption + body) — tighter gap when stacked */
    .p4p-hm-spread {
        margin: 40px auto 0;
    }

    .p4p-hm-spread__caption {
        font-size: 13px;
    }
}

    /* Stat strips: stack with breathing room */
    .p4p-sd-stats > div + div::before,
    .p4p-td-stats > div + div::before,
    .p4p-hm-numbers > div {
        border: none !important;
        padding-left: 0 !important;
    }

    .p4p-sd-stats,
    .p4p-td-stats,
    .p4p-hm-numbers {
        gap: 28px;
    }

    /* All wp:columns force-stack (some have inline flex-basis that overrides core's auto-stack) */
    .wp-block-columns .wp-block-column {
        flex-basis: 100% !important;
    }

    /* Section padding tightens */
    .wp-block-group.alignfull.has-background {
        padding-left: 22px !important;
        padding-right: 22px !important;
    }

    /* Reduce big top/bottom paddings on mobile heroes/sections */
    .p4p-donate-hero,
    .p4p-hero,
    section.alignfull[style*="padding-top:90px"],
    section.alignfull[style*="padding-top:100px"],
    section.alignfull[style*="padding-top:110px"] {
        padding-top: 60px !important;
        padding-bottom: 60px !important;
    }

    /* Headline scaling */
    .p4p-sd-hero__title,
    .p4p-br-title,
    .p4p-hm-hero__title {
        font-size: 40px;
    }

    .p4p-td-cost__title {
        font-size: 36px;
    }

    .p4p-td-bear__quote,
    .p4p-td-spotlight__title,
    .p4p-pt-feature__title,
    .p4p-sd-inquiry__title,
    .p4p-vl-aside__title,
    .p4p-hm-close__title {
        font-size: 32px !important;
    }

    .p4p-td-research__title,
    .p4p-hm-divider__title {
        font-size: 32px;
    }

    /* H1 inline styles in section headings (e.g. "Better dog. Better body…") */
    h1.wp-block-heading[style*="font-size:64px"],
    h1.wp-block-heading[style*="font-size:60px"] {
        font-size: 38px !important;
    }

    h1.wp-block-heading[style*="font-size:48px"],
    h1.wp-block-heading[style*="font-size:46px"],
    h1.wp-block-heading[style*="font-size:44px"],
    h1.wp-block-heading[style*="font-size:42px"],
    h2.wp-block-heading[style*="font-size:48px"],
    h2.wp-block-heading[style*="font-size:46px"],
    h2.wp-block-heading[style*="font-size:44px"],
    h2.wp-block-heading[style*="font-size:42px"] {
        font-size: 30px !important;
    }

    h1.wp-block-heading[style*="font-size:40px"],
    h2.wp-block-heading[style*="font-size:40px"],
    h2.wp-block-heading[style*="font-size:36px"],
    h2.wp-block-heading[style*="font-size:34px"],
    h2.wp-block-heading[style*="font-size:32px"] {
        font-size: 26px !important;
    }

    /* Pull-quote text scales */
    .p4p-br-pullquote p {
        font-size: 28px;
    }

    /* Stats numbers smaller */
    .p4p-sd-stats strong,
    .p4p-td-stats strong,
    .p4p-hm-numbers strong,
    .p4p-ab-figure strong {
        font-size: 44px;
    }

    /* Hero meta items flow column */
    .p4p-vl-hero-meta,
    .p4p-hm-hero__meta {
        flex-direction: column;
        gap: 8px;
    }

    .p4p-vl-hero-meta__sep {
        display: none;
    }

    /* Hero photo callout (homepage hero) becomes inline */
    .p4p-hero-callout {
        position: static;
        max-width: 100%;
        margin-top: 16px;
    }

    /* Hero stats stack with even spacing */
    .p4p-hero-stats {
        flex-direction: column;
        gap: 20px;
    }

    /* Logo circle slightly smaller on mobile to free header space */
    .p4p-logo-circle {
        width: 40px;
        height: 40px;
    }

    /* Form grids → 1-col, full-width fields */
    .p4p-sd-form__grid {
        grid-template-columns: 1fr !important;
    }

    .p4p-sd-form__field--full,
    .p4p-sd-form__field {
        grid-column: 1 / -1 !important;
    }

    /* Day-with-Bear timeline → vertical stack (time on top, content below) */
    .p4p-br-day__row {
        grid-template-columns: 1fr;
    }

    .p4p-br-day__time {
        border-right: none;
        border-bottom: 1px solid var(--wp--preset--color--line);
        padding: 16px 0 8px;
    }

    .p4p-br-day__time::after {
        display: none;
    }

    .p4p-br-day__content {
        padding: 12px 0 24px;
    }

    .p4p-br-day__row:not(:first-child) .p4p-br-day__content {
        border-top: none;
    }

    /* Tour spreads stack */
    .p4p-hm-spread,
    .p4p-hm-spread--photo-left,
    .p4p-hm-spread--photo-right {
        grid-template-columns: 1fr !important;
        gap: 32px !important;
        padding: 0 22px;
    }

    .p4p-hm-spread--photo-right .p4p-hm-spread__photo {
        order: 0;
    }

    /* Cinematic SDH hero shorter still */
    .p4p-hm-hero {
        height: 420px;
    }

    .p4p-hm-hero__content {
        padding: 0 22px 32px;
    }

    /* Founding partner spotlight pillstack */
    .p4p-vl-pathway {
        grid-template-columns: 1fr;
    }

    /* FCB hero card narrower padding */
    .p4p-pt-herocard {
        padding: 32px 28px;
    }

    /* Footer columns force stack */
    footer.wp-block-template-part .wp-block-columns .wp-block-column {
        flex-basis: 100% !important;
        margin-bottom: 24px;
    }

    /* Map height scales down */
    .p4p-ct-map {
        height: 280px;
    }

    /* Featured partner card mobile padding */
    .p4p-pt-feature {
        padding: 32px 24px;
    }

    /* Big buttons full-width on mobile */
    .wp-block-button.is-style-size-lg > .wp-block-button__link {
        font-size: 16px;
        padding: 14px 22px;
    }

    /* Navigation: rely on core's overlayMenu="mobile" — already set in header.html */

    /* Founders avatar 4/5 in leadership cards — keep, but smaller initials */
    .p4p-ab-leader__avatar::after {
        font-size: 110px;
    }

    /* Process strip cells: vertical hairlines wouldn't make sense → grid was 1px gap with line bg; on mobile each cell becomes a stacked card */
    .p4p-process-grid {
        gap: 12px;
        background-color: transparent;
        border: none;
        border-radius: 0;
        overflow: visible;
    }

    .p4p-process-step {
        border: 1px solid var(--wp--preset--color--line);
        border-radius: var(--wp--custom--radius--lg);
    }

    /* Keep eyebrows readable — slightly smaller on mobile */
    .is-style-eyebrow {
        font-size: 12px;
        gap: 8px;
    }

    .is-style-eyebrow::before {
        width: 20px;
    }

    /* Tighter Donate button on small viewports */
    .p4p-header__btns > .wp-block-button > .wp-block-button__link {
        font-size: 12px !important;
        padding: 8px 14px !important;
    }
}

/* ---- Header tightening across tablet + mobile ----
   Hide the Apply button and the small "501(C)(3)" caption below 980px so the
   logo + brand + nav (or hamburger) + Donate button fits cleanly. Force the
   navigation to its hamburger overlay below 980px (default WP threshold is
   600px which leaves a broken zone at 600–980px where the inline nav still
   shows but doesn't fit alongside everything else). */
@media (max-width: 980px) {
    .p4p-header__caption {
        display: none;
    }

    .p4p-header__btn--apply {
        display: none;
    }

    /* Force navigation overlay (hamburger) */
    .wp-block-navigation .wp-block-navigation__responsive-container-open:not(.always-shown) {
        display: flex !important;
    }

    .wp-block-navigation .wp-block-navigation__responsive-container:not(.is-menu-open):not(.has-modal-open) {
        display: none;
    }

    .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open {
        display: flex;
    }

    /* Shrink logo + keep Donate button visible on narrow viewports.
       Without these, the logo's intrinsic width plus the hamburger
       plus the Donate button overflows below ~480px and the Donate
       button gets pushed off-screen. */
    .p4p-logo-img {
        height: 56px;
    }

    .p4p-header__btns {
        flex-shrink: 0;
    }
}

@media (max-width: 480px) {
    .p4p-logo-img {
        height: 44px;
    }

    /* Tighter header padding on phone */
    .wp-site-blocks > .wp-block-template-part > .wp-block-group.has-navy-deep-background-color {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}

/* Snowy Pines photo */
.p4p-pt-photo > img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: var(--p4p-focal, 50% 25%);
    border-radius: var(--wp--custom--radius--xl);
}

/* Partnership levels — 4-up grid with gold-bordered last tier */
.p4p-pt-levels {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.p4p-pt-level {
    background-color: var(--wp--preset--color--paper);
    border: 1px solid var(--wp--preset--color--line);
    border-radius: var(--wp--custom--radius--lg);
    padding: 32px 26px;
    margin: 0;
    position: relative;
}

.p4p-pt-level--featured {
    border: 2px solid var(--wp--preset--color--gold);
}

.p4p-pt-level__badge {
    position: absolute;
    top: -12px;
    right: 18px;
    background-color: var(--wp--preset--color--gold);
    color: var(--wp--preset--color--cream);
    padding: 4px 10px;
    border-radius: 4px;
    font-family: var(--wp--preset--font-family--mono);
    font-size: 10px;
    letter-spacing: 0.14em;
    font-weight: 700;
}

.p4p-pt-level__tier {
    font-family: var(--wp--preset--font-family--mono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--wp--preset--color--navy-deep);
    text-transform: uppercase;
    margin: 0 0 12px;
}

.p4p-pt-level__range {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 26px;
    font-weight: 600;
    color: var(--wp--preset--color--navy-deep);
    line-height: 1.1;
    margin: 0 0 16px;
}

.p4p-pt-level__body {
    font-size: 14px;
    line-height: 1.55;
    color: var(--wp--preset--color--muted);
    margin: 0;
}
