/* Section appearance is scoped; header, footer and admin keep their own rules. */
.ps-section { padding: 7rem 0; background: var(--paper); color: var(--ink); }
.ps-inner { width: min(var(--content), calc(100% - 3rem)); margin-inline: auto; }
.ps-width-readable .ps-inner { max-width: 790px; }
.ps-width-full .ps-inner { width: 100%; padding-inline: 1.5rem; }
.ps-background-stone { background: var(--stone); }
.ps-background-plain { background: transparent; }
.ps-spacing-compact { padding-block: 2rem; }
.ps-spacing-generous { padding-block: 9rem; }
.ps-align-center { text-align: center; }
.ps-align-right { text-align: right; }
.ps-align-center .button-row,.ps-align-center .content-button-row { justify-content: center; }
.ps-align-right .button-row,.ps-align-right .content-button-row { justify-content: flex-end; }
.ps-section h1,.ps-section h2,.ps-section h3 { color: inherit; }
.ps-heading-size-small h2 { font-size: clamp(1.8rem,3vw,2.5rem); }
.ps-heading-size-large h2 { font-size: clamp(3rem,6vw,5rem); }
.ps-split { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(2rem,5vw,5rem); align-items: start; }
.ps-split > *,.ps-grid > * { min-width: 0; }
.ps-split .ps-copy { order: 1; }
.ps-split > .ps-image { order: 0; }
.ps-side-right .ps-split > .ps-image { order: 2; }
.ps-ratio-text.ps-side-left .ps-split,.ps-ratio-image.ps-side-right .ps-split { grid-template-columns: 2fr 3fr; }
.ps-ratio-text.ps-side-right .ps-split,.ps-ratio-image.ps-side-left .ps-split { grid-template-columns: 3fr 2fr; }
.ps-vertical-center .ps-split { align-items: center; }
.ps-split.ps-no-image { grid-template-columns: minmax(0,1fr); }
.ps-image { margin: 0; }
.ps-image img { display: block; width: 100%; height: auto; object-fit: contain; }
.ps-fit-cover .ps-image img { aspect-ratio: 4/3; object-fit: cover; }
.ps-position-top img { object-position: top; }
.ps-position-bottom img { object-position: bottom; }
.ps-image figcaption { margin-top: .75rem; }
.ps-grid { display: grid; gap: 1.5rem; margin-block: 1.5rem; grid-template-columns: repeat(3,minmax(0,1fr)); }
.ps-columns-1 .ps-grid { grid-template-columns: minmax(0,1fr); }
.ps-columns-2 .ps-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.ps-columns-4 .ps-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.ps-border-off .type-card,.ps-border-off .content-type-card { border: 0; background: transparent; }
.ps-testimonial-grid { align-items: stretch; gap: 1rem; margin-top: 1rem; }
.ps-testimonial-card { position: relative; display: flex; min-width: 0; flex-direction: column; margin: 0; border: 1px solid var(--line); padding: clamp(1rem,2vw,1.4rem); background: color-mix(in srgb,var(--paper) 92%,transparent); text-align: left; overflow-wrap: anywhere; }
.ps-testimonial-quote { height: .6em; color: var(--clay); font: 2.6rem/.9 var(--serif); }
.ps-testimonial-card blockquote { flex: 1; margin: .35rem 0 1rem; padding: 0; border: 0; color: inherit; font: 1.15rem/1.6 var(--serif); }
.ps-testimonial-card blockquote p { margin: 0; }
.ps-testimonial-card blockquote p + p { margin-top: 1rem; }
.ps-testimonial-card figcaption { display: flex; align-items: center; gap: .75rem; }
.ps-testimonial-card figcaption img { width: 3rem; height: 3rem; flex: 0 0 3rem; border-radius: 50%; object-fit: cover; }
.ps-testimonial-credit,.ps-testimonial-credit cite,.ps-testimonial-credit span { display: block; }
.ps-testimonial-credit cite { color: inherit; font: 750 .82rem/1.35 var(--sans); font-style: normal; }
.ps-testimonial-credit span { margin-top: .15rem; color: var(--muted); font-size: .75rem; line-height: 1.4; }
.ps-testimonial-credit .ps-testimonial-rating, .ps-testimonial-rating > span { color: var(--clay); font-size: 1rem; letter-spacing: .08em; }
.ps-testimonial-date { display: block; margin-top: .3rem; color: var(--muted); font: .8rem/1.4 var(--sans); }
.ps-align-center .ps-testimonial-card { text-align: center; }
.ps-align-center .ps-testimonial-card figcaption { justify-content: center; }
.ps-align-right .ps-testimonial-card { text-align: right; }
.ps-align-right .ps-testimonial-card figcaption { justify-content: flex-end; }
.ps-testimonial-link { color: inherit; text-decoration: none; }
.ps-testimonial-link::after { content: ''; position: absolute; inset: 0; }
.ps-testimonial-card:has(.ps-testimonial-link):hover { border-color: var(--clay); }
.ps-testimonial-card:focus-within { outline: 2px solid var(--clay); outline-offset: 3px; }
.ps-testimonials-more { margin: 1rem 0 0; }
.ps-testimonial-highlight { max-width: 790px; margin: 1rem auto 0; }
.ps-testimonial-highlight .ps-testimonial-card { border: 0; border-inline-start: 3px solid var(--clay); padding: clamp(1.25rem,3vw,2rem); }
.ps-testimonial-highlight blockquote { font-size: clamp(1.2rem,2vw,1.5rem); }
.ps-type-highlighted_testimonial .ps-testimonials-more { text-align: center; }
.testimonials-page { max-width: 850px; }
.testimonials-list { display: grid; gap: 1rem; }
.testimonials-list .ps-testimonial-card { scroll-margin-top: 8rem; }
.testimonials-list .ps-testimonial-card:target { outline: 2px solid var(--clay); outline-offset: 3px; }
.ps-variant-hero .ps-body > p:not(.eyebrow):not(.content-eyebrow),.ps-variant-lead .ps-body > p:not(.eyebrow):not(.content-eyebrow) { font-size: 1.3rem; color: var(--muted); line-height: 1.7; }
.ps-variant-statement h1 { font-size: clamp(3rem,5vw,5rem); }
.ps-type-inquiry .ps-split > .ps-copy { order: 0; }
.ps-section .page-prose .detail-list,.ps-section .page-prose .content-detail-list { padding: 0; }
.ps-section .page-prose .button,.ps-section .page-prose .content-button { text-decoration: none; }
.ps-section .ps-body:empty { display: none; }
@media (max-width: 900px) {
 .ps-columns-3 .ps-grid,.ps-columns-4 .ps-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 640px) {
 .ps-section { padding-block: 3rem; }
 .ps-spacing-compact { padding-block: 1.5rem; }
 .ps-spacing-generous { padding-block: 4rem; }
 .ps-inner { width: calc(100% - 2rem); }
 .ps-section .ps-split,.ps-section .ps-grid { grid-template-columns: minmax(0,1fr); }
 .ps-section .ps-split > .ps-image { order: 0; }
 .ps-mobile-after .ps-split > .ps-image { order: 2; }
}

