.elementor-80 .elementor-element.elementor-element-b086404c{--display:flex;--min-height:62vh;--justify-content:center;--padding-top:176px;--padding-bottom:184px;--padding-left:24px;--padding-right:24px;}.elementor-80 .elementor-element.elementor-element-b086404c:not(.elementor-motion-effects-element-type-background), .elementor-80 .elementor-element.elementor-element-b086404c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?auto=format&fit=crop&q=80&w=2000");background-position:center center;background-size:cover;}.elementor-80 .elementor-element.elementor-element-b1911f57{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-80 .elementor-element.elementor-element-11ea1d7f{font-family:var( --e-global-typography-pspsurt-font-family ), Sans-serif;font-size:var( --e-global-typography-pspsurt-font-size );font-weight:var( --e-global-typography-pspsurt-font-weight );text-transform:var( --e-global-typography-pspsurt-text-transform );line-height:var( --e-global-typography-pspsurt-line-height );letter-spacing:var( --e-global-typography-pspsurt-letter-spacing );color:var( --e-global-color-pspsag3 );}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );color:var( --e-global-color-primary );}.elementor-80 .elementor-element.elementor-element-f8dfc076 .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );color:var( --e-global-color-pspcrem );}.elementor-80 .elementor-element.elementor-element-837b641b{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );color:var( --e-global-color-pspsag1 );}.elementor-80 .elementor-element.elementor-element-fa0a9346{--display:flex;--padding-top:0px;--padding-bottom:104px;--padding-left:24px;--padding-right:24px;}.elementor-80 .elementor-element.elementor-element-cce10017{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-80 .elementor-element.elementor-element-1b421cd1{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:stretch;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:wrap;}.elementor-80 .elementor-element.elementor-element-1443f6c2{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-80 .elementor-element.elementor-element-fed57781{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );text-transform:var( --e-global-typography-accent-text-transform );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );color:var( --e-global-color-pspmute );}.elementor-80 .elementor-element.elementor-element-3bdfbe84 .elementor-heading-title{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );color:var( --e-global-color-pspnav9 );}.elementor-80 .elementor-element.elementor-element-20af3530{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );color:var( --e-global-color-text );}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );text-transform:var( --e-global-typography-accent-text-transform );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-80 .elementor-element.elementor-element-1a4f7c1a .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-80 .elementor-element.elementor-element-1a4f7c1a .elementor-button .elementor-button-content-wrapper{gap:8px;}.elementor-80 .elementor-element.elementor-element-887e895b{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-80 .elementor-element.elementor-element-c4a54156{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );text-transform:var( --e-global-typography-accent-text-transform );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );color:var( --e-global-color-pspmute );}.elementor-80 .elementor-element.elementor-element-7cded9f7 .elementor-heading-title{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );color:var( --e-global-color-pspnav9 );}.elementor-80 .elementor-element.elementor-element-0854d42e{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );color:var( --e-global-color-text );}.elementor-80 .elementor-element.elementor-element-850381f9 .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-80 .elementor-element.elementor-element-850381f9 .elementor-button .elementor-button-content-wrapper{gap:8px;}.elementor-80 .elementor-element.elementor-element-31ae852a{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:6px 10px;--row-gap:6px;--column-gap:10px;--flex-wrap:wrap;}.elementor-80 .elementor-element.elementor-element-7670a30f{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );color:var( --e-global-color-pspmute );}.elementor-80 .elementor-element.elementor-element-68bc96ef .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-80 .elementor-element.elementor-element-68bc96ef .elementor-button .elementor-button-content-wrapper{gap:8px;}.elementor-80 .elementor-element.elementor-element-5502a967{--display:flex;--padding-top:112px;--padding-bottom:112px;--padding-left:24px;--padding-right:24px;}.elementor-80 .elementor-element.elementor-element-5502a967:not(.elementor-motion-effects-element-type-background), .elementor-80 .elementor-element.elementor-element-5502a967 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-pspsag0 );}.elementor-80 .elementor-element.elementor-element-6a39dcbe{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-80 .elementor-element.elementor-element-d55b5712{text-align:center;font-family:var( --e-global-typography-pspsurt-font-family ), Sans-serif;font-size:var( --e-global-typography-pspsurt-font-size );font-weight:var( --e-global-typography-pspsurt-font-weight );text-transform:var( --e-global-typography-pspsurt-text-transform );line-height:var( --e-global-typography-pspsurt-line-height );letter-spacing:var( --e-global-typography-pspsurt-letter-spacing );color:var( --e-global-color-secondary );}.elementor-80 .elementor-element.elementor-element-fc4c0d04{text-align:center;}.elementor-80 .elementor-element.elementor-element-fc4c0d04 .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );color:var( --e-global-color-pspnav9 );}.elementor-80 .elementor-element.elementor-element-4ca86a83{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:stretch;--gap:44px 28px;--row-gap:44px;--column-gap:28px;--flex-wrap:wrap;--padding-top:52px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-80 .elementor-element.elementor-element-be5d4b70{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-80 .elementor-element.elementor-element-dac93d47{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );color:var( --e-global-color-pspnav9 );}.elementor-80 .elementor-element.elementor-element-d7f9df0c .elementor-heading-title{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );color:var( --e-global-color-pspnav9 );}.elementor-80 .elementor-element.elementor-element-c8f514c5{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );color:var( --e-global-color-text );}.elementor-80 .elementor-element.elementor-element-a6b29cfd{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-80 .elementor-element.elementor-element-4d4303f2{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );color:var( --e-global-color-pspnav9 );}.elementor-80 .elementor-element.elementor-element-ee4811a1 .elementor-heading-title{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );color:var( --e-global-color-pspnav9 );}.elementor-80 .elementor-element.elementor-element-55ce4a18{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );color:var( --e-global-color-text );}.elementor-80 .elementor-element.elementor-element-d99795f0{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-80 .elementor-element.elementor-element-a4fa89ef{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );color:var( --e-global-color-pspnav9 );}.elementor-80 .elementor-element.elementor-element-cf27e1df .elementor-heading-title{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );color:var( --e-global-color-pspnav9 );}.elementor-80 .elementor-element.elementor-element-861863ec{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );color:var( --e-global-color-text );}.elementor-80 .elementor-element.elementor-element-6de26262{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-80 .elementor-element.elementor-element-b1423bef{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );color:var( --e-global-color-pspnav9 );}.elementor-80 .elementor-element.elementor-element-4b817f8a .elementor-heading-title{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );color:var( --e-global-color-pspnav9 );}.elementor-80 .elementor-element.elementor-element-08c03d42{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );color:var( --e-global-color-text );}.elementor-80 .elementor-element.elementor-element-9cf71d99{--display:flex;--padding-top:112px;--padding-bottom:112px;--padding-left:24px;--padding-right:24px;}.elementor-80 .elementor-element.elementor-element-9cf71d99:not(.elementor-motion-effects-element-type-background), .elementor-80 .elementor-element.elementor-element-9cf71d99 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-pspcrem );}.elementor-80 .elementor-element.elementor-element-4a1457ac{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-80 .elementor-element.elementor-element-a1ab898e{text-align:center;font-family:var( --e-global-typography-pspsurt-font-family ), Sans-serif;font-size:var( --e-global-typography-pspsurt-font-size );font-weight:var( --e-global-typography-pspsurt-font-weight );text-transform:var( --e-global-typography-pspsurt-text-transform );line-height:var( --e-global-typography-pspsurt-line-height );letter-spacing:var( --e-global-typography-pspsurt-letter-spacing );color:var( --e-global-color-accent );}.elementor-80 .elementor-element.elementor-element-e7cb1ca4{text-align:center;}.elementor-80 .elementor-element.elementor-element-e7cb1ca4 .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );color:var( --e-global-color-pspnav9 );}.elementor-80 .elementor-element.elementor-element-06f21549{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );color:var( --e-global-color-text );}.elementor-80 .elementor-element.elementor-element-0e4f4bd3{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:stretch;--gap:24px 24px;--row-gap:24px;--column-gap:24px;--flex-wrap:wrap;--padding-top:40px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-80 .elementor-element.elementor-element-eca4f65b{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-80 .elementor-element.elementor-element-0a6020a2 .elementor-heading-title{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );color:var( --e-global-color-pspnav9 );}.elementor-80 .elementor-element.elementor-element-df3d8bf5{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );color:var( --e-global-color-text );}.elementor-80 .elementor-element.elementor-element-4d072c8d{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-80 .elementor-element.elementor-element-1edd815f .elementor-heading-title{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );color:var( --e-global-color-pspnav9 );}.elementor-80 .elementor-element.elementor-element-8a1b9df9{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );color:var( --e-global-color-text );}.elementor-80 .elementor-element.elementor-element-52033fdd{text-align:center;font-family:var( --e-global-typography-psppeti-font-family ), Sans-serif;font-size:var( --e-global-typography-psppeti-font-size );font-weight:var( --e-global-typography-psppeti-font-weight );line-height:var( --e-global-typography-psppeti-line-height );color:var( --e-global-color-pspmute );}.elementor-80 .elementor-element.elementor-element-720219dc{--display:flex;--padding-top:112px;--padding-bottom:112px;--padding-left:24px;--padding-right:24px;}.elementor-80 .elementor-element.elementor-element-720219dc:not(.elementor-motion-effects-element-type-background), .elementor-80 .elementor-element.elementor-element-720219dc > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-psprot0 );}.elementor-80 .elementor-element.elementor-element-5d264e90{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-80 .elementor-element.elementor-element-733255f0{text-align:center;font-family:var( --e-global-typography-pspsurt-font-family ), Sans-serif;font-size:var( --e-global-typography-pspsurt-font-size );font-weight:var( --e-global-typography-pspsurt-font-weight );text-transform:var( --e-global-typography-pspsurt-text-transform );line-height:var( --e-global-typography-pspsurt-line-height );letter-spacing:var( --e-global-typography-pspsurt-letter-spacing );color:var( --e-global-color-accent );}.elementor-80 .elementor-element.elementor-element-776e9ce9{text-align:center;}.elementor-80 .elementor-element.elementor-element-776e9ce9 .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );color:var( --e-global-color-pspnav9 );}.elementor-80 .elementor-element.elementor-element-e113220c{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:stretch;--gap:28px 28px;--row-gap:28px;--column-gap:28px;--flex-wrap:wrap;--padding-top:44px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-80 .elementor-element.elementor-element-4a610487{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:4px 4px;--row-gap:4px;--column-gap:4px;}.elementor-80 .elementor-element.elementor-element-e67400df{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );text-transform:var( --e-global-typography-accent-text-transform );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );color:var( --e-global-color-pspmute );}.elementor-80 .elementor-element.elementor-element-c39e62c9 .elementor-heading-title{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );color:var( --e-global-color-pspnav9 );}.elementor-80 .elementor-element.elementor-element-10667d13{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );color:var( --e-global-color-text );}.elementor-80 .elementor-element.elementor-element-558f5411{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );color:var( --e-global-color-text );}.elementor-80 .elementor-element.elementor-element-b8ca7bed{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:4px 4px;--row-gap:4px;--column-gap:4px;}.elementor-80 .elementor-element.elementor-element-68123764{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );text-transform:var( --e-global-typography-accent-text-transform );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );color:var( --e-global-color-pspmute );}.elementor-80 .elementor-element.elementor-element-86c04a35 .elementor-heading-title{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );color:var( --e-global-color-pspnav9 );}.elementor-80 .elementor-element.elementor-element-42bf3e66{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );color:var( --e-global-color-text );}.elementor-80 .elementor-element.elementor-element-196be4b6{--display:flex;--padding-top:112px;--padding-bottom:112px;--padding-left:24px;--padding-right:24px;}.elementor-80 .elementor-element.elementor-element-196be4b6:not(.elementor-motion-effects-element-type-background), .elementor-80 .elementor-element.elementor-element-196be4b6 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-primary );}.elementor-80 .elementor-element.elementor-element-8f4c7a67{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-80 .elementor-element.elementor-element-cb3d0a99{text-align:center;font-family:var( --e-global-typography-pspsurt-font-family ), Sans-serif;font-size:var( --e-global-typography-pspsurt-font-size );font-weight:var( --e-global-typography-pspsurt-font-weight );text-transform:var( --e-global-typography-pspsurt-text-transform );line-height:var( --e-global-typography-pspsurt-line-height );letter-spacing:var( --e-global-typography-pspsurt-letter-spacing );color:var( --e-global-color-pspsag3 );}.elementor-80 .elementor-element.elementor-element-692371e8{text-align:center;}.elementor-80 .elementor-element.elementor-element-692371e8 .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );color:var( --e-global-color-pspcrem );}.elementor-80 .elementor-element.elementor-element-391a1e92{text-align:center;font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );color:var( --e-global-color-pspsag1 );}.elementor-80 .elementor-element.elementor-element-72dfa0da{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-80 .elementor-element.elementor-element-e4c1ced8 .elementor-heading-title{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );color:var( --e-global-color-pspnav9 );}.elementor-80 .elementor-element.elementor-element-6a70fd1f{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-80 .elementor-element.elementor-element-e18491d2{text-align:center;font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );color:var( --e-global-color-pspmute );}.elementor-80 .elementor-element.elementor-element-bf1c8f0f{text-align:center;font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );color:var( --e-global-color-pspnav9 );}.elementor-80 .elementor-element.elementor-element-49cd0e04{text-align:center;font-family:var( --e-global-typography-psppeti-font-family ), Sans-serif;font-size:var( --e-global-typography-psppeti-font-size );font-weight:var( --e-global-typography-psppeti-font-weight );line-height:var( --e-global-typography-psppeti-line-height );color:var( --e-global-color-pspmute );}.elementor-80 .elementor-element.elementor-element-c00c3d8a{text-align:center;font-family:var( --e-global-typography-psppeti-font-family ), Sans-serif;font-size:var( --e-global-typography-psppeti-font-size );font-weight:var( --e-global-typography-psppeti-font-weight );line-height:var( --e-global-typography-psppeti-line-height );color:var( --e-global-color-pspsag1 );}.elementor-80 .elementor-element.elementor-element-7cb003f9{--display:flex;--padding-top:112px;--padding-bottom:112px;--padding-left:24px;--padding-right:24px;}.elementor-80 .elementor-element.elementor-element-7cb003f9:not(.elementor-motion-effects-element-type-background), .elementor-80 .elementor-element.elementor-element-7cb003f9 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-pspsag1 );}.elementor-80 .elementor-element.elementor-element-87a3276f{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:flex-start;--gap:44px 56px;--row-gap:44px;--column-gap:56px;--flex-wrap:wrap;}.elementor-80 .elementor-element.elementor-element-681592bf{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-2ea73742{font-family:var( --e-global-typography-psppeti-font-family ), Sans-serif;font-size:var( --e-global-typography-psppeti-font-size );font-weight:var( --e-global-typography-psppeti-font-weight );line-height:var( --e-global-typography-psppeti-line-height );color:var( --e-global-color-pspmute );}.elementor-80 .elementor-element.elementor-element-7d83c664{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:18px 18px;--row-gap:18px;--column-gap:18px;}.elementor-80 .elementor-element.elementor-element-648f4254{font-family:var( --e-global-typography-pspsurt-font-family ), Sans-serif;font-size:var( --e-global-typography-pspsurt-font-size );font-weight:var( --e-global-typography-pspsurt-font-weight );text-transform:var( --e-global-typography-pspsurt-text-transform );line-height:var( --e-global-typography-pspsurt-line-height );letter-spacing:var( --e-global-typography-pspsurt-letter-spacing );color:var( --e-global-color-secondary );}.elementor-80 .elementor-element.elementor-element-5afac9bd .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );color:var( --e-global-color-pspnav9 );}.elementor-80 .elementor-element.elementor-element-9c793f6e{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );color:var( --e-global-color-text );}.elementor-80 .elementor-element.elementor-element-59824b2e{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-80 .elementor-element.elementor-element-aa1f9efa .elementor-heading-title{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );color:var( --e-global-color-pspnav9 );}.elementor-80 .elementor-element.elementor-element-ca2fb697{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );color:var( --e-global-color-text );}.elementor-80 .elementor-element.elementor-element-5466c736{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-80 .elementor-element.elementor-element-712ddfd5{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );color:var( --e-global-color-text );}.elementor-80 .elementor-element.elementor-element-9bc10938{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-80 .elementor-element.elementor-element-136dc5a0 .elementor-heading-title{font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-size:var( --e-global-typography-secondary-font-size );font-weight:var( --e-global-typography-secondary-font-weight );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );color:var( --e-global-color-pspnav9 );}.elementor-80 .elementor-element.elementor-element-b3818acd{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );color:var( --e-global-color-text );}.elementor-80 .elementor-element.elementor-element-3f2f16bb .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-80 .elementor-element.elementor-element-3f2f16bb .elementor-button .elementor-button-content-wrapper{gap:8px;}@media(max-width:1024px){.elementor-widget-text-editor{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-11ea1d7f{font-size:var( --e-global-typography-pspsurt-font-size );line-height:var( --e-global-typography-pspsurt-line-height );letter-spacing:var( --e-global-typography-pspsurt-letter-spacing );}.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-f8dfc076 .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-837b641b{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-fed57781{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-80 .elementor-element.elementor-element-3bdfbe84 .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-20af3530{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-widget-button .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-80 .elementor-element.elementor-element-c4a54156{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-80 .elementor-element.elementor-element-7cded9f7 .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-0854d42e{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-7670a30f{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-d55b5712{font-size:var( --e-global-typography-pspsurt-font-size );line-height:var( --e-global-typography-pspsurt-line-height );letter-spacing:var( --e-global-typography-pspsurt-letter-spacing );}.elementor-80 .elementor-element.elementor-element-fc4c0d04 .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-dac93d47{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-d7f9df0c .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-c8f514c5{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-4d4303f2{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-ee4811a1 .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-55ce4a18{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-a4fa89ef{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-cf27e1df .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-861863ec{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-b1423bef{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-4b817f8a .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-08c03d42{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-a1ab898e{font-size:var( --e-global-typography-pspsurt-font-size );line-height:var( --e-global-typography-pspsurt-line-height );letter-spacing:var( --e-global-typography-pspsurt-letter-spacing );}.elementor-80 .elementor-element.elementor-element-e7cb1ca4 .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-06f21549{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-0a6020a2 .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-df3d8bf5{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-1edd815f .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-8a1b9df9{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-52033fdd{font-size:var( --e-global-typography-psppeti-font-size );line-height:var( --e-global-typography-psppeti-line-height );}.elementor-80 .elementor-element.elementor-element-733255f0{font-size:var( --e-global-typography-pspsurt-font-size );line-height:var( --e-global-typography-pspsurt-line-height );letter-spacing:var( --e-global-typography-pspsurt-letter-spacing );}.elementor-80 .elementor-element.elementor-element-776e9ce9 .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-e67400df{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-80 .elementor-element.elementor-element-c39e62c9 .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-10667d13{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-558f5411{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-68123764{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-80 .elementor-element.elementor-element-86c04a35 .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-42bf3e66{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-cb3d0a99{font-size:var( --e-global-typography-pspsurt-font-size );line-height:var( --e-global-typography-pspsurt-line-height );letter-spacing:var( --e-global-typography-pspsurt-letter-spacing );}.elementor-80 .elementor-element.elementor-element-692371e8 .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-391a1e92{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-e4c1ced8 .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-e18491d2{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-bf1c8f0f{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-49cd0e04{font-size:var( --e-global-typography-psppeti-font-size );line-height:var( --e-global-typography-psppeti-line-height );}.elementor-80 .elementor-element.elementor-element-c00c3d8a{font-size:var( --e-global-typography-psppeti-font-size );line-height:var( --e-global-typography-psppeti-line-height );}.elementor-widget-image .widget-image-caption{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-2ea73742{font-size:var( --e-global-typography-psppeti-font-size );line-height:var( --e-global-typography-psppeti-line-height );}.elementor-80 .elementor-element.elementor-element-648f4254{font-size:var( --e-global-typography-pspsurt-font-size );line-height:var( --e-global-typography-pspsurt-line-height );letter-spacing:var( --e-global-typography-pspsurt-letter-spacing );}.elementor-80 .elementor-element.elementor-element-5afac9bd .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-9c793f6e{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-aa1f9efa .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-ca2fb697{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-712ddfd5{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-136dc5a0 .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-b3818acd{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}}@media(max-width:767px){.elementor-80 .elementor-element.elementor-element-b086404c{--min-height:68vh;--padding-top:132px;--padding-bottom:134px;--padding-left:20px;--padding-right:20px;}.elementor-widget-text-editor{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-11ea1d7f{font-size:var( --e-global-typography-pspsurt-font-size );line-height:var( --e-global-typography-pspsurt-line-height );letter-spacing:var( --e-global-typography-pspsurt-letter-spacing );}.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-f8dfc076 .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-837b641b{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-fa0a9346{--padding-top:0px;--padding-bottom:80px;--padding-left:20px;--padding-right:20px;}.elementor-80 .elementor-element.elementor-element-fed57781{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-80 .elementor-element.elementor-element-3bdfbe84 .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-20af3530{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-widget-button .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-80 .elementor-element.elementor-element-c4a54156{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-80 .elementor-element.elementor-element-7cded9f7 .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-0854d42e{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-7670a30f{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-5502a967{--padding-top:80px;--padding-bottom:80px;--padding-left:20px;--padding-right:20px;}.elementor-80 .elementor-element.elementor-element-d55b5712{font-size:var( --e-global-typography-pspsurt-font-size );line-height:var( --e-global-typography-pspsurt-line-height );letter-spacing:var( --e-global-typography-pspsurt-letter-spacing );}.elementor-80 .elementor-element.elementor-element-fc4c0d04 .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-dac93d47{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-d7f9df0c .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-c8f514c5{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-4d4303f2{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-ee4811a1 .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-55ce4a18{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-a4fa89ef{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-cf27e1df .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-861863ec{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-b1423bef{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-4b817f8a .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-08c03d42{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-9cf71d99{--padding-top:80px;--padding-bottom:80px;--padding-left:20px;--padding-right:20px;}.elementor-80 .elementor-element.elementor-element-a1ab898e{font-size:var( --e-global-typography-pspsurt-font-size );line-height:var( --e-global-typography-pspsurt-line-height );letter-spacing:var( --e-global-typography-pspsurt-letter-spacing );}.elementor-80 .elementor-element.elementor-element-e7cb1ca4 .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-06f21549{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-0a6020a2 .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-df3d8bf5{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-1edd815f .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-8a1b9df9{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-52033fdd{font-size:var( --e-global-typography-psppeti-font-size );line-height:var( --e-global-typography-psppeti-line-height );}.elementor-80 .elementor-element.elementor-element-720219dc{--padding-top:80px;--padding-bottom:80px;--padding-left:20px;--padding-right:20px;}.elementor-80 .elementor-element.elementor-element-733255f0{font-size:var( --e-global-typography-pspsurt-font-size );line-height:var( --e-global-typography-pspsurt-line-height );letter-spacing:var( --e-global-typography-pspsurt-letter-spacing );}.elementor-80 .elementor-element.elementor-element-776e9ce9 .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-e67400df{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-80 .elementor-element.elementor-element-c39e62c9 .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-10667d13{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-558f5411{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-68123764{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );letter-spacing:var( --e-global-typography-accent-letter-spacing );}.elementor-80 .elementor-element.elementor-element-86c04a35 .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-42bf3e66{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-196be4b6{--padding-top:80px;--padding-bottom:80px;--padding-left:20px;--padding-right:20px;}.elementor-80 .elementor-element.elementor-element-cb3d0a99{font-size:var( --e-global-typography-pspsurt-font-size );line-height:var( --e-global-typography-pspsurt-line-height );letter-spacing:var( --e-global-typography-pspsurt-letter-spacing );}.elementor-80 .elementor-element.elementor-element-692371e8 .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-391a1e92{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-e4c1ced8 .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-e18491d2{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-bf1c8f0f{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-49cd0e04{font-size:var( --e-global-typography-psppeti-font-size );line-height:var( --e-global-typography-psppeti-line-height );}.elementor-80 .elementor-element.elementor-element-c00c3d8a{font-size:var( --e-global-typography-psppeti-font-size );line-height:var( --e-global-typography-psppeti-line-height );}.elementor-80 .elementor-element.elementor-element-7cb003f9{--padding-top:80px;--padding-bottom:80px;--padding-left:20px;--padding-right:20px;}.elementor-widget-image .widget-image-caption{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-2ea73742{font-size:var( --e-global-typography-psppeti-font-size );line-height:var( --e-global-typography-psppeti-line-height );}.elementor-80 .elementor-element.elementor-element-648f4254{font-size:var( --e-global-typography-pspsurt-font-size );line-height:var( --e-global-typography-pspsurt-line-height );letter-spacing:var( --e-global-typography-pspsurt-letter-spacing );}.elementor-80 .elementor-element.elementor-element-5afac9bd .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );line-height:var( --e-global-typography-primary-line-height );letter-spacing:var( --e-global-typography-primary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-9c793f6e{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-aa1f9efa .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-ca2fb697{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-712ddfd5{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-80 .elementor-element.elementor-element-136dc5a0 .elementor-heading-title{font-size:var( --e-global-typography-secondary-font-size );line-height:var( --e-global-typography-secondary-line-height );letter-spacing:var( --e-global-typography-secondary-letter-spacing );}.elementor-80 .elementor-element.elementor-element-b3818acd{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}}/* Start custom CSS *//* =========================================================================
   Prendre rendez-vous · Pôle Santé Psy
   Chargé APRÈS le CSS du kit (post-45.css) : à spécificité égale c'est lui qui
   gagne. Voir CLAUDE.md §16 piège 3.

   ÉCRITURE PORTABLE, généralisée sur cette page (CLAUDE.md §21).
   Aucun préfixe d'identifiant de page. Les règles qui doivent battre Elementor
   répètent leur classe :

     .psp-x.psp-x.psp-x             0-3-0, bat le 0-2-0 des boutons d'Elementor 7
     .e-con.e-parent.psp-x.psp-x.psp-x.psp-x   0-6-0, bat le 0-5-0 du lazy-load

   `.elementor-page-80 .psp-x` ferait le même travail mais meurt à la première
   copie de page : c'est la cause des 42 sélecteurs morts du §19 étape 3. Sur
   cette page il n'y a donc PLUS RIEN à réécrire pour la recopier ailleurs.

   Le système visuel du §17 n'est pas rediscuté. Composants repris tels quels :
   hero sous voile marine, panneau à cheval, carte, panneau de texte, listes à
   puce en goutte, boutons en pilule. Nouveautés de cette page : les chemins
   d'aiguillage, la grille de tarifs, l'emplacement de formulaire, le plan.
   ========================================================================= */

