/* PEACH CONNECT v0.5.15 / final layout + CTA integrity layer.
 * Does not alter stored copy, media, page options, HTML or destinations.
 * Loaded after all legacy theme styles; only targets sections and CTA controls.
 */
:root{--pcn-cta-internal:#396E77;--pcn-cta-line:#06C755;--pcn-cta-contact:#E8A06A}
/* Prevent the 100vw/negative-margin sections from creating a page-wide sideways
 * swipe. Inner comparison tables retain their OWN horizontal scroll. */
html,body{max-width:100%;overflow-x:clip;overscroll-behavior-x:none}
body{min-width:0}
body main,body #main,body .pcnx-root{min-width:0;max-width:100%}
body main :is(.container,.container-wide,.pcnx-shell,.sv-container,.pcn-shell,.pcpr-shell,.pcw-shell,.pcsp-shell){min-width:0;max-width:100%}
body main :is(.problem-grid,.service-grid,.solutions-grid,.reasons-grid,.pcnx-items,.pcnx-feature,.pcnx-plans,.sv-service-layout)>*{min-width:0}
/* All non-FV SECTION headings / intros are centered on every breakpoint.
 * Do not center H3 card titles, editorial content, or the FV heading. */
body main :is(.section-heading,.pcnx-section-heading,.sv-section-heading,.pcpr-section-heading,.pcw-section-heading,.pcsp-section-heading,.pcn-section-heading,.peach-section-heading){text-align:center!important;max-width:100%;margin-inline:auto!important}
body main :is(.section-heading,.pcnx-section-heading,.sv-section-heading,.pcpr-section-heading,.pcw-section-heading,.pcsp-section-heading,.pcn-section-heading,.peach-section-heading) :is(h2,.eyebrow,.pcnx-eyebrow,.sv-eyebrow){text-align:center!important}
body main :is(.section-heading,.pcnx-section-heading,.sv-section-heading,.pcpr-section-heading,.pcw-section-heading,.pcsp-section-heading,.pcn-section-heading,.peach-section-heading) :is(h2,p,.pcnx-lead){max-width:100%;margin-left:auto!important;margin-right:auto!important;text-align:center!important}
body main .section-heading--row{justify-content:center!important;align-items:center!important;flex-wrap:wrap}
body main .section-heading--row>div{min-width:0;flex:1 1 100%;text-align:center}
body main .section-heading--row>.text-link{margin-inline:auto}
/* Equal-height visual balance of icon/photo cards without centering prose itself. */
body main .pcnx-items--pain .pcnx-item-copy,
body main .pcnx-items--benefits .pcnx-item-copy,
body main .pcnx-items--showcase .pcnx-item-copy,
body main .pcnx-items--reason_gallery .pcnx-item-copy,
body main .pcnx-items--price-items .pcnx-item-copy{
 display:flex;flex-direction:column;justify-content:center;min-width:0;flex:1 1 auto;
}
body main .pcnx-items--pain .pcnx-item,
body main .pcnx-items--benefits .pcnx-item,
body main .pcnx-items--showcase .pcnx-item,
body main .pcnx-items--price-items .pcnx-item{display:flex;flex-direction:column;min-width:0}
body main .pcnx-items--pain .pcnx-item-copy>.pcnx-index,
body main .pcnx-items--benefits .pcnx-item-copy>.pcnx-index{flex:0 0 auto}
/* Final semantic CTA roles, resolved from the ACTUAL destination at runtime.
 * These selectors override legacy high-specificity background, hover, and label rules. */
body :is(a,button,[role="button"])[data-peach-cta]{
 background-image:none!important;background-color:var(--pcn-cta-internal)!important;
 border-color:var(--pcn-cta-internal)!important;color:#fff!important;
 text-decoration:none!important;
}
body :is(a,button,[role="button"])[data-peach-cta="line"]{
 background-color:var(--pcn-cta-line)!important;border-color:var(--pcn-cta-line)!important;color:#fff!important;
}
body :is(a,button,[role="button"])[data-peach-cta="contact"]{
 background-color:var(--pcn-cta-contact)!important;border-color:var(--pcn-cta-contact)!important;color:#fff!important;
}
body :is(a,button,[role="button"])[data-peach-cta] :is(span,small,strong,b,i,.cta-arrow,.cta-label,.cta-chevron,.pcnx-chevron){
 color:#fff!important;
}
body :is(a,button,[role="button"])[data-peach-cta] svg:not(.line-icon svg){stroke:currentColor}
body :is(a,button,[role="button"])[data-peach-cta]:is(:link,:visited,:hover,:active,:focus-visible){color:#fff!important}
body :is(a,button,[role="button"])[data-peach-cta]:focus-visible{outline:3px solid #18383D!important;outline-offset:3px}
/* Static defense until JS executes: these elements were omitted by prior CTA CSS. */
body a.problem-action,body a.service-action,
body .sv-top-hero .sv-top-hero-cta--line,
body .hero.peach-shared-fv .peach-fv-button--line,
body .pcnx-root .pcnx-button--line,
body a.pc-header-line-cta,
body button.js-line{
 background-image:none!important;background-color:#06C755!important;border-color:#06C755!important;color:#fff!important;
}
body a.problem-action{background-color:#396E77!important;border-color:#396E77!important}
body a.problem-action--contact{background-color:#E8A06A!important;border-color:#E8A06A!important}
body a.service-action{background-color:#396E77!important;border-color:#396E77!important}
/* Horizontal comparison columns must scroll INSIDE the table, not the page. */
@media(max-width:760px){
 body .pcnx-root .pcnx-compare,
 body .pcnx-page-branding .pcnx-brand-compare{overflow-x:auto!important;overflow-y:hidden!important;width:100%!important;max-width:100%!important;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}
 /* TOP: the previous rule styled h3/p but left margin-top:auto on the CTA,
    which forced the whole text group to the top. Remove that auto margin. */
 body.home #problems .problem-grid>.problem-item{display:grid!important;grid-template-columns:minmax(0,1fr)!important;align-items:stretch!important;grid-auto-rows:auto!important}
 body.home #problems .problem-grid>.problem-item>.problem-copy{
   display:flex!important;flex-direction:column!important;align-items:flex-start!important;
   justify-content:center!important;min-width:0!important;min-height:216px!important;
   height:auto!important;align-self:stretch!important;gap:0!important;
   padding:24px 21px!important;
 }
 body.home #problems .problem-grid>.problem-item>.problem-copy h3{margin:0 0 10px!important}
 body.home #problems .problem-grid>.problem-item>.problem-copy p{margin:0!important;max-width:100%!important}
 body.home #problems .problem-grid>.problem-item>.problem-copy .problem-action{
   margin:16px 0 0!important;align-self:flex-start!important;
   font-size:14px!important;min-height:44px!important;
 }
 /* Other image + text cards: readable vertical spacing and centered copy block. */
 body.home #services .service-grid .service-card .card-copy,
 body.home #services .featured-service .featured-text{
  display:flex!important;flex-direction:column!important;justify-content:center!important;
  min-width:0!important;padding-block:24px!important;
 }
 body.home .home-solutions .solution-item{align-items:center!important}
 body.home .home-solutions .solution-copy{display:flex;flex-direction:column;justify-content:center;min-width:0}
 body.home .home-reasons .reason-content{display:flex;flex-direction:column;justify-content:center;flex:1}
 .pcnx-root .pcnx-items--pain .pcnx-item-copy,
 .pcnx-root .pcnx-items--benefits .pcnx-item-copy,
 .pcnx-root .pcnx-items--showcase .pcnx-item-copy{padding-top:16px;padding-bottom:16px}
 /* Prevent titles/marks from causing a horizontal scrollbar. */
 body main :is(h1,h2,h3,p,li){min-width:0;max-width:100%;line-break:strict;overflow-wrap:anywhere;hyphens:none}
 body .peach-brand-keep{white-space:nowrap!important;overflow-wrap:normal!important;word-break:keep-all!important}
}
