/* Pulse Design: the shared PSI shell, with a distinct soft-seating palette. */
.psi-pulse-brand,
.psi-pulse-home-feature {
	--psi-navy: #243a31;
	--psi-navy-deep: #1f342b;
	--psi-ink: #243a31;
	--psi-muted: #536358;
	--psi-mist: #f5f3ed;
	--psi-line: #dedfd5;
	--psi-text-accent: #486c24;
	--pulse-green: #7db821;
	--pulse-paper: #f5f3ed;
	color: var(--psi-ink);
}
.psi-pulse-brand { background: var(--pulse-paper); }
.psi-pulse-logo { width: 180px; height: auto; max-height: 100px; object-fit: contain; object-position: left center; margin-bottom: 22px; }
.psi-pulse-brand .psi-eyebrow,
.psi-pulse-home-feature .psi-eyebrow { letter-spacing: .12em; margin-bottom: 20px; }
.psi-pulse-button,
.psi-pulse-brand .psi-button-primary { background: var(--pulse-green); border-color: var(--pulse-green); border-radius: 4px; color: #182d1d; }
.psi-pulse-button:hover,
.psi-pulse-button:focus-visible,
.psi-pulse-brand .psi-button-primary:hover,
.psi-pulse-brand .psi-button-primary:focus-visible { background: #abd66a; border-color: #abd66a; color: #182d1d; }
.psi-pulse-brand .psi-button:focus-visible,
.psi-pulse-home-feature .psi-button:focus-visible { outline: 3px solid #243a31; outline-offset: 4px; }
.psi-pulse-hero { padding-block: clamp(35px, 5vw, 68px) clamp(50px, 7vw, 86px); }
.psi-pulse-hero-grid { align-items: center; display: grid; gap: clamp(32px, 5vw, 72px); grid-template-columns: .9fr 1.3fr; }
.psi-pulse-hero-copy { min-width: 0; }
.psi-pulse-page h1 { font-size: clamp(36px, 4.8vw, 58px); font-weight: 650; max-width: 15ch; letter-spacing: -.04em; margin-bottom: 25px; overflow-wrap: normal; word-break: normal; }
.psi-pulse-hero .psi-lede { color: var(--psi-muted); font-size: max(17px, 1.0625rem); max-width: 43ch; margin-bottom: 27px; }
.psi-pulse-hero-visual { margin: 0; min-width: 0; }
.psi-pulse-hero-visual > img { aspect-ratio: 3 / 2; border-radius: 5px; width: 100%; object-fit: cover; }
.psi-pulse-hero-visual figcaption { color: var(--psi-muted); font-size: var(--psi-text-small); margin-top: 12px; }
.psi-pulse-products { padding-bottom: clamp(60px, 8vw, 110px); scroll-margin-top: 110px; }
.psi-pulse-products > .psi-shell { border-top: 1px solid var(--psi-line); padding-top: 42px; }
.psi-pulse-section-heading { align-items: baseline; display: flex; gap: 20px; justify-content: space-between; margin-bottom: 24px; }
.psi-pulse-section-heading h2 { font-size: clamp(28px, 3.3vw, 40px); font-weight: 650; margin-bottom: 0; }
.psi-pulse-section-heading p { color: var(--psi-muted); font-size: var(--psi-text-small); margin: 0; }
.psi-pulse-filter-bar { align-items: center; display: flex; flex-wrap: wrap; gap: 20px 30px; justify-content: space-between; margin-bottom: 32px; }
.psi-pulse-filter-bar[hidden],
.psi-pulse-product-card[hidden],
.psi-pulse-empty[hidden] { display: none; }
.psi-pulse-filters { display: flex; gap: 7px 24px; flex-wrap: wrap; }
.psi-pulse-filters button { background: transparent; border: 0; border-bottom: 3px solid transparent; border-radius: 0; color: var(--psi-muted); cursor: pointer; font-family: inherit; font-size: var(--psi-text-small); line-height: 1.5; padding: 10px 0; min-height: 44px; }
.psi-pulse-filters button[aria-pressed="true"] { color: var(--psi-ink); border-bottom-color: var(--pulse-green); font-weight: 750; }
.psi-pulse-filters button:focus-visible { outline: 2px solid var(--psi-navy); outline-offset: 4px; }
.psi-pulse-search-label { margin: 0; max-width: 100%; }
.psi-pulse-search-label .screen-reader-text { clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; white-space: nowrap; }
.psi-pulse-search-label input { background: #fff; border: 1px solid #a6b2a6; border-radius: 4px; color: var(--psi-ink); font-family: inherit; font-size: var(--psi-text-body); min-height: 46px; max-width: 100%; padding: 10px 14px; width: 250px; }
.psi-pulse-product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 38px 26px; }
.psi-pulse-product-card { color: var(--psi-ink); display: block; min-width: 0; }
.psi-pulse-product-card:hover,
.psi-pulse-product-card:focus-visible { color: var(--psi-ink); }
.psi-pulse-product-card:focus-visible { outline: 3px solid var(--psi-navy); outline-offset: 7px; }
.psi-pulse-product-photo { aspect-ratio: 8 / 5; background: #fff; border-radius: 4px; overflow: hidden; position: relative; }
.psi-pulse-product-photo img { width: 100%; height: 100%; object-fit: cover; padding: 0; position: absolute; inset: 0; }
.psi-pulse-product-name { align-items: baseline; display: flex; gap: 12px; justify-content: space-between; padding-top: 17px; }
.psi-pulse-product-name h3 { font-size: 22px; font-weight: 650; margin-bottom: 6px; }
.psi-pulse-product-name > span { font-size: 24px; }
.psi-pulse-product-card > p { color: var(--psi-muted); font-size: var(--psi-text-small); margin-bottom: 0; }
.psi-pulse-product-card:hover h3 { text-decoration: underline; text-underline-offset: 5px; }
.psi-pulse-empty { padding-block: 35px; }
.psi-pulse-project { background: #243a31; color: #fff; padding-block: 55px; }
.psi-pulse-project-inner { align-items: center; display: flex; gap: 30px; justify-content: space-between; }
.psi-pulse-project h2 { color: #fff; font-size: clamp(28px, 3.5vw, 40px); max-width: 24ch; }
.psi-pulse-project .psi-eyebrow { color: #bfdf95; }
.psi-pulse-project p:last-child { margin-bottom: 0; }
.psi-pulse-project .psi-button { flex-shrink: 0; }
.psi-pulse-home-feature { background: var(--pulse-paper); padding-block: clamp(65px, 8vw, 100px); }
.psi-pulse-home-feature h2 { color: var(--psi-ink); font-size: clamp(32px, 4.2vw, 48px); max-width: 16ch; font-weight: 650; }
.psi-pulse-home-feature p { max-width: 43ch; }
.psi-pulse-home-feature .psi-pulse-hero-visual > img { aspect-ratio: 16 / 10; }
.psi-pulse-product .psi-product-hero { background: var(--pulse-paper); }
.psi-pulse-product .psi-product-visual { box-shadow: none; border: 1px solid var(--psi-line); border-radius: 8px; }
.psi-pulse-product .psi-product-info,
.psi-pulse-product .psi-product-variants { background: #fff; }
.psi-pulse-product .psi-product-variant-card,
.psi-pulse-product .psi-product-feature-group { border-radius: 6px; }
.psi-pulse-product .psi-product-variants-grid { align-items: start; }
.psi-pulse-product .psi-product-copy .psi-pulse-logo { width: 140px; margin-bottom: 22px; }
.psi-pulse-product .psi-related { background: var(--pulse-paper); }
.psi-pulse-product .psi-related-card { border-radius: 6px; }
.psi-pulse-product .psi-cta { background: #243a31; }
.psi-pulse-product .psi-product-variant-card > dl { border-top: 1px solid var(--psi-line); display: grid; font-size: var(--psi-text-small); gap: 7px 18px; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); margin: 22px 0 0; padding-top: 18px; }
.psi-pulse-product .psi-product-variant-card dt { color: var(--psi-muted); font-weight: 500; line-height: 1.5; }
.psi-pulse-product .psi-product-variant-card dd { color: var(--psi-ink); font-weight: 650; line-height: 1.5; margin: 0; overflow-wrap: anywhere; }
.psi-pulse-product .psi-product-variant-card dt,
.psi-pulse-product .psi-product-variant-card dd { font-size: var(--psi-text-small); }
@media (max-width: 1100px) {
	.psi-pulse-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
	.psi-pulse-hero-grid { grid-template-columns: 1fr; }
	.psi-pulse-page h1 { max-width: 20ch; }
	.psi-pulse-hero-copy .psi-lede { max-width: 55ch; }
	.psi-pulse-hero-visual > img { aspect-ratio: 16 / 10; }
	.psi-pulse-project-inner { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 540px) {
	.psi-pulse-product-grid { grid-template-columns: 1fr; gap: 30px; }
	.psi-pulse-section-heading { align-items: flex-start; flex-direction: column; gap: 10px; }
	.psi-pulse-page h1 { font-size: 38px; max-width: 16ch; }
	.psi-pulse-filters { gap: 6px 20px; }
	.psi-pulse-search-label,
	.psi-pulse-search-label input { width: 100%; }
	.psi-pulse-logo { width: 155px; }
}