/* ---------------------------------------------------------- 0. Fondations */

.psp-section { position: relative; }

/* GARDE-FOU §18 pièges 2 et 3 : une animation d'entrée portée par un container
   masque son contenu pour de bon. Les animations sont sur les widgets, et
   cette règle garantit qu'aucun contenu ne peut disparaître. */
.elementor-invisible { visibility: visible !important; }

/* §18 piège 4 : Elementor insère une cale sous un en-tête sticky, qui pousse
   le hero au lieu de l'y superposer. Le §8 veut la superposition. */
.elementor-sticky__spacer { display: none !important; }

/* L'en-tête est sticky : sans cette marge, une ancre place sa cible SOUS
   l'en-tête et le titre de section est invisible à l'arrivée. Les deux boutons
   d'aiguillage pointent vers #fiche-contact, c'est le trajet principal de la
   page : il ne peut pas atterrir sur un titre masqué. */
#fiche-contact { scroll-margin-block-start: 96px; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Surtitres */
.psp-surtitre p { margin: 0; }
.psp-surtitre--centre { margin-block-end: 12px; }

.psp-surtitre p::before {
  content: "";
  display: inline-block;
  inline-size: 28px;
  block-size: 2px;
  margin-inline-end: 12px;
  vertical-align: middle;
  background: currentColor;
  opacity: .6;
}

