.pf .pf-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 32px;border-radius:6px;font-weight:700;font-size:16.8px;text-decoration:none;text-align:center;cursor:pointer;transition:transform .2s,box-shadow .2s;border:none;letter-spacing:0.03em}
.pf .pf-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px rgba(0,0,0,.2)}
.pf .pf-btn-outline{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;border-radius:6px;font-weight:600;font-size:16px;text-decoration:none;text-align:center;cursor:pointer;border:2px solid;background:transparent;transition:transform .2s}
.pf .pf-pill{display:inline-block;padding:5px 16px;border-radius:999px;font-size:13.6px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.pf .pf-section{padding:clamp(48px,8vw,96px) clamp(16px,5vw,80px)}
.pf .pf-sp-lg{padding:clamp(48px,8vw,96px) clamp(16px,5vw,80px)}
.pf .pf-sp-md{padding:clamp(32px,5vw,56px) clamp(16px,5vw,80px)}
.pf .pf-sp-sm{padding:clamp(16px,3vw,28px) clamp(16px,5vw,80px)}
.pf .pf-sp-none{padding:0}
.pf .pf-row{display:flex;flex-wrap:wrap;align-items:stretch;--pf-gap:0px}
.pf .pf-row.pf-align-start{align-items:flex-start}
.pf .pf-row.pf-align-center{align-items:center}
.pf .pf-gap-sm{gap:12px;--pf-gap:12px}
.pf .pf-gap-md{gap:24px;--pf-gap:24px}
.pf .pf-gap-lg{gap:40px;--pf-gap:40px}
.pf .pf-col{min-width:0;flex:1 1 0;box-sizing:border-box}
.pf .pf-col-1{flex:0 1 calc(8.333% - var(--pf-gap,0px)*0.9167)}.pf .pf-col-2{flex:0 1 calc(16.666% - var(--pf-gap,0px)*0.8334)}.pf .pf-col-3{flex:0 1 calc(25% - var(--pf-gap,0px)*0.75)}
.pf .pf-col-4{flex:0 1 calc(33.333% - var(--pf-gap,0px)*0.6667)}.pf .pf-col-5{flex:0 1 calc(41.666% - var(--pf-gap,0px)*0.5834)}.pf .pf-col-6{flex:0 1 calc(50% - var(--pf-gap,0px)*0.5)}
.pf .pf-col-7{flex:0 1 calc(58.333% - var(--pf-gap,0px)*0.4167)}.pf .pf-col-8{flex:0 1 calc(66.666% - var(--pf-gap,0px)*0.3334)}.pf .pf-col-9{flex:0 1 calc(75% - var(--pf-gap,0px)*0.25)}
.pf .pf-col-10{flex:0 1 calc(83.333% - var(--pf-gap,0px)*0.1667)}.pf .pf-col-11{flex:0 1 calc(91.666% - var(--pf-gap,0px)*0.0834)}.pf .pf-col-12{flex:0 1 100%}
.pf .pf-form-slot{width:100%}
.pf .pf-container{max-width:1200px;margin:0 auto;width:100%}
.pf .pf-grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(16px,3vw,32px)}
.pf .pf-grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(16px,3vw,32px)}
.pf .pf-card{border-radius:16px;padding:clamp(24px,3vw,40px);transition:transform .3s,box-shadow .3s}
.pf .pf-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,.1)}
.pf .pf-icon-circle{width:56px;height:56px;min-width:56px;aspect-ratio:1;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.pf .pf-heading-xl{font-size:clamp(28px,5vw,56px);font-weight:800;line-height:1.15;margin-bottom:16px}
.pf .pf-heading-lg{font-size:clamp(25.6px,4vw,40px);font-weight:700;line-height:1.2;margin-bottom:12px}
.pf .pf-body{font-size:clamp(16px,1.8vw,18px);line-height:1.7}
.pf .pf-stat{font-size:clamp(24px,4vw,48px);font-weight:800;line-height:1.1}
.pf .pf-logo-row{display:flex;flex-wrap:wrap;justify-content:center;gap:32px;align-items:center}
.pf .pf-logo-row img{max-height:56px;width:auto;object-fit:contain}
.pf [data-pf-gallery]{position:relative;overflow:hidden}
.pf .pf-gallery-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.pf .pf-gallery-track::-webkit-scrollbar{display:none}
.pf .pf-gallery-track>*{flex:0 0 33.333%;scroll-snap-align:start;box-sizing:border-box;padding:0 8px}
.pf [data-pf-scroll-track]>*{box-sizing:border-box}
@media (max-width:767px){.pf [data-pf-widget="comparison-table"] th,.pf [data-pf-widget="comparison-table"] td{padding:12px 8px !important}}
.pf .pf-gallery-prev,.pf .pf-gallery-next{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.95);color:#222;border:none;width:40px;height:40px;border-radius:50%;cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 12px rgba(0,0,0,.3);z-index:10;transition:all .2s}
.pf .pf-gallery-prev{left:8px}
.pf .pf-gallery-next{right:8px}
.pf .pf-faq details{border-bottom:1px solid rgba(128,128,128,.2)}
.pf .pf-faq summary{padding:16px 0;font-weight:600;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}
.pf .pf-faq summary::-webkit-details-marker{display:none}
.pf .pf-faq summary::after{content:"+";font-size:20px;transition:transform .2s}
.pf .pf-faq details[open]>summary::after{content:"\2212"}
.pf .pf-faq-body{padding:0 0 16px}
.pf-lightbox{position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center}
.pf-lightbox[hidden]{display:none}
.pf-lightbox img{max-width:90vw;max-height:85vh;object-fit:contain;border-radius:8px}
.pf-lb-close{position:absolute;top:16px;right:24px;background:none;border:none;color:#fff;font-size:40px;cursor:pointer;line-height:1}
@media (max-width:767px){.pf .pf-grid-2,.pf .pf-grid-3{grid-template-columns:1fr}.pf .pf-section{padding:48px 16px}.pf .pf-gallery-track>*{flex:0 0 100%}.pf .pf-col{flex-basis:100%}.pf .pf-row.pf-nostack>.pf-col-1{flex-basis:calc(8.333% - var(--pf-gap,0px)*0.9167)}.pf .pf-row.pf-nostack>.pf-col-2{flex-basis:calc(16.666% - var(--pf-gap,0px)*0.8334)}.pf .pf-row.pf-nostack>.pf-col-3{flex-basis:calc(25% - var(--pf-gap,0px)*0.75)}.pf .pf-row.pf-nostack>.pf-col-4{flex-basis:calc(33.333% - var(--pf-gap,0px)*0.6667)}.pf .pf-row.pf-nostack>.pf-col-5{flex-basis:calc(41.666% - var(--pf-gap,0px)*0.5834)}.pf .pf-row.pf-nostack>.pf-col-6{flex-basis:calc(50% - var(--pf-gap,0px)*0.5)}.pf .pf-row.pf-nostack>.pf-col-7{flex-basis:calc(58.333% - var(--pf-gap,0px)*0.4167)}.pf .pf-row.pf-nostack>.pf-col-8{flex-basis:calc(66.666% - var(--pf-gap,0px)*0.3334)}.pf .pf-row.pf-nostack>.pf-col-9{flex-basis:calc(75% - var(--pf-gap,0px)*0.25)}.pf .pf-row.pf-nostack>.pf-col-10{flex-basis:calc(83.333% - var(--pf-gap,0px)*0.1667)}.pf .pf-row.pf-nostack>.pf-col-11{flex-basis:calc(91.666% - var(--pf-gap,0px)*0.0834)}.pf .pf-sp-lg{padding:48px 16px}.pf .pf-sp-md{padding:32px 16px}.pf .pf-sp-sm{padding:16px}}
@media (min-width:768px) and (max-width:1023px){.pf .pf-gallery-track>*{flex:0 0 50%}}
@media (max-width:600px){.pf [style*="flex:0 0 auto"][style*="flex-wrap:wrap"]{flex-shrink:1!important;min-width:0!important}}
.pf .pf-overlay-dark{position:absolute;inset:0;background:rgba(0,0,0,0.5);z-index:1}
.pf .pf-overlay-gradient{position:absolute;inset:0;background:linear-gradient(135deg,rgba(0,0,0,0.85) 0%,rgba(0,0,0,0.4) 100%);z-index:1}
.pf .pf-texture-dots{position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,0.06) 1px,transparent 1px);background-size:22px 22px;z-index:0;pointer-events:none}
.pf .pf-texture-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.04) 1px,transparent 1px);background-size:40px 40px;z-index:0;pointer-events:none}
.pf .pf-texture-diagonal{position:absolute;inset:0;background-image:repeating-linear-gradient(45deg,transparent,transparent 10px,rgba(255,255,255,0.03) 10px,rgba(255,255,255,0.03) 20px);z-index:0;pointer-events:none}
.pf .pf-deco-circle{position:absolute;border-radius:50%;pointer-events:none;z-index:0}
.pf .pf-icon-check::before{content:"✓"}
.pf .pf-icon-phone::before{content:"☎"}
.pf .pf-icon-star::before{content:"★"}
.pf .pf-accent-line{width:56px;height:3px;background:var(--pf-accent,#F1C100);border-radius:2px}
.pf .pf-z-content{position:relative;z-index:2}
.pf [data-pf-slideshow] [data-pf-slide]{position:absolute!important;top:0!important;left:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover!important}
.pf [data-pf-embed-target]>div:has(>iframe){align-self:stretch}
.pf [data-pf-widget="blog-posts"] article a{display:inline-flex;align-items:center;min-height:44px}
.pf .pf-global-popup-overlay{position:fixed;inset:0;z-index:99998;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px)}
.pf .pf-global-popup-overlay[hidden]{display:none}
.pf .pf-global-popup-modal{background:#fff;border-radius:16px;padding:clamp(24px,4vw,40px);max-width:520px;width:90vw;position:relative;box-shadow:0 20px 60px rgba(0,0,0,.3);animation:pfGlobalPopIn .25s ease-out}
@keyframes pfGlobalPopIn{from{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:none}}
.pf .pf-global-popup-close{position:absolute;top:12px;right:16px;background:none;border:none;font-size:28.8px;cursor:pointer;color:#666;line-height:1}
.pf .pf-global-popup-body{font-size:16px;line-height:1.6}
@media (max-width:600px){.pf .pf-global-popup-modal{max-width:100vw!important;width:100vw!important;border-radius:0!important;min-height:100vh;max-height:100vh;overflow-y:auto;padding:24px 16px;padding-top:max(24px,env(safe-area-inset-top,24px));box-sizing:border-box}.pf .pf-global-popup-close{top:8px!important;right:12px!important;font-size:35.2px;z-index:1;color:#666!important}}
/* A ROW TOLD NEVER TO SHRINK STILL MUST NOT PUSH THE PAGE SIDEWAYS ON A PHONE.
   Measured on a real client page (a home page, 2026-09): 437px of content in a 390px
   window, and the whole 47px comes from one rule - .pfi-cf, the row holding the visit and phone
   buttons, set to flex:0 0 auto. A flex item with shrink 0 takes its max-content width and
   refuses to give any of it back, so the row stays 421px wide however narrow the screen is.
   With this rule the same page measures exactly 390px.
   Deliberately narrow: only the pfi- classes PageForge generates, only at phone width, and only
   the two properties that decide whether a flex item may shrink. It does not touch width, so an
   intentional full-bleed section is unaffected (Craft Law 19).
   It also corrects what the mobile count in this repo has been measuring: that count looks for a
   flex BASIS over 300px, finds fourteen on this page that can all shrink and are all harmless,
   and misses the one declaration that actually breaks the page, because it has no pixel basis. */
@media (max-width:600px){.pf [class*="pfi-"]{flex-shrink:1!important;min-width:0!important}}
.pf{--accent:var(--pf-accent,#0e7490);--accent-hover:var(--pf-cta,#b45309)}
.pf input[type="radio"][name^="pf-tab-"]{display:inline-block!important;position:absolute!important;opacity:0!important;width:1px!important;height:1px!important;overflow:hidden!important}
/* Keyboard focus on the Tabs widget. The real radios are visually hidden (so a keyboard visitor can still arrive on them), which also hid the focus ring: Tab into the tabs showed nothing. The ring is drawn round the tab row instead, and old saved pages get it too because this stylesheet is not saved with them. */
.pf input[type="radio"][name^="pf-tab-"]:focus-visible~[role="tablist"]{outline:2px solid var(--accent,#0e7490);outline-offset:2px}
/* A carousel whose cards all fit has nothing to scroll: the runtime puts pf-noscroll on it and the two arrows go away instead of sitting on the first and last card. */
.pf [data-pf-scroller].pf-noscroll [data-pf-scroll]{display:none!important}
/* Reduced motion: no gliding between carousel positions, no popup pop-in. */
@media (prefers-reduced-motion:reduce){.pf .pf-gallery-track,.pf [data-pf-scroll-track]{scroll-behavior:auto!important}.pf .pf-global-popup-modal{animation:none}}
/* MD-4 (F218): "Turn off on phones" for a video background. CSS-only, no runtime JS — below
   768px the video is hidden and the section's own poster image (carried in the --pf-video-poster
   custom property the editor sets inline) is shown as a plain background-image instead, so a
   phone visitor never downloads the video at all. */
@media (max-width:768px){.pf [data-pf-video-mobile="hide"]>[data-pf-video]{display:none}.pf [data-pf-video-mobile="hide"]{background-image:var(--pf-video-poster,none);background-size:cover;background-position:center}}
.pf .pf-on-hidden{display:none}
/* WordPress emoji pictures (s.w.org/images/core/emoji) are characters: the site they came from showed them at 1em. Without this a trophy painted the whole width of a column (Knoxville, 2026-10-28). */
.pf img[src*="/images/core/emoji/"]{display:inline!important;width:1em!important;height:1em!important;max-width:none!important;margin:0 .07em!important;vertical-align:-.1em!important;border:0!important;box-shadow:none!important;background:none!important;padding:0!important;border-radius:0!important;object-fit:contain!important;filter:none!important;aspect-ratio:auto!important}
/* THE DESIGN SYSTEM (2.42.15). Styles ONLY sections the AI designer composed (class pf-ds) - imported, polished and older pages never match. Brand: --pf-* (a pack or the site theme) first, then the --pfs-* tokens the designer stamped from the brand guide. */
.pf .pf-ds{--ds-accent:var(--pf-cta,var(--pf-accent,var(--pfs-accent,#1f6feb)));--ds-on-accent:var(--pfs-on-accent,#fff);--ds-accent-text:var(--pfs-accent-text,var(--ds-accent));--ds-heading:var(--pf-ink,var(--pfs-heading,#14202b));--ds-ink:var(--pf-ink,var(--pfs-ink,#1d2730));--ds-ink2:var(--pf-ink2,var(--pfs-ink2,#4d5a66));--ds-ground:var(--pf-ground,var(--pfs-ground,#fff));--ds-tint:var(--pf-surface,var(--pfs-tint,#f4f6f5));--ds-line:var(--pf-line,var(--pfs-line,rgba(20,32,43,.12)));--ds-dark:var(--pfs-dark,#14202b);--ds-on-dark:var(--pfs-on-dark,#f3f5f4);--ds-on-dark2:var(--pfs-on-dark2,rgba(243,245,244,.82));--ds-radius:var(--pf-radius-md,var(--pfs-radius,10px));--ds-btn-radius:var(--pfs-btn-radius,6px);--ds-shadow:var(--pfs-shadow,rgba(20,32,43,.16));--ds-display:var(--pf-font-display,var(--pfs-font-display,inherit));--ds-body:var(--pf-font-body,var(--pfs-font-body,inherit));--ds-pad:clamp(22px,2.4vw,32px);box-sizing:border-box;position:relative;isolation:isolate;background:var(--ds-ground);color:var(--ds-ink);font-family:var(--ds-body);overflow-wrap:break-word}
.pf .pf-ds.pf-tone-tint{background:var(--ds-tint)}
.pf .pf-ds.pf-theme-dark{background:var(--ds-dark);color:var(--ds-on-dark2);--ds-heading:var(--ds-on-dark);--ds-ink:var(--ds-on-dark2);--ds-ink2:var(--ds-on-dark2);--ds-accent-text:var(--pfs-accent-on-dark,var(--ds-accent));--ds-line:rgba(255,255,255,.16)}
.pf .pf-ds.pf-theme-dark.pf-tex{background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1px);background-size:22px 22px}
.pf .pf-ds>.pf-row{max-width:1180px;margin-left:auto;margin-right:auto}
.pf .pf-ds>.pf-row+.pf-row{margin-top:clamp(28px,4vw,52px)}
.pf .pf-ds.pf-pat-cards>.pf-row:not(.pf-intro)+.pf-row:not(.pf-intro):not(.pf-actions):not(.pf-media-row),.pf .pf-ds.pf-pat-steps>.pf-row:not(.pf-intro)+.pf-row:not(.pf-intro):not(.pf-actions):not(.pf-media-row),.pf .pf-ds.pf-pat-quotes>.pf-row:not(.pf-intro)+.pf-row:not(.pf-intro):not(.pf-actions):not(.pf-media-row),.pf .pf-ds.pf-pat-gallery>.pf-row:not(.pf-intro)+.pf-row:not(.pf-intro):not(.pf-actions):not(.pf-media-row){margin-top:24px}
.pf .pf-ds img{max-width:100%}
.pf .pf-ds [data-pf-doc-widget="heading"]{font-family:var(--ds-display);color:var(--ds-heading);font-weight:700;line-height:1.2;letter-spacing:-.01em;margin:0 0 .5em;text-wrap:balance}
.pf .pf-ds h1[data-pf-doc-widget="heading"]{font-size:clamp(34px,4.8vw,60px);line-height:1.08;letter-spacing:-.02em}
.pf .pf-ds h2[data-pf-doc-widget="heading"]{font-size:clamp(28px,3.3vw,42px);line-height:1.14}
.pf .pf-ds h3[data-pf-doc-widget="heading"]{font-size:clamp(20px,1.7vw,24px);line-height:1.3}
.pf .pf-ds h4[data-pf-doc-widget="heading"]{font-size:clamp(18px,1.4vw,20px);line-height:1.35}
.pf .pf-ds h5[data-pf-doc-widget="heading"],.pf .pf-ds h6[data-pf-doc-widget="heading"]{font-size:17px;line-height:1.4}
.pf .pf-ds h1.pf-h-long{font-size:clamp(30px,3.8vw,48px)}
.pf .pf-ds h2.pf-h-long{font-size:clamp(26px,2.9vw,37px)}
.pf .pf-ds [data-pf-doc-widget="text"]{font-size:clamp(16px,1.1vw,17.5px);line-height:1.72;color:var(--ds-ink);margin:0 0 1.1em}
.pf .pf-ds [data-pf-doc-widget="text"] p{display:block;margin:0 0 .85em}
.pf .pf-ds [data-pf-doc-widget="text"] ul,.pf .pf-ds [data-pf-doc-widget="text"] ol{display:block;margin:0 0 .85em;padding-left:1.25em;list-style:disc}
.pf .pf-ds [data-pf-doc-widget="text"] ol{list-style:decimal}
.pf .pf-ds [data-pf-doc-widget="text"] li{display:list-item;margin:.3em 0}
.pf .pf-ds [data-pf-doc-widget="text"] a{color:var(--ds-accent-text);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.pf .pf-ds.pf-theme-dark [data-pf-doc-widget="text"] a{color:var(--ds-on-dark)}
.pf .pf-ds [data-pf-doc="column"]>:last-child{margin-bottom:0}
.pf .pf-ds [data-pf-doc="column"]>a.pf-btn+[data-pf-doc-widget="heading"],.pf .pf-ds [data-pf-doc="column"]>a.pf-btn-outline+[data-pf-doc-widget="heading"],.pf .pf-ds [data-pf-doc="column"]>a.pf-btn+[data-pf-doc-widget="text"],.pf .pf-ds [data-pf-doc="column"]>a.pf-btn-outline+[data-pf-doc-widget="text"]{margin-top:32px}
.pf .pf-ds .pf-media-row .pf-img-photo{width:100%;aspect-ratio:21/9;max-height:460px;object-fit:cover}
.pf .pf-ds a.pf-btn{box-sizing:border-box;background:var(--ds-accent);color:var(--ds-on-accent);border-radius:var(--ds-btn-radius);padding:15px 30px;min-height:52px;font-size:16px;font-weight:700;letter-spacing:.01em;line-height:1.2;margin:10px 12px 0 0;justify-content:center;font-family:var(--ds-body)}
.pf .pf-ds a.pf-btn:hover{filter:brightness(1.06)}
.pf .pf-ds a.pf-btn-outline{box-sizing:border-box;color:var(--ds-heading);border:2px solid currentColor;background:transparent;border-radius:var(--ds-btn-radius);padding:13px 28px;min-height:52px;font-size:16px;font-weight:700;line-height:1.2;margin:10px 12px 0 0;justify-content:center;font-family:var(--ds-body)}
.pf .pf-ds.pf-theme-dark a.pf-btn-outline{color:var(--ds-on-dark)}
.pf .pf-ds .pf-img-photo{display:block;width:100%;height:auto;border-radius:var(--ds-radius);object-fit:cover;object-position:50% 30%}
.pf .pf-ds .pf-img-logo{max-height:72px;width:auto}
.pf .pf-ds .pf-img-icon{width:48px;height:48px;object-fit:contain}
.pf .pf-ds .pf-img-bg{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;z-index:-2;margin:0;border-radius:0}
.pf .pf-ds:has(.pf-img-bg){--ds-heading:var(--ds-on-dark);--ds-ink:var(--ds-on-dark2);color:var(--ds-on-dark2)}
.pf .pf-ds:has(.pf-img-bg)::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:rgba(12,16,20,.62)}
@supports (background:color-mix(in srgb,red,blue)){.pf .pf-ds:has(.pf-img-bg)::before{background:linear-gradient(180deg,color-mix(in srgb,var(--ds-dark) 80%,transparent),color-mix(in srgb,var(--ds-dark) 64%,transparent))}}
.pf .pf-ds>.pf-row.pf-intro>[data-pf-doc="column"]{max-width:760px}
.pf .pf-ds .pf-intro [data-pf-doc-widget="text"]{color:var(--ds-ink2)}
.pf .pf-ds .pf-item{background:var(--ds-tint);border-radius:var(--ds-radius);padding:var(--ds-pad);display:flex;flex-direction:column;align-items:flex-start}
.pf .pf-ds.pf-tone-tint .pf-item{background:var(--ds-ground)}
.pf .pf-ds.pf-card-edge .pf-item{border:1px solid var(--ds-line)}
.pf .pf-ds.pf-card-lift .pf-item{box-shadow:0 1px 2px var(--ds-shadow),0 16px 36px -20px var(--ds-shadow)}
.pf .pf-ds.pf-theme-dark .pf-item{background:rgba(255,255,255,.06);box-shadow:none;border:1px solid rgba(255,255,255,.12)}
.pf .pf-ds .pf-item>a.pf-btn,.pf .pf-ds .pf-item>a.pf-btn-outline{margin-top:auto}
.pf .pf-ds>.pf-row.pf-mixed{align-items:flex-start}
.pf .pf-ds .pf-item>[data-pf-doc-widget="text"]+a.pf-btn,.pf .pf-ds .pf-item>[data-pf-doc-widget="text"]+a.pf-btn-outline{margin-top:auto}
.pf .pf-ds .pf-item>.pf-img-photo:first-child{width:calc(100% + 2 * var(--ds-pad));max-width:none;margin:calc(-1 * var(--ds-pad)) calc(-1 * var(--ds-pad)) var(--ds-pad);aspect-ratio:16/10;object-fit:cover;border-radius:var(--ds-radius) var(--ds-radius) 0 0}
.pf .pf-ds.pf-pat-hero{display:flex;flex-direction:column;justify-content:center;min-height:min(86vh,800px);text-align:center;overflow:hidden;padding-top:clamp(64px,9vw,120px);padding-bottom:clamp(64px,9vw,120px)}
.pf .pf-ds.pf-pat-hero>.pf-row{width:100%;max-width:900px}
.pf .pf-ds.pf-pat-hero [data-pf-doc-widget="text"]{font-size:clamp(17px,1.4vw,20px);max-width:640px;margin:0 auto 1.4em}
.pf .pf-ds.pf-pat-hero a.pf-btn,.pf .pf-ds.pf-pat-hero a.pf-btn-outline{min-height:56px;padding:17px 36px;font-size:17px;margin:10px 6px 0}
.pf .pf-ds.pf-pat-hero a.pf-btn-outline{color:var(--ds-on-dark);border-color:rgba(255,255,255,.75)}
.pf .pf-ds.pf-pat-trust{padding-top:clamp(18px,2.4vw,26px);padding-bottom:clamp(18px,2.4vw,26px);text-align:center;border-bottom:1px solid var(--ds-line)}
.pf .pf-ds.pf-pat-trust [data-pf-doc-widget="text"]{font-size:clamp(15px,1.1vw,17px);font-weight:600;color:var(--ds-heading);letter-spacing:.01em;margin:0 auto;text-wrap:balance}
.pf .pf-ds.pf-pat-split>.pf-row{align-items:center;gap:clamp(28px,4.5vw,64px);--pf-gap:clamp(28px,4.5vw,64px)}
.pf .pf-ds.pf-pat-split>.pf-row.pf-flip{flex-direction:row-reverse}
.pf .pf-ds.pf-pat-split .pf-img-photo{aspect-ratio:4/3}
.pf .pf-ds.pf-pat-stats,.pf .pf-ds.pf-pat-logos,.pf .pf-ds.pf-pat-cta{text-align:center}
.pf .pf-ds.pf-pat-stats .pf-intro>[data-pf-doc="column"],.pf .pf-ds.pf-pat-logos .pf-intro>[data-pf-doc="column"]{margin-left:auto;margin-right:auto}
.pf .pf-ds.pf-pat-stats .pf-item{background:none;border:0;box-shadow:none;padding:8px 16px;align-items:center}
.pf .pf-ds.pf-pat-stats .pf-item+.pf-item{border-left:1px solid var(--ds-line)}
.pf .pf-ds.pf-pat-stats .pf-item [data-pf-doc-widget="heading"]{font-size:clamp(30px,3.2vw,44px);line-height:1.05;color:var(--ds-accent-text);margin-bottom:.3em}
.pf .pf-ds.pf-pat-stats .pf-item [data-pf-doc-widget="text"]{font-size:15px;color:var(--ds-ink2)}
.pf .pf-ds.pf-pat-steps{counter-reset:pfstep}
.pf .pf-ds.pf-pat-steps .pf-item{counter-increment:pfstep;background:none;box-shadow:none;border:0;border-top:3px solid var(--ds-accent);border-radius:0;padding:22px 4px 0}
.pf .pf-ds.pf-pat-steps:not(.pf-numbered) .pf-item::before{content:counter(pfstep);display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--ds-accent);color:var(--ds-on-accent);font-weight:800;font-size:17px;margin-bottom:16px;font-family:var(--ds-display)}
.pf .pf-ds.pf-pat-quotes .pf-item [data-pf-doc-widget="text"]{color:var(--ds-ink);font-size:clamp(16.5px,1.25vw,18px);line-height:1.65}
.pf .pf-ds .pf-actions{text-align:center}
.pf .pf-ds.pf-pat-quotes cite{display:block;font-style:normal;font-weight:700;color:var(--ds-heading);margin-top:12px;font-size:15px}
.pf .pf-ds.pf-pat-faq>.pf-row{max-width:860px}
.pf .pf-ds.pf-pat-faq>.pf-row:not(.pf-intro){flex-direction:column;gap:0;--pf-gap:0px}
.pf .pf-ds.pf-pat-faq>.pf-row:not(.pf-intro)>.pf-col{flex:0 0 auto;width:100%}
.pf .pf-ds.pf-pat-faq .pf-item,.pf .pf-ds.pf-pat-areas .pf-item,.pf .pf-ds.pf-pat-gallery .pf-item{background:none;border:0;box-shadow:none;padding:0}
.pf .pf-ds.pf-pat-faq .pf-item [data-pf-doc-widget="heading"]{font-size:clamp(18px,1.4vw,20px);line-height:1.4;padding-top:20px;margin:0 0 .45em;border-top:1px solid var(--ds-line)}
.pf .pf-ds.pf-pat-faq .pf-item [data-pf-doc-widget="text"]{font-size:16px;color:var(--ds-ink2);margin-bottom:18px}
.pf .pf-ds.pf-pat-logos [data-pf-doc="column"]:has(>.pf-img-logo),.pf .pf-ds.pf-pat-logos [data-image-count],.pf .pf-ds.pf-pat-logos .pf-raw>div{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:22px 36px}
.pf .pf-ds.pf-pat-logos img{max-height:52px;max-width:140px;width:auto;height:auto;object-fit:contain;filter:grayscale(1);opacity:.8;mix-blend-mode:multiply;transition:filter .2s,opacity .2s}
.pf .pf-ds.pf-pat-logos h2[data-pf-doc-widget="heading"]{font-size:clamp(22px,2.2vw,28px)}
.pf .pf-ds.pf-pat-logos img:hover{filter:none;opacity:1}
.pf .pf-ds.pf-pat-areas .pf-item ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px}
.pf .pf-ds.pf-pat-areas .pf-item li{display:inline-flex;align-items:center;gap:9px;padding:9px 16px 9px 13px;margin:0;border:1px solid var(--ds-line);border-radius:999px;background:var(--ds-ground);font-weight:600;font-size:15px;color:var(--ds-heading)}
.pf .pf-ds.pf-pat-areas .pf-item li::before{content:"";flex:0 0 8px;height:8px;border-radius:50%;background:var(--ds-accent)}
.pf .pf-ds.pf-pat-gallery .pf-img-photo{aspect-ratio:4/3}
.pf .pf-ds.pf-pat-gallery .pf-item>.pf-img-photo:first-child{margin:0 0 12px;width:100%;aspect-ratio:4/3;border-radius:var(--ds-radius)}
.pf .pf-ds.pf-pat-contact .pf-form-slot{background:var(--ds-ground);border-radius:var(--ds-radius);padding:var(--ds-pad);box-shadow:0 16px 36px -22px var(--ds-shadow)}
.pf .pf-ds.pf-pat-cta>.pf-row{max-width:820px}
.pf .pf-ds.pf-pat-cta [data-pf-doc-widget="text"]{margin-left:auto;margin-right:auto;max-width:640px}
.pf .pf-ds.pf-pat-cta a.pf-btn,.pf .pf-ds.pf-pat-cta a.pf-btn-outline,.pf .pf-ds.pf-pat-stats a.pf-btn,.pf .pf-ds.pf-pat-logos a.pf-btn{margin:10px 6px 0}
.pf .pf-ds.pf-pat-prose>.pf-row{max-width:780px}
.pf .pf-ds.pf-pat-prose [data-pf-doc-widget="text"]{font-size:clamp(16.5px,1.15vw,18px)}
.pf .pf-ds.pf-pat-prose [data-pf-doc="column"]>[data-pf-doc-widget="heading"]:not(:first-child){margin-top:1.2em}
@media (min-width:768px){.pf .pf-ds.pf-pat-cards .pf-item>[data-pf-doc-widget="heading"]:first-child,.pf .pf-ds.pf-pat-cards .pf-item>.pf-img-photo+[data-pf-doc-widget="heading"],.pf .pf-ds.pf-pat-steps .pf-item>[data-pf-doc-widget="heading"]{min-height:2.6em}}
@media (min-width:768px) and (max-width:1023px){.pf .pf-ds .pf-row>.pf-col-3.pf-item{flex-basis:calc(50% - var(--pf-gap,24px) * .5)}}
@media (max-width:767px){.pf .pf-ds.pf-pat-split>.pf-row.pf-flip{flex-direction:row}.pf .pf-ds.pf-pat-split [data-pf-doc="column"]:has(>.pf-img-photo){order:-1}.pf .pf-ds.pf-pat-hero{min-height:auto}.pf .pf-ds.pf-pat-stats .pf-col.pf-item{flex-basis:calc(50% - 12px)}.pf .pf-ds.pf-pat-stats .pf-item+.pf-item{border-left:0}}
@media (max-width:480px){.pf .pf-ds.pf-pat-hero a.pf-btn,.pf .pf-ds.pf-pat-hero a.pf-btn-outline,.pf .pf-ds.pf-pat-cta a.pf-btn,.pf .pf-ds.pf-pat-cta a.pf-btn-outline{display:flex;width:100%;margin:10px 0 0}}
/* THE DESIGN SYSTEM v2 (pf-ds2). OPT-IN: every rule starts .pf .pf-ds.pf-ds2, a class only the new generator stamps, so a page made before it cannot change. Same text in both copies: no apostrophe, backtick, backslash or dollar-brace. */
/* Roles: the brand colour marks small things (eyebrow, rule, numeral, link, outline button); orange is the action only; headings are brand-tinted ink; dark bands are the brand taken deep; the close is the brand itself. */
.pf .pf-ds.pf-ds2{--ds2-brand:var(--pf-brand,var(--pfs-brand,var(--pfs-heading,var(--ds-accent-text))));--ds2-head:var(--pfs-ink,#1d2730);--ds2-brand-lt:var(--ds-on-dark);--ds2-bar:var(--ds2-brand);--ds2-card:var(--pfs-card,#fff);--ds2-rl:min(calc(var(--ds-radius) * 1.5),24px);--ds2-ease:cubic-bezier(.3,.02,.18,1);--ds2-pull:clamp(40px,5vw,64px);--ds2-check:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%223.4%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12.5l4.2 4.2L19 7%22/%3E%3C/svg%3E");--ds2-tick:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23fff%22 stroke-width=%223.4%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12.5l4.2 4.2L19 7%22/%3E%3C/svg%3E");--ds2-tel:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22%3E%3Cpath d=%22M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25c1.1.37 2.3.57 3.6.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z%22/%3E%3C/svg%3E");--ds-pad:clamp(24px,2.6vw,36px)}
@supports (background:color-mix(in srgb,red,blue)){.pf .pf-ds.pf-ds2{--ds2-head:color-mix(in srgb,var(--ds2-brand) 18%,#0a100c);--ds2-brand-lt:color-mix(in srgb,var(--ds2-brand) 40%,#fff)}}
.pf .pf-ds.pf-ds2.pf-theme-dark{--ds2-bar:var(--ds2-brand-lt)}
.pf .pf-ds.pf-ds2:not(.pf-theme-dark):not(:has(.pf-img-bg)){--ds-heading:var(--pf-ink,var(--ds2-head))}
@supports (background:color-mix(in srgb,red,blue)){.pf .pf-ds.pf-ds2.pf-theme-dark:not(.pf-pat-hero):not(.pf-tex):not(:has(.pf-img-bg)){background:radial-gradient(70% 120% at 100% 0%,color-mix(in srgb,var(--ds2-brand) 34%,transparent),transparent 62%),var(--ds-dark)}}
.pf .pf-ds.pf-ds2.pf-sp-lg{padding-top:clamp(56px,7vw,96px);padding-bottom:clamp(56px,7vw,96px)}
.pf .pf-ds.pf-ds2>.pf-row+.pf-row{margin-top:clamp(28px,3.6vw,48px)}
.pf .pf-ds.pf-ds2.pf-cont{padding-top:0}
.pf .pf-ds.pf-ds2.pf-tone-tint+.pf-ds.pf-ds2.pf-tone-tint{border-top:1px solid var(--ds-line)}
.pf .pf-ds.pf-ds2 .pf-img-bg[src^="data:image/svg"]{display:none}
.pf .pf-ds.pf-ds2:has(.pf-img-bg[src^="data:image/svg"])::before{display:none}
/* An AI photo not generated yet never shows as a grey box: until the image step fills it, the layout behaves as if it were not there (the step still finds it by its data-pf-ai-image mark). */
.pf .pf-ds.pf-ds2 img.pf-img-photo[data-pf-ai-image][src^="data:"]{display:none}
.pf .pf-ds.pf-ds2 .pf-row>.pf-col:has(>img.pf-img-photo[data-pf-ai-image][src^="data:"]:only-child){display:none}
.pf .pf-ds.pf-ds2 .pf-row:has(>.pf-col>img.pf-img-photo[data-pf-ai-image][src^="data:"]:only-child)>.pf-col{flex:0 1 100%;max-width:760px}
/* Type: a heavier ladder, the client own kicker headings as tracked eyebrows, a short brand rule over a section title, a readable measure. Headings are never cut. */
.pf .pf-ds.pf-ds2 [data-pf-doc-widget="heading"]{font-weight:800;line-height:1.08;letter-spacing:-.024em}
.pf .pf-ds.pf-ds2 h1[data-pf-doc-widget="heading"]{font-size:clamp(40px,5.6vw,80px);line-height:1.02;letter-spacing:-.035em}
.pf .pf-ds.pf-ds2 h2[data-pf-doc-widget="heading"]{font-size:clamp(30px,3.7vw,50px);letter-spacing:-.028em}
.pf .pf-ds.pf-ds2 h3[data-pf-doc-widget="heading"]{font-size:clamp(21px,1.9vw,27px);line-height:1.18;letter-spacing:-.018em}
.pf .pf-ds.pf-ds2 h4[data-pf-doc-widget="heading"]{font-size:clamp(19px,1.5vw,22px);line-height:1.22;letter-spacing:-.012em}
.pf .pf-ds.pf-ds2 h1.pf-h-long{font-size:clamp(34px,4.4vw,60px)}
.pf .pf-ds.pf-ds2 h2.pf-h-long{font-size:clamp(27px,2.9vw,40px);line-height:1.12}
.pf .pf-ds.pf-ds2 .pf-eyebrow[data-pf-doc-widget="heading"]{display:flex;align-items:center;gap:12px;font-family:var(--ds-body);font-size:12.5px;font-weight:700;line-height:1.4;letter-spacing:.2em;text-transform:uppercase;color:var(--ds2-bar);margin:0 0 16px}
.pf .pf-ds.pf-ds2 .pf-eyebrow[data-pf-doc-widget="heading"]::before{content:"";flex:0 0 28px;height:2px;border-radius:2px;background:currentColor}
.pf .pf-ds.pf-ds2.pf-pat-logos .pf-eyebrow[data-pf-doc-widget="heading"],.pf .pf-ds.pf-ds2.pf-pat-stats .pf-eyebrow[data-pf-doc-widget="heading"],.pf .pf-ds.pf-ds2.pf-pat-cta:not(.pf-cta-split) .pf-eyebrow[data-pf-doc-widget="heading"]{justify-content:center}
.pf .pf-ds.pf-ds2 [data-pf-doc-widget="text"] a{color:var(--ds2-bar);font-weight:600;text-decoration-thickness:1.5px;text-underline-offset:4px}
.pf .pf-ds.pf-ds2 [data-pf-doc-widget="text"] strong{font-weight:700;color:var(--ds-heading)}
.pf .pf-ds.pf-ds2>.pf-row.pf-intro [data-pf-doc-widget="text"],.pf .pf-ds.pf-ds2.pf-pat-split>.pf-row:first-child:has(>.pf-col-12) [data-pf-doc-widget="text"]{font-size:clamp(17.5px,1.4vw,20px);line-height:1.62;color:var(--ds-ink2);max-width:46rem}
.pf .pf-ds.pf-ds2.pf-pat-logos>.pf-row.pf-intro [data-pf-doc-widget="text"],.pf .pf-ds.pf-ds2.pf-pat-stats>.pf-row.pf-intro [data-pf-doc-widget="text"]{margin-left:auto;margin-right:auto}
.pf .pf-ds.pf-ds2.pf-pat-split>.pf-row:first-child:has(>.pf-col-12)>.pf-col{max-width:760px}
.pf .pf-ds.pf-ds2:not(.pf-pat-hero):not(.pf-pat-cta):not(.pf-pat-trust)>.pf-row:first-child>.pf-col>h2[data-pf-doc-widget="heading"]:first-child::before{content:"";display:block;width:56px;height:4px;border-radius:4px;background:var(--ds2-bar);margin-bottom:22px}
.pf .pf-ds.pf-ds2.pf-pat-logos>.pf-row:first-child>.pf-col>h2[data-pf-doc-widget="heading"]:first-child::before,.pf .pf-ds.pf-ds2.pf-pat-stats>.pf-row:first-child>.pf-col>h2[data-pf-doc-widget="heading"]:first-child::before{margin-left:auto;margin-right:auto}
/* Buttons: orange stays the only action colour; the outline is the brand; glass on dark; a row of only buttons sits together. */
.pf .pf-ds.pf-ds2 a.pf-btn{padding:16px 32px;min-height:54px;box-shadow:0 14px 28px -16px var(--ds-accent);transition:transform .22s var(--ds2-ease),box-shadow .22s var(--ds2-ease),filter .22s}
.pf .pf-ds.pf-ds2 a.pf-btn:hover{transform:translateY(-2px);box-shadow:0 20px 34px -16px var(--ds-accent);filter:brightness(1.05)}
.pf .pf-ds.pf-ds2 a.pf-btn-outline{padding:14px 30px;min-height:54px;color:var(--ds2-bar);border-color:var(--ds2-bar);transition:transform .22s var(--ds2-ease),background .22s,color .22s}
.pf .pf-ds.pf-ds2 a.pf-btn-outline:hover{background:var(--ds2-bar);color:var(--ds-ground);transform:translateY(-2px)}
.pf .pf-ds.pf-ds2.pf-theme-dark a.pf-btn-outline,.pf .pf-ds.pf-ds2:has(.pf-img-bg:not([src^="data:image/svg"])) a.pf-btn-outline{color:var(--ds-on-dark);border-color:rgba(255,255,255,.6);background:rgba(255,255,255,.07)}
.pf .pf-ds.pf-ds2.pf-theme-dark a.pf-btn-outline:hover,.pf .pf-ds.pf-ds2:has(.pf-img-bg:not([src^="data:image/svg"])) a.pf-btn-outline:hover{background:rgba(255,255,255,.18);color:var(--ds-on-dark)}
.pf .pf-ds.pf-ds2 a.pf-btn:focus-visible,.pf .pf-ds.pf-ds2 a.pf-btn-outline:focus-visible{outline:3px solid var(--ds2-bar);outline-offset:3px}
.pf .pf-ds.pf-ds2 .pf-item>a.pf-btn+a.pf-btn-outline,.pf .pf-ds.pf-ds2 .pf-item>a.pf-btn-outline+a.pf-btn,.pf .pf-ds.pf-ds2 .pf-item>a.pf-btn+a.pf-btn{margin-top:12px}
.pf .pf-ds.pf-ds2 .pf-row.pf-actions{justify-content:center;gap:12px 14px;--pf-gap:14px}
.pf .pf-ds.pf-ds2 .pf-row.pf-actions>.pf-col{flex:0 0 auto;width:auto;max-width:100%}
.pf .pf-ds.pf-ds2 .pf-row.pf-actions a.pf-btn,.pf .pf-ds.pf-ds2 .pf-row.pf-actions a.pf-btn-outline{margin:0}
.pf .pf-ds.pf-ds2 a.pf-btn[href^="tel:"]::before,.pf .pf-ds.pf-ds2 a.pf-btn-outline[href^="tel:"]::before{content:"";flex:0 0 1.05em;height:1.05em;margin-right:.55em;background:currentColor;-webkit-mask:var(--ds2-tel) center/contain no-repeat;mask:var(--ds2-tel) center/contain no-repeat}
@media (max-width:480px){.pf .pf-ds.pf-ds2 .pf-row.pf-actions>.pf-col{flex:1 1 100%}.pf .pf-ds.pf-ds2 .pf-row.pf-actions a.pf-btn,.pf .pf-ds.pf-ds2 .pf-row.pf-actions a.pf-btn-outline{display:flex;width:100%}}
/* Hero: the client photo with a left-weighted scrim; without one, a light typographic hero. Never an empty dark box. The two states key on the src, so when a real photo is swapped in the photo look takes over by itself. */
.pf .pf-ds.pf-ds2.pf-pat-hero{min-height:min(80vh,720px);min-height:min(80svh,720px);padding-top:clamp(80px,10vw,136px);padding-bottom:clamp(80px,10vw,136px);text-align:left}
.pf .pf-ds.pf-ds2.pf-pat-hero>.pf-row{max-width:1180px}
.pf .pf-ds.pf-ds2.pf-pat-hero>.pf-row>.pf-col{max-width:800px}
.pf .pf-ds.pf-ds2.pf-pat-hero h1[data-pf-doc-widget="heading"]{max-width:18ch;margin:0 0 .4em}
.pf .pf-ds.pf-ds2.pf-pat-hero h1.pf-h-long{max-width:24ch}
.pf .pf-ds.pf-ds2.pf-pat-hero h1[data-pf-doc-widget="heading"]::after{content:"";display:block;width:72px;height:5px;border-radius:3px;background:var(--ds-accent);margin-top:.42em;background:var(--pfs-spark,var(--ds-accent))}
.pf .pf-ds.pf-ds2.pf-pat-hero [data-pf-doc-widget="text"]{font-size:clamp(18px,1.5vw,21px);line-height:1.6;max-width:36rem;margin:0 0 1.6em}
.pf .pf-ds.pf-ds2.pf-pat-hero a.pf-btn,.pf .pf-ds.pf-ds2.pf-pat-hero a.pf-btn-outline,.pf .pf-ds.pf-ds2.pf-pat-cta a.pf-btn,.pf .pf-ds.pf-ds2.pf-pat-cta a.pf-btn-outline{min-height:58px;padding:18px 38px;font-size:17px;margin:12px 12px 0 0}
.pf .pf-ds.pf-ds2.pf-pat-cta a.pf-btn,.pf .pf-ds.pf-ds2.pf-pat-cta a.pf-btn-outline{margin:12px 6px 0}
.pf .pf-ds.pf-ds2.pf-pat-hero:has(.pf-img-bg:not([src^="data:image/svg"])) h1[data-pf-doc-widget="heading"]{text-shadow:0 2px 40px rgba(0,0,0,.28)}
.pf .pf-ds.pf-ds2.pf-pat-hero:has(.pf-img-bg:not([src^="data:image/svg"]))::before{background:linear-gradient(90deg,rgba(6,10,8,.86) 0%,rgba(6,10,8,.58) 50%,rgba(6,10,8,.14) 100%),linear-gradient(0deg,rgba(6,10,8,.5),transparent 45%)}
@supports (background:color-mix(in srgb,red,blue)){.pf .pf-ds.pf-ds2.pf-pat-hero:has(.pf-img-bg:not([src^="data:image/svg"]))::before{background:linear-gradient(90deg,color-mix(in srgb,var(--ds-dark) 90%,transparent) 0%,color-mix(in srgb,var(--ds-dark) 62%,transparent) 50%,color-mix(in srgb,var(--ds-dark) 14%,transparent) 100%),linear-gradient(0deg,color-mix(in srgb,var(--ds-dark) 55%,transparent),transparent 45%)}}
.pf .pf-ds.pf-ds2.pf-pat-hero.pf-hero-soft .pf-img-bg:not([src^="data:image/svg"]){filter:blur(1.2px) saturate(1.06)}
.pf .pf-ds.pf-ds2.pf-pat-hero.pf-hero-soft:has(.pf-img-bg:not([src^="data:image/svg"]))::before{background:linear-gradient(90deg,rgba(6,10,8,.9) 0%,rgba(6,10,8,.72) 55%,rgba(6,10,8,.46) 100%),linear-gradient(0deg,rgba(6,10,8,.5),transparent 45%)}
@supports (background:color-mix(in srgb,red,blue)){.pf .pf-ds.pf-ds2.pf-pat-hero.pf-hero-soft:has(.pf-img-bg:not([src^="data:image/svg"]))::before{background:linear-gradient(90deg,color-mix(in srgb,var(--ds-dark) 92%,transparent) 0%,color-mix(in srgb,var(--ds-dark) 74%,transparent) 55%,color-mix(in srgb,var(--ds-dark) 46%,transparent) 100%),linear-gradient(0deg,color-mix(in srgb,var(--ds-dark) 55%,transparent),transparent 45%)}}
@media (max-width:767px){.pf .pf-ds.pf-ds2.pf-pat-hero.pf-hero-soft:has(.pf-img-bg:not([src^="data:image/svg"]))::before{background:linear-gradient(180deg,rgba(6,10,8,.62),rgba(6,10,8,.9))}}
.pf .pf-ds.pf-ds2.pf-pat-hero:not(:has(.pf-img-bg:not([src^="data:image/svg"]))){text-align:center;color:var(--pf-ink,var(--pfs-ink,#1d2730));--ds-heading:var(--pf-ink,var(--ds2-head));--ds-ink:var(--pf-ink,var(--pfs-ink,#1d2730));--ds-ink2:var(--pf-ink2,var(--pfs-ink2,#4d5a66));--ds-line:var(--pf-line,var(--pfs-line,rgba(20,32,43,.12)));--ds-accent-text:var(--pfs-accent-text,var(--ds-accent));--ds2-bar:var(--ds2-brand);background:linear-gradient(180deg,var(--ds-ground),var(--ds-tint))}
@supports (background:color-mix(in srgb,red,blue)){.pf .pf-ds.pf-ds2.pf-pat-hero:not(:has(.pf-img-bg:not([src^="data:image/svg"]))){background:radial-gradient(62% 90% at 88% 0%,color-mix(in srgb,var(--ds2-brand) 16%,transparent),transparent 64%),radial-gradient(50% 70% at 0% 100%,color-mix(in srgb,var(--ds-accent) 13%,transparent),transparent 62%),linear-gradient(180deg,var(--ds-ground),var(--ds-tint))}}
.pf .pf-ds.pf-ds2.pf-pat-hero:not(:has(.pf-img-bg:not([src^="data:image/svg"])))::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.55;background:linear-gradient(var(--ds-line) 1px,transparent 1px) 0 0/96px 96px,linear-gradient(90deg,var(--ds-line) 1px,transparent 1px) 0 0/96px 96px;-webkit-mask-image:radial-gradient(70% 80% at 50% 45%,#000,transparent 75%);mask-image:radial-gradient(70% 80% at 50% 45%,#000,transparent 75%)}
.pf .pf-ds.pf-ds2.pf-pat-hero:not(:has(.pf-img-bg:not([src^="data:image/svg"])))>.pf-row>.pf-col,.pf .pf-ds.pf-ds2.pf-pat-hero:not(:has(.pf-img-bg:not([src^="data:image/svg"]))) h1[data-pf-doc-widget="heading"],.pf .pf-ds.pf-ds2.pf-pat-hero:not(:has(.pf-img-bg:not([src^="data:image/svg"]))) [data-pf-doc-widget="text"]{margin-left:auto;margin-right:auto}
.pf .pf-ds.pf-ds2.pf-pat-hero:not(:has(.pf-img-bg:not([src^="data:image/svg"]))) h1[data-pf-doc-widget="heading"]::after{margin-left:auto;margin-right:auto}
.pf .pf-ds.pf-ds2.pf-pat-hero:not(:has(.pf-img-bg:not([src^="data:image/svg"]))) a.pf-btn,.pf .pf-ds.pf-ds2.pf-pat-hero:not(:has(.pf-img-bg:not([src^="data:image/svg"]))) a.pf-btn-outline{margin:12px 6px 0}
.pf .pf-ds.pf-ds2.pf-pat-hero:not(:has(.pf-img-bg:not([src^="data:image/svg"]))) a.pf-btn-outline{color:var(--ds2-brand);border-color:var(--ds2-brand);background:transparent}
.pf .pf-ds.pf-ds2.pf-pat-hero:not(:has(.pf-img-bg:not([src^="data:image/svg"]))) a.pf-btn-outline:hover{background:var(--ds2-brand);color:var(--ds-ground)}
.pf .pf-ds.pf-ds2.pf-pat-hero:has(+ .pf-ds2.pf-pat-trust){padding-bottom:calc(clamp(80px,10vw,136px) + var(--ds2-pull))}
@media (max-width:767px){.pf .pf-ds.pf-ds2.pf-pat-hero{min-height:auto;padding-top:72px}.pf .pf-ds.pf-ds2.pf-pat-hero:has(.pf-img-bg:not([src^="data:image/svg"]))::before{background:linear-gradient(180deg,rgba(6,10,8,.5),rgba(6,10,8,.88))}}
@supports (background:color-mix(in srgb,red,blue)){@media (max-width:767px){.pf .pf-ds.pf-ds2.pf-pat-hero:has(.pf-img-bg:not([src^="data:image/svg"]))::before{background:linear-gradient(180deg,color-mix(in srgb,var(--ds-dark) 50%,transparent),color-mix(in srgb,var(--ds-dark) 90%,transparent))}}}
@media (max-width:480px){.pf .pf-ds.pf-ds2.pf-pat-hero a.pf-btn,.pf .pf-ds.pf-ds2.pf-pat-hero a.pf-btn-outline,.pf .pf-ds.pf-ds2.pf-pat-cta a.pf-btn,.pf .pf-ds.pf-ds2.pf-pat-cta a.pf-btn-outline{display:flex;width:100%;margin:10px 0 0}}
/* Trust: the proof line as a floating bar of check chips over the hero bottom edge (only directly under the hero). */
.pf .pf-ds.pf-ds2.pf-pat-trust{position:relative;z-index:3;padding-left:clamp(16px,5vw,80px);padding-right:clamp(16px,5vw,80px);border:0;text-align:center}
.pf .pf-ds.pf-ds2.pf-pat-hero+.pf-ds.pf-ds2.pf-pat-trust{margin-top:calc(-1 * var(--ds2-pull));padding-top:0;background:linear-gradient(180deg,transparent var(--ds2-pull),var(--ds-ground) var(--ds2-pull))}
.pf .pf-ds.pf-ds2.pf-pat-trust>.pf-row{max-width:1040px;background:var(--ds2-card);border-radius:calc(var(--ds-radius) + 6px);box-shadow:0 1px 2px var(--ds-shadow),0 24px 54px -24px var(--ds-shadow);padding:clamp(10px,1.6vw,18px) clamp(16px,3vw,34px)}
.pf .pf-ds.pf-ds2.pf-pat-trust [data-pf-doc-widget="text"]{margin:0}
.pf .pf-ds.pf-ds2.pf-pat-trust [data-pf-doc-widget="text"] ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:2px 34px}
.pf .pf-ds.pf-ds2.pf-pat-trust [data-pf-doc-widget="text"] li{display:inline-flex;align-items:center;gap:10px;margin:0;min-height:48px;font-weight:700;font-size:clamp(14.5px,1.15vw,16.5px);color:var(--ds-heading)}
.pf .pf-ds.pf-ds2.pf-pat-trust [data-pf-doc-widget="text"] li::before{content:"";flex:0 0 22px;height:22px;border-radius:50%;background:var(--ds2-tick) center/62% no-repeat,var(--ds2-brand)}
@media (max-width:600px){.pf .pf-ds.pf-ds2.pf-pat-trust [data-pf-doc-widget="text"] ul{flex-direction:column;align-items:flex-start;gap:0}}
/* Process: Clearview numbered columns with big light ordinals (a CSS counter, not content) when each step is its own column; hairlines between. */
.pf .pf-ds.pf-ds2.pf-pat-steps .pf-item{position:relative;background:none;border:0;border-left:1px solid var(--ds-line);border-radius:0;box-shadow:none;padding:4px clamp(18px,2.2vw,32px) 8px}
.pf .pf-ds.pf-ds2.pf-pat-steps .pf-item:first-child{border-left:0;padding-left:0}
.pf .pf-ds.pf-ds2.pf-pat-steps>.pf-row:not(.pf-intro)+.pf-row:not(.pf-intro){padding-top:28px;border-top:1px solid var(--ds-line)}
.pf .pf-ds.pf-ds2.pf-pat-steps .pf-item::before{content:none}
.pf .pf-ds.pf-ds2.pf-pat-steps.pf-ordinal .pf-item::before{content:counter(pfstep,decimal-leading-zero);display:block;width:auto;height:auto;border-radius:0;background:none;color:var(--ds2-bar);font-family:var(--ds-display);font-weight:300;font-size:clamp(46px,4.6vw,66px);line-height:1;letter-spacing:-.04em;margin:0 0 14px}
@media (max-width:767px){.pf .pf-ds.pf-ds2.pf-pat-steps .pf-item{border-left:0;border-top:1px solid var(--ds-line);padding:22px 0 0}.pf .pf-ds.pf-ds2.pf-pat-steps .pf-item:first-child{border-top:0;padding-top:0}}
/* Cards: white cards, bigger radius, hover lift on hover devices; a full-width item is a statement; a compact grid of short points gets check badges; bare labels are chips. */
.pf .pf-ds.pf-ds2.pf-pat-cards:not(.pf-theme-dark) .pf-item,.pf .pf-ds.pf-ds2.pf-pat-quotes:not(.pf-theme-dark) .pf-item{background:var(--ds2-card)}
.pf .pf-ds.pf-ds2.pf-pat-cards .pf-item{border-radius:var(--ds2-rl);transition:transform .35s var(--ds2-ease),box-shadow .35s var(--ds2-ease),border-color .35s var(--ds2-ease)}
.pf .pf-ds.pf-ds2.pf-pat-cards .pf-item>.pf-img-photo:first-child{border-radius:var(--ds2-rl) var(--ds2-rl) 0 0;aspect-ratio:3/2}
.pf .pf-ds.pf-ds2.pf-pat-cards .pf-item.pf-col-12{background:none;border:0;box-shadow:none;padding:0;max-width:820px}
.pf .pf-ds.pf-ds2.pf-pat-cards .pf-item.pf-col-12 h2[data-pf-doc-widget="heading"]:first-child::before{content:"";display:block;width:56px;height:4px;border-radius:4px;background:var(--ds2-bar);margin-bottom:22px}
@media (hover:hover){.pf .pf-ds.pf-ds2.pf-pat-cards:not(.pf-lite) .pf-item:not(.pf-col-12):hover{transform:translateY(-5px)}.pf .pf-ds.pf-ds2.pf-pat-cards.pf-card-edge:not(.pf-lite) .pf-item:not(.pf-col-12):hover{border-color:var(--ds2-brand)}.pf .pf-ds.pf-ds2.pf-pat-cards.pf-card-lift:not(.pf-lite) .pf-item:not(.pf-col-12):hover{box-shadow:0 2px 4px var(--ds-shadow),0 34px 56px -26px var(--ds-shadow)}}
.pf .pf-ds.pf-ds2.pf-pat-cards.pf-lite .pf-item{background:none;border:0;border-top:1px solid var(--ds-line);border-radius:0;box-shadow:none;padding:22px 0 0}
.pf .pf-ds.pf-ds2.pf-pat-cards.pf-lite .pf-item::before{content:"";display:block;flex:0 0 auto;width:32px;height:32px;border-radius:50%;background:var(--ds2-tick) center/58% no-repeat,var(--ds2-brand);margin-bottom:14px}
.pf .pf-ds.pf-ds2.pf-pat-cards.pf-lite .pf-item [data-pf-doc-widget="text"]{font-size:15.5px;color:var(--ds-ink2)}
.pf .pf-ds.pf-ds2 .pf-row.pf-labels{justify-content:center;gap:12px;--pf-gap:12px}
.pf .pf-ds.pf-ds2 .pf-row.pf-labels>.pf-col{flex:0 0 auto;width:auto;display:flex;flex-direction:row;align-items:center;gap:10px;padding:13px 22px;background:var(--ds2-card);border:1px solid var(--ds-line);border-radius:999px}
.pf .pf-ds.pf-ds2 .pf-row.pf-labels>.pf-col::before{content:"";flex:0 0 8px;height:8px;border-radius:50%;background:var(--ds2-brand)}
.pf .pf-ds.pf-ds2 .pf-row.pf-labels [data-pf-doc-widget]{margin:0;font-family:var(--ds-body);font-size:15px;font-weight:700;letter-spacing:0;line-height:1.3;color:var(--ds-heading)}
/* Reviews: an accent top edge (unless the cards lift), the quote in the display face, the name set apart. No stars and no quote glyph: the source has neither. */
.pf .pf-ds.pf-ds2.pf-pat-quotes .pf-item{border-radius:var(--ds2-rl);padding:clamp(26px,3vw,40px)}
.pf .pf-ds.pf-ds2.pf-pat-quotes:not(.pf-card-lift) .pf-item{border-top:4px solid var(--ds2-bar)}
.pf .pf-ds.pf-ds2.pf-pat-quotes .pf-item [data-pf-doc-widget="text"]{font-family:var(--ds-display);font-size:clamp(18px,1.45vw,20.5px);line-height:1.55;color:var(--ds-heading)}
.pf .pf-ds.pf-ds2.pf-pat-quotes cite{display:block;margin-top:20px;padding-top:14px;border-top:1px solid var(--ds-line);font-family:var(--ds-body);font-size:14.5px;font-weight:700;letter-spacing:.01em;color:var(--ds-heading)}
/* FAQ: the same measure as every section; two real columns from 900px. */
.pf .pf-ds.pf-ds2.pf-pat-faq>.pf-row{max-width:1180px}
.pf .pf-ds.pf-ds2.pf-pat-faq .pf-item [data-pf-doc-widget="heading"]{font-size:clamp(18px,1.45vw,20.5px);line-height:1.32;font-weight:700;letter-spacing:-.01em;padding-top:24px;margin:0 0 .5em;border-top:1px solid var(--ds-line)}
@media (min-width:900px){.pf .pf-ds.pf-ds2.pf-pat-faq>.pf-row:not(.pf-intro){flex-direction:row;align-items:flex-start;gap:clamp(32px,5vw,72px);--pf-gap:clamp(32px,5vw,72px)}.pf .pf-ds.pf-ds2.pf-pat-faq>.pf-row:not(.pf-intro)>.pf-col{flex:1 1 0;width:auto}}
/* Logos: one centred wall of even white tiles, grey until hovered; a second heading is a small caption. */
.pf .pf-ds.pf-ds2.pf-pat-logos [data-image-count],.pf .pf-ds.pf-ds2.pf-pat-logos .pf-raw>div,.pf .pf-ds.pf-ds2.pf-pat-logos [data-pf-doc="column"]:has(>.pf-img-logo){display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;max-width:1000px;margin-left:auto;margin-right:auto}
.pf .pf-ds.pf-ds2.pf-pat-logos img{display:block;flex:0 0 auto;width:112px;height:68px;max-width:none;max-height:none;box-sizing:border-box;padding:12px 14px;object-fit:contain;background:var(--ds2-card);border:1px solid var(--ds-line);border-radius:var(--ds-radius);filter:grayscale(1);opacity:.85;mix-blend-mode:normal;transition:filter .25s,opacity .25s,border-color .25s,transform .25s var(--ds2-ease)}
.pf .pf-ds.pf-ds2.pf-pat-logos img:hover{filter:none;opacity:1;border-color:var(--ds2-brand);transform:translateY(-2px)}
@media (max-width:480px){.pf .pf-ds.pf-ds2.pf-pat-logos img{width:calc((100vw - 64px) / 3);height:60px}}
.pf .pf-ds.pf-ds2.pf-pat-logos>.pf-row+.pf-row h2[data-pf-doc-widget="heading"]{font-family:var(--ds-body);font-size:12.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ds-ink2);margin:0 0 6px}
/* Service area: the mid-page dark band, places as chips beside the map. */
.pf .pf-ds.pf-ds2.pf-pat-areas>.pf-row:not(.pf-intro){align-items:center;gap:clamp(28px,4vw,56px);--pf-gap:clamp(28px,4vw,56px)}
.pf .pf-ds.pf-ds2.pf-pat-areas.pf-theme-dark .pf-item li{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.24);color:var(--ds-on-dark)}
.pf .pf-ds.pf-ds2.pf-pat-areas.pf-theme-dark .pf-item li::before{background:var(--pfs-spark,var(--ds-accent))}
.pf .pf-ds.pf-ds2.pf-pat-areas .pf-raw iframe{display:block;width:100%!important;height:clamp(280px,32vw,420px)!important;border:0;border-radius:var(--ds2-rl);box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
/* Contact: the form on a card, real form controls (they beat the theme isolation reset on full-template pages). */
.pf .pf-ds.pf-ds2.pf-pat-contact .pf-form-slot,.pf .pf-ds.pf-forms .pf-raw:has(form),.pf .pf-ds.pf-forms .pf-raw:has(iframe){background:var(--ds2-card,var(--ds-ground));border-radius:var(--ds2-rl,var(--ds-radius));padding:var(--ds-pad);box-shadow:0 1px 2px var(--ds-shadow),0 24px 50px -28px var(--ds-shadow)}
.pf .pf-ds.pf-forms .pf-raw form label,.pf .pf-ds.pf-forms .pf-form-native label{display:block;margin:0 0 6px;font-weight:700;font-size:15px;color:var(--ds-heading)}
.pf .pf-ds.pf-forms .pf-raw form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="hidden"]),.pf .pf-ds.pf-forms .pf-raw form textarea,.pf .pf-ds.pf-forms .pf-raw form select,.pf .pf-ds.pf-forms .pf-form-native input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="hidden"]),.pf .pf-ds.pf-forms .pf-form-native textarea,.pf .pf-ds.pf-forms .pf-form-native select{display:block;width:100%;box-sizing:border-box;margin:0 0 16px;padding:13px 14px;min-height:48px;background:var(--ds-ground);color:var(--ds-ink);border:1px solid var(--ds-line);border-radius:var(--ds-btn-radius);font:inherit;font-size:16px}
.pf .pf-ds.pf-forms .pf-raw form textarea,.pf .pf-ds.pf-forms .pf-form-native textarea{min-height:140px}
.pf .pf-ds.pf-forms .pf-raw form input:focus-visible,.pf .pf-ds.pf-forms .pf-raw form textarea:focus-visible,.pf .pf-ds.pf-forms .pf-raw form select:focus-visible,.pf .pf-ds.pf-forms .pf-form-native input:focus-visible,.pf .pf-ds.pf-forms .pf-form-native textarea:focus-visible,.pf .pf-ds.pf-forms .pf-form-native select:focus-visible{outline:3px solid var(--ds2-bar,var(--ds-accent));outline-offset:1px}
.pf .pf-ds.pf-forms .pf-raw form button,.pf .pf-ds.pf-forms .pf-raw form input[type="submit"],.pf .pf-ds.pf-forms .pf-form-native button,.pf .pf-ds.pf-forms .pf-form-native input[type="submit"]{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:15px 32px;background:var(--ds-accent);color:var(--ds-on-accent);border:0;border-radius:var(--ds-btn-radius);font:inherit;font-weight:700;cursor:pointer}
/* Numbers and the close. The close is a solid band of the brand colour with the orange action on it. */
.pf .pf-ds.pf-ds2.pf-pat-stats .pf-item [data-pf-doc-widget="heading"]{font-size:clamp(44px,5.6vw,80px);font-weight:800;line-height:.95;letter-spacing:-.04em;color:var(--ds2-bar);margin-bottom:.15em}
.pf .pf-ds.pf-pat-stats .pf-item [data-pf-doc-widget="heading"].pf-stat-long{font-size:clamp(26px,2.6vw,36px);line-height:1.12;letter-spacing:-.02em}
@media (max-width:767px){.pf .pf-ds.pf-ds2.pf-pat-stats>.pf-row{justify-content:center}}
.pf .pf-ds.pf-ds2.pf-pat-stats .pf-item [data-pf-doc-widget="text"]{font-size:12.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ds-ink2)}
.pf .pf-ds.pf-ds2.pf-pat-cta{padding-top:clamp(72px,9vw,128px);padding-bottom:clamp(72px,9vw,128px)}
.pf .pf-ds.pf-ds2.pf-pat-cta.pf-theme-dark:not(.pf-pat-hero):not(.pf-tex):not(:has(.pf-img-bg)){--ds-ink:var(--ds-on-dark);--ds-ink2:var(--ds-on-dark);color:var(--ds-on-dark);background:radial-gradient(60% 140% at 0% 100%,rgba(0,0,0,.24),transparent 62%),radial-gradient(55% 130% at 100% 0%,rgba(255,255,255,.14),transparent 60%),var(--pfs-band,var(--ds-dark))}
.pf .pf-ds.pf-ds2.pf-pat-cta>.pf-row{max-width:980px}
.pf .pf-ds.pf-ds2.pf-pat-cta h2[data-pf-doc-widget="heading"]{font-size:clamp(32px,4.4vw,60px);line-height:1.04;letter-spacing:-.035em}
.pf .pf-ds.pf-ds2.pf-pat-cta h2.pf-h-long{font-size:clamp(28px,3.4vw,46px)}
@media (min-width:861px){.pf .pf-ds.pf-ds2.pf-cta-split{text-align:left}.pf .pf-ds.pf-ds2.pf-cta-split>.pf-row{max-width:1180px}.pf .pf-ds.pf-ds2.pf-cta-split>.pf-row>.pf-col{display:grid;grid-template-columns:minmax(0,1.5fr) auto;column-gap:clamp(24px,5vw,72px);align-items:center}.pf .pf-ds.pf-ds2.pf-cta-split [data-pf-doc-widget="heading"]{grid-column:1;grid-row:1}.pf .pf-ds.pf-ds2.pf-cta-split [data-pf-doc-widget="text"]{grid-column:1;grid-row:2;margin-left:0}.pf .pf-ds.pf-ds2.pf-cta-split a.pf-btn{grid-column:2;grid-row:1;align-self:end;margin:0 0 8px}.pf .pf-ds.pf-ds2.pf-cta-split a.pf-btn-outline{grid-column:2;grid-row:2;align-self:start;margin:8px 0 0}}
/* Photos and rhythm: depth on photos, slimmer banners, one heading size for split topics. */
.pf .pf-ds.pf-ds2 .pf-img-photo{border-radius:var(--ds2-rl)}
.pf .pf-ds.pf-ds2.pf-pat-split>.pf-row{gap:clamp(28px,5vw,72px);--pf-gap:clamp(28px,5vw,72px)}
.pf .pf-ds.pf-ds2.pf-pat-split>.pf-row+.pf-row{margin-top:clamp(44px,6vw,88px)}
.pf .pf-ds.pf-ds2.pf-pat-split>.pf-row:first-child:has(>.pf-col-12)+.pf-row{margin-top:clamp(32px,4vw,56px)}
.pf .pf-ds.pf-ds2.pf-pat-split .pf-img-photo{aspect-ratio:4/3;box-shadow:0 26px 50px -30px var(--ds-shadow)}
.pf .pf-ds.pf-ds2.pf-pat-split .pf-col:not(.pf-col-12)>h2[data-pf-doc-widget="heading"],.pf .pf-ds.pf-ds2.pf-pat-split .pf-col:not(.pf-col-12)>h3[data-pf-doc-widget="heading"],.pf .pf-ds.pf-ds2.pf-pat-split .pf-col:not(.pf-col-12)>h4[data-pf-doc-widget="heading"]{font-size:clamp(24px,2.4vw,34px);line-height:1.12;letter-spacing:-.02em}
.pf .pf-ds.pf-ds2.pf-pat-split .pf-col:has(>.pf-img-photo+.pf-img-photo):not(:has(>.pf-img-photo+.pf-img-photo+.pf-img-photo)){position:relative;padding-bottom:14%}
.pf .pf-ds.pf-ds2.pf-pat-split .pf-col:has(>.pf-img-photo+.pf-img-photo):not(:has(>.pf-img-photo+.pf-img-photo+.pf-img-photo))>.pf-img-photo:first-child{width:84%;margin:0}
.pf .pf-ds.pf-ds2.pf-pat-split .pf-col:has(>.pf-img-photo+.pf-img-photo):not(:has(>.pf-img-photo+.pf-img-photo+.pf-img-photo))>.pf-img-photo+.pf-img-photo{position:absolute;right:0;bottom:0;width:52%;margin:0;border:6px solid var(--ds-ground);box-shadow:0 30px 60px -28px var(--ds-shadow)}
.pf .pf-ds.pf-ds2.pf-pat-split.pf-tone-tint .pf-col:has(>.pf-img-photo+.pf-img-photo)>.pf-img-photo+.pf-img-photo{border-color:var(--ds-tint)}
.pf .pf-ds.pf-ds2.pf-pat-cards .pf-item.pf-col-12:has(>.pf-img-photo){display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(28px,4vw,56px);align-content:center;max-width:none;padding:0;overflow:hidden;background:var(--ds2-card);border-radius:var(--ds2-rl);text-align:left}
.pf .pf-ds.pf-ds2.pf-pat-cards.pf-card-edge .pf-item.pf-col-12:has(>.pf-img-photo){border:1px solid var(--ds-line)}
.pf .pf-ds.pf-ds2.pf-pat-cards.pf-card-lift .pf-item.pf-col-12:has(>.pf-img-photo){box-shadow:0 1px 2px var(--ds-shadow),0 16px 36px -20px var(--ds-shadow)}
.pf .pf-ds.pf-ds2.pf-pat-cards .pf-item.pf-col-12:has(>.pf-img-photo)>.pf-img-photo:first-child{grid-column:1;grid-row:1/span 8;width:100%;height:100%;max-height:none;aspect-ratio:auto;margin:0;border-radius:0;object-fit:cover}
.pf .pf-ds.pf-ds2.pf-pat-cards .pf-item.pf-col-12:has(>.pf-img-photo)>:not(.pf-img-photo){grid-column:2;margin-right:clamp(24px,3vw,44px)}
.pf .pf-ds.pf-ds2.pf-pat-cards .pf-item.pf-col-12:has(>.pf-img-photo)>.pf-img-photo+*{margin-top:clamp(28px,3.4vw,48px)}
.pf .pf-ds.pf-ds2.pf-pat-cards .pf-item.pf-col-12:has(>.pf-img-photo)>:last-child{margin-bottom:clamp(28px,3.4vw,48px);justify-self:start}
.pf .pf-ds.pf-ds2.pf-pat-cards .pf-item.pf-col-12:has(>.pf-img-photo) h2[data-pf-doc-widget="heading"]{font-size:clamp(24px,2.6vw,36px)}
@media (max-width:767px){.pf .pf-ds.pf-ds2.pf-pat-cards .pf-item.pf-col-12:has(>.pf-img-photo){display:flex}.pf .pf-ds.pf-ds2.pf-pat-cards .pf-item.pf-col-12:has(>.pf-img-photo)>.pf-img-photo:first-child{height:auto;aspect-ratio:16/9}.pf .pf-ds.pf-ds2.pf-pat-cards .pf-item.pf-col-12:has(>.pf-img-photo)>:not(.pf-img-photo){margin-left:22px;margin-right:22px}}
.pf .pf-ds.pf-ds2 .pf-row.pf-strip .pf-img-photo{width:100%;aspect-ratio:4/3;object-fit:cover;box-shadow:0 22px 44px -28px var(--ds-shadow)}
@media (max-width:600px){.pf .pf-ds.pf-ds2 .pf-row.pf-strip{flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory}.pf .pf-ds.pf-ds2 .pf-row.pf-strip>.pf-col{flex:0 0 78%;scroll-snap-align:start}}
.pf .pf-ds.pf-pat-split .pf-img-photo.pf-portrait{aspect-ratio:4/5;max-width:440px;margin-left:auto;margin-right:auto}
.pf .pf-ds.pf-pat-cards .pf-item>.pf-img-photo.pf-portrait:first-child{aspect-ratio:4/5;object-position:50% 20%}
.pf .pf-ds.pf-ds2 .pf-media-row .pf-img-photo{aspect-ratio:2.6/1;max-height:320px;box-shadow:none}
@media (max-width:767px){.pf .pf-ds.pf-ds2 .pf-media-row .pf-img-photo{aspect-ratio:16/9}}
/* THE EXPRESSIVE LAYER (Designer 2). Backgrounds, photo bands, one seam and a few details, chosen in code (planBands in composePage.js) and switched on by classes only the generator stamps. Every rule starts .pf .pf-ds.pf-ds2. No animation here. Same text in both copies: no apostrophe, backtick, backslash or dollar-brace. */
.pf .pf-ds.pf-ds2{--x-base:var(--ds-ground);--x-ln:rgba(20,32,43,.07);--x-dot:rgba(20,32,43,.13);--x-glow:rgba(20,32,43,.05);--x-glow2:rgba(20,32,43,.04);--x-gx:100%;--x-gy:0%;--x-cut:clamp(22px,3.2vw,46px);--x-frame:var(--ds2-brand);--x-noise:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%22160%22 height=%22160%22%3E%3Cfilter id=%22n%22 color-interpolation-filters=%22sRGB%22%3E%3CfeTurbulence type=%22fractalNoise%22 baseFrequency=%22.85%22 numOctaves=%222%22 stitchTiles=%22stitch%22/%3E%3CfeColorMatrix values=%220 0 0 0 .1 0 0 0 0 .13 0 0 0 0 .16 0 0 0 .08 0%22/%3E%3C/filter%3E%3Crect width=%22160%22 height=%22160%22 filter=%22url(%23n)%22/%3E%3C/svg%3E")}
.pf .pf-ds.pf-ds2.pf-tone-tint{--x-base:var(--ds-tint)}
.pf .pf-ds.pf-ds2.pf-theme-dark{--x-base:var(--ds-dark);--x-ln:rgba(255,255,255,.055);--x-dot:rgba(255,255,255,.11);--x-glow:rgba(255,255,255,.07);--x-glow2:rgba(255,255,255,.045);--x-frame:var(--ds2-brand-lt);--x-noise:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%22160%22 height=%22160%22%3E%3Cfilter id=%22n%22 color-interpolation-filters=%22sRGB%22%3E%3CfeTurbulence type=%22fractalNoise%22 baseFrequency=%22.85%22 numOctaves=%222%22 stitchTiles=%22stitch%22/%3E%3CfeColorMatrix values=%220 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .16 0%22/%3E%3C/filter%3E%3Crect width=%22160%22 height=%22160%22 filter=%22url(%23n)%22/%3E%3C/svg%3E")}
.pf .pf-ds.pf-ds2.pf-theme-dark.pf-tone-brand{--x-base:var(--pfs-band,var(--ds-dark));--x-ln:rgba(255,255,255,.1);--x-dot:rgba(255,255,255,.18);--x-glow:rgba(0,0,0,.16);--x-glow2:rgba(0,0,0,.2);--ds-heading:var(--pfs-on-band,var(--ds-on-dark));--ds-ink:var(--pfs-on-band,var(--ds-on-dark));--ds-ink2:var(--pfs-on-band,var(--ds-on-dark));--ds-line:rgba(255,255,255,.3);--ds2-bar:var(--pfs-on-band,var(--ds-on-dark));background:var(--x-base)}
@supports (background:color-mix(in srgb,red,blue)){.pf .pf-ds.pf-ds2{--x-ln:color-mix(in srgb,var(--ds2-brand) 12%,transparent);--x-dot:color-mix(in srgb,var(--ds2-brand) 22%,transparent);--x-glow:color-mix(in srgb,var(--ds2-brand) 14%,transparent);--x-glow2:color-mix(in srgb,var(--pfs-spark,var(--ds-accent)) 11%,transparent)}.pf .pf-ds.pf-ds2.pf-theme-dark{--x-ln:color-mix(in srgb,var(--ds2-brand-lt) 13%,transparent);--x-dot:color-mix(in srgb,var(--ds2-brand-lt) 24%,transparent);--x-glow:color-mix(in srgb,var(--ds2-brand) 44%,transparent);--x-glow2:color-mix(in srgb,var(--pfs-spark,var(--ds2-brand-lt)) 24%,transparent)}}
.pf .pf-ds.pf-ds2.pf-gl{--x-gx:0%}
.pf .pf-ds.pf-ds2.pf-gb{--x-gy:100%}
.pf .pf-ds.pf-ds2.pf-tex.pf-theme-dark:not(.pf-pat-hero):not(.pf-dv-slant){box-shadow:inset 0 3px 0 var(--pfs-spark,var(--ds2-bar))}
.pf .pf-ds.pf-ds2.pf-theme-dark.pf-pat-stats .pf-item [data-pf-doc-widget="heading"]::after{content:"";display:block;width:34px;height:3px;border-radius:2px;background:var(--pfs-spark,var(--ds2-bar));margin:14px auto 0}
.pf .pf-ds.pf-ds2.pf-theme-dark.pf-tone-brand.pf-pat-stats .pf-item [data-pf-doc-widget="heading"]::after{background:var(--ds2-bar)}
.pf .pf-ds.pf-ds2.pf-card-block.pf-pat-cards:not(.pf-theme-dark):not(.pf-lite) .pf-item:not(.pf-col-12){border:2px solid var(--ds2-head);border-radius:calc(var(--ds2-rl) * .45);box-shadow:6px 6px 0 var(--ds2-bar)}
.pf .pf-ds.pf-ds2.pf-card-block.pf-pat-quotes:not(.pf-theme-dark) .pf-item{border:2px solid var(--ds2-head);border-radius:calc(var(--ds2-rl) * .45);box-shadow:6px 6px 0 var(--ds2-bar)}
@media (hover:hover){.pf .pf-ds.pf-ds2.pf-card-block.pf-pat-cards:not(.pf-lite) .pf-item:not(.pf-col-12):hover{transform:translate(-3px,-3px);box-shadow:9px 9px 0 var(--ds2-bar)}}
@media (max-width:600px){.pf .pf-ds.pf-ds2.pf-card-block.pf-pat-cards:not(.pf-theme-dark):not(.pf-lite) .pf-item:not(.pf-col-12){box-shadow:4px 4px 0 var(--ds2-bar)}.pf .pf-ds.pf-ds2.pf-card-block.pf-pat-quotes:not(.pf-theme-dark) .pf-item{box-shadow:4px 4px 0 var(--ds2-bar)}}
.pf .pf-ds.pf-ds2.pf-frames.pf-pat-split .pf-col:not(:has(>.pf-img-photo+.pf-img-photo))>.pf-img-photo:not(.pf-portrait){box-shadow:14px 14px 0 var(--x-frame)}
@media (max-width:767px){.pf .pf-ds.pf-ds2.pf-frames.pf-pat-split .pf-col>.pf-img-photo{box-shadow:8px 8px 0 var(--x-frame)}}
@media (min-width:768px){.pf .pf-ds.pf-ds2.pf-dv-slant{clip-path:polygon(0 var(--x-cut),100% 0,100% 100%,0 100%);margin-top:calc(-1 * var(--x-cut));padding-top:calc(clamp(56px,7vw,96px) + var(--x-cut))}.pf .pf-ds.pf-ds2.pf-dv-slant.pf-pat-cta{padding-top:calc(clamp(72px,9vw,128px) + var(--x-cut))}}
.pf .pf-ds.pf-ds2 ::selection{background:var(--ds2-brand);color:var(--ds-ground)}
.pf .pf-ds.pf-ds2.pf-theme-dark ::selection{background:var(--ds2-brand-lt);color:var(--ds-dark)}
.pf .pf-ds.pf-ds2.pf-theme-dark.pf-tone-brand ::selection{background:var(--pfs-on-band,var(--ds-on-dark));color:var(--pfs-band,var(--ds-dark))}
.pf .pf-ds.pf-ds2.pf-pat-stats .pf-item [data-pf-doc-widget="heading"]{font-variant-numeric:lining-nums tabular-nums}
.pf .pf-ds.pf-ds2 [data-pf-doc-widget="text"] p{text-wrap:pretty}
.pf .pf-ds.pf-ds2.pf-tex.pf-bg-grid{background:radial-gradient(60% 90% at var(--x-gx) var(--x-gy),var(--x-glow),transparent 62%),linear-gradient(var(--x-ln) 1px,transparent 1px) 0 0/44px 44px,linear-gradient(90deg,var(--x-ln) 1px,transparent 1px) 0 0/44px 44px,var(--x-base)}
.pf .pf-ds.pf-ds2.pf-tex.pf-bg-dots{background:radial-gradient(56% 80% at var(--x-gx) var(--x-gy),var(--x-glow),transparent 64%),radial-gradient(var(--x-dot) 1.1px,transparent 1.6px) 0 0/22px 22px,var(--x-base)}
.pf .pf-ds.pf-ds2.pf-tex.pf-bg-diagonal{background:radial-gradient(60% 100% at var(--x-gx) var(--x-gy),var(--x-glow),transparent 62%),repeating-linear-gradient(135deg,transparent 0,transparent 13px,var(--x-ln) 13px,var(--x-ln) 14px),var(--x-base)}
.pf .pf-ds.pf-ds2.pf-tex.pf-bg-contour{background:radial-gradient(60% 90% at var(--x-gx) var(--x-gy),var(--x-glow),transparent 62%),repeating-radial-gradient(circle at var(--x-gx) var(--x-gy),transparent 0,transparent 34px,var(--x-ln) 34px,var(--x-ln) 35px),var(--x-base)}
.pf .pf-ds.pf-ds2.pf-tex.pf-bg-mesh{background:radial-gradient(52% 80% at 10% 12%,var(--x-glow),transparent 62%),radial-gradient(48% 70% at 92% 96%,var(--x-glow2),transparent 64%),radial-gradient(40% 55% at 70% 20%,var(--x-glow2),transparent 70%),var(--x-base)}
.pf .pf-ds.pf-ds2.pf-tex.pf-bg-grain{background:var(--x-noise) 0 0/160px 160px,radial-gradient(70% 100% at var(--x-gx) var(--x-gy),var(--x-glow),transparent 62%),var(--x-base)}
.pf .pf-ds.pf-ds2.pf-tex.pf-bg-split{background:linear-gradient(112deg,transparent 0,transparent 62%,var(--x-glow) 62%,var(--x-glow) 100%),var(--x-base)}
.pf .pf-ds.pf-ds2.pf-tex.pf-bg-wash{background:linear-gradient(160deg,var(--x-glow) 0,transparent 55%),linear-gradient(340deg,var(--x-glow2) 0,transparent 50%),var(--x-base)}
.pf .pf-ds.pf-ds2.pf-tex.pf-bg-sheen{background:radial-gradient(70% 130% at 0% 100%,rgba(0,0,0,.26),transparent 62%),radial-gradient(60% 120% at 100% 0%,rgba(0,0,0,.14),transparent 60%),linear-gradient(125deg,transparent 0,transparent 46%,rgba(0,0,0,.12) 46%,rgba(0,0,0,.12) 100%),var(--x-base)}
.pf .pf-ds.pf-ds2.pf-photo-band{overflow:hidden}
.pf .pf-ds.pf-ds2.pf-photo-band .pf-img-bg{object-position:50% 38%}
.pf .pf-ds.pf-ds2.pf-photo-band.pf-band-soft .pf-img-bg{filter:blur(1.4px) saturate(1.05);transform:scale(1.03)}
.pf .pf-ds.pf-ds2.pf-photo-band::before{background:linear-gradient(180deg,rgba(8,12,10,.84),rgba(8,12,10,.74))}
@supports (background:color-mix(in srgb,red,blue)){.pf .pf-ds.pf-ds2.pf-photo-band::before{background:radial-gradient(75% 130% at var(--x-gx) 0%,color-mix(in srgb,var(--ds2-brand) 24%,transparent),transparent 62%),linear-gradient(180deg,color-mix(in srgb,var(--ds-dark) var(--pfs-veil-hi,84%),transparent),color-mix(in srgb,var(--ds-dark) var(--pfs-veil-lo,74%),transparent))}}
/* Motion, CSS only and last so it is the first thing to delete: breathing primary buttons, a slow push-in on the hero photo, cards easing in. Fill is forwards, never both: before its range an element keeps its natural visible state, so the editor and full-page captures show everything. */
@keyframes pf2-breathe{0%,100%{box-shadow:0 14px 28px -16px var(--ds-accent)}50%{box-shadow:0 16px 44px -10px var(--ds-accent)}}
@keyframes pf2-kb{0%{transform:scale(1) translateY(0)}100%{transform:scale(1.08) translateY(-1.6%)}}
@keyframes pf2-rise{from{opacity:0;translate:0 22px}to{opacity:1;translate:0 0}}
@media (prefers-reduced-motion:no-preference){.pf .pf-ds.pf-ds2.pf-pat-hero a.pf-btn,.pf .pf-ds.pf-ds2.pf-pat-cta a.pf-btn{animation:pf2-breathe 3.2s ease-in-out infinite}.pf .pf-ds.pf-ds2.pf-pat-hero .pf-img-bg:not([src^="data:image/svg"]){animation:pf2-kb 26s ease-in-out infinite alternate;will-change:transform}}
@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.pf .pf-ds.pf-ds2:not(.pf-pat-hero) .pf-item,.pf .pf-ds.pf-ds2:not(.pf-pat-hero) .pf-col:not(.pf-item)>.pf-img-photo{animation:pf2-rise linear forwards;animation-timeline:view();animation-range:entry 0% entry 40%}}}
@media (prefers-reduced-motion:reduce){.pf .pf-ds.pf-ds2 *,.pf .pf-ds.pf-ds2 *::before,.pf .pf-ds.pf-ds2 *::after{animation:none!important;transition:none!important}}@media (max-width: 768px) {.pf [data-pf-slideshow] > div:nth-of-type(2){
    background: linear-gradient(180deg, rgba(16,42,58,0.78) 0%, rgba(16,42,58,0.55) 100%);
  }
}.pf [data-pf-slideshow] [data-pf-slide]{
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
}