.ps-variant-home-hero { padding: 0; }
.ps-variant-home-hero.ps-width-full > .ps-inner { width: 100%; padding:0; }
.ps-variant-home-hero .ps-split { min-height: calc(100vh - 88px); gap: 0; align-items: stretch; }
.ps-variant-home-hero .ps-copy { padding: clamp(3rem,7vw,7rem); background: transparent; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; }
.ps-variant-home-hero h1 { font-size: clamp(3.2rem,6.5vw,6.7rem); max-width:720px; }
.ps-variant-home-hero .ps-image img { height:100%; object-fit:cover; }
.ps-variant-hero { padding:7rem 0 5rem; }
.ps-variant-hero .ps-split { grid-template-columns:.95fr 1.05fr; gap:clamp(3rem,7vw,7rem); }
.ps-variant-hero h1 { font-size:clamp(3.2rem,6.5vw,6.7rem); }
.ps-variant-cta { padding:7rem 1.5rem; background:var(--clay-dark); color:white; }
.ps-variant-cta > .ps-inner { max-width:780px; }
@media(max-width:780px){ .ps-variant-home-hero .ps-split {grid-template-columns:minmax(0,1fr); min-height:0;} .ps-variant-home-hero .ps-copy {padding:4.5rem 1rem;} .ps-variant-home-hero .ps-image {min-height:58vh;} }
@media(max-width:640px){.ps-variant-hero .ps-split {grid-template-columns:minmax(0,1fr);} .ps-variant-hero{padding:4.5rem 0;}}

.ps-variant-home-hero .ps-split.ps-no-image,.ps-variant-hero .ps-split.ps-no-image { grid-template-columns:minmax(0,1fr); }

.ps-section.ps-background-paper { background:var(--paper); }
.ps-section.ps-background-stone { background:var(--stone); }
.ps-section.ps-background-plain { background:transparent; }

.ps-section.ps-heading-size-small h1 {font-size:clamp(2.5rem,4vw,4rem);}
.ps-section.ps-heading-size-large h1 {font-size:clamp(4rem,8vw,8rem);}