.psp-surtitre--centre p::after {
  content: "";
  display: inline-block;
  inline-size: 28px;
  block-size: 2px;
  margin-inline-start: 12px;
  vertical-align: middle;
  background: currentColor;
  opacity: .6;
}

.psp-surtitre--clair p { color: var(--psp-sage-300); }

/* AIR SOUS UN TITRE DE SECTION. Corrigé dans le socle le 6 août 2026, dette
   annoncée au §27.8 point 9. La règle d'origine était
   `.psp-section-titre { margin-block-end: 4px }`, et le §27.3 l'expliquait par
   un calibrage sur le titre CENTRÉ, qui reçoit ensuite le trait dégradé de
   22 px.

   MESURE FAITE AVANT DE CORRIGER, sur les cinq pages en ligne : ce n'était pas
   ça. LA RÈGLE NE S'APPLIQUAIT PAS DU TOUT. `margin-block-end` calculé = 0px
   sur les quatre pages publiées, alors que le socle écrit 4px. À 0-1-0 elle
   perd contre la marge de widget qu'Elementor émet dans le CSS du document
   APRÈS le CSS personnalisé : c'est le mécanisme du §26.4bis sur les titres et
   du §18 sur les boutons, ici appliqué à une marge. Les deux rustines de la
   page 87 ne fonctionnaient que parce qu'elles portaient `!important`.

   Écarts titre / bloc suivant relevés à 1440 px avant correction :
     Consultations  « Pourquoi consulter »       -2 px
     Consultations  « Quelles approches »        -2 px
     Qui suis-je    « Formations et diplômes »   14 px
     Prendre RDV    « Où me trouver »            16 px
     Accueil        « Un pôle spécialisé »       30 px
   Norme retenue, celle du §21 pour « titre vers bloc suivant » : 18 à 40 px.

   DEUX RÈGLES, PAS UNE. La marge seule ne suffit pas : l'écart dépendait aussi
   de la marge haute du bloc suivant, qui vaut 18 px sur `psp-texte`, 6 sur un
   `psp-liste` et 0 ailleurs. Même intention, trois résultats. La seconde règle
   la neutralise, pour que l'air vienne d'un seul endroit. */
.psp-section-titre.psp-section-titre.psp-section-titre { margin-block-end: 20px; }

/* Un titre CENTRÉ tire son air du trait dégradé ci-dessous (le `margin: 22px
   auto 0` du ::after). Il ne prend donc pas la marge. Même spécificité, écrite
   après, donc elle gagne. */
.psp-section-titre--centre.psp-section-titre--centre.psp-section-titre--centre { margin-block-end: 0; }

/* Elementor 7 ne pose PAS de `.elementor-widget-container` : le paragraphe est
   enfant DIRECT du widget. Vérifié dans le DOM le 6 août 2026, ne pas le
   supposer. 0-3-1, ce qui bat les 0-1-1 de `.psp-texte p` et `.psp-liste ul`. */
.psp-section-titre.psp-section-titre:not(.psp-section-titre--centre) + .elementor-element > p:first-child,
.psp-section-titre.psp-section-titre:not(.psp-section-titre--centre) + .elementor-element > ul:first-child {
  margin-block-start: 0;
}

.psp-section-titre--centre .elementor-heading-title::after {
  content: "";
  display: block;
  inline-size: 64px;
  block-size: 3px;
  margin: 22px auto 0;
  border-radius: 3px;
  background: linear-gradient(90deg, var(--psp-sage-300), var(--psp-rose-300));
}

/* Sur fond marine le trait dégradé disparaît : le rose 300 et le sauge 300 y
   sont trop proches du fond. Version claire. */
.psp-fiche .psp-section-titre--centre .elementor-heading-title::after {
  background: linear-gradient(90deg, var(--psp-sage-300), var(--psp-rose-300));
  opacity: .9;
}

/* Fraunces rend le & en esperluette ornementale, illisible dans un titre.
   §19 : l'arbitrage retenu est d'écrire « et », cette règle est une ceinture. */
.psp-section-titre.psp-section-titre.psp-section-titre .elementor-heading-title,
.psp-chemin-titre.psp-chemin-titre.psp-chemin-titre .elementor-heading-title,
.psp-panneau-titre.psp-panneau-titre.psp-panneau-titre .elementor-heading-title,
.psp-etape-titre.psp-etape-titre.psp-etape-titre .elementor-heading-title,
.psp-info-titre.psp-info-titre.psp-info-titre .elementor-heading-title {
  font-variant-ligatures: none;
  font-feature-settings: "dlig" 0;
}

.psp-texte p:last-child { margin-block-end: 0; }

/* ---------------------------------------------------------- 1. Formes organiques */

@keyframes psp-morph {
  0%   { border-radius: 62% 38% 47% 53% / 55% 44% 56% 45%; transform: translate3d(0,0,0) rotate(0deg); }
  33%  { border-radius: 38% 62% 63% 37% / 41% 58% 42% 59%; transform: translate3d(0,-14px,0) rotate(3deg); }
  66%  { border-radius: 55% 45% 34% 66% / 62% 36% 64% 38%; transform: translate3d(0,8px,0) rotate(-2deg); }
  100% { border-radius: 62% 38% 47% 53% / 55% 44% 56% 45%; transform: translate3d(0,0,0) rotate(0deg); }
}

.psp-forme { position: relative; overflow: hidden; isolation: isolate; }

.psp-forme::before,
.psp-forme::after {
  content: "";
  position: absolute;
  z-index: -1;
  pointer-events: none;
  animation: psp-morph 26s ease-in-out infinite;
}

.psp-forme::before {
  inset-inline-end: -10%;
  inset-block-start: -14%;
  inline-size: 44vw; block-size: 44vw;
  max-inline-size: 560px; max-block-size: 560px;
  background: radial-gradient(closest-side, var(--psp-sage-100), transparent 74%);
}

.psp-forme::after {
  inset-inline-start: -12%;
  inset-block-end: -18%;
  inline-size: 34vw; block-size: 34vw;
  max-inline-size: 430px; max-block-size: 430px;
  background: radial-gradient(closest-side, var(--psp-rose-100), transparent 74%);
  animation-duration: 34s;
  animation-direction: reverse;
}

.psp-forme--rose::before {
  background: radial-gradient(closest-side, var(--psp-rose-100), transparent 74%);
}
.psp-forme--rose::after {
  background: radial-gradient(closest-side, var(--psp-sage-100), transparent 74%);
}

/* Décalage section par section : trois pages qui se suivent ne doivent pas
   présenter le même halo au même endroit, sinon le motif devient un gabarit.
   Ces positions diffèrent de celles de l'Accueil et de Qui suis-je. */
.psp-etapes-sec::before { inset-block-start: -22%; inset-inline-end: -16%; inline-size: 48vw; block-size: 48vw; }
.psp-etapes-sec::after  { inset-block-end: -18%; inset-inline-start: -8%; inline-size: 30vw; block-size: 30vw; }

.psp-modalites::before { inset-inline-end: -20%; inset-block-start: 4%; }
.psp-modalites::after  { inset-block-end: -24%; inline-size: 36vw; block-size: 36vw; }

.psp-acces::before { inset-block-start: -18%; inset-inline-start: -14%; inset-inline-end: auto; inline-size: 40vw; block-size: 40vw; }
.psp-acces::after  { inset-block-end: -16%; inset-inline-end: -12%; inset-inline-start: auto; }

/* `psp-forme` pose `overflow: hidden` pour confiner les halos organiques. Or
   overflow:hidden crée un conteneur de défilement, ce qui NEUTRALISE
   silencieusement le `position: sticky` de tout descendant : la colonne
   visuelle défilait normalement alors que son `position` calculé sortait bien
   à `sticky`. `overflow: clip` confine exactement pareil SANS créer ce
   conteneur. Vérifié à la mesure : le visuel reste à 108px du haut pendant
   tout le défilement de la section. */
.psp-acces.psp-acces.psp-acces { overflow: clip; }

/* Sur fond marine les halos passent en teintes translucides, sinon ils
   éclaircissent le fond en plaques (§17). */
.psp-fiche.psp-forme::before {
  background: radial-gradient(closest-side, rgba(79, 107, 87, .42), transparent 72%);
  inset-block-start: -14%; inset-inline-end: -12%;
}
.psp-fiche.psp-forme::after {
  background: radial-gradient(closest-side, rgba(142, 78, 86, .38), transparent 72%);
  inset-block-end: -18%; inset-inline-start: -10%;
}

