:root {
  --ps-navy: #101d33;
  --ps-navy-deep: #091426;
  --ps-ink: #172033;
  --ps-muted: #5d6676;
  --ps-gold: #ba9460;
  --ps-gold-light: #eadbc5;
  --ps-warm: #f7f4ef;
  --ps-line: #ded9d0;
  --ps-white: #fff;
}

body[data-kind="parish-sites-product"] { background: var(--ps-white); color: var(--ps-ink); }
body[data-kind="parish-sites-product"] #main { overflow: clip; }
body[data-kind="parish-sites-product"] .site-footer { margin-top: 0; }
body[data-kind="parish-sites-product"] .site-footer strong { color: #fff; }
.ps-page, .ps-page * { box-sizing: border-box; }
.ps-page { font-size: 18px; line-height: 1.65; color: var(--ps-ink); }
.ps-shell, .ps-header-inner { width: min(1248px, calc(100% - 48px)); margin-inline: auto; }
.ps-section { padding: clamp(72px, 8vw, 118px) 0; scroll-margin-top: 88px; }
.ps-page h1, .ps-page h2, .ps-page h3, .ps-page p { margin-top: 0; }
.ps-page h1, .ps-page h2, .ps-page h3 { color: var(--ps-navy); line-height: 1.08; letter-spacing: -.035em; }
.ps-page h1 { margin-bottom: 26px; font-size: clamp(2.65rem, 5.3vw, 5.4rem); max-width: 760px; }
.ps-page h2 { margin-bottom: 22px; font-size: clamp(2.1rem, 4vw, 4rem); max-width: 920px; }
.ps-page h3 { margin-bottom: 10px; font-size: 1.22rem; }
.ps-page p { margin-bottom: 18px; max-width: 680px; }
.ps-eyebrow { display: inline-block; margin-bottom: 18px; color: #86663e; font-size: .84rem; font-weight: 750; letter-spacing: .15em; line-height: 1.4; }
.ps-lead { font-size: clamp(1.18rem, 1.7vw, 1.48rem); line-height: 1.45; color: #29354a; }
.ps-section-head { margin-bottom: 44px; }
.ps-section-head > p { max-width: 760px; }
.ps-summary-line { margin-top: 34px; font-size: clamp(1.18rem, 1.8vw, 1.5rem); color: var(--ps-navy); }

.ps-header { position: sticky; top: 0; z-index: 80; min-height: 72px; background: rgba(255,255,255,.96); border-bottom: 1px solid rgba(16,29,51,.1); backdrop-filter: blur(16px); }
.ps-header-inner { min-height: 72px; display: flex; align-items: center; gap: 26px; }
.ps-brand { display: inline-flex; align-items: center; gap: 10px; color: var(--ps-navy); text-decoration: none; font-size: 1.38rem; font-weight: 780; white-space: nowrap; }
.ps-brand img { border-radius: 14px; }
.ps-brand > span > span { color: #80582c; }
.ps-navigation { margin-left: auto; display: flex; align-items: center; gap: clamp(13px, 1.55vw, 24px); }
.ps-navigation a { color: #273248; text-decoration: none; font-size: .96rem; white-space: nowrap; }
.ps-navigation a:hover, .ps-navigation a:focus-visible { color: #8b6639; }
.ps-navigation .ps-header-cta { padding: 11px 17px; border-radius: 999px; background: var(--ps-navy); color: #fff; }
.ps-menu-toggle { display: none; margin-left: auto; padding: 10px 14px; border: 1px solid var(--ps-line); border-radius: 10px; background: #fff; color: var(--ps-navy); font: inherit; }

.ps-hero { min-height: min(790px, calc(100vh - 72px)); padding-block: clamp(60px, 8vw, 112px); display: grid; grid-template-columns: minmax(0, .96fr) minmax(0, 1.04fr); gap: clamp(36px, 6vw, 88px); align-items: center; }
.ps-hero-copy > p:not(.ps-micro) { font-size: 1.16rem; }
.ps-hero-copy .ps-hero-lead { margin-bottom: 16px; max-width: 660px; color: #7b5933; font-size: clamp(1.3rem, 2vw, 1.72rem); line-height: 1.38; }
.ps-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 30px 0 22px; }
.ps-button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: 12px 20px; border: 1px solid transparent; border-radius: 999px; color: var(--ps-navy); background: transparent; text-decoration: none; font: inherit; font-weight: 650; line-height: 1.25; cursor: pointer; transition: transform .18s ease, background-color .18s ease, color .18s ease; }
.ps-button:hover { transform: translateY(-2px); }
.ps-button-primary { background: var(--ps-navy); color: #fff; }
.ps-button-secondary { border-color: #aeb4be; background: #fff; }
.ps-button-gold { background: #d5b47f; color: #172033; }
.ps-button-light { border-color: rgba(255,255,255,.55); color: #fff; }
.ps-micro { margin-bottom: 0; color: #5f6876; font-size: .82rem !important; letter-spacing: .1em; }
.ps-hero-media, .ps-media { display: block; overflow: hidden; border-radius: 24px; background: #e8e2d9; box-shadow: 0 28px 70px rgba(13,25,44,.13); }
.ps-hero-media { aspect-ratio: 16 / 10; }
.ps-media { aspect-ratio: 3 / 2; }
.ps-hero-media img, .ps-media img { width: 100%; height: 100%; display: block; object-fit: cover; }

.ps-two-column, .ps-product-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(42px, 7vw, 92px); align-items: center; }
.ps-direct { background: #fbfaf8; }
.ps-route-comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 34px; }
.ps-route { display: flex; min-height: 285px; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 26px 20px; border: 1px solid var(--ps-line); border-radius: 18px; color: #596272; background: #fff; text-align: center; font-size: clamp(1.125rem,1.4vw,1.25rem); font-weight: 650; letter-spacing: .03em; line-height: 1.42; }
.ps-route i { color: #aa8a5e; font-size: 1.65rem; font-style: normal; }
.ps-route-direct { border-color: #c7ad84; color: var(--ps-navy); background: #f8f0e5; }

.ps-dark { color: rgba(255,255,255,.78); background: var(--ps-navy-deep); }
.ps-dark h2, .ps-dark h3, .ps-dark .ps-lead, .ps-dark .ps-summary-line { color: #fff; }
.ps-dark .ps-eyebrow { color: #d6b780; }
.ps-number-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.ps-number-grid article { min-height: 220px; padding: 28px; border: 1px solid rgba(255,255,255,.15); border-radius: 18px; background: rgba(255,255,255,.045); }
.ps-number-grid article > span { display: block; margin-bottom: 44px; color: #cba66c; font-size: .85rem; letter-spacing: .12em; }
.ps-number-grid article p { margin-bottom: 0; }
.ps-soft { background: var(--ps-warm); }

.ps-feature-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; margin-top: 30px; }
.ps-feature-grid article { padding: 18px; border: 1px solid var(--ps-line); border-radius: 14px; background: #fff; }
.ps-feature-grid article p { margin: 0; color: var(--ps-muted); font-size: 1.2rem; line-height: 1.5; }
.ps-feature-grid-compact h3 { font-size: 1.22rem; letter-spacing: -.02em; }
.ps-migration-section { background: linear-gradient(135deg,#f5ecde 0%,#fff 68%); border-block: 1px solid #e5d6c0; }
.ps-migration-head { max-width: 920px; margin-bottom: 42px; }
.ps-migration-head .ps-badge { display: inline-flex; margin-bottom: 20px; background: #d8b679; color: #3e2b13; font-weight: 800; }
.ps-migration-layout { display: grid; grid-template-columns: minmax(300px,.82fr) minmax(0,1.18fr); gap: clamp(28px,5vw,68px); align-items: stretch; }
.ps-migration-flow { min-height: 390px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: clamp(26px,4vw,44px); border: 1px solid #c5a36e; border-radius: 24px; background: var(--ps-navy); color: #fff; text-align: center; box-shadow: 0 24px 60px rgba(16,29,51,.16); }
.ps-migration-flow > span, .ps-migration-flow > strong { letter-spacing: .08em; }
.ps-migration-flow > strong { color: #ecd19f; font-size: clamp(1.2rem,2.2vw,1.75rem); }
.ps-migration-flow > i { color: #d9b87d; font-size: 1.55rem; font-style: normal; line-height: 1; }
.ps-migration-flow > div { display: flex; flex-wrap: wrap; justify-content: center; gap: 7px; margin-top: 8px; }
.ps-migration-flow small { padding: 7px 10px; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; color: #fff; font-size: .82rem; letter-spacing: .04em; }
.ps-migration-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.ps-migration-grid article, .ps-action-grid article, .ps-support-grid article, .ps-app-feature-grid article { padding: 22px; border: 1px solid var(--ps-line); border-radius: 16px; background: rgba(255,255,255,.9); }
.ps-migration-grid article p, .ps-action-grid article p, .ps-support-grid article p, .ps-app-feature-grid article p { margin-bottom: 0; color: var(--ps-muted); font-size: 1.2rem; line-height: 1.5; }
.ps-migration-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-top: 32px; padding-top: 28px; border-top: 1px solid #d8c5a8; }
.ps-migration-summary strong { color: var(--ps-navy); font-size: clamp(1.22rem,2vw,1.55rem); }
.ps-migration-summary span { color: #566071; }
.ps-migration-summary .ps-button { margin-left: auto; }
.ps-app-section { background: #fff; }
.ps-app-layout { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); gap: clamp(42px,6vw,80px); align-items: center; }
.ps-app-showcase { min-width: 0; display: grid; grid-template-columns: minmax(190px,.72fr) minmax(0,1.28fr); gap: 18px; align-items: center; padding: clamp(22px,3vw,34px); border: 1px solid #d8dce3; border-radius: 28px; background: linear-gradient(145deg,#edf1f6,#fff); box-shadow: 0 26px 64px rgba(14,28,49,.11); }
.ps-app-showcase > p { grid-column: 1 / -1; margin: 0; color: #596575; font-size: 1.1rem; text-align: center; }
.ps-phone { min-width: 0; margin: 0; }
.ps-phone picture { display: block; overflow: hidden; padding: 5px; border: 2px solid #1d2634; border-radius: 22px; background: #111a27; box-shadow: 0 14px 28px rgba(10,19,32,.18); }
.ps-phone img { width: 100%; height: auto; display: block; border-radius: 16px; }
.ps-phone figcaption { margin-top: 9px; color: #4e5a6b; font-size: 1.08rem; font-weight: 650; line-height: 1.4; text-align: center; }
.ps-phone-stack { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; align-items: center; }
.ps-app-copy > .ps-button { margin-top: 14px; }
.ps-app-copy .ps-eyebrow { font-size: .92rem; }
.ps-app-promise { max-width: 720px !important; color: var(--ps-navy); font-size: 1.2rem; font-weight: 750; line-height: 1.5; }
.ps-app-feature-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 26px 0 18px; }
.ps-app-feature-grid article { padding: 16px; }
.ps-app-feature-grid h3 { font-size: 1.22rem; }
.ps-app-strip { display: inline-flex; padding: 12px 16px; border-radius: 10px; color: #674b2c; background: #f6ecdd; font-size: 1.1rem; font-weight: 650; line-height: 1.5; }
.ps-product-row-reverse > :first-child { order: 1; }
.ps-channel-list, .ps-chip-list { display: flex; flex-wrap: wrap; gap: 9px; margin: 26px 0; }
.ps-channel-list span, .ps-chip-list span { padding: 10px 14px; border: 1px solid #d7d0c5; border-radius: 999px; background: rgba(255,255,255,.76); color: #334055; font-size: .98rem; }
.ps-dark .ps-chip-list span { border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.07); color: #fff; }
.ps-notifications .ps-shell { max-width: 1000px; text-align: center; }
.ps-notifications h2, .ps-notifications p { margin-inline: auto; }
.ps-notifications .ps-chip-list { justify-content: center; }
.ps-notification-note { color: rgba(255,255,255,.74); font-size: 1rem; }
.ps-publish-map { margin: 30px 0; padding: clamp(22px,3vw,34px); border: 1px solid #d4c6b2; border-radius: 20px; background: #fff; text-align: center; }
.ps-publish-map > strong { display: inline-block; padding: 12px 18px; border-radius: 999px; background: var(--ps-navy); color: #fff; letter-spacing: .06em; }
.ps-publish-map > i { display: block; margin: 12px 0; color: #a47b48; font-size: 1.5rem; font-style: normal; }
.ps-publish-map > div { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.ps-publish-map span, .ps-qr-targets span { padding: 9px 12px; border: 1px solid #d8d1c7; border-radius: 999px; background: #f9f7f3; color: #425067; font-size: .94rem; }
.ps-action-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.ps-support { background: var(--ps-navy); color: rgba(255,255,255,.78); }
.ps-support h2, .ps-support h3, .ps-support .ps-lead, .ps-support .ps-summary-line { color: #fff; }
.ps-support .ps-eyebrow { color: #d9ba82; }
.ps-support-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.ps-support-grid article { border-color: rgba(255,255,255,.16); background: rgba(255,255,255,.06); }
.ps-support-grid article p { color: rgba(255,255,255,.68); }
.ps-qr-targets { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 26px; }
.ps-qr-targets strong { margin-right: 6px; color: #e4c794; }
.ps-qr-targets span { border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.07); color: #fff; }
.ps-intentions { display: grid; grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr); gap: clamp(42px,7vw,92px); align-items: center; }
.ps-intention-flow { counter-reset: intentions; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; padding: 0; list-style: none; }
.ps-intention-flow li { counter-increment: intentions; min-height: 92px; display: flex; align-items: center; gap: 12px; margin: 0; padding: 18px; border: 1px solid var(--ps-line); border-radius: 14px; background: #fff; color: #344157; }
.ps-intention-flow li::before { content: counter(intentions, decimal-leading-zero); color: #a17947; font-weight: 750; }
.ps-emphasis, .ps-integration-note { color: var(--ps-navy); font-weight: 700; }

.ps-asset-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; }
.ps-asset-grid span { min-height: 108px; display: flex; align-items: flex-end; padding: 20px; border: 1px solid rgba(255,255,255,.16); border-radius: 16px; color: #fff; background: rgba(255,255,255,.04); }
.ps-ecosystem-grid { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 12px; }
.ps-ecosystem-grid article { min-height: 176px; padding: 22px 18px; border: 1px solid var(--ps-line); border-radius: 16px; background: #fff; }
.ps-ecosystem-grid h3 { font-size: 1.06rem; letter-spacing: .025em; }
.ps-ecosystem-grid p { margin-bottom: 0; color: var(--ps-muted); font-size: 1.125rem; line-height: 1.5; }
.ps-soft .ps-number-grid article { border-color: #ded6ca; background: #fff; }
.ps-soft .ps-number-grid article > span { margin-bottom: 36px; }
.ps-integration > div { max-width: 820px; padding: clamp(36px, 5vw, 66px); border: 1px solid #d9cfbf; border-radius: 24px; background: linear-gradient(135deg,#f8f1e6,#fff); }
.ps-social { background: #f6f7f9; }
.ps-comparison-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; }
.ps-comparison-grid article { padding: clamp(28px,4vw,48px); border: 1px solid #dcdfe5; border-radius: 20px; background: #fff; }
.ps-comparison-grid article:first-child { border-color: #c7a975; background: #fcf8f1; }
.ps-page ul { padding-left: 1.2em; }
.ps-page li { margin: 8px 0; }

.ps-package-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; align-items: stretch; }
.ps-package-grid article { display: flex; flex-direction: column; padding: clamp(28px,3vw,40px); border: 1px solid var(--ps-line); border-radius: 22px; background: #fff; box-shadow: 0 16px 42px rgba(18,28,44,.06); }
.ps-package-grid article h3 { margin-top: 28px; font-size: 1.55rem; }
.ps-package-grid article ul { margin-bottom: 30px; color: #4d5768; }
.ps-package-grid .ps-button { margin-top: auto; align-self: flex-start; }
.ps-package-featured { border-color: #b9955e !important; transform: translateY(-12px); }
.ps-badge { align-self: flex-start; padding: 8px 11px; border-radius: 999px; color: #6b4f2c; background: #f1e5d2; font-size: .8rem; letter-spacing: .08em; }
.ps-process { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px; padding: 0; list-style: none; }
.ps-process li { display: flex; gap: 15px; padding: 24px 18px; border-top: 1px solid #b9aa94; }
.ps-process li > span { color: #956e3e; font-size: 1.45rem; }
.ps-process h3 { margin-bottom: 6px; }
.ps-process p { margin-bottom: 0; color: var(--ps-muted); font-size: 1.125rem; }
.ps-faq { max-width: 920px; }
.ps-faq details { border-top: 1px solid var(--ps-line); }
.ps-faq details:last-child { border-bottom: 1px solid var(--ps-line); }
.ps-faq summary { padding: 24px 44px 24px 0; color: var(--ps-navy); font-size: 1.12rem; cursor: pointer; }
.ps-faq details p { padding: 0 40px 24px 0; color: var(--ps-muted); }

.ps-final-cta { position: relative; min-height: 570px; display: flex; align-items: center; overflow: hidden; color: #fff; background: #091426; }
.ps-final-cta > picture, .ps-final-cta > picture img { position: absolute; inset: 0; width: 100%; height: 100%; }
.ps-final-cta > picture img { object-fit: cover; }
.ps-final-cta::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(4,12,25,.96) 0%,rgba(4,12,25,.8) 48%,rgba(4,12,25,.2) 100%); }
.ps-final-content { position: relative; z-index: 1; padding-block: 80px; }
.ps-final-content h2, .ps-final-content .ps-lead { color: #fff; }
.ps-final-content p { max-width: 680px; }

.ps-contact { background: #fff; }
.ps-contact-layout { display: grid; grid-template-columns: minmax(0,.78fr) minmax(0,1.22fr); gap: clamp(40px,7vw,96px); align-items: start; }
.ps-formal-contact { display: grid; gap: 12px; margin-top: 28px; }
.ps-formal-contact a { color: var(--ps-navy); }
.ps-form { position: relative; padding: clamp(26px,4vw,44px); border: 1px solid var(--ps-line); border-radius: 22px; background: var(--ps-warm); }
.ps-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.ps-form label > span { display: block; margin-bottom: 7px; color: #2b3547; font-size: .98rem; }
.ps-form label em { color: #69727f; font-size: .88rem; font-style: normal; }
.ps-form input:not([type="checkbox"]), .ps-form select { width: 100%; min-height: 48px; padding: 10px 12px; border: 1px solid #babfc7; border-radius: 10px; background: #fff; color: #172033; font: inherit; }
.ps-form input:focus, .ps-form select:focus { outline: 3px solid rgba(186,148,96,.28); border-color: #896638; }
.ps-form input.is-emphasized { outline: 4px solid rgba(186,148,96,.34); border-color: #896638; box-shadow: 0 0 0 7px rgba(186,148,96,.1); }
.ps-form [aria-invalid="true"] { border-color: #a73636 !important; }
.ps-form small { display: block; min-height: 20px; padding-top: 4px; color: #9b2929; font-size: .84rem; }
.ps-form-wide { grid-column: 1 / -1; }
.ps-consent { display: flex; gap: 11px; margin: 8px 0 0; }
.ps-consent input { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 4px; }
.ps-consent span { color: #596272 !important; font-size: .88rem !important; line-height: 1.55; }
.ps-form-note { margin: 14px 0 0; color: #606978; font-size: .92rem; }
.ps-form-status { min-height: 26px; margin: 12px 0 0; font-size: 1rem; }
.ps-form-status.is-error { color: #9b2929; }
.ps-form-status.is-success { color: #27643a; }
.ps-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.ps-closing { padding: 30px 24px; color: #fff; background: var(--ps-navy); text-align: center; }
.ps-closing p { max-width: none; margin: 0; font-size: clamp(1.05rem,1.8vw,1.4rem); }
.ps-mobile-cta { display: none; }

.ps-motion .ps-reveal { opacity: 0; transform: translateY(14px); transition: opacity .55s ease, transform .55s ease; }
.ps-motion .ps-reveal.is-visible { opacity: 1; transform: none; }
.ps-page a:focus-visible, .ps-page button:focus-visible, .ps-header a:focus-visible, .ps-header button:focus-visible { outline: 3px solid #d0a96d; outline-offset: 3px; }

@media (max-width: 1120px) {
  .ps-navigation { position: absolute; top: 72px; left: 0; right: 0; display: none; padding: 16px; border-bottom: 1px solid var(--ps-line); background: #fff; box-shadow: 0 18px 30px rgba(10,21,38,.12); }
  .ps-navigation.is-open { display: grid; }
  .ps-navigation a:not(.ps-header-cta) { display: block; padding: 10px; }
  .ps-navigation .ps-header-cta { margin-top: 8px; text-align: center; }
  .ps-menu-toggle { display: block; }
  .ps-ecosystem-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .ps-number-grid, .ps-process { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ps-app-layout { grid-template-columns: 1fr; }
  .ps-app-copy { order: 1; }
  .ps-app-showcase { order: 2; grid-template-columns: minmax(180px,.55fr) minmax(0,1.45fr); }
  .ps-support-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 760px) {
  .ps-shell, .ps-header-inner { width: min(100% - 32px, 1248px); }
  .ps-page { font-size: 18px; }
  .ps-section { padding: 66px 0; }
  .ps-header { min-height: 64px; }
  .ps-header-inner { min-height: 64px; }
  .ps-brand img { width: 42px; height: 42px; }
  .ps-navigation { top: 64px; }
  .ps-hero { min-height: 0; padding-block: 54px 70px; grid-template-columns: 1fr; gap: 34px; }
  .ps-hero h1 { font-size: clamp(2.5rem,12vw,4rem); }
  .ps-hero-copy { order: 1; }
  .ps-hero-media { order: 2; }
  .ps-two-column, .ps-product-row, .ps-contact-layout { grid-template-columns: 1fr; gap: 36px; }
  .ps-product-row > :not(.ps-media) { order: 1; }
  .ps-product-row > .ps-media { order: 2; }
  .ps-route-comparison, .ps-feature-grid, .ps-comparison-grid, .ps-form-grid { grid-template-columns: 1fr; }
  .ps-migration-layout, .ps-intentions { grid-template-columns: 1fr; }
  .ps-migration-grid, .ps-app-feature-grid, .ps-action-grid, .ps-support-grid, .ps-intention-flow { grid-template-columns: 1fr; }
  .ps-migration-flow { min-height: 340px; }
  .ps-migration-summary { align-items: flex-start; flex-direction: column; }
  .ps-migration-summary .ps-button { width: 100%; margin-left: 0; }
  .ps-app-layout { display: flex; flex-direction: column; align-items: stretch; }
  .ps-app-copy { order: 1; }
  .ps-app-showcase { order: 2; grid-template-columns: 1fr; padding: 18px; }
  .ps-phone-main { width: min(230px,70%); margin-inline: auto; }
  .ps-phone-stack { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .ps-phone-stack .ps-phone picture { padding: 3px; border-radius: 15px; }
  .ps-phone-stack .ps-phone img { border-radius: 11px; }
  .ps-qr-targets { align-items: flex-start; }
  .ps-qr-targets strong { flex-basis: 100%; }
  .ps-route { min-height: 230px; }
  .ps-number-grid, .ps-asset-grid, .ps-ecosystem-grid, .ps-package-grid, .ps-process { grid-template-columns: 1fr; }
  .ps-number-grid article { min-height: 180px; }
  .ps-asset-grid span { min-height: 82px; }
  .ps-ecosystem-grid article { min-height: 140px; }
  .ps-package-featured { transform: none; }
  .ps-form-wide { grid-column: auto; }
  .ps-final-cta { min-height: 650px; }
  .ps-final-cta::after { background: rgba(4,12,25,.76); }
  .ps-actions, .ps-actions .ps-button { width: 100%; }
  .ps-mobile-cta { position: fixed; z-index: 70; left: 12px; right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); min-height: 50px; align-items: center; justify-content: center; border-radius: 999px; color: #fff; background: var(--ps-navy); box-shadow: 0 12px 30px rgba(5,13,25,.28); text-decoration: none; font-weight: 700; }
  .ps-mobile-cta:not([hidden]) { display: flex; }
}

@media (prefers-reduced-motion: reduce) {
  .ps-page *, .ps-header * { scroll-behavior: auto !important; transition: none !important; }
  .ps-motion .ps-reveal { opacity: 1; transform: none; }
}