.ps-variant-home-hero.ps-fit-contain .ps-image img {height:auto;object-fit:contain;aspect-ratio:auto;}
.ps-variant-home-hero.ps-vertical-center .ps-split {align-items:center;}
.ps-variant-hero.ps-fit-cover .ps-image img {height:620px;aspect-ratio:auto;object-fit:cover;}
@media(max-width:780px){.ps-variant-hero.ps-fit-cover .ps-image img {height:58vh;}}

.ps-type-artworks .ps-grid > .art-card > a { display:block; overflow:hidden; }
.ps-type-artworks .ps-grid > .art-card > a > img { display:block; width:100%; }
.ps-image-shape-landscape .ps-grid > .art-card > a { aspect-ratio:4/3; }
.ps-image-shape-square .ps-grid > .art-card > a { aspect-ratio:1/1; }
.ps-image-shape-portrait .ps-grid > .art-card > a { aspect-ratio:3/4; }
.ps-image-shape-tall .ps-grid > .art-card > a { aspect-ratio:2/3; }
.ps-type-artworks:not(.ps-image-shape-natural) .ps-grid > .art-card > a > img { height:100%; }
.ps-type-artworks.ps-fit-cover .ps-grid > .art-card > a > img { object-fit:cover; }
.ps-type-artworks.ps-fit-contain .ps-grid > .art-card > a > img { object-fit:contain; }
.ps-image-shape-natural .ps-grid > .art-card > a > img { height:auto; }

/* Split layouts must size titles to the text column, not only the viewport.
   Retain emergency wrapping for unusually long words and user-supplied URLs. */
@supports (container-type: inline-size) {
 .ps-copy { container-type: inline-size; }
 .ps-section { --ps-title-size: clamp(3.2rem,6.5vw,6.7rem); --ps-subtitle-size: clamp(2.35rem,4.5vw,4.25rem); }
 .ps-variant-statement { --ps-title-size: clamp(3rem,5vw,5rem); }
 .ps-heading-size-small { --ps-title-size: clamp(2.5rem,4vw,4rem); --ps-subtitle-size: clamp(1.8rem,3vw,2.5rem); }
 .ps-heading-size-large { --ps-title-size: clamp(4rem,8vw,8rem); --ps-subtitle-size: clamp(3rem,6vw,5rem); }
 .ps-section .ps-copy > h1 { font-size: min(var(--ps-title-size),max(2rem,14cqi)); }
 .ps-section .ps-copy > h2 { font-size: min(var(--ps-subtitle-size),max(1.8rem,12cqi)); }
}

/* Authored HTML owns the content-* namespace. Unknown content classes are inert
   until a presentation rule is intentionally added here. */