/* ---------------------------------------------------------- 2. Hero
   Même composant que l'Accueil et Qui suis-je : photographie sous voile marine
   en dégradé, plus dense à gauche où vit le texte. C'est ce qui rend lisibles
   le logo clair et la navigation blanche exigés au §8.

   PARTICULARITÉ DE CETTE PAGE : le hero ne porte AUCUN bouton. Sur une page
   d'aiguillage, l'action est le panneau à cheval situé 100px plus bas ; des
   boutons dans le hero pointeraient vers un bloc déjà visible à l'écran et
   dédoubleraient le choix au lieu de le clarifier. Conséquence à connaître :
   recette-page.js ne peut pas mesurer l'écart « boutons vers ce qui suit »,
   c'est l'écart « dernier texte vers ce qui suit » qui le remplace. */

.psp-hero { position: relative; overflow: hidden; isolation: isolate; }

.psp-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(100deg,
      rgba(15, 37, 64, .96) 0%,
      rgba(15, 37, 64, .90) 34%,
      rgba(15, 37, 64, .66) 62%,
      rgba(22, 50, 79, .48) 100%),
    radial-gradient(70% 90% at 88% 18%, rgba(79, 107, 87, .40), transparent 70%);
}

/* Motif de pluie, fil rouge visuel du §2 */
.psp-hero::after {
  content: "";
  position: absolute;
  inset: -40% -25%;
  z-index: -1;
  background-image: repeating-linear-gradient(
    15deg,
    rgba(221, 231, 218, .14) 0 1px,
    transparent 1px 10px);
  mask-image: radial-gradient(ellipse 80% 75% at 76% 12%, #000 5%, transparent 74%);
  -webkit-mask-image: radial-gradient(ellipse 80% 75% at 76% 12%, #000 5%, transparent 74%);
  animation: psp-pluie 6.5s linear infinite;
  pointer-events: none;
}

@keyframes psp-pluie {
  from { transform: translate3d(0, -10px, 0); }
  to   { transform: translate3d(0, 0, 0); }
}

.psp-hero-inner > .e-con-inner { margin-inline: auto; }

.psp-hero-titre { max-inline-size: 780px; }
.psp-hero-titre .elementor-heading-title { text-wrap: balance; }

/* MESURE DE LECTURE : BORNER EN em, PAS EN px.
   Défaut de méthode trouvé à la recette du 6 août 2026. Le §22 avait corrigé
   l'INSTRUMENT de mesure, pas l'UNITÉ des bornes. 590px donne bien 72
   caractères sur un corps de 18px, mais la même valeur donne 92 caractères sur
   un corps de 14px : la mention RGPD, bornée à 590px, sortait à 92. Une borne
   en pixels suppose une taille de police et ment dès qu'elle change.
   33em donne environ 72 caractères QUELLE QUE SOIT la taille du corps, parce
   que la largeur moyenne d'un caractère vaut à peu près 0,45em dans Source
   Sans 3. C'est la borne à utiliser partout désormais, y compris pour reprendre
   accueil.css et qui-suis-je.css.
   Elementor pose par ailleurs une largeur sur l'enveloppe du widget texte :
   borner le widget ne suffit pas, il faut borner le paragraphe aussi (§18). */
.psp-hero-chapo { max-inline-size: 33em; }
.psp-hero-chapo p { max-inline-size: 33em; margin: 0 0 6px; }

/* Écarts internes du hero (§21). Trois groupes, deux écarts à tenir. */
.psp-surtitre--clair { margin-block-end: 14px !important; }
.psp-hero-titre { margin-block-end: 26px !important; }

/* ---------------------------------------------------------- 3. Aiguillage
   LE COMPOSANT CENTRAL DE CETTE PAGE. Panneau blanc à cheval sur la limite
   hero / page, même mécanique que le panneau de repères validé au §19.

   HIÉRARCHIE INVERSÉE, décidée le 6 août 2026 après vérification du profil
   Doctolib au navigateur. Le profil porte « Ce soignant réserve la prise de
   rendez-vous en ligne aux patients déjà suivis » et « pas de prises de
   rendez-vous par internet pour les nouveaux patients ». Le §6bis prévoyait
   exactement ce cas : envoyer le trafic principal vers Doctolib serait une
   impasse. Les deux chemins de poids égal sont donc particulier et
   professionnel, tous deux vers la fiche contact ; Doctolib devient une ligne
   de rappel pour les patients déjà suivis. */

.psp-aiguillage {
  background-color: transparent !important;
  margin-block-start: -84px !important;
  padding-block-start: 0 !important;
  padding-block-end: 104px !important;
  position: relative;
  z-index: 3;
}

.psp-aiguillage-panneau > .e-con-inner {
  background: #FFFFFF;
  border-radius: 22px;
  box-shadow: 0 2px 4px rgba(15, 37, 64, .05), 0 26px 64px rgba(15, 37, 64, .14);
  padding: 14px 16px 22px !important;
  gap: 0 !important;
}

/* §18 piège 6bis : une règle flex doit couvrir les deux formes de container,
   boxed (avec .e-con-inner) et full (sans). Test de détection : si le flex
   calculé de l'enfant sort à « 0 1 auto », c'est ce piège. */
.psp-chemins > .psp-chemin,
.psp-chemins > .e-con-inner > .psp-chemin {
  flex: 1 1 320px !important;
  width: auto !important;
  min-inline-size: 0 !important;
}

.psp-chemins > .e-con-inner,
.psp-chemins { align-items: stretch; }

.psp-chemin {
  position: relative;
  padding: 30px 30px 26px !important;
  border-radius: 16px;
  transition: background-color .3s var(--psp-ease);
}

.psp-chemin:hover,
.psp-chemin:focus-within { background: var(--psp-sage-50); }
.psp-chemin--pro:hover,
.psp-chemin--pro:focus-within { background: var(--psp-rose-50); }

/* Filet vertical entre les deux chemins, remplacé par un filet horizontal
   quand ils s'empilent : sans lui, deux blocs blancs sur fond blanc ne se
   distinguent plus l'un de l'autre. */
.psp-chemin + .psp-chemin::before {
  content: "";
  position: absolute;
  inset-inline-start: -1px;
  inset-block: 18px;
  inline-size: 1px;
  background: var(--psp-sage-300);
}

.psp-chemin-surtitre p {
  margin: 0 0 8px;
  font-size: 13px;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.psp-chemin-titre { margin-block-end: 10px !important; }
.psp-chemin-titre.psp-chemin-titre.psp-chemin-titre .elementor-heading-title { font-size: clamp(21px, 2vw, 26px); line-height: 1.28; }

.psp-chemin-texte p { margin: 0 0 20px; }
.psp-chemin-texte { flex: 1 1 auto; }

/* Le bouton est poussé en bas : les deux chemins n'ont pas le même nombre de
   lignes de texte, et sans cette règle les deux boutons ne s'alignent pas.
   Même cause que les liens des panneaux de Qui suis-je : le flex-grow du bloc
   de texte est écrasé à 0 par une règle générée par Elementor. */
.psp-chemin > .psp-bouton,
.psp-chemin > .e-con-inner > .psp-bouton { margin-block-start: auto !important; }

/* Ligne Doctolib : troisième chemin, volontairement discret. Ce n'est pas un
   bouton, c'est un rappel pour les personnes déjà suivies. */
.psp-doctolib {
  border-block-start: 1px solid var(--psp-sage-300);
  margin-inline: 30px !important;
  padding-block-start: 18px !important;
  padding-inline: 0 !important;
}

/* ALIGNEMENT REPRIS le 6 août 2026 après retour de Toufik : « le prendre
   rendez-vous sur Doctolib n'est pas centré avec la ligne déjà client ».
   Mesuré : 7px de décalage. `align-items: center` centre les BOÎTES des deux
   widgets, qui n'ont pas la même hauteur ; ce qu'il faut aligner ici, ce sont
   les LIGNES DE BASE du texte, puisque les deux éléments se lisent comme une
   seule phrase.
   Deuxième défaut du même bloc, vu à la même occasion : le bouton sortait en
   16px, graisse 600, CAPITALES, contre un texte en 15px graisse 400. Le lien
   Doctolib pesait donc plus lourd que la phrase qui l'introduit, exactement
   l'inverse de l'intention du §6bis, où Doctolib est le chemin discret. */
.psp-doctolib > .e-con-inner,
.psp-doctolib {
  align-items: baseline;
  justify-content: center;
}

.psp-doctolib .psp-bouton--lien.psp-bouton--lien.psp-bouton--lien .elementor-button {
  font-size: 15px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  line-height: 1.5 !important;
}

.psp-doctolib .elementor-widget-button { line-height: 1.5; }

.psp-doctolib-texte p { margin: 0; font-size: 15px; }

/* DÉFAUT TROUVÉ À LA MESURE le 6 août 2026, invisible pour recette-page.js.
   Les deux chemins s'empilaient d'eux-mêmes vers 815px (mesuré : en ligne à
   820, empilés à 810), alors que le filet ne basculait à l'horizontale qu'à
   720px. Entre les deux, un trait vertical de 1px flottait à gauche du second
   chemin, sans rien séparer.
   Correction de fond plutôt que de réglage : le point de rupture n'est plus
   SUBI mais IMPOSÉ, et le filet est calé au même endroit. Les deux ne peuvent
   plus se désynchroniser si un padding change. */
@media (max-width: 820px) {
  .psp-chemins > .psp-chemin,
  .psp-chemins > .e-con-inner > .psp-chemin { flex: 1 1 100% !important; }
  .psp-chemin + .psp-chemin::before {
    inset-inline: 22px;
    inset-block-start: -1px;
    inset-block-end: auto;
    inline-size: auto;
    block-size: 1px;
  }
}

@media (max-width: 720px) {
  .psp-aiguillage { margin-block-start: -56px !important; padding-block-end: 80px !important; }
  .psp-chemin { padding: 24px 22px 22px !important; }
  .psp-doctolib { margin-inline: 22px !important; }
}

/* ---------------------------------------------------------- 4. Étapes
   QUATRE étapes ici, contre trois sur l'Accueil. À 1440 elles tiennent en
   ligne, mais à 1100 quatre colonnes tombent sous 250px et les titres partent
   sur trois lignes : elles passent en 2 x 2 dès 1180px. Le pointillé de
   liaison n'a de sens que sur une seule ligne, il disparaît au même point. */

.psp-etapes > .psp-etape,
.psp-etapes > .e-con-inner > .psp-etape {
  flex: 1 1 240px !important;
  width: auto !important;
  min-inline-size: 0 !important;
}

.psp-etapes > .e-con-inner,
.psp-etapes { align-items: stretch; position: relative; }

.psp-etape { position: relative; padding: 0 18px !important; }

/* Pointillé de liaison entre les numéros, à hauteur de leur centre. */
.psp-etape + .psp-etape::before {
  content: "";
  position: absolute;
  inset-inline-start: -34px;
  inset-block-start: 27px;
  inline-size: 68px;
  block-size: 2px;
  background-image: linear-gradient(90deg, var(--psp-sage-300) 0 6px, transparent 6px 12px);
  background-size: 12px 2px;
  background-repeat: repeat-x;
}

.psp-etape-num p {
  margin: 0 0 18px;
  inline-size: 54px;
  block-size: 54px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-size: 22px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--psp-navy-900);
  background: #FFFFFF;
  border: 2px solid var(--psp-sage-300);
  box-shadow: 0 2px 8px rgba(15, 37, 64, .08);
}

.psp-etape-titre { margin-block-end: 8px !important; }
.psp-etape-titre.psp-etape-titre.psp-etape-titre .elementor-heading-title { font-size: 20px; line-height: 1.3; }
.psp-etape-texte p { margin: 0; font-size: 16px; line-height: 1.65; }

/* Vu à la capture, après la mesure : les titres d'étape font une ou deux lignes
   selon le libellé, donc les corps de texte démarraient à des hauteurs
   différentes, avec 38px d'écart sur la deuxième colonne. Sans cadre autour des
   étapes, l'oeil suit la ligne des textes et le décalage se voit.
   Réservé aux étapes EN LIGNE : en 2 x 2 ou empilées, chaque titre reprend sa
   hauteur naturelle et une hauteur minimale ne créerait que du vide. */
@media (min-width: 1181px) {
  .psp-etape-titre.psp-etape-titre.psp-etape-titre .elementor-heading-title { min-block-size: 2.6em; }
}

@media (max-width: 1180px) {
  .psp-etapes > .psp-etape,
  .psp-etapes > .e-con-inner > .psp-etape { flex: 1 1 44% !important; }
  .psp-etape + .psp-etape::before { display: none; }
  .psp-etape { padding: 0 !important; }
}

@media (max-width: 700px) {
  .psp-etapes > .psp-etape,
  .psp-etapes > .e-con-inner > .psp-etape { flex: 1 1 100% !important; }
}

/* ---------------------------------------------------------- 5. Tarifs
   §6 : « Ces tarifs changeront. Les mettre dans des blocs de texte simples et
   éditables, pas dans un tableau de prix stylisé. » C'est donc UN SEUL widget
   texte contenant une liste de définitions, que la cliente modifie dans
   l'éditeur visuel comme n'importe quel paragraphe. Toute la mise en forme est
   ici, aucune structure Elementor à comprendre pour changer un prix. */

.psp-tarifs { position: relative; }

.psp-tarifs-inner > .e-con-inner {
  max-inline-size: 820px;
  margin-inline: auto;
}

.psp-tarifs-liste dl {
  margin: 34px 0 0;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0;
  align-items: baseline;
}

.psp-tarifs-liste dt {
  grid-column: 1;
  padding: 15px 0;
  border-block-end: 1px solid var(--psp-sage-100);
  position: relative;
  padding-inline-end: 16px;
}

.psp-tarifs-liste dd {
  grid-column: 2;
  margin: 0;
  padding: 15px 0;
  border-block-end: 1px solid var(--psp-sage-100);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--psp-navy-900);
  white-space: nowrap;
  font-size: clamp(17px, 1.5vw, 19px);
}

.psp-tarifs-liste dl > *:nth-last-child(-n+2) { border-block-end: 0; }

/* Deux notes côte à côte sous la grille : ce qui n'est pas remboursé d'un
   côté, les recours réels de l'autre. Les séparer évite le pavé décourageant
   qu'aurait produit un seul paragraphe négatif. */
.psp-notes > .psp-note,
.psp-notes > .e-con-inner > .psp-note {
  flex: 1 1 300px !important;
  width: auto !important;
  min-inline-size: 0 !important;
}

.psp-notes > .e-con-inner,
.psp-notes { align-items: stretch; }

.psp-note {
  background: var(--psp-sage-50);
  border-inline-start: 4px solid var(--psp-sage-600);
  border-radius: 0 16px 16px 0;
  padding: 24px 26px !important;
}

.psp-note--rose {
  background: var(--psp-rose-50);
  border-inline-start-color: var(--psp-rose-700);
}

.psp-note-titre { margin-block-end: 8px !important; }
.psp-note-titre.psp-note-titre.psp-note-titre .elementor-heading-title { font-size: 18px; line-height: 1.3; }
.psp-note-texte p { margin: 0; font-size: 16px; line-height: 1.65; }

.psp-tarifs-renvoi p { margin: 26px 0 0; font-size: 15px; }
/* Même cause que le lien RGPD : le soulignement était perdu. Le contraste
   passait (9,68), mais un lien qui ne se distingue du texte que par sa couleur
   échoue au critère WCAG 1.4.1. */
.psp-tarifs-renvoi.psp-tarifs-renvoi.psp-tarifs-renvoi a {
  color: var(--psp-navy-700) !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
}
.psp-tarifs-renvoi.psp-tarifs-renvoi.psp-tarifs-renvoi a:hover,
.psp-tarifs-renvoi.psp-tarifs-renvoi.psp-tarifs-renvoi a:focus-visible { color: var(--psp-navy-900) !important; }

/* DÉFAUT TROUVÉ À LA MESURE le 6 août 2026 : à 375px la grille restait à DEUX
   colonnes malgré cette règle. La media query s'appliquait bien, mais les
   `grid-column: 1` et `grid-column: 2` posés plus haut survivaient : le prix
   réclamait une deuxième colonne, que la grille créait implicitement. Mesuré :
   248,7px puis 38,3px au lieu d'une seule colonne.
   Une règle de grille ne se neutralise pas en changeant seulement
   grid-template-columns : il faut aussi relâcher le placement des enfants. */
@media (max-width: 640px) {
  .psp-tarifs-liste dl { grid-template-columns: 1fr; }
  .psp-tarifs-liste dt,
  .psp-tarifs-liste dd { grid-column: 1; }
  .psp-tarifs-liste dt { padding-block-end: 2px; border-block-end: 0; }
  .psp-tarifs-liste dd { padding-block-start: 0; }
}

/* ---------------------------------------------------------- 6. Panneaux
   Composant repris de Qui suis-je (§20) sans le modifier : bloc de texte long
   sur fond blanc, barre de couleur en tête, pas de photographie. */

.psp-panneaux > .psp-panneau,
.psp-panneaux > .e-con-inner > .psp-panneau {
  flex: 1 1 340px !important;
  width: auto !important;
  min-inline-size: 0 !important;
}

.psp-panneaux > .e-con-inner,
.psp-panneaux { align-items: stretch; }

.psp-panneau {
  position: relative;
  background: #FFFFFF;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: var(--psp-ombre);
  transition: transform .3s var(--psp-ease), box-shadow .3s var(--psp-ease);
  padding: 38px 36px 34px !important;
}

.psp-panneau:hover,
.psp-panneau:focus-within {
  transform: translateY(-6px);
  box-shadow: var(--psp-ombre-fo);
}

.psp-panneau::before {
  content: "";
  position: absolute;
  inset-block-start: 0;
  inset-inline: 0;
  block-size: 4px;
  z-index: 3;
  background: var(--psp-sage-600);
}

.psp-panneau--rose::before { background: var(--psp-rose-700); }

.psp-panneau-surtitre p { margin: 0 0 6px; font-size: 14px; letter-spacing: .08em; text-transform: uppercase; }
.psp-panneau-titre { margin-block-end: 10px !important; }
.psp-panneau-texte p { margin: 0 0 10px; }
.psp-panneau-texte p:last-child { margin-block-end: 0; }

@media (max-width: 780px) {
  .psp-panneaux > .psp-panneau,
  .psp-panneaux > .e-con-inner > .psp-panneau { flex: 1 1 100% !important; }
  .psp-panneau { padding: 30px 26px 28px !important; }
}

/* ---------------------------------------------------------- 7. Listes */

.psp-liste ul {
  margin: 6px 0 8px;
  padding: 0;
  list-style: none;
}

.psp-liste li {
  position: relative;
  padding-inline-start: 30px;
  margin-block-end: 10px;
  max-inline-size: 33em;
}

/* Puce en goutte, pas un rond : rappel du fil rouge de la pluie */
.psp-liste li::before {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  inset-block-start: .62em;
  inline-size: 12px;
  block-size: 12px;
  background: var(--psp-sage-300);
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
}

.psp-liste--rose li::before { background: var(--psp-rose-300); }

/* ---------------------------------------------------------- 8. Fiche contact
   Point culminant de la page, seule section sur fond marine du corps. Elle
   remplace l'appel à l'action final : mettre un bouton « prendre rendez-vous »
   au bas de la page prendre rendez-vous n'aurait aucun sens.

   ÉTAT DU CHANTIER, 6 août 2026 : Fluent Forms n'est pas installé et le MCP ne
   sait pas installer d'extension (§7). L'emplacement est donc VISIBLE ET VIDE,
   avec un marqueur explicite conforme au §14, et le téléphone comme canal réel
   en attendant. Ce n'est pas un pis-aller : c'est le canal que Caroline désigne
   elle-même sur Doctolib pour les nouveaux patients. */

.psp-fiche-inner > .e-con-inner {
  max-inline-size: 760px;
  margin-inline: auto;
  text-align: center;
}

.psp-fiche-chapo { margin-block-end: 40px !important; }
.psp-fiche-chapo p { margin: 0; line-height: 1.75; max-inline-size: 33em; margin-inline: auto; }

.psp-formulaire {
  background: #FFFFFF;
  border-radius: 22px;
  box-shadow: 0 3px 8px rgba(0, 0, 0, .16), 0 30px 70px rgba(0, 0, 0, .28);
  padding: 40px 40px 36px !important;
  text-align: start;
}

.psp-formulaire-titre { margin-block-end: 10px !important; }

/* ============================================ FORMULAIRE FLUENT FORMS
   Habillage du formulaire « Fiche contact », posé le 6 août 2026. Il remplace
   le marqueur de chantier de la première passe.

   POURQUOI TOUT HABILLER PLUTÔT QUE LAISSER LE STYLE PAR DÉFAUT
   Fluent Forms sort en Helvetica, bleu #1a7efb, angles droits. Sur une page
   qui pose depuis trois sections un système serif, marine et sauge en pilule,
   un formulaire brut se lit comme un corps étranger collé au milieu, et c'est
   exactement l'endroit où le visiteur doit avoir confiance.

   ÉCRITURE : répétition de classe, jamais de préfixe d'identifiant de page
   (§21). Le CSS de Fluent Forms est chargé par l'extension, donc avant celui
   du document : à spécificité égale, c'est nous qui gagnons. Les !important
   ne sont posés que là où Fluent Forms écrit lui-même en !important. */

/* Le formulaire est le seul endroit de la page où la mesure de lecture n'est
   pas le critère : ce sont les CHAMPS qui décident. Un champ texte de 1100 px
   de large fait perdre la ligne de saisie et donne l'impression d'un
   formulaire administratif. 760 px est la largeur où un champ reste confortable
   et où la carte garde sa présence sur le fond marine. */
.psp-formulaire.psp-formulaire {
  max-inline-size: 760px;
  margin-inline: auto;
}

.psp-ff-hote { margin-block-end: 30px; }
.psp-ff-hote .fluentform { margin: 0; }

/* ---- groupes ---- */
.psp-ff-hote.psp-ff-hote .ff-el-group:last-of-type { margin-block-end: 0; }

/* ---- étiquettes ----
   Elles sont TOUJOURS visibles au-dessus du champ, jamais remplacées par un
   placeholder : un placeholder disparaît à la saisie et n'est pas restitué de
   façon fiable par les lecteurs d'écran (WCAG 3.3.2). Le réglage est posé
   côté formulaire (labelPlacement: top), cette règle ne fait que l'habiller. */
.psp-ff-hote.psp-ff-hote .ff-el-input--label label {
  display: block;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.45;
  color: var(--psp-navy-900);
  margin-block-end: 6px;
}

/* L'astérisque doit se voir sans être criard. Rose 700 tient 6,22 sur blanc. */
.psp-ff-hote.psp-ff-hote .ff-el-is-required { color: var(--psp-rose-700); margin-inline-start: 3px; }

/* ---- messages d'aide ----
   Affichés SOUS le libellé et non au survol : la mention de minimisation des
   données (§6ter) doit être lue, pas découverte. Une infobulle serait
   invisible au clavier comme au doigt. */
.psp-ff-hote.psp-ff-hote .ff-el-help-message {
  font-size: 14px;
  line-height: 1.6;
  color: var(--psp-muted);
  margin: 0 0 8px;
  max-inline-size: 40em;
}

/* ---- champs de saisie ----
   16 px minimum : en dessous, iOS zoome à la mise au point et déplace la page
   sous le doigt. C'est le défaut de formulaire mobile le plus courant. */
.psp-ff-hote.psp-ff-hote .ff-el-form-control {
  inline-size: 100%;
  font-family: inherit;
  font-size: 16px;
  line-height: 1.5;
  color: var(--psp-navy-900);
  background: #FFFFFF;
  border: 1px solid #D6D0C6;
  border-radius: 10px;
  padding: 12px 14px;
  box-shadow: none;
  transition: border-color .18s var(--psp-ease), box-shadow .18s var(--psp-ease);
}

.psp-ff-hote.psp-ff-hote textarea.ff-el-form-control { resize: vertical; }

.psp-ff-hote.psp-ff-hote .ff-el-form-control::placeholder { color: #9A958C; opacity: 1; }

.psp-ff-hote.psp-ff-hote .ff-el-form-control:hover { border-color: var(--psp-navy-600); }

/* Le survol seul ne suffit pas : le §5 exige un anneau de mise au point
   visible (WCAG 2.4.7), qu'Elementor comme Fluent Forms suppriment. */
.psp-ff-hote.psp-ff-hote .ff-el-form-control:focus,
.psp-ff-hote.psp-ff-hote .ff-el-form-control:focus-visible {
  border-color: var(--psp-navy-700);
  outline: 3px solid var(--psp-navy-700);
  outline-offset: 2px;
  box-shadow: none;
}

/* Le menu déroulant natif garde son chevron système sur certains navigateurs
   et le perd sur d'autres. On le dessine, une bonne fois. */
.psp-ff-hote.psp-ff-hote select.ff-el-form-control {
  appearance: none;
  -webkit-appearance: none;
  padding-inline-end: 40px;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2316324F' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  background-size: 12px 8px;
}

/* ---- cases et boutons radio ----
   Cible tactile de 44 px minimum, exigée au §8 et reprise ici : sur mobile,
   six jours de disponibilité à cocher se ratent un sur deux si la zone
   cliquable se limite au carré de 16 px. Le libellé entier est cliquable. */

.psp-ff-hote.psp-ff-hote .ff-el-form-check-label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-block-size: 44px;
  padding-block: 10px;
  font-size: 16px;
  line-height: 1.5;
  color: var(--psp-navy-900);
  cursor: pointer;
}

.psp-ff-hote.psp-ff-hote .ff-el-form-check-label input[type="radio"],
.psp-ff-hote.psp-ff-hote .ff-el-form-check-label input[type="checkbox"] {
  flex: 0 0 auto;
  inline-size: 20px;
  block-size: 20px;
  margin: 2px 0 0;
  accent-color: var(--psp-navy-800);
  cursor: pointer;
}

.psp-ff-hote.psp-ff-hote .ff-el-form-check-label input:focus-visible {
  outline: 3px solid var(--psp-navy-700);
  outline-offset: 2px;
}

/* Options en ligne : elles reviennent à la ligne plutôt que de déborder. */
.psp-ff-hote.psp-ff-hote .ff_list_inline .ff-el-form-check {
  display: inline-block;
  margin-inline-end: 26px;
}

/* La case de consentement porte une phrase longue, pas une étiquette courte :
   elle ne peut pas se lire comme les autres options. Elle est encadrée pour
   dire qu'elle engage. */
.psp-ff-hote.psp-ff-hote .ff-el-group:last-of-type .ff-el-form-check-label { align-items: flex-start; }

/* ---- séparateurs de section ----
   Ils segmentent un formulaire de vingt champs en trois temps lisibles. Le
   filet reprend celui des surtitres du reste de la page. */
.psp-ff-hote.psp-ff-hote .ff_section_break { margin-block: 34px 24px; }
.psp-ff-hote.psp-ff-hote .ff_section_break:first-child { margin-block-start: 0; }

.psp-ff-hote.psp-ff-hote .ff-el-section-title {
  font-family: var(--psp-titre, "Fraunces"), sans-serif;
  font-size: 22px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--psp-navy-900);
  margin: 0 0 6px;
  padding-block-start: 22px;
  border-block-start: 1px solid var(--psp-sage-300);
}

