/* Plumber footer. Typography comes from the --plh-* tokens (fixed sizes, stepped at 1099px and 640px). */
.plf{--plf-pad:clamp(20px,3vw,40px);position:relative;z-index:4;width:100%;font-family:var(--plh-font,"Plus Jakarta Sans",system-ui,sans-serif);color:var(--plh-secondary,#0b1b4d);-webkit-font-smoothing:antialiased;overflow-x:clip}
.plf *,.plf *::before,.plf *::after{box-sizing:border-box}
/* the photo has a thin dark edge baked in, so its layer is oversized and clipped by .plf__main */
.plf__main{position:relative;overflow:hidden;background:#f3f9ff}
.plf__main::before{content:"";position:absolute;inset:-10px;background:var(--plf-bg) var(--plf-pos,right center)/cover no-repeat;pointer-events:none}
/* soft white wash behind the text, strongest at the top and fading out towards the waves at the bottom */
.plf__main::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.8) 0%,rgba(255,255,255,.62) 50%,rgba(255,255,255,0) 100%);pointer-events:none}
.plf__grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(0,.8fr);gap:clamp(32px,5vw,80px);max-width:1280px;margin:0 auto;padding:calc(clamp(44px,5.5vw,76px) + 30px) var(--plf-pad) calc(clamp(90px,11vw,170px) - 30px)}
.plf .plf__h{position:relative;margin:0 0 clamp(18px,2vw,26px);padding:0 0 14px;font-family:inherit;font-size:var(--plh-fs-small,14px);font-weight:800;letter-spacing:.28em;line-height:1.3;text-transform:uppercase;color:var(--plh-secondary,#0b1b4d)}
.plf__h::after{content:"";position:absolute;left:0;bottom:0;width:38px;height:2px;border-radius:2px;background:var(--plh-primary,#1471f0)}

.plf__logo{display:inline-block;margin:0 0 16px;line-height:0}
.plf__logo img{display:block;width:auto;max-width:100%;height:clamp(46px,4.6vw,68px);margin:0}
.plf .plf__about{max-width:420px;margin:0 0 clamp(20px,2.4vw,30px);font-size:var(--plh-fs-body,16px);font-weight:500;line-height:1.65;color:var(--plh-secondary,#0b1b4d)}
/* four badges: capped width, equal 18px either side of each short divider (as in the hero), nothing before the first one */
.plf__trust{display:flex;align-items:flex-start;justify-content:flex-start;margin:0;padding:0;list-style:none}
.plf__trust li{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;flex:0 1 auto;max-width:112px;min-width:0;margin:0;padding:0 18px;text-align:center;font-size:var(--plh-fs-label,13px);font-weight:600;line-height:1.3;color:var(--plh-secondary,#0b1b4d)}
.plf__trust li:first-child{padding-left:0}
.plf__trust li:last-child{padding-right:0}
.plf__trust li+li::before{content:"";position:absolute;left:0;top:-2px;width:1px;height:32px;background:rgba(11,27,77,.22)}
.plf__ico{display:block;flex:none;width:28px;height:28px;background:linear-gradient(180deg,#38bdf8 0%,#1471f0 55%,#0b57c7 100%);-webkit-mask:var(--i) center/contain no-repeat;mask:var(--i) center/contain no-repeat}

.plf__contact,.plf__links{margin:0;padding:0;list-style:none}
/* the divider belongs to the text, so it starts after the icon and never runs under it */
.plf__contact li{display:flex;align-items:center;gap:16px;margin:0;padding:0}
.plf__badge{display:grid;place-items:center;flex:none;width:54px;height:54px;border-radius:50%;background:#fff;box-shadow:0 8px 20px rgba(11,27,77,.1)}
.plf__badge .plf__ico{width:26px;height:26px}
.plf__txt{display:flex;flex-direction:column;justify-content:center;gap:3px;flex:1 1 auto;min-width:0;padding:12px 0;border-bottom:1px solid #d3e1f2}
.plf__contact li:last-child .plf__txt{border-bottom:0}
.plf__txt strong{font-size:var(--plh-fs-body,16px);font-weight:700;line-height:1.3;color:var(--plh-secondary,#0b1b4d)}
.plf__val{font-size:var(--plh-fs-small,14px);font-weight:500;line-height:1.45;color:var(--plh-secondary,#0b1b4d);overflow-wrap:anywhere}
.plf .plf__val a{color:inherit;text-decoration:none;transition:color .2s}
.plf .plf__val a:hover{color:var(--plh-primary,#1471f0)}

.plf__links li{margin:0;border-bottom:1px solid #d3e1f2}
.plf__links li:last-child{border-bottom:0}
.plf .plf__links a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;font-size:var(--plh-fs-body,16px);font-weight:500;line-height:1.3;text-decoration:none;color:var(--plh-secondary,#0b1b4d);transition:color .2s,padding .25s}
.plf__links svg{display:block;flex:none;width:9px;height:14px;color:var(--plh-primary,#1471f0);transition:transform .25s}
.plf .plf__links a:hover{color:var(--plh-primary,#1471f0);padding-left:6px}
.plf .plf__links a:hover svg{transform:translateX(3px)}

.plf__bar{background:var(--plh-primary,#1471f0);color:#fff}
.plf__bar-in{display:flex;align-items:center;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;max-width:1280px;margin:0 auto;padding:clamp(16px,1.8vw,22px) var(--plf-pad)}
.plf .plf__copy{margin:0;font-size:var(--plh-fs-small,14px);font-weight:500;line-height:1.4;color:#fff}
.plf__legal{display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:0;list-style:none}
.plf__legal li{margin:0;padding:0}
.plf__legal li+li::before{content:"|";margin:0 clamp(12px,1.6vw,22px);color:rgba(255,255,255,.7)}
.plf .plf__legal a{font-size:var(--plh-fs-small,14px);font-weight:500;text-decoration:none;color:#fff;opacity:.95;transition:opacity .2s}
.plf .plf__legal a:hover{opacity:1;text-decoration:underline}

/* entrance; hidden only until the script reveals it (failsafe in the inline script) */
.plf [data-plf]{transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.plf__col--contact[data-plf]{transition-delay:.12s}
.plf__col--links[data-plf]{transition-delay:.24s}
.plf.plf-pre [data-plf]{opacity:0;transform:translateY(28px)}
@media (prefers-reduced-motion:reduce){.plf.plf-pre [data-plf]{opacity:1;transform:none}.plf [data-plf]{transition:none}}

/* the theme's footer wrapper and the row/column that hold this section lose their padding */
.site-footer:has(.plf),.main-footer:has(.plf){padding:0!important;margin:0!important;background:transparent!important}
.vc_row:has(.plf),.vc_row:has(.plf) .ld-container,.vc_row:has(.plf) .ld-row,.vc_row:has(.plf) .wpb_column,.vc_row:has(.plf) .vc_column-inner{padding-left:0!important;padding-right:0!important;margin-left:0!important;margin-right:0!important;max-width:none!important}

/* tablet: about spans the top, contact and links side by side */
@media (max-width:1099px){
.plf__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px 40px;padding-bottom:calc(clamp(80px,14vw,130px) - 30px)}
.plf__col--about{grid-column:1/-1}
.plf .plf__about{max-width:none}
.plf__trust{max-width:none}
}
/* mobile: one column, trust badges 2x2, bottom bar centred */
@media (max-width:640px){
.plf__grid{grid-template-columns:minmax(0,1fr);gap:34px}
/* 2x2, every badge centred in its half; the divider sits on the centre line */
.plf__trust{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 0}
.plf__trust li,.plf__trust li:first-child,.plf__trust li:last-child{max-width:none;width:100%;padding:0 12px}
.plf__trust li:nth-child(odd)::before{display:none}
.plf__badge{width:48px;height:48px}
.plf__bar-in{flex-direction:column;justify-content:center;text-align:center}
.plf__legal{justify-content:center}
.plf .plf__copy,.plf .plf__legal a{font-size:clamp(10.5px,3.1vw,12px)}
.plf__legal li+li::before{margin:0 8px}
}

/* v1.17: no dividers under the contact rows */
.plf .plf__txt{border-bottom:0}


/* v1.22.0: the top of the footer fades in from transparent (same soft edge as the bottom of the hero) */
.plf__main{background:transparent}
.plf__main::before,.plf__main::after{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 clamp(70px,9vw,130px));mask-image:linear-gradient(to bottom,transparent 0,#000 clamp(70px,9vw,130px))}

/* v1.24.3: less space above the footer content (the soft transparent fade-in at the very top stays) */
html .plf .plf__grid{padding-top:clamp(28px,3vw,44px)}