.content-container { width:min(calc(100% - 3rem),var(--content)); margin-inline:auto; }
.content-narrow { width:min(calc(100% - 3rem),790px); margin-inline:auto; }
.content-lead,.content-large-copy { color:var(--muted); font-size:clamp(1.08rem,2vw,1.28rem); }
.content-lede + .content-lede { margin-top:1.25rem; }
.content-price { margin:.65rem 0 1rem; color:var(--clay-dark); font:1.55rem var(--serif); }
.content-eyebrow { margin:0 0 .85rem; color:var(--clay-dark); font-size:.74rem; font-weight:700; letter-spacing:.17em; text-transform:uppercase; }
.content-centered { text-align:center; }
.content-button,.content-button--outline,.content-button--small,.content-button--light { display:inline-flex; min-height:48px; align-items:center; justify-content:center; border:1px solid var(--clay-dark); padding:.72rem 1.2rem; color:white; background:var(--clay-dark); font-size:.8rem; font-weight:700; letter-spacing:.035em; text-decoration:none; cursor:pointer; transition:.2s ease; }
.content-button:hover,.content-button--outline:hover,.content-button--small:hover,.content-button--light:hover { background:#583022; transform:translateY(-2px); }
.content-button--outline { color:var(--ink); background:transparent; }
.content-button--outline:hover { color:white; background:var(--ink); }
.content-button--small { min-height:42px; padding-inline:1rem; white-space:nowrap; }
.content-button--light { border-color:var(--paper); color:var(--ink); background:var(--paper); }
.content-button--light:hover { color:white; background:transparent; }
.content-button-row,.content-button-row--center { display:flex; flex-wrap:wrap; align-items:center; gap:1.2rem; margin-top:2rem; }
.content-button-row--center { justify-content:center; }
.content-text-link { color:var(--clay-dark); font-weight:700; text-underline-offset:.28em; }
.content-light-link { color:#f5ddd1; }
.content-grid,.content-grid--2,.content-grid--3,.content-grid--4 { display:grid; gap:1.5rem; min-width:0; }
.content-grid > *,.content-grid--2 > *,.content-grid--3 > *,.content-grid--4 > *,.content-split > * { min-width:0; }
.content-grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.content-grid--3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.content-grid--4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.content-type-card,.content-card { padding:2rem; border:1px solid var(--line); background:rgba(255,253,248,.55); }
.content-card-number { display:block; margin-bottom:3rem; color:var(--clay); font:2rem var(--serif); }
.content-split { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(3rem,8vw,8rem); align-items:center; }
.content-split > img { display:block; width:100%; min-height:520px; max-height:720px; object-fit:cover; }
.content-split > :only-child { grid-column:1/-1; }
.content-split-copy { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:clamp(3rem,7vw,7rem); }
.content-split-copy p:not(.content-eyebrow) { max-width:570px; color:var(--muted); }
.content-section-heading { display:flex; align-items:end; justify-content:space-between; gap:3rem; margin-bottom:3rem; }
.content-section-heading > p { max-width:480px; color:var(--muted); }
.content-detail-list { display:grid; margin:2rem 0 0; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:var(--line); list-style:none; }
.content-detail-list li { padding:2rem; background:var(--paper); }
.content-detail-list strong { display:block; margin-bottom:.4rem; font:600 1.5rem var(--serif); }
.content-clean-list { margin:0; padding:0; list-style:none; }
.content-clean-list li { padding:.9rem 0; border-bottom:1px solid var(--line); }
.content-tag-list { display:flex; flex-wrap:wrap; gap:.7rem; margin:0; padding:0; list-style:none; }
.content-tag-list > * { border:1px solid var(--line); padding:.7rem 1rem; background:var(--paper); }
.content-process-list { width:min(calc(100% - 3rem),900px); margin:3rem auto 0; padding:0; list-style:none; }
.content-process-list li { display:grid; grid-template-columns:70px 1fr; gap:1.5rem; padding:2.2rem 0; border-top:1px solid var(--line); }
.content-process-list h3 { margin-bottom:.35rem; }
.content-process-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); margin:0; padding:0; border-top:1px solid var(--line); list-style:none; }
.content-process-grid li { padding:2rem 1.5rem 0 0; }
.content-process-grid li + li { padding-left:1.5rem; border-left:1px solid var(--line); }
.content-process-grid h3 { font-size:1.3rem; }
.content-step-number { display:block; margin-bottom:2rem; color:var(--clay); font:2rem/1 var(--serif); }
.content-quote-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.4rem; margin-top:2.5rem; }
.content-quote-grid cite { display:block; margin-top:1rem; font:700 .78rem/1.5 var(--sans); font-style:normal; }
.content-testimonial-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.4rem; }
.content-details-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:var(--line); }
.content-details-grid article { padding:2.5rem; background:var(--paper); }
.content-details-grid article h2 { font-size:2.4rem; }
.content-about-second-section > :first-child:not(blockquote) { margin-top:2.25rem; }
.content-pricing-note { max-width:820px; margin:3.5rem auto 0; padding:1.5rem; border:1px solid var(--line); text-align:center; }
.content-shipping-note { margin:3rem 0 0; padding:1.5rem; border:1px solid var(--line); }
.content-steps { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); margin:2rem 0 0; padding:0; border-top:1px solid var(--line); list-style:none; }
.content-steps li { padding:1.5rem; }
.content-steps li + li { border-left:1px solid var(--line); }

@media(max-width:900px){
 .content-grid--3,.content-grid--4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .content-section-heading { align-items:start; flex-direction:column; gap:.5rem; }
}
@media(max-width:780px){
 .content-split { grid-template-columns:minmax(0,1fr); gap:2.5rem; }
 .content-split > img { min-height:90vw; }
 .content-process-grid { grid-template-columns:minmax(0,1fr); }
 .content-process-grid li,.content-process-grid li + li { padding:1.4rem 0; border-left:0; border-bottom:1px solid var(--line); }
 .content-testimonial-grid,.content-details-grid { grid-template-columns:minmax(0,1fr); }
 .content-steps { grid-template-columns:minmax(0,1fr); }
 .content-steps li { display:grid; grid-template-columns:55px minmax(0,1fr); gap:1rem; padding:1.4rem 0; border-bottom:1px solid var(--line); }
 .content-steps li + li { border-left:0; }
 .content-step-number { margin:0; }
}
@media(max-width:760px){
 .content-grid--2,.content-grid--3,.content-grid--4,.content-detail-list,.content-quote-grid { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:520px){
 .content-process-list li { grid-template-columns:48px minmax(0,1fr); gap:.8rem; }
 .content-card-number { margin-bottom:1.5rem; }
}