.psp-ff-hote.psp-ff-hote .ff_section_break > p,
.psp-ff-hote.psp-ff-hote .ff-section_break-desc {
  margin: 0;
  font-size: 15px;
  line-height: 1.6;
  color: var(--psp-muted);
  max-inline-size: 40em;
}

/* ---- champ composite Prénom et Nom ---- */
.psp-ff-hote.psp-ff-hote .ff-name-field-wrapper { display: flex; gap: 16px; flex-wrap: wrap; }
.psp-ff-hote.psp-ff-hote .ff-name-field-wrapper > .ff-t-cell { flex: 1 1 200px; min-inline-size: 0; }



/* Le widget qui porte le correctif d'accessibilite ne rend rien. Sans cette
   regle il laisserait la gouttiere de son container. */
.psp-ff-aria { display: none !important; }

/* ---- Prénom et Nom sur une ligne, sans conteneur ----
   Fluent Forms 6 IGNORE la logique conditionnelle posée sur un champ composite
   « input_name » : vérifié au navigateur le 6 août 2026, les deux blocs
   Prénom/Nom restaient visibles quel que soit le profil choisi, alors que la
   condition figurait bien dans l'objet « conditionals » envoyé au navigateur.
   Les composites sont donc remplacés par quatre champs simples, chacun portant
   sa propre condition.

   La mise en ligne se fait par « container_class » et non par un conteneur :
   deux blocs en ligne se placent côte à côte, et quand la condition les masque
   ils passent en display:none et disparaissent proprement, sans laisser de
   colonne vide. Une grille CSS aurait gardé la gouttière. */
