/* V1 editorial joins: existing identities and motion, a single purpose per chapter. */
.portal + .project-stories { margin-top:0; }
.project-stories + .offers { position:relative; background:var(--cream,#f1f0e9); }
.offers + .pp-founder { background:var(--cream,#f1f0e9); }
.pp-founder + .contact { margin-top:0; }
.pp-section-nav { display:flex; flex-wrap:wrap; gap:12px 26px; margin-top:24px; font-size:13px; }
.pp-section-nav a { text-underline-offset:6px; }
.ps-story-detail p { margin-top:0; }
.ps-story-detail .pp-concept-proof { margin-top:24px; }
.ps-story-detail dt { font-size:11px; text-transform:uppercase; letter-spacing:.08em; margin:18px 0 6px; }
.ps-story-detail dd { margin:0; font-size:14px; line-height:1.65; }
.secondary-page .project-stories { padding-top:38px; }
.secondary-page .project-stories-intro { margin-bottom:35px; }
.project-story .demo { height:180svh; margin:60px 0 0; background:var(--cream,#f1f0e9); color:#0c2030; }
.project-story .demo-heading p { color:#526773; }
.project-story .demo .section-label { font:11px 'DM Mono',monospace; letter-spacing:.12em; }
.project-story .demo-screen { background:linear-gradient(90deg,#15231c70,#15231c18),url('../../concepts/maison-silva/atelier.webp') center/cover; }
.pp-services-contact .contact-types { display:block; }
.pp-services-contact #contact-form select,.pp-direct-contact #contact-form select { display:block; width:100%; min-height:48px; background:transparent; color:#061c2b; border:0; border-bottom:1px solid #426a7e; font:16px Manrope,sans-serif; padding:12px 0; }
.pp-services-contact .contact-toggle { scroll-margin-top:120px; }
.pp-direct-contact { max-width:850px; }
.pp-direct-contact > p:first-child { margin:0 0 32px; }
.contact-honeypot { display:none; }
.pp-secondary-contact { margin-top:40px; }
#deroulement .note { color:#c1cdd4; margin-top:36px; max-width:800px; }
#scope-title .pp-offer-inputs { margin-top:0; }
#formats { padding-bottom:60px; }
.pp-format-example { padding-top:60px; }
@media(max-width:767px) {
 .project-story .demo { height:160svh; margin-top:36px; margin-inline:0; }
 .demo .device { border-width:6px; }
 .demo .device-bar { height:23px; }
 .demo .demo-screen { height:calc(100% - 23px); }
 .pp-section-nav { gap:12px 20px; }
}
@media(max-height:650px),(prefers-reduced-motion:reduce) {
 .project-story .demo { height:auto; min-height:0; padding:38px 0; }
 .project-story .demo-sticky { position:relative; height:auto; min-height:0; display:block; overflow:visible; }
 .project-story .demo-heading { position:relative; inset:auto; padding:0 7%; display:block; }
 .project-story .demo-heading p { max-width:520px; }
 .project-story .demo .device { position:relative; inset:auto!important; width:82%!important; height:auto!important; aspect-ratio:16/9; transform:none!important; margin:35px auto 0; }
}
/* Latest owner choice: a quiet signature on home, full mountain story on Studio. */
body .manifesto.pp-founder-band { display:flex; align-items:center; gap:clamp(22px,2.2vw,36px); min-height:20svh; height:auto; box-sizing:border-box; padding:22px 7%; grid-template-columns:none; }
.pp-founder-band .pp-founder-avatar { width:96px; height:96px; border-radius:50%; object-fit:cover; object-position:center 29%; flex:0 0 96px; }
.pp-founder-band .pp-founder-quote { margin:0; max-width:690px; min-width:0; font-size:clamp(20px,1.8vw,26px); line-height:1.4; letter-spacing:-.015em; }
.pp-founder-band .pp-founder-name { font:15px 'DM Mono',monospace; color:#526773; }
.pp-founder-band .v24-offer-cta { margin:0 0 0 auto; align-self:center; white-space:nowrap; font-size:15px; }
@media(max-width:767px) {
 body .manifesto.pp-founder-band { flex-wrap:wrap; gap:14px; padding:26px 7%; min-height:0; }
 .pp-founder-band .pp-founder-avatar { width:64px; height:64px; flex-basis:64px; }
 .pp-founder-band .pp-founder-quote { flex:1; min-width:180px; font-size:clamp(17px,4.6vw,19px); }
 .pp-founder-band .pp-founder-name { margin-left:78px; font-size:14px; }
 .pp-founder-band .v24-offer-cta { white-space:normal; font-size:16px; }
}
.pp-direct-contact #contact-form { scroll-margin-top:110px; }
@media(max-height:650px),(prefers-reduced-motion:reduce) {
 .project-story .demo .device .demo-screen h3 { font-size:clamp(24px,5vw,42px)!important; }
}
@media(max-width:640px) {
 .project-story .demo-heading { display:block; top:clamp(76px,10svh,96px); left:6%; right:6%; }
 .project-story .demo-heading h2 { font-size:clamp(28px,8vw,40px); line-height:1.05; margin:8px 0 12px; }
 .project-story .demo-heading p { max-width:31em; font-size:13px; line-height:1.55; margin:0; }
 .project-story .demo .device { top:63%!important; }
}
@media(max-width:640px) and (max-height:650px) {
 .project-story .demo-heading { top:auto; left:auto; right:auto; }
 .project-story .demo .device { top:auto!important; }
}
@media(max-width:640px) and (prefers-reduced-motion:reduce) {
 .project-story .demo-heading { top:auto; left:auto; right:auto; }
 .project-story .demo .device { top:auto!important; }
}
/* The catalogue title stays on its cream column in both morph states.
   Equal selectors prevent the historic phone selector from dropping the .65 scale. */
body .project-story .demo .device .demo-screen h3,
body .project-story .demo .device.is-phone .demo-screen h3 {
 font-size:calc(var(--demo-title-size,24px) * .65)!important;
 width:43%!important;
 max-width:43%!important;
}
@media(max-width:767px) {
 body .manifesto.pp-founder-band { padding-top:24px!important; padding-bottom:24px!important; }
}

.pp-visible-example > h3 { font-size:clamp(23px,2.6vw,34px); line-height:1.2; padding-top:28px; margin-bottom:12px; }
.pp-visible-example > p { max-width:650px; color:#506b7b; line-height:1.65; }

/* Contact: form first, guided only when JavaScript is available. */
.pp-contact-page .page-hero { min-height:0; padding:118px 7vw 32px; }
.pp-contact-page .page-hero h1 { font-size:clamp(36px,4.5vw,62px); margin:12px 0 18px; }
.pp-contact-page .page-hero .lead { max-width:700px; font-size:17px; }
.pp-contact-page #contact { padding-top:32px; }
.pp-contact-page .pp-direct-contact { max-width:980px; }
.pp-contact-page #contact-form { gap:20px; }
.pp-wizard [hidden] { display:none!important; }
.pp-wizard-step { border:0; padding:0; margin:0; min-width:0; display:grid; gap:20px; }
.pp-wizard-step legend { font-size:clamp(24px,3vw,34px)!important; letter-spacing:-.03em!important; padding:0 0 16px; }
.pp-wizard-step > p { margin:0; }
.pp-wizard-status { font:11px 'DM Mono',monospace; color:#506b7b; }
.pp-wizard-choices { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.pp-wizard-choices label { position:relative; display:flex; align-items:center; min-height:64px; border:1px solid #9fb3bd; padding:16px; gap:12px; cursor:pointer; }
.pp-wizard-choices label:has(input:checked) { background:#d9e8ed; border-color:#12344e; }
.pp-wizard-choices input { accent-color:#12344e; }
.pp-wizard-step select { display:block; width:100%; min-height:48px; margin-top:8px; border:1px solid #9fb3bd; background:transparent; padding:10px; color:#12344e; font:16px inherit; }
.pp-wizard-actions { display:flex; justify-content:space-between; gap:16px; }
.pp-wizard-actions button { min-height:48px; padding:12px 24px; border:1px solid #12344e; background:transparent; color:#12344e; font:600 14px inherit; cursor:pointer; }
.pp-wizard-actions button:last-child { margin-left:auto; background:#12344e; color:#fff; }
.pp-wizard .pp-wizard-discuss { display:flex; align-items:center; gap:12px; min-height:44px; }
.pp-wizard input[type="checkbox"] { width:18px!important; height:18px; }
.pp-wizard-summary { padding:14px; background:#d9e8ed; line-height:1.6; font-size:13px; }
@media(max-width:600px) { .pp-contact-page .page-hero { padding-top:104px; } .pp-wizard-choices { grid-template-columns:1fr; gap:8px; } .pp-wizard-choices label { min-height:52px; padding:12px; } }

.pp-wizard-call-title { margin:10px 0 -8px; font-size:20px; letter-spacing:-.025em; }
.pp-wizard-step legend { scroll-margin-top:110px; }
@media(max-width:600px) { .pp-contact-page .page-hero h1 { font-size:32px; } .pp-contact-page .page-hero .lead { font-size:15px; } }

/* The comparison stays a readable three-column table, with text beside every icon. */
.pp-offer-comparison { background:#e6edf0; }
.pp-compare-table { width:100%; border-collapse:collapse; table-layout:fixed; font-size:14px; line-height:1.55; }
.pp-compare-table caption { text-align:left; padding:0 0 18px; color:#506b7b; font-size:13px; }
.pp-compare-table th,.pp-compare-table td { text-align:left; padding:17px 20px; border-bottom:1px solid #b8c9d1; vertical-align:top; overflow-wrap:anywhere; }
.pp-compare-table th:first-child { width:38%; padding-left:0; }
.pp-compare-table thead th { color:#12344e; font-size:18px; border-bottom:2px solid #12344e; }
.pp-compare-table tbody th { font-weight:500; }
.pp-compare-table thead small { display:block; margin-top:5px; font-size:13px; font-weight:400; }
.pp-compare-table td svg { vertical-align:-2px; margin-right:3px; color:#285875; flex:none; }
.pp-compare-notes { max-width:850px; margin-top:24px; color:#506b7b; font-size:12px; line-height:1.7; }
.pp-compare-notes p { margin:10px 0; }
.pp-management-grid { display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.pp-management-grid article { padding:30px; border:1px solid #b8c9d1; }
.pp-management-label { display:block; font:10px/1.6 'DM Mono',monospace; color:#506b7b; margin-bottom:20px; }
.pp-management-grid h3 { font-size:clamp(24px,2.5vw,34px); line-height:1.2; margin:0 0 20px; }
.pp-management-grid p,.pp-management-clarifier p,.pp-management-choice { font-size:15px; line-height:1.75; }
.pp-management-clarifier { background:#e6edf0; padding:28px; margin-top:28px; }
.pp-management-clarifier h3 { font-size:21px; margin:0 0 12px; }
.pp-management-clarifier p { margin:0; }
.pp-management-choice { max-width:800px; margin:28px 0 20px; }
@media(max-width:650px) {
 .pp-compare-table { font-size:12px; line-height:1.5; }
 .pp-compare-table th,.pp-compare-table td { padding:14px 7px; }
 .pp-compare-table th:first-child { width:36%; }
 .pp-compare-table thead th { font-size:14px; }
 .pp-compare-table thead small { font-size:11px; }
 .pp-management-grid { grid-template-columns:1fr; gap:16px; }
 .pp-management-grid article { padding:24px; }
}
.pp-compare-table thead th { position:sticky; top:74px; z-index:2; background:#e6edf0; }
@media(max-width:750px) { .pp-compare-table thead th { top:62px; } }

/* An editorial bridge from the offers to the first conversation. */
body .manifesto.pp-founder-band{display:grid;grid-template-columns:128px minmax(0,1fr);column-gap:clamp(28px,4vw,64px);row-gap:16px;align-items:center;min-height:0;padding:clamp(48px,6vw,84px) 7vw!important;border-top:1px solid #102b3826}
.pp-founder-band .pp-founder-avatar{width:128px;height:160px;border-radius:3px;object-fit:cover;object-position:center 29%;grid-column:1;grid-row:1/3}
.pp-founder-copy{max-width:780px;min-width:0}
.pp-founder-band .pp-founder-eyebrow{font:10px/1.6 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.12em;color:#526773;margin:0 0 18px}
.pp-founder-band .pp-founder-quote{font-size:clamp(21px,2.25vw,30px);line-height:1.45;letter-spacing:-.025em;max-width:34em;margin:0}
.pp-founder-band .pp-founder-name{display:block;margin:20px 0 0;font:12px/1.6 Manrope,Arial,sans-serif;color:#526773}
.pp-founder-band .v24-offer-cta{grid-column:2;justify-self:start;margin:0;min-height:44px;align-self:start;white-space:normal;font-size:14px}
@media(max-width:600px){body .manifesto.pp-founder-band{grid-template-columns:76px minmax(0,1fr);column-gap:20px;row-gap:22px;padding:40px 6vw!important;align-items:start}.pp-founder-band .pp-founder-avatar{width:76px;height:96px;grid-row:1}.pp-founder-copy{grid-column:2}.pp-founder-band .pp-founder-eyebrow{font-size:9px;margin-bottom:12px;letter-spacing:.07em}.pp-founder-band .pp-founder-quote{font-size:19px;min-width:0;line-height:1.5}.pp-founder-band .pp-founder-name{margin:16px 0 0;font-size:11px}.pp-founder-band .v24-offer-cta{grid-column:2}}
@media(max-width:360px){body .manifesto.pp-founder-band{grid-template-columns:64px minmax(0,1fr);column-gap:16px}.pp-founder-band .pp-founder-avatar{width:64px;height:80px}.pp-founder-band .pp-founder-quote{font-size:18px}}