.psp-ff-hote.psp-ff-hote .psp-ff-demi {
  display: inline-block;
  vertical-align: top;
  inline-size: calc(50% - 9px);
}
.psp-ff-hote.psp-ff-hote .psp-ff-demi--a { margin-inline-end: 14px; }
@media (max-width: 560px) {
  .psp-ff-hote.psp-ff-hote .psp-ff-demi { inline-size: 100%; }
  .psp-ff-hote.psp-ff-hote .psp-ff-demi--a { margin-inline-end: 0; }
}


/* ---- GARDE-FOU, le piège le plus dangereux de Fluent Forms ----
   Fluent Forms masque un champ conditionné de DEUX façons différentes :
   un style="display:none" en ligne quand son script bascule un profil, et une
   simple classe .ff_excluded au rendu serveur. Une règle de mise en page qui
   fixe un display sur un groupe bat la seconde, et RÉAFFICHE des champs qui
   devaient rester masqués. Constaté : au repos, sans aucun profil choisi, huit
   champs du profil particulier s'affichaient. Cette règle passe avant toute
   autre et rend le masquage non négociable. */
.psp-ff-hote.psp-ff-hote .ff_excluded { display: none !important; }

/* ---- Choix du profil en deux cartes ----
   Deux boutons radio empilés, c'est le degré zéro pour la question qui
   commande tout le formulaire. En cartes, le choix se voit, se clique en grand
   et l'état sélectionné se lit d'un coup d'œil. Le bouton radio reste présent
   et focusable : c'est du CSS, pas un faux contrôle. */
.psp-ff-hote.psp-ff-hote .psp-ff-choix .ff-el-input--content {
  display: flex; gap: 14px; flex-wrap: wrap;
}
.psp-ff-hote.psp-ff-hote .psp-ff-choix .ff-el-form-check { flex: 1 1 250px; margin: 0; }
.psp-ff-hote.psp-ff-hote .psp-ff-choix .ff-el-form-check-label {
  border: 1.5px solid #D6D0C6;
  border-radius: 14px;
  padding: 15px 17px;
  min-block-size: 0;
  block-size: 100%;
  gap: 12px;
  align-items: center;
  font-weight: 600;
  background: #FFFFFF;
  transition: border-color .18s var(--psp-ease), background-color .18s var(--psp-ease), box-shadow .18s var(--psp-ease);
}
.psp-ff-hote.psp-ff-hote .psp-ff-choix .ff-el-form-check-label:hover {
  border-color: var(--psp-navy-600); background: #FCFBF8;
}
.psp-ff-hote.psp-ff-hote .psp-ff-choix .ff-el-form-check-label:has(input:checked) {
  border-color: var(--psp-navy-800);
  background: var(--psp-sage-50);
  box-shadow: 0 2px 10px rgba(15, 37, 64, .10);
}
/* L'anneau se pose sur la carte et non sur le bouton radio, sinon il est
   invisible au milieu d'un bloc de 56 px. */
.psp-ff-hote.psp-ff-hote .psp-ff-choix .ff-el-form-check-label:focus-within {
  outline: 3px solid var(--psp-navy-700); outline-offset: 2px;
}
.psp-ff-hote.psp-ff-hote .psp-ff-choix input[type="radio"] { margin: 0; }

/* ---- Resserrement vertical ----
   Un formulaire de quinze champs en une colonne fait 2 350 px de haut, ce qui
   décourage avant même la première saisie. Colonnes par paires, options en
   ligne, gouttières réduites : 1 795 px, soit 24 % de moins, sans rien retirer
   ni rien tasser. */
.psp-ff-hote.psp-ff-hote .ff-el-group { margin-block-end: 14px; }
.psp-ff-hote.psp-ff-hote .ff-el-input--label label { margin-block-end: 4px; }
.psp-ff-hote.psp-ff-hote .ff-el-help-message { margin: 4px 0 0; }
.psp-ff-hote.psp-ff-hote .ff_section_break { margin-block: 24px 16px; }
.psp-ff-hote.psp-ff-hote .ff-el-section-title { padding-block-start: 18px; }
.psp-ff-hote.psp-ff-hote textarea.ff-el-form-control { min-block-size: 96px; }
.psp-ff-hote.psp-ff-hote .ff-el-form-check { margin: 0; }
.psp-ff-hote.psp-ff-hote .ff_list_inline .ff-el-form-check { margin-inline-end: 20px; }

/* ---- erreurs ----
   Rose 700 sur blanc tient 6,22, donc AA. Et la couleur ne porte JAMAIS
   l'information seule (WCAG 1.4.1) : le message est un texte. */
.psp-ff-hote.psp-ff-hote .error,
.psp-ff-hote.psp-ff-hote .text-danger {
  display: block;
  font-size: 14px;
  line-height: 1.5;
  color: var(--psp-rose-700);
  margin-block-start: 6px;
}

.psp-ff-hote.psp-ff-hote .ff-el-form-control.ff-el-is-error,
.psp-ff-hote.psp-ff-hote .has-error .ff-el-form-control { border-color: var(--psp-rose-700); }

/* ---- bouton d'envoi ----
   Même pilule et même flèche glissante que les boutons du reste du site
   (§17), sinon l'action la plus importante de la page serait la seule à ne pas
   parler la langue du site. */
.psp-ff-hote.psp-ff-hote .ff_submit_btn_wrapper { margin-block-start: 30px; text-align: center; }

.psp-ff-hote.psp-ff-hote .ff-btn-submit.ff-btn-submit {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: inherit;
  font-size: 16px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .01em;
  color: var(--psp-cream) !important;
  background: var(--psp-navy-800) !important;
  border: 1px solid var(--psp-navy-800);
  border-radius: 999px;
  padding: 17px 34px;
  cursor: pointer;
  transition: background-color .2s var(--psp-ease), box-shadow .2s var(--psp-ease);
}

.psp-ff-hote.psp-ff-hote .ff-btn-submit.ff-btn-submit::after {
  content: "";
  inline-size: 18px;
  block-size: 10px;
  background: currentColor;
  clip-path: polygon(0 40%, 66% 40%, 66% 0, 100% 50%, 66% 100%, 66% 60%, 0 60%);
  transition: transform .2s var(--psp-ease);
}

.psp-ff-hote.psp-ff-hote .ff-btn-submit.ff-btn-submit:hover {
  background: var(--psp-navy-700) !important;
  box-shadow: 0 10px 26px rgba(15, 37, 64, .28);
}

.psp-ff-hote.psp-ff-hote .ff-btn-submit.ff-btn-submit:hover::after { transform: translateX(5px); }

.psp-ff-hote.psp-ff-hote .ff-btn-submit.ff-btn-submit:focus-visible {
  outline: 3px solid var(--psp-navy-700);
  outline-offset: 3px;
}

/* ============================================ ACCUSÉ DE RÉCEPTION À L'ÉCRAN
   §2 et §6ter : aucun e-mail de confirmation n'est envoyé au visiteur. Cet
   écran est son SEUL accusé de réception. Il est donc traité comme un contenu
   à part entière, pas comme une ligne verte de succès. */
.psp-ff-hote .ff-message-success,
.psp-formulaire .ff-message-success {
  background: var(--psp-sage-50);
  border: 1px solid var(--psp-sage-300);
  border-radius: 16px;
  padding: 30px 28px;
  color: var(--psp-navy-900);
}

.psp-ff-recu p { margin: 0 0 14px; font-size: 16px; line-height: 1.7; max-inline-size: 36em; }
.psp-ff-recu p:last-child { margin-block-end: 0; }
.psp-ff-recu strong { color: var(--psp-navy-900); font-weight: 600; }

.psp-ff-recu-titre.psp-ff-recu-titre {
  font-family: var(--psp-titre, "Fraunces"), sans-serif;
  font-size: 25px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--psp-navy-900);
  margin-block-end: 16px;
}

/* Le renvoi vers les secours n'est pas une note de bas de page. Le délai de
   rappel se compte en jours : quelqu'un peut aller moins bien entre-temps. */
.psp-ff-recu-urgence.psp-ff-recu-urgence {
  margin-block-start: 20px;
  padding: 16px 18px;
  border-radius: 12px;
  background: #FFFFFF;
  border-inline-start: 4px solid var(--psp-rose-700);
  font-size: 15px;
  line-height: 1.65;
  color: var(--psp-navy-900);
}

/* Bloc téléphone : second recours assumé, sous le formulaire. */ tant que le formulaire n'est pas là. */
.psp-tel {
  background: var(--psp-sage-50);
  border-radius: 16px;
  padding: 26px 28px !important;
  text-align: center;
}

.psp-tel-label p { margin: 0 0 6px; font-size: 15px; }
.psp-tel-note p { margin: 12px 0 0; font-size: 14px; line-height: 1.6; }

/* Le numéro est un lien tel: : sur mobile un appui appelle, sur poste il se
   copie. Il est écrit en chiffres groupés, jamais en image (§11). */
.psp-tel-num.psp-tel-num.psp-tel-num p { margin: 0; }
.psp-tel-num.psp-tel-num.psp-tel-num a {
  display: inline-block;
  font-family: var(--psp-titre, "Fraunces"), sans-serif;
  font-size: clamp(26px, 3vw, 34px);
  font-weight: 600;
  letter-spacing: .01em;
  font-variant-numeric: tabular-nums;
  color: var(--psp-navy-900);
  text-decoration: none;
  border-block-end: 2px solid var(--psp-sage-300);
  padding-block-end: 2px;
  transition: border-color .2s var(--psp-ease), color .2s var(--psp-ease);
}

.psp-tel-num.psp-tel-num.psp-tel-num a:hover,
.psp-tel-num.psp-tel-num.psp-tel-num a:focus-visible {
  color: var(--psp-navy-700);
  border-block-end-color: var(--psp-navy-700);
}

/* Mention de minimisation des données. Elle n'est pas décorative : le
   formulaire de cette page recueillera des informations qui peuvent constituer
   des données de santé, et le verbatim de la politique de confidentialité
   demande explicitement d'inviter à ne transmettre que le nécessaire. La
   placer ICI, au moment de la saisie, est la seule position qui la rende
   utile. Aucune adresse e-mail nulle part, conformément au §6ter. */
.psp-rgpd { margin-block-start: 26px !important; }
.psp-rgpd p { margin: 0; font-size: 14px; line-height: 1.7; max-inline-size: 33em; margin-inline: auto; }

/* DÉFAUT TROUVÉ À LA MESURE le 6 août 2026, le plus grave de la recette.
   Écrit d'abord en `.psp-rgpd a`, ce lien sortait en navy-700 sur le fond
   marine : ratio 1,29, donc INVISIBLE, et sur un lien à valeur réglementaire.
   Son soulignement était perdu aussi. Cause : le CSS du kit et celui du
   document colorent les liens plus spécifiquement (§16 piège 3), et une règle
   à 0-1-1 ne pouvait pas gagner.
   Diagnostic plus large que le symptôme : AUCUNE de mes règles sur les <a>
   ne s'appliquait, sur toute la page. Le soulignement compte autant que la
   couleur, parce qu'un lien reconnaissable à sa seule couleur échoue au
   critère WCAG 1.4.1. */
.psp-rgpd.psp-rgpd.psp-rgpd a {
  color: var(--psp-sage-300) !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
}
.psp-rgpd.psp-rgpd.psp-rgpd a:hover,
.psp-rgpd.psp-rgpd.psp-rgpd a:focus-visible { color: #FFFFFF !important; }

@media (max-width: 640px) {
  .psp-formulaire { padding: 28px 22px 26px !important; }
  .psp-tel { padding: 22px 18px !important; }
}

/* ---------------------------------------------------------- 9. Où me trouver
   Le §19 réservait le média 72 (pancarte du centre) à un bloc accès et adresse.
   C'est ici, comme le prévoit le verbatim. La photo fait 240 x 320 px : elle
   est nette jusqu'à 240px de large et pas au-delà, d'où la vignette. */

.psp-acces-grille > .psp-acces-visuel,
.psp-acces-grille > .e-con-inner > .psp-acces-visuel {
  flex: 0 1 400px !important;
  width: auto !important;
  min-inline-size: 0 !important;
}

.psp-acces-grille > .psp-acces-infos,
.psp-acces-grille > .e-con-inner > .psp-acces-infos {
  flex: 1 1 380px !important;
  width: auto !important;
  min-inline-size: 0 !important;
}

.psp-acces-grille > .e-con-inner,
.psp-acces-grille { align-items: flex-start; }

/* PLAN. Aucun appel réseau, aucun cookie, donc pas de bandeau de consentement
   à rouvrir (§2). Un widget Doctolib ou une iframe Google Maps auraient imposé
   l'inverse.
   Ce plan ne montre QUE ce qui est vérifiable : l'avenue Charles de Gaulle,
   son orientation vers Lyon, et le numéro. Aucune rue adjacente n'est dessinée,
   parce que je n'en ai pas la donnée et qu'un plan approximatif est pire
   qu'aucun plan. Le trajet réel se fait par le bouton d'itinéraire. */
/* COMPOSITION REPRISE le 6 août 2026 après retour de Toufik : « les images avec
   la carte et la photo du centre, cette partie est mal disposée, le rendu
   visuel est bâclé ». Il avait raison, et sur deux points distincts.
   1. Le plan faisait 400px de large et la photo 240 : deux blocs empilés de
      largeurs différentes, avec un décrochage à droite et un vide à côté de la
      photo. La photo ne peut pas être élargie, elle ne fait que 240px natifs
      (contrainte de résolution du §19).
   2. La colonne visuelle tombait à 338px pour une colonne d'informations de
      879px, donc 476px de vide en dessous.
   Réponse au premier point : le COLLAGE du §17, composant déjà validé sur
   l'Accueil. Le plan porte la composition, la photo vient en vignette décalée
   sur le coin bas droit, là où le plan ne porte aucune information. Le
   décrochage devient un chevauchement voulu.
   Réponse au second : la colonne visuelle devient collante et accompagne la
   lecture des informations. Le vide n'est plus du vide, c'est de l'espace
   traversé. */
.psp-acces-visuel.psp-acces-visuel.psp-acces-visuel {
  position: sticky;
  top: 108px;
  padding-block-end: 118px;
}

.psp-plan.psp-plan.psp-plan { margin: 0 !important; }
.psp-plan svg {
  display: block;
  inline-size: 100%;
  block-size: auto;
  border-radius: 18px;
  box-shadow: var(--psp-ombre);
}

.psp-photo-lieu.psp-photo-lieu.psp-photo-lieu {
  position: absolute;
  inset-block-end: 42px;
  inset-inline-end: 0;
  margin: 0 !important;
  z-index: 2;
}

.psp-photo-lieu.psp-photo-lieu.psp-photo-lieu img {
  inline-size: 176px !important;
  max-inline-size: 176px !important;
  block-size: auto;
  border-radius: 16px;
  border: 7px solid var(--psp-cream);
  box-shadow: 0 4px 10px rgba(15, 37, 64, .14), 0 22px 48px rgba(15, 37, 64, .20);
  display: block;
}

.psp-photo-legende.psp-photo-legende.psp-photo-legende {
  position: absolute;
  inset-block-end: 0;
  inset-inline-start: 0;
  inline-size: 58%;
  margin: 0 !important;
}

.psp-photo-legende p { margin: 0; font-size: 13px; font-style: italic; }

.psp-acces-intro p { margin: 0 0 6px; max-inline-size: 33em; }

.psp-info-bloc {
  background: #FFFFFF;
  border-radius: 16px;
  padding: 22px 24px !important;
  box-shadow: 0 1px 3px rgba(15, 37, 64, .05), 0 10px 26px rgba(15, 37, 64, .08);
}

.psp-info-titre { margin-block-end: 8px !important; }
.psp-info-titre.psp-info-titre.psp-info-titre .elementor-heading-title { font-size: 18px; line-height: 1.3; }

.psp-adresse p { margin: 0; line-height: 1.7; }
.psp-adresse strong { color: var(--psp-navy-900); }

/* L'étage sans ascenseur n'est pas un détail à cacher en bas de page : c'est
   l'information qui évite un déplacement inutile à une personne à mobilité
   réduite. Doctolib la publie, le site la publie, et au même niveau que
   l'adresse. */
.psp-acces-mobilite {
  border-inline-start: 4px solid var(--psp-rose-700);
  background: var(--psp-rose-50);
  border-radius: 0 14px 14px 0;
  padding: 18px 22px !important;
}

.psp-acces-mobilite p { margin: 0; font-size: 16px; line-height: 1.6; }
.psp-acces-mobilite strong { color: var(--psp-navy-900); }

.psp-horaires dl {
  margin: 0;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 8px 18px;
}

.psp-horaires dt {
  margin: 0;
  color: var(--psp-sage-600);
  font-size: 15px;
}

.psp-horaires dd {
  margin: 0;
  font-variant-numeric: tabular-nums;
  color: var(--psp-navy-900);
  font-size: 15px;
}

/* Marqueur d'attente : une donnée manque, on l'affiche au lieu de l'inventer.
   À retirer dès que la cliente a répondu. Voir CLAUDE.md §12. */
.psp-attente-texte p {
  margin: 14px 0 0;
  font-size: 13px;
  font-style: italic;
  color: var(--psp-muted);
  /* 6 aout 2026 : borne de lecture ABSENTE, trouvee par recette-page.js apres
     le correctif de typographie. Le marqueur sortait a 124 caracteres par
     ligne a 1440px. Le §24 avait borne l'autre marqueur, pas celui-ci.
     33em vaut environ 72 caracteres A TOUTE TAILLE DE CORPS : c'est tout
     l'interet de l'unite, ce marqueur est en 13px et pas en 18px. */
  max-inline-size: 33em;
}

/* Quand les deux colonnes s'empilent, le collant n'a plus d'objet : le visuel
   est au-dessus du texte, pas à côté. Le laisser produirait un bloc qui se fige
   au milieu du défilement sans raison. */
@media (max-width: 880px) {
  .psp-acces-grille > .psp-acces-visuel,
  .psp-acces-grille > .e-con-inner > .psp-acces-visuel {
    flex: 1 1 100% !important;
    max-inline-size: 520px;
    margin-inline: auto;
  }
  .psp-acces-visuel.psp-acces-visuel.psp-acces-visuel { position: relative; top: auto; }
}

/* Sous 640px la vignette occuperait 61% de la largeur de la colonne et
   mangerait le plan. Elle redescend à 140px, ce qui reste net (la photo fait
   240px natifs) et laisse le plan lisible. */
@media (max-width: 640px) {
  .psp-acces-visuel.psp-acces-visuel.psp-acces-visuel { padding-block-end: 104px; }
  .psp-photo-lieu.psp-photo-lieu.psp-photo-lieu img {
    inline-size: 140px !important;
    max-inline-size: 140px !important;
    border-width: 6px;
  }
  .psp-photo-legende.psp-photo-legende.psp-photo-legende { inline-size: 52%; }
}

/* ---------------------------------------------------------- 10. Boutons
   Elementor 7 émet .elementor-widget-button .elementor-button
   { background-color: var(--e-global-color-accent) } dans le CSS de chaque
   document, APRÈS le CSS personnalisé : les boutons sortent en bordeaux si on
   ne repasse pas devant (§18). La répétition de classe donne 0-3-0 contre son
   0-2-0, sans préfixe d'identifiant de page. */

.psp-bouton.psp-bouton.psp-bouton .elementor-button {
  border-radius: 999px;
  font-weight: 600;
  letter-spacing: .01em;
}

.psp-bouton--clair.psp-bouton--clair.psp-bouton--clair .elementor-button,
.psp-bouton--clair.psp-bouton--clair.psp-bouton--clair .elementor-button svg {
  fill: var(--psp-navy-900);
}
.psp-bouton--clair.psp-bouton--clair.psp-bouton--clair .elementor-button {
  background-color: var(--psp-cream) !important;
  color: var(--psp-navy-900);
  border: 2px solid var(--psp-cream);
  white-space: nowrap;
  padding: 15px 30px;
}

.psp-bouton--clair.psp-bouton--clair.psp-bouton--clair .elementor-button:hover,
.psp-bouton--clair.psp-bouton--clair.psp-bouton--clair .elementor-button:focus-visible {
  background-color: #FFFFFF;
  border-color: #FFFFFF;
  color: var(--psp-navy-900);
  box-shadow: 0 10px 28px rgba(0, 0, 0, .22);
}

/* Chemin principal : marine plein. C'est le bouton qui porte le trafic. */
.psp-bouton--secondaire.psp-bouton--secondaire.psp-bouton--secondaire .elementor-button {
  background-color: var(--psp-navy-800) !important;
  color: #FFFFFF;
  border: 2px solid var(--psp-navy-800);
  padding: 15px 30px;
}

.psp-bouton--secondaire.psp-bouton--secondaire.psp-bouton--secondaire .elementor-button:hover,
.psp-bouton--secondaire.psp-bouton--secondaire.psp-bouton--secondaire .elementor-button:focus-visible {
  background-color: var(--psp-navy-700);
  border-color: var(--psp-navy-700);
  color: #FFFFFF;
}

.psp-bouton--secondaire.psp-bouton--secondaire.psp-bouton--secondaire { align-self: flex-start; }

/* Chemin professionnel : sauge plein. Poids visuel équivalent au marine, teinte
   différente. Le sauge 600 porte du blanc à 5,88 (§3), c'est le seul vert de la
   palette qui puisse recevoir du texte. */
.psp-bouton--sauge.psp-bouton--sauge.psp-bouton--sauge .elementor-button {
  background-color: var(--psp-sage-600) !important;
  color: #FFFFFF;
  border: 2px solid var(--psp-sage-600);
  padding: 15px 30px;
}

.psp-bouton--sauge.psp-bouton--sauge.psp-bouton--sauge .elementor-button:hover,
.psp-bouton--sauge.psp-bouton--sauge.psp-bouton--sauge .elementor-button:focus-visible {
  background-color: #435A49;
  border-color: #435A49;
  color: #FFFFFF;
}

.psp-bouton--sauge.psp-bouton--sauge.psp-bouton--sauge { align-self: flex-start; }

.psp-bouton--contour.psp-bouton--contour.psp-bouton--contour .elementor-button {
  background-color: transparent !important;
  color: var(--psp-navy-800);
  border: 2px solid var(--psp-navy-600);
  padding: 13px 26px;
}

.psp-bouton--contour.psp-bouton--contour.psp-bouton--contour .elementor-button:hover,
.psp-bouton--contour.psp-bouton--contour.psp-bouton--contour .elementor-button:focus-visible {
  background-color: var(--psp-navy-800) !important;
  border-color: var(--psp-navy-800);
  color: #FFFFFF;
}

.psp-bouton--contour.psp-bouton--contour.psp-bouton--contour { align-self: flex-start; }

/* Lien fléché : la flèche glisse, le libellé se souligne */
.psp-bouton--lien.psp-bouton--lien.psp-bouton--lien .elementor-button {
  background-color: transparent !important;
  color: var(--psp-navy-700);
  padding: 0;
  border-radius: 0;
  justify-content: flex-start;
  text-align: start;
}

.psp-bouton--lien.psp-bouton--lien.psp-bouton--lien .elementor-button-text {
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 0 1px;
  padding-block-end: 2px;
  transition: background-size .25s var(--psp-ease);
}

.psp-bouton--lien.psp-bouton--lien.psp-bouton--lien .elementor-button:hover,
.psp-bouton--lien.psp-bouton--lien.psp-bouton--lien .elementor-button:focus-visible {
  background-color: transparent;
  color: var(--psp-navy-900);
}

.psp-bouton--lien.psp-bouton--lien.psp-bouton--lien .elementor-button:hover .elementor-button-text,
.psp-bouton--lien.psp-bouton--lien.psp-bouton--lien .elementor-button:focus-visible .elementor-button-text {
  background-size: 100% 1px;
}

.psp-bouton--centre.psp-bouton--centre.psp-bouton--centre .elementor-button { margin-inline: auto; }
.psp-bouton--centre.psp-bouton--centre.psp-bouton--centre { text-align: center; }

/* Bouton de téléphone : il porte un numéro, pas un libellé d'action. La flèche
   d'Elementor n'a pas de sens dessus, elle est retirée dans le JSON. */
.psp-bouton--tel.psp-bouton--tel.psp-bouton--tel .elementor-button {
  padding: 15px 34px;
  font-variant-numeric: tabular-nums;
}

/* ---------------------------------------------------------- 11. Mobile */

@media (max-width: 767px) {
  .psp-hero-inner > .e-con-inner { max-inline-size: 100%; }
  .psp-hero::before {
    background:
      linear-gradient(180deg,
        rgba(15, 37, 64, .90) 0%,
        rgba(15, 37, 64, .93) 55%,
        rgba(15, 37, 64, .96) 100%);
  }
  .psp-bouton--secondaire.psp-bouton--secondaire.psp-bouton--secondaire,
  .psp-bouton--secondaire.psp-bouton--secondaire.psp-bouton--secondaire .elementor-button,
  .psp-bouton--sauge.psp-bouton--sauge.psp-bouton--sauge,
  .psp-bouton--sauge.psp-bouton--sauge.psp-bouton--sauge .elementor-button,
  .psp-bouton--contour.psp-bouton--contour.psp-bouton--contour,
  .psp-bouton--contour.psp-bouton--contour.psp-bouton--contour .elementor-button { width: 100%; }
  .psp-bouton--secondaire.psp-bouton--secondaire.psp-bouton--secondaire .elementor-button,
  .psp-bouton--sauge.psp-bouton--sauge.psp-bouton--sauge .elementor-button,
  .psp-bouton--contour.psp-bouton--contour.psp-bouton--contour .elementor-button { justify-content: center; }
}

/* ---------------------------------------------------------- 12. Mouvement réduit
   Le kit coupe déjà animations et transitions. On neutralise en plus ce qui est
   porté par transform et par les pseudo-éléments de forme. */

@media (prefers-reduced-motion: reduce) {
  .psp-forme::before,
  .psp-forme::after,
  .psp-hero::after { animation: none; }
  .psp-panneau:hover { transform: none; }
}

/* ---------------------------------------------------------- 13. Emplacements photo
   §18 piège 5 : Elementor injecte une feuille en ligne qui pose
   background-image: none !important à 0-5-0 sur les containers dont
   l'observateur de chargement différé ne se déclenche pas. Les URL vivent donc
   ICI, avec une spécificité supérieure (0-6-0 par répétition de classe).

   DÉFAUT DE CONCEPTION CORRIGÉ AU §20 : ce bloc était écrit à la main et ne
   citait pas les mêmes fichiers que le dictionnaire PHOTOS du générateur. Le
   CSS gagnant, PHOTOS était du code mort qui mentait. Il est désormais GÉNÉRÉ
   depuis PHOTOS, et une assertion refuse toute URL écrite à la main ici. */
.e-con.e-parent.psp-hero.psp-hero.psp-hero.psp-hero {
  background-image: url("https://images.unsplash.com/photo-1502672260266-1c1ef2d93688?auto=format&fit=crop&q=80&w=2000") !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}


/* ---- ÉCART TEXTE VERS BOUTON, 6 août 2026 ----
   Trouvé par le contrôle ajouté ce jour à `recette-page.js`, après qu'un
   bouton de milieu de page soit sorti à 3 px de son texte sur Le coin des
   Pros. Ici : 20 px sous chacun des deux chemins d'aiguillage et 18 px sous
   le marqueur d'accès, sur une page publiée depuis la veille.
   Le §21 pose la norme à 28-60 pour l'écart « dernier texte vers boutons »,
   et elle vaut pour tout bloc qui se termine par une action, pas seulement
   pour le hero. C'était le seul des cinq écarts du §21 que le script ne
   mesurait qu'au hero, donc le seul qui pouvait dériver en silence. */
.psp-chemin .psp-bouton.psp-bouton { margin-block-start: 16px !important; }
.psp-acces-infos .psp-bouton--contour.psp-bouton--contour { margin-block-start: 18px !important; }

/* ======================================================================
   TYPOGRAPHIE DES TITRES, correction du 6 aout 2026 (§26.4bis).
   Mesure sur l'URL publique avant correction : tous les titres de cartes,
   d'etapes, de panneaux et de chemins de cette page rendaient a 33px, soit
   la typographie globale Sous-titres, quelle que soit la taille ecrite.
   Elementor emet ses controles de widget dans le CSS du document APRES le
   CSS personnalise : `.elementor-element-XXXX .elementor-heading-title`
   vaut 0-2-0 exactement comme `.psp-x-titre .elementor-heading-title`, et a
   specificite egale c'est la derniere ecrite qui gagne. Parade : repetition
   de classe, 0-4-0, sur TOUTE regle qui pose une propriete de police sur un
   `.elementor-heading-title`. Regle 2 de PSP-SYSTEME-FORMES.md.
   `overflow-wrap` est la ceinture : meme a la bonne taille, un mot long
   dans une colonne etroite doit se couper, jamais deborder de sa carte.
   ====================================================================== */
.psp-panneau-titre.psp-panneau-titre.psp-panneau-titre .elementor-heading-title { font-size: 24px; line-height: 1.28; overflow-wrap: break-word; }
.psp-formulaire-titre.psp-formulaire-titre.psp-formulaire-titre .elementor-heading-title { font-size: 24px; line-height: 1.28; overflow-wrap: break-word; }
.psp-hero-titre.psp-hero-titre.psp-hero-titre .elementor-heading-title,
.psp-section-titre.psp-section-titre.psp-section-titre .elementor-heading-title,
.psp-chemin-titre.psp-chemin-titre.psp-chemin-titre .elementor-heading-title,
.psp-etape-titre.psp-etape-titre.psp-etape-titre .elementor-heading-title,
.psp-note-titre.psp-note-titre.psp-note-titre .elementor-heading-title,
.psp-info-titre.psp-info-titre.psp-info-titre .elementor-heading-title { overflow-wrap: break-word; }


/* ==== Formes v2 (8 aout 2026) : separations courbes + troisieme halo, socle PSP-SYSTEME-FORMES ==== */
.psp-courbe { border-start-start-radius: 50% 68px; border-start-end-radius: 50% 68px; margin-block-start: -68px !important; padding-block-start: 180px !important; position: relative; z-index: 2; }
@media (max-width: 767px) { .psp-courbe { border-start-start-radius: 50% 40px; border-start-end-radius: 50% 40px; margin-block-start: -40px !important; padding-block-start: 120px !important; } }
.psp-halo { position: relative; }
.psp-halo::before { content: ""; position: absolute; z-index: -1; pointer-events: none; inset-block-start: 18%; inset-inline-start: 22%; inline-size: 56vw; block-size: 56vw; max-inline-size: 760px; max-block-size: 760px; transform: translate(-50%, -20%); background: radial-gradient(closest-side, rgba(168, 191, 168, .30), transparent 72%); animation: psp-morph 52s ease-in-out infinite; }
/* Decalages propres a Prendre rendez-vous, differents des pages voisines */
.psp-etapes.psp-etapes::before { inset-block-start: 8%; inset-inline-start: 70%; }
.psp-tarifs-inner.psp-tarifs-inner::before { inset-block-start: 30%; inset-inline-start: 12%; }
@media (prefers-reduced-motion: reduce) { .psp-halo::before { animation: none; } }/* End custom CSS */