/* =========================================================
   PuntualPayroll — Home redesign (motion system + sections)
   Loaded AFTER style.css so it wins. Front page only.
   ========================================================= */
:root{
	--pp-mist:#F4F8FD;
	--pp-navy:#14315F;
	--pp-navy-deep:#0B2350;
	--pp-mint:#1FA971;
	--pp-orange:#F47A20;
	--pp-ease:cubic-bezier(.22,.61,.36,1);
	--pp-ease-out:cubic-bezier(.16,1,.3,1);
}
html.pp-noscroll{overflow:hidden}

/* ---- reveal = movement (translate/clip), not a bare fade ---- */
[data-reveal]{opacity:.001;transform:translateY(30px);transition:opacity .6s var(--pp-ease-out),transform .7s var(--pp-ease-out)}
[data-reveal].in{opacity:1;transform:none}
[data-reveal="left"]{transform:translateX(-40px)}
[data-reveal="right"]{transform:translateX(40px)}
[data-reveal="wipe"]{opacity:1;transform:none;clip-path:inset(0 100% 0 0);transition:clip-path .8s var(--pp-ease-out)}
[data-reveal="wipe"].in{clip-path:inset(0 0 0 0)}
[data-reveal-delay="1"]{transition-delay:.08s}
[data-reveal-delay="2"]{transition-delay:.16s}
[data-reveal-delay="3"]{transition-delay:.24s}
@media (prefers-reduced-motion: reduce){
	[data-reveal]{opacity:1 !important;transform:none !important;clip-path:none !important}
	[data-parallax]{transform:none !important}
}

/* ============ STICKY HEADER (real fix: stick the template-part) ============ */
.wp-site-blocks > header{position:sticky;top:0;z-index:1000}
.puntualpayroll-header{position:static !important;background:rgba(255,255,255,.86);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s}
.pp-head{transition:padding .3s var(--pp-ease),min-height .3s var(--pp-ease)}
.pp-head[data-header].is-scrolled{min-height:56px;padding-top:.5rem;padding-bottom:.5rem}
.puntualpayroll-header:has(.is-scrolled){border-bottom-color:var(--pp-line);box-shadow:0 6px 24px -18px rgba(11,35,80,.5)}
.pp-head[data-header].is-scrolled .pp-logo{font-size:1.32rem}
.pp-logo{transition:font-size .3s var(--pp-ease)}
.pp-btn--lg{padding:1rem 1.9rem;font-size:1rem}

/* mobile drawer */
.pp-drawer{display:none;position:fixed;inset:0 0 0 auto;width:min(84vw,340px);background:#fff;box-shadow:-20px 0 60px -30px rgba(11,35,80,.5);transform:translateX(100%);visibility:hidden;pointer-events:none;transition:transform .38s var(--pp-ease),visibility .38s;z-index:1200;padding:5rem 1.6rem 2rem}
.pp-drawer.is-open{transform:translateX(0);visibility:visible;pointer-events:auto}
.pp-drawer__nav{display:flex;flex-direction:column;gap:.3rem}
.pp-drawer__nav a{padding:.9rem .4rem;font-weight:600;color:var(--pp-heading);border-bottom:1px solid var(--pp-line);text-decoration:none}
.pp-drawer__client{display:flex;align-items:center;gap:.5rem;color:var(--pp-accent-2) !important}
.pp-drawer .pp-btn{margin-top:1rem}

/* ============ HERO (floating parallax cards + underline marker) ============ */
.pp-hero2{position:relative;overflow:hidden;background:radial-gradient(90% 70% at 50% -10%,#EAF2FE 0%,transparent 60%),linear-gradient(180deg,#FBFDFF,#EEF4FC);isolation:isolate}
.pp-hero2::before,.pp-hero2::after{content:"";position:absolute;border-radius:50%;filter:blur(60px);z-index:0;opacity:.5}
.pp-hero2::before{width:420px;height:420px;background:rgba(37,99,201,.16);top:-140px;left:-120px}
.pp-hero2::after{width:360px;height:360px;background:rgba(244,122,32,.14);bottom:-120px;right:-100px}
.pp-hero2__stage{position:relative;max-width:1240px;margin:0 auto;min-height:min(86vh,760px);display:flex;align-items:center;justify-content:center;padding:clamp(3rem,7vw,5.5rem) 2rem;perspective:1200px;z-index:1}
.pp-hero2__center{max-width:680px;text-align:center;z-index:3}
.pp-hero2__eyebrow{display:inline-block;color:var(--pp-accent-2);font-weight:700;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;background:#fff;border:1px solid var(--pp-line);padding:.5rem 1rem;border-radius:40px;box-shadow:0 8px 24px -16px rgba(11,35,80,.4)}
.pp-hero2__title{font-family:var(--wp--preset--font-family--heading);color:var(--pp-heading);font-weight:700;font-size:clamp(2.5rem,6vw,4.4rem);line-height:1.04;letter-spacing:-.03em;margin:1.4rem 0 0}
.pp-mark{position:relative;color:var(--pp-accent);white-space:nowrap}
.pp-mark__u{position:absolute;left:-2%;bottom:-.16em;width:104%;height:.4em;overflow:visible}
.pp-mark__u path{fill:none;stroke:var(--pp-accent);stroke-width:6;stroke-linecap:round;stroke-dasharray:340;stroke-dashoffset:340;animation:pp-draw 1s var(--pp-ease-out) .5s forwards}
@keyframes pp-draw{to{stroke-dashoffset:0}}
@media (prefers-reduced-motion: reduce){.pp-mark__u path{animation:none;stroke-dashoffset:0}}
.pp-hero2__sub{color:var(--pp-text);font-size:1.2rem;line-height:1.6;margin:1.3rem auto 0;max-width:44ch}
.pp-hero2__cta{display:flex;gap:.9rem;justify-content:center;margin-top:2rem;flex-wrap:wrap}
.pp-hero2__trust{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.7rem;color:var(--pp-dim);font-size:.9rem;font-weight:600}
.pp-hero2__trust .sr-icon{color:var(--pp-mint)}

/* floating cards */
.pp-fcard{position:absolute;width:250px;background:#fff;border:1px solid var(--pp-line);border-radius:16px;box-shadow:0 30px 60px -30px rgba(11,35,80,.4);padding:1rem 1.1rem;z-index:2;transform-style:preserve-3d;transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .25s var(--pp-ease);will-change:transform}
.pp-fcard__hd{display:flex;align-items:center;justify-content:space-between;font-family:var(--wp--preset--font-family--heading);font-weight:700;font-size:.82rem;color:var(--pp-heading);margin-bottom:.7rem}
.pp-fcard--tl{top:14%;left:1%}
.pp-fcard--tr{top:9%;right:0}
.pp-fcard--bl{bottom:15%;left:3%}
.pp-fcard--br{bottom:12%;right:1%}
.pp-fchip,.pp-fok{font-weight:600;font-size:.66rem;background:var(--pp-mist);color:var(--pp-dim);padding:.2rem .5rem;border-radius:20px}
.pp-fok{background:#E6F6EE;color:var(--pp-mint)}
.pp-fmini,.pp-frow{display:flex;align-items:center;gap:.5rem;font-size:.72rem;padding:.32rem 0}
.pp-fav{flex:none;width:24px;height:24px;border-radius:50%;background:#EEF4FC;color:var(--pp-accent-2);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.62rem}
.pp-fmini__t{flex:1;color:var(--pp-text);font-weight:600}
.pp-fmini__v{color:var(--pp-dim);font-variant-numeric:tabular-nums}
.pp-toggle{width:26px;height:15px;border-radius:20px;background:var(--pp-mint);position:relative;flex:none}
.pp-toggle::after{content:"";position:absolute;width:11px;height:11px;border-radius:50%;background:#fff;top:2px;right:2px}
.pp-frow{border-top:1px solid var(--pp-line)}
.pp-frow__t{flex:1;color:var(--pp-heading);font-weight:700;display:flex;flex-direction:column;line-height:1.2}
.pp-frow__t small{color:var(--pp-dim);font-weight:500;font-size:.64rem}
.pp-frow__v{font-weight:800;color:var(--pp-heading);font-variant-numeric:tabular-nums}
.pp-fbar{height:6px;border-radius:6px;background:var(--pp-line);overflow:hidden;margin-bottom:.6rem}
.pp-fbar span{display:block;height:100%;width:62%;background:linear-gradient(90deg,var(--pp-accent-2),#2f6fd6);border-radius:6px}
.pp-fbar--full span{width:100%;background:var(--pp-mint)}
.pp-fbenefits{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.pp-fbenefits li{display:flex;align-items:center;gap:.55rem;font-size:.82rem;font-weight:600;color:var(--pp-heading)}
.pp-fdot{width:22px;height:22px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:.7rem}
.pp-fdot--red{background:#FDECEC;color:#e5484d}
.pp-fdot--blue{background:#E7F2FE;color:#2f6fd6}
.pp-fdot--gold{background:#FBF1DA;color:#b78a1a}
.pp-fcompliance{font-size:.74rem;color:var(--pp-text);margin:0 0 .7rem;line-height:1.4}

/* hide floating cards where they'd overlap the text */
@media (max-width:1160px){.pp-fcard--tl,.pp-fcard--bl{display:none}}
@media (max-width:980px){
	.pp-fcard{display:none}
	.pp-hero2__stage{min-height:auto;padding-top:3rem;padding-bottom:3.5rem}
	.pp-nav,.pp-clientes{display:none}
	.pp-burger{display:flex}
	.pp-drawer{display:block}
}

/* ============ APP SECTION (accordion + phone frame / mobile carousel) ============ */
.pp-app{background:linear-gradient(180deg,var(--pp-navy-deep),var(--pp-navy));color:#fff;padding:clamp(3.5rem,7vw,6rem) 2rem;overflow:hidden}
.pp-app__wrap{max-width:1120px;margin:0 auto}
.pp-app__head{text-align:center;max-width:720px;margin:0 auto 3.2rem}
.pp-app__sub{color:#c3d3ee;font-size:1.1rem;margin:1rem auto 0;max-width:56ch}
.pp-app__sub strong{color:#fff}
.pp-app__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:3.5rem;align-items:center}

/* accordion */
.pp-acc{position:relative;padding-left:1.4rem}
.pp-acc__progress{position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:3px;background:rgba(255,255,255,.14)}
.pp-acc__progress::after{content:"";position:absolute;left:0;top:0;width:100%;border-radius:3px;background:var(--pp-orange);height:calc(var(--p,.25)*100%);transition:height .5s var(--pp-ease)}
.pp-acc__item{border-bottom:1px solid rgba(255,255,255,.1)}
.pp-acc__btn{display:flex;align-items:center;gap:.9rem;width:100%;background:none;border:0;cursor:pointer;padding:1.15rem 0;text-align:left;color:#c3d3ee;font-family:var(--wp--preset--font-family--heading);font-size:1.15rem;font-weight:700;transition:color .25s}
.pp-acc__item.is-open .pp-acc__btn{color:#fff}
.pp-acc__ico{flex:none;width:40px;height:40px;border-radius:11px;background:rgba(255,255,255,.08);color:#8fb4ff;display:flex;align-items:center;justify-content:center;transition:.25s}
.pp-acc__item.is-open .pp-acc__ico{background:var(--pp-orange);color:#fff}
.pp-acc__title{flex:1}
.pp-acc__chev{flex:none;width:12px;height:12px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .3s;opacity:.6}
.pp-acc__item.is-open .pp-acc__chev{transform:rotate(45deg)}
.pp-acc__panel{max-height:0;overflow:hidden;transition:max-height .4s var(--pp-ease)}
.pp-acc__panel p{color:#a9bbdb;font-size:1rem;line-height:1.6;padding:0 0 1.15rem 3.3rem;margin:0}

/* phone frame + synced screen track */
.pp-app__device{display:flex;justify-content:center}
.pp-phone2{width:300px;background:#0a1f45;border:8px solid #0a1f45;border-radius:38px;box-shadow:0 40px 80px -30px rgba(0,0,0,.6);overflow:hidden;position:relative}
.pp-phone2__notch{position:absolute;top:10px;left:50%;transform:translateX(-50%);width:110px;height:22px;background:#0a1f45;border-radius:0 0 16px 16px;z-index:3}
.pp-phone2__track{display:flex;width:100%;transform:translateX(calc(var(--i,0)*-100%));transition:transform .55s var(--pp-ease-out)}
.pp-scr{flex:0 0 100%;background:#fff;min-height:420px;padding:2.3rem 1.1rem 1.1rem;display:flex;flex-direction:column;gap:.7rem}
.pp-scr__top{background:var(--pp-mist);border-radius:14px;padding:1rem;text-align:left}
.pp-scr__top--accent{background:var(--pp-accent-2);color:#fff}
.pp-scr__top small{display:block;font-size:.7rem;color:var(--pp-dim)}
.pp-scr__top--accent small{color:rgba(255,255,255,.8)}
.pp-scr__top b{font-family:var(--wp--preset--font-family--heading);font-size:1.7rem;color:var(--pp-heading);display:block;line-height:1.1;font-variant-numeric:tabular-nums}
.pp-scr__top--accent b{color:#fff}
.pp-scr__top span{font-size:.72rem;color:var(--pp-dim)}
.pp-scr__top--accent span{color:rgba(255,255,255,.8)}
.pp-scr__ok{color:var(--pp-mint) !important}
.pp-scr__list{display:flex;flex-direction:column;gap:.4rem}
.pp-scr__row{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--pp-text);border:1px solid var(--pp-line);border-radius:10px;padding:.55rem .7rem}
.pp-scr__row span:not(.pp-fav){flex:1}
.pp-scr__row b{color:var(--pp-heading);font-variant-numeric:tabular-nums}
.pp-scr__card{border:1px solid var(--pp-line);border-radius:12px;padding:.8rem}
.pp-scr__li{display:flex;justify-content:space-between;font-size:.82rem;padding:.4rem 0;color:var(--pp-text)}
.pp-scr__li:not(:last-child){border-bottom:1px solid var(--pp-line)}
.pp-scr__li b{color:var(--pp-heading)}
.pp-scr__li--tot b{color:var(--pp-accent)}
.pp-scr__chart{flex:1;display:flex;align-items:flex-end;gap:.5rem;background:var(--pp-mist);border-radius:12px;padding:1rem;min-height:150px}
.pp-scr__chart span{flex:1;background:linear-gradient(180deg,var(--pp-accent-2),#2f6fd6);border-radius:5px 5px 0 0;opacity:.8}
.pp-scr__chart span.is-accent{background:linear-gradient(180deg,var(--pp-orange),#e46c14);opacity:1}
.pp-scr__cta{margin-top:auto;background:var(--pp-orange);color:#fff;text-align:center;font-weight:700;font-size:.85rem;padding:.8rem;border-radius:12px}
.pp-scr .pp-fav{width:26px;height:26px;font-size:.62rem}

/* mobile carousel (hidden on desktop) */
.pp-app__carousel{display:none}
.pp-app__ctrack{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:1.5rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.pp-app__ctrack::-webkit-scrollbar{display:none}
.pp-app__slide{flex:0 0 100%;scroll-snap-align:center;display:flex;flex-direction:column;align-items:center;text-align:center}
.pp-app__sep{display:block;width:64px;height:3px;border-radius:3px;background:var(--pp-orange);margin:1.4rem 0}
.pp-app__slidecopy .pp-acc__ico{margin:0 auto .8rem}
.pp-app__slidecopy h3{color:#fff;font-size:1.25rem;font-weight:800;margin:0 0 .5rem}
.pp-app__slidecopy p{color:#a9bbdb;font-size:1rem;max-width:34ch;margin:0 auto}
.pp-app__cprogress{display:block;height:3px;border-radius:3px;background:rgba(255,255,255,.14);margin:1.8rem auto 0;max-width:220px;position:relative}
.pp-app__cprogress::after{content:"";position:absolute;left:0;top:0;height:100%;border-radius:3px;background:var(--pp-orange);width:calc(var(--p,.25)*100%);transition:width .4s var(--pp-ease)}
.pp-app__dots{display:flex;gap:.5rem;justify-content:center;margin-top:1rem}
.pp-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.25);border:0;cursor:pointer;padding:0;transition:.25s}
.pp-dot.is-on{background:var(--pp-orange);width:22px;border-radius:5px}

@media (max-width:860px){
	.pp-app__grid{display:none}
	.pp-app__carousel{display:block}
}

/* ============ INDUSTRIES MARQUEE ============ */
.pp-marquee-sec{border-top:1px solid var(--pp-line);border-bottom:1px solid var(--pp-line)}
.pp-marquee-sec__lead{text-align:center;color:var(--pp-dim);font-weight:600;font-size:.9rem;margin:0 0 1.3rem}
.pp-marquee{display:flex;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.pp-marquee__track{display:flex;gap:1rem;list-style:none;margin:0;padding:0 .5rem;flex:none;animation:pp-marquee 32s linear infinite}
.pp-marquee.is-static .pp-marquee__track{animation:none;flex-wrap:wrap;justify-content:center}
.pp-marquee:hover .pp-marquee__track{animation-play-state:paused}
@keyframes pp-marquee{to{transform:translateX(-100%)}}
.pp-chip{display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap;background:var(--pp-mist);border:1px solid var(--pp-line);color:var(--pp-heading);font-weight:600;font-size:.9rem;padding:.6rem 1.1rem;border-radius:40px}
.pp-chip .sr-icon{color:var(--pp-accent)}

/* ============ SERVICES — segmented tabs ============ */
.pp-svc2{max-width:1080px;margin:0 auto;padding:0 2rem}
.pp-svc2__head{text-align:center;margin-bottom:2.4rem}
.pp-tabs{display:inline-flex;gap:.3rem;background:var(--pp-mist);border:1px solid var(--pp-line);border-radius:40px;padding:.35rem;margin:0 auto 2.2rem;display:flex;width:max-content;max-width:100%;flex-wrap:wrap;justify-content:center}
.pp-tab{display:inline-flex;align-items:center;gap:.5rem;border:0;background:none;cursor:pointer;font-family:var(--wp--preset--font-family--heading);font-weight:700;font-size:.98rem;color:var(--pp-text);padding:.7rem 1.3rem;border-radius:40px;transition:.2s}
.pp-tab__ico{display:inline-flex;color:var(--pp-accent-2)}
.pp-tab.is-on{background:#fff;color:var(--pp-heading);box-shadow:0 6px 18px -10px rgba(11,35,80,.35)}
.pp-tab.is-on .pp-tab__ico{color:var(--pp-accent)}
.pp-tabs-wrap{display:flex;justify-content:center}
[data-tabs]{display:flex;flex-direction:column;align-items:center}
.pp-tabpanel{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:center;width:100%;max-width:1000px;animation:pp-slidein .4s var(--pp-ease-out)}
.pp-tabpanel[hidden]{display:none}
@keyframes pp-slidein{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:none}}
.pp-tabpanel__tag{color:var(--pp-accent);font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;margin:0 0 .5rem}
.pp-tabpanel__title{font-family:var(--wp--preset--font-family--heading);color:var(--pp-heading);font-size:1.9rem;font-weight:800;margin:0 0 .8rem}
.pp-tabpanel__blurb{color:var(--pp-text-2);font-size:1.05rem;line-height:1.6;margin:0 0 1.4rem}
.pp-tabpanel__list{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
.pp-tabpanel__list li{display:flex;gap:.8rem;align-items:flex-start;background:#fff;border:1px solid var(--pp-line);border-radius:12px;padding:.9rem 1rem}
.pp-tabpanel__ck{flex:none;width:38px;height:38px;border-radius:10px;background:#EEF4FC;color:var(--pp-accent-2);display:flex;align-items:center;justify-content:center}
.pp-tabpanel__list strong{display:block;color:var(--pp-heading);font-size:.95rem;margin-bottom:.15rem}
.pp-tabpanel__list span span,.pp-tabpanel__list li>span:last-child{color:var(--pp-text-2);font-size:.86rem;line-height:1.45}
@media (max-width:820px){.pp-tabpanel{grid-template-columns:1fr;gap:1.6rem}}

/* ============ METRICS BAND (count-up) ============ */
.pp-metrics__grid{max-width:1180px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;padding:0 2rem}
.pp-metrics__powered{display:flex;align-items:center;gap:.6rem;font-weight:600;color:#dbe7fb;font-size:.92rem;max-width:230px}
.pp-metrics__prism{background:#fff;color:var(--pp-navy-deep);font-weight:800;font-size:.82rem;padding:.4rem .7rem;border-radius:8px}
.pp-metric{text-align:center}
.pp-metric__n{font-family:var(--wp--preset--font-family--heading);font-weight:800;font-size:clamp(1.9rem,3vw,2.6rem);color:#fff;line-height:1;font-variant-numeric:tabular-nums}
.pp-metric__k{color:#9fb4d6;font-size:.85rem;font-weight:600;margin-top:.3rem}
@media (max-width:720px){.pp-metrics__powered{max-width:none;justify-content:center;width:100%;text-align:center}.pp-metrics__grid{justify-content:center;gap:1.6rem 2rem}}

/* ============ WHY — bento ============ */
.pp-why2{max-width:1100px;margin:0 auto;padding:0 2rem}
.pp-why2__head{text-align:center;margin-bottom:2.6rem}
.pp-why2__bento{display:grid;grid-template-columns:1.15fr 1fr;gap:1.3rem}
.pp-why2__feature{background:linear-gradient(160deg,var(--pp-navy),var(--pp-navy-deep));color:#fff;border-radius:20px;padding:2.4rem;display:flex;flex-direction:column;justify-content:center}
.pp-why2__feature h3{color:#fff;font-family:var(--wp--preset--font-family--heading);font-size:1.7rem;font-weight:800;margin:1.2rem 0 .7rem}
.pp-why2__feature p{color:#c3d3ee;font-size:1.05rem;line-height:1.6;margin:0}
.pp-why2__proof{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.5rem;color:#8fd6b4;font-weight:600;font-size:.9rem}
.pp-why2__proof .sr-icon{color:var(--pp-mint)}
.pp-why2__ico{display:inline-flex;width:52px;height:52px;border-radius:14px;background:#EEF4FC;color:var(--pp-accent-2);align-items:center;justify-content:center;flex:none}
.pp-why2__ico--lg{width:60px;height:60px;background:rgba(255,255,255,.12);color:#fff}
.pp-why2__col{display:flex;flex-direction:column;gap:1.3rem}
.pp-why2__cell{display:flex;gap:1rem;background:#fff;border:1px solid var(--pp-line);border-radius:16px;padding:1.5rem;flex:1;align-items:flex-start}
.pp-why2__cell h3{color:var(--pp-heading);font-size:1.15rem;font-weight:800;margin:0 0 .3rem}
.pp-why2__cell p{color:var(--pp-text-2);font-size:.95rem;line-height:1.5;margin:0}
@media (max-width:820px){.pp-why2__bento{grid-template-columns:1fr}}

/* ============ HOW — horizontal timeline ============ */
.pp-how{max-width:1080px;margin:0 auto;padding:0 2rem}
.pp-how__head{text-align:center;margin-bottom:3rem}
.pp-timeline{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;position:relative}
.pp-timeline::before{content:"";position:absolute;top:32px;left:16%;right:16%;height:2px;background:repeating-linear-gradient(90deg,var(--pp-accent) 0 10px,transparent 10px 18px)}
.pp-tl{text-align:center;position:relative}
.pp-tl__node{width:66px;height:66px;border-radius:50%;background:#fff;border:2px solid var(--pp-accent);color:var(--pp-accent);display:flex;align-items:center;justify-content:center;margin:0 auto;position:relative;z-index:2;box-shadow:0 10px 24px -12px rgba(244,122,32,.5)}
.pp-tl__num{display:block;font-family:var(--wp--preset--font-family--heading);font-weight:800;color:var(--pp-accent);font-size:.85rem;letter-spacing:.1em;margin:1rem 0 .3rem}
.pp-tl__title{color:var(--pp-heading);font-size:1.3rem;font-weight:800;margin:0 0 .5rem}
.pp-tl__text{color:var(--pp-text-2);font-size:.98rem;line-height:1.55;margin:0 auto;max-width:30ch}
@media (max-width:760px){.pp-timeline{grid-template-columns:1fr;gap:2.4rem}.pp-timeline::before{display:none}}

/* ============ TESTIMONIALS — navy carousel ============ */
.pp-tst{background:linear-gradient(180deg,var(--pp-navy-deep),#081a3d);color:#fff;padding:clamp(3.5rem,7vw,6rem) 2rem;overflow:hidden}
.pp-tst__wrap{max-width:820px;margin:0 auto;text-align:center}
.pp-tst__head{margin-bottom:2.6rem}
.pp-tst__track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.pp-tst__track::-webkit-scrollbar{display:none}
.pp-tst__slide{flex:0 0 100%;scroll-snap-align:center;padding:0 1rem}
.pp-tst__stars{color:var(--pp-orange);font-size:1.1rem;letter-spacing:3px;margin-bottom:1.3rem}
.pp-tst__quote{font-family:var(--wp--preset--font-family--heading);font-size:clamp(1.3rem,2.6vw,1.9rem);line-height:1.4;color:#fff;font-weight:600;margin:0 auto 1.8rem;max-width:26ch}
.pp-tst__by{display:inline-flex;align-items:center;gap:.8rem}
.pp-tst__av{width:48px;height:48px;border-radius:50%;background:var(--pp-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800}
.pp-tst__meta{text-align:left}
.pp-tst__meta strong{display:block;color:#fff;font-size:1rem}
.pp-tst__meta span{color:#9fb4d6;font-size:.85rem}
.pp-tst__progress{display:block;height:3px;border-radius:3px;background:rgba(255,255,255,.14);max-width:220px;margin:2.2rem auto 0;position:relative}
.pp-tst__progress::after{content:"";position:absolute;left:0;top:0;height:100%;border-radius:3px;background:var(--pp-orange);width:calc(var(--p,.33)*100%);transition:width .4s var(--pp-ease)}
.pp-tst__dots{display:flex;gap:.5rem;justify-content:center;margin-top:1rem}

/* ============ FAQ ============ */
.pp-faq{max-width:820px;margin:0 auto;padding:0 2rem}
.pp-faq__head{text-align:center;margin-bottom:2.4rem}
.pp-faq__list{display:flex;flex-direction:column;gap:.8rem}
.pp-faq__item{border:1px solid var(--pp-line);border-radius:14px;background:#fff;overflow:hidden;transition:border-color .25s,box-shadow .25s}
.pp-faq__item.is-open{border-color:transparent;box-shadow:0 16px 40px -22px rgba(11,35,80,.4)}
.pp-faq__q{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;background:none;border:0;cursor:pointer;text-align:left;padding:1.25rem 1.4rem;font-family:var(--wp--preset--font-family--heading);font-size:1.08rem;font-weight:700;color:var(--pp-heading)}
.pp-faq__plus{position:relative;flex:none;width:18px;height:18px}
.pp-faq__plus::before,.pp-faq__plus::after{content:"";position:absolute;background:var(--pp-accent);border-radius:2px;transition:transform .3s var(--pp-ease)}
.pp-faq__plus::before{left:0;top:8px;width:18px;height:2px}
.pp-faq__plus::after{left:8px;top:0;width:2px;height:18px}
.pp-faq__item.is-open .pp-faq__plus::after{transform:rotate(90deg);opacity:0}
.pp-faq__a{max-height:0;overflow:hidden;transition:max-height .4s var(--pp-ease)}
.pp-faq__a p{color:var(--pp-text-2);font-size:1rem;line-height:1.6;padding:0 1.4rem 1.3rem;margin:0}

/* ============================================================
   ITERATION 2 — app(light+iphone), services carousel, stepper,
   faq split, cta map. Overrides earlier blocks where reused.
   ============================================================ */

/* ---------- APP SECTION 2 (light + iPhone + floating windows) ---------- */
.pp-app2{background:var(--pp-mist);padding:clamp(3.5rem,7vw,6rem) 2rem;overflow:hidden}
.pp-app2__wrap{max-width:1120px;margin:0 auto}
.pp-app2__head{text-align:center;max-width:720px;margin:0 auto 3.4rem}
.pp-app2__sub{color:var(--pp-text-2);font-size:1.1rem;margin:1rem auto 0;max-width:56ch}
.pp-app2__sub strong{color:var(--pp-heading)}
.pp-app2__grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}

/* accordion 2 (card style) */
.pp-acc2{display:flex;flex-direction:column;gap:.8rem}
.pp-acc2__item{background:#fff;border:1px solid var(--pp-line);border-radius:16px;overflow:hidden;transition:box-shadow .3s,border-color .3s}
.pp-acc2__item.is-open{border-color:transparent;box-shadow:0 20px 46px -24px rgba(11,35,80,.35)}
.pp-acc2__btn{display:flex;align-items:center;gap:1rem;width:100%;background:none;border:0;cursor:pointer;text-align:left;padding:1.15rem 1.2rem;font-family:var(--wp--preset--font-family--heading);font-size:1.12rem;font-weight:700;color:var(--pp-text)}
.pp-acc2__item.is-open .pp-acc2__btn{color:var(--pp-heading)}
.pp-acc2__ico{flex:none;width:44px;height:44px;border-radius:12px;background:#EEF4FC;color:var(--pp-accent-2);display:flex;align-items:center;justify-content:center;transition:.3s}
.pp-acc2__item.is-open .pp-acc2__ico{background:var(--pp-accent);color:#fff}
.pp-acc2__title{flex:1}
.pp-acc2__chev{flex:none;width:11px;height:11px;border-right:2px solid var(--pp-dim);border-bottom:2px solid var(--pp-dim);transform:rotate(-45deg);transition:transform .3s}
.pp-acc2__item.is-open .pp-acc2__chev{transform:rotate(45deg);border-color:var(--pp-accent)}
.pp-acc2__panel{max-height:0;overflow:hidden;transition:max-height .4s var(--pp-ease)}
.pp-acc2__panel p{color:var(--pp-text-2);font-size:1rem;line-height:1.6;padding:0 1.2rem .4rem 4rem;margin:0}
.pp-acc2__bar{display:block;height:3px;border-radius:3px;background:var(--pp-line);margin:.4rem 1.2rem 1.1rem 4rem;position:relative;overflow:hidden}
.pp-acc2__bar::after{content:"";position:absolute;left:0;top:0;height:100%;width:100%;background:var(--pp-accent);transform-origin:left;animation:pp-accbar 5.2s linear}
.pp-acc2__item:not(.is-open) .pp-acc2__bar{display:none}
@keyframes pp-accbar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media (prefers-reduced-motion: reduce){.pp-acc2__bar::after{animation:none}}

/* iPhone stage + floating windows */
.pp-app2__stage{position:relative;display:flex;align-items:center;justify-content:center;min-height:560px;perspective:1200px}
.pp-iphone{width:300px;background:#0b0b12;border-radius:46px;padding:11px;box-shadow:0 50px 90px -30px rgba(11,35,80,.5);position:relative;z-index:2;transform-style:preserve-3d;transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .3s var(--pp-ease)}
.pp-iphone::before{content:"";position:absolute;right:-3px;top:150px;width:3px;height:64px;background:#0b0b12;border-radius:0 3px 3px 0}
.pp-iphone::after{content:"";position:absolute;left:-3px;top:120px;width:3px;height:100px;background:#0b0b12;border-radius:3px 0 0 3px}
.pp-iphone__island{position:absolute;top:22px;left:50%;transform:translateX(-50%);width:98px;height:26px;background:#000;border-radius:20px;z-index:6}
.pp-iphone__screen{border-radius:36px;overflow:hidden;background:#fff}
.pp-iphone__track{display:flex;transform:translateX(calc(var(--i,0)*-100%));transition:transform .55s var(--pp-ease-out)}
.pp-iphone .pp-scr{flex:0 0 100%;min-height:520px}
.pp-iphone--sm{width:260px}
.pp-iphone--sm .pp-scr{min-height:460px}
.pp-fwin{position:absolute;z-index:3;background:#fff;border:1px solid var(--pp-line);border-radius:14px;box-shadow:0 24px 50px -24px rgba(11,35,80,.4);padding:.8rem 1rem;display:flex;align-items:center;gap:.7rem;will-change:transform}
.pp-fwin--a{top:8%;left:-2%}
.pp-fwin--b{bottom:10%;right:-2%}
.pp-fwin__ok{flex:none;width:34px;height:34px;border-radius:10px;background:#E6F6EE;color:var(--pp-mint);display:flex;align-items:center;justify-content:center}
.pp-fwin__t{display:flex;flex-direction:column;line-height:1.2}
.pp-fwin__t strong{color:var(--pp-heading);font-size:.85rem}
.pp-fwin__t small{color:var(--pp-dim);font-size:.72rem}

/* app mobile carousel */
.pp-app2__carousel{display:none}
.pp-app2__ctrack{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:1.5rem;scrollbar-width:none}
.pp-app2__ctrack::-webkit-scrollbar{display:none}
.pp-app2__slide{flex:0 0 100%;scroll-snap-align:center;display:flex;flex-direction:column;align-items:center;text-align:center}
.pp-app2__sep{display:block;width:64px;height:3px;border-radius:3px;background:var(--pp-accent);margin:1.4rem 0}
.pp-app2__slidecopy .pp-acc2__ico{margin:0 auto .8rem}
.pp-app2__slidecopy h3{color:var(--pp-heading);font-size:1.25rem;font-weight:800;margin:0 0 .5rem}
.pp-app2__slidecopy p{color:var(--pp-text-2);font-size:1rem;max-width:34ch;margin:0 auto}
.pp-app2__dots{display:flex;gap:.5rem;justify-content:center;margin-top:1.6rem}
.pp-app2__dots .pp-dot{background:var(--pp-line)}
.pp-app2__dots .pp-dot.is-on{background:var(--pp-accent)}
@media (max-width:860px){.pp-app2__grid{display:none}.pp-app2__carousel{display:block}}

/* ---------- SERVICES — peek carousel ---------- */
.pp-svc3__head{text-align:center;max-width:720px;margin:0 auto 2.4rem}
.pp-svc3{position:relative;max-width:1120px;margin:0 auto}
.pp-svc3__track{display:flex;gap:1.6rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:1rem clamp(1rem,11%,9rem);scrollbar-width:none}
.pp-svc3__track::-webkit-scrollbar{display:none}
.pp-svc3__card{flex:0 0 min(78%,760px);scroll-snap-align:center;display:grid;grid-template-columns:1fr 1fr;gap:2.2rem;background:#fff;border:1px solid var(--pp-line);border-radius:22px;padding:2.4rem;box-shadow:0 30px 60px -34px rgba(11,35,80,.3)}
.pp-svc3__ico{display:inline-flex;width:60px;height:60px;border-radius:16px;background:#EEF4FC;color:var(--pp-accent);align-items:center;justify-content:center;margin-bottom:1.1rem}
.pp-svc3__tag{color:var(--pp-accent);font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;margin:0 0 .4rem}
.pp-svc3__name{font-family:var(--wp--preset--font-family--heading);color:var(--pp-heading);font-size:1.9rem;font-weight:800;margin:0 0 .7rem}
.pp-svc3__blurb{color:var(--pp-text-2);font-size:1.02rem;line-height:1.6;margin:0 0 1.4rem}
.pp-svc3__list{list-style:none;margin:0;padding:0;display:grid;gap:.7rem;align-content:center}
.pp-svc3__list li{display:flex;gap:.8rem;align-items:flex-start}
.pp-svc3__ck{flex:none;width:38px;height:38px;border-radius:10px;background:#E6F6EE;color:var(--pp-mint);display:flex;align-items:center;justify-content:center}
.pp-svc3__list strong{display:block;color:var(--pp-heading);font-size:.95rem;margin-bottom:.15rem}
.pp-svc3__list li>span:last-child{color:var(--pp-text-2);font-size:.86rem;line-height:1.45}
.pp-svc3__controls{display:flex;align-items:center;justify-content:center;gap:1.2rem;margin-top:1.6rem}
.pp-arrow{width:46px;height:46px;border-radius:50%;background:#fff;border:1px solid var(--pp-line);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.2s}
.pp-arrow:hover{border-color:var(--pp-accent);box-shadow:0 8px 20px -12px rgba(11,35,80,.4)}
.pp-arrow span{width:11px;height:11px;border-left:2px solid var(--pp-accent-2);border-bottom:2px solid var(--pp-accent-2);transform:rotate(45deg);margin-left:3px}
.pp-arrow--next span{transform:rotate(-135deg);margin-left:-3px}
.pp-svc3__dots{display:flex;gap:.5rem}
.pp-svc3__dots .pp-dot{background:var(--pp-line)}
.pp-svc3__dots .pp-dot.is-on{background:var(--pp-accent)}
@media (max-width:760px){.pp-svc3__card{grid-template-columns:1fr;flex-basis:86%;padding:1.8rem}}

/* ---------- HOW — vertical stepper ---------- */
.pp-how2{max-width:940px;margin:0 auto;padding:0 2rem}
.pp-how2__head{text-align:center;margin-bottom:3rem}
.pp-stepper{position:relative;display:flex;flex-direction:column;gap:2.4rem}
.pp-stepper__line{position:absolute;left:27px;top:28px;bottom:28px;width:3px;background:var(--pp-line);border-radius:3px}
.pp-stepper__line::after{content:"";position:absolute;left:0;top:0;width:100%;background:linear-gradient(180deg,var(--pp-accent),#e46c14);border-radius:3px;height:calc(var(--fill,0)*100%)}
.pp-step{position:relative;display:grid;grid-template-columns:auto 1fr minmax(0,270px);gap:1.6rem;align-items:center}
.pp-step__node{width:56px;height:56px;border-radius:50%;background:#fff;border:2px solid var(--pp-line);color:var(--pp-dim);display:flex;align-items:center;justify-content:center;z-index:2;transition:.35s var(--pp-ease)}
.pp-step.is-active .pp-step__node{border-color:var(--pp-accent);color:var(--pp-accent);box-shadow:0 12px 26px -12px rgba(244,122,32,.55);transform:scale(1.05)}
.pp-step__num{color:var(--pp-accent);font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}
.pp-step__title{font-family:var(--wp--preset--font-family--heading);color:var(--pp-heading);font-size:1.4rem;font-weight:800;margin:.2rem 0 .4rem}
.pp-step__text{color:var(--pp-text-2);font-size:1rem;line-height:1.55;margin:0}
.pp-step__visual{justify-self:end;width:100%}
.pp-mini{background:#fff;border:1px solid var(--pp-line);border-radius:14px;box-shadow:0 20px 44px -26px rgba(11,35,80,.35);padding:1rem 1.1rem}
.pp-mini__hd{font-family:var(--wp--preset--font-family--heading);font-weight:700;font-size:.8rem;color:var(--pp-heading);margin-bottom:.6rem}
.pp-mini__bar{height:7px;border-radius:7px;background:var(--pp-line);overflow:hidden;margin-bottom:.6rem}
.pp-mini__bar span{display:block;height:100%;background:linear-gradient(90deg,var(--pp-accent-2),#2f6fd6);border-radius:7px}
.pp-mini__ok{display:flex;align-items:center;gap:.4rem;color:var(--pp-mint);font-weight:700;font-size:.78rem}
.pp-mini__row{display:flex;justify-content:space-between;font-size:.82rem;color:var(--pp-text);padding:.3rem 0}
.pp-mini__row b{color:var(--pp-heading);font-variant-numeric:tabular-nums}
.pp-mini__cta{margin-top:.5rem;background:#E6F6EE;color:var(--pp-mint);font-weight:700;font-size:.8rem;text-align:center;padding:.5rem;border-radius:9px}
.pp-mini__chat{display:flex;align-items:flex-start;gap:.6rem}
.pp-mini__bubble{background:var(--pp-mist);border-radius:12px 12px 12px 3px;padding:.6rem .8rem;font-size:.82rem;color:var(--pp-heading)}
@media (max-width:720px){
	.pp-step{grid-template-columns:auto 1fr}
	.pp-step__visual{display:none}
	.pp-stepper__line{left:27px}
}

/* ---------- FAQ split ---------- */
.pp-faq2{max-width:1080px;margin:0 auto;padding:0 2rem}
.pp-faq2__head{margin-bottom:2.4rem}
.pp-faq2__split{display:grid;grid-template-columns:1fr 1.15fr;gap:2.5rem;align-items:start}
.pp-faq2__qs{display:flex;flex-direction:column;gap:.5rem}
.pp-faq2__q{display:flex;align-items:center;gap:.9rem;width:100%;text-align:left;background:#fff;border:1px solid var(--pp-line);border-radius:14px;padding:1.05rem 1.2rem;cursor:pointer;font-family:var(--wp--preset--font-family--heading);font-weight:700;font-size:1rem;color:var(--pp-text);transition:.2s}
.pp-faq2__q:hover{border-color:var(--pp-accent-2)}
.pp-faq2__q.is-on{background:var(--pp-accent-2);border-color:transparent;color:#fff;box-shadow:0 16px 34px -18px rgba(11,35,80,.5)}
.pp-faq2__qnum{flex:none;font-size:.8rem;color:var(--pp-accent);font-weight:800}
.pp-faq2__q.is-on .pp-faq2__qnum{color:#fff}
.pp-faq2__q>span:nth-child(2){flex:1}
.pp-faq2__qarrow{flex:none;width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);opacity:.5}
.pp-faq2__q.is-on .pp-faq2__qarrow{opacity:1}
.pp-faq2__answers{position:relative;background:linear-gradient(160deg,var(--pp-mist),#EAF2FE);border-radius:20px;padding:2.4rem;min-height:100%}
.pp-faq2__a[hidden]{display:none}
.pp-faq2__a{animation:pp-fadeup .4s var(--pp-ease-out)}
@keyframes pp-fadeup{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.pp-faq2__anum{font-family:var(--wp--preset--font-family--heading);font-size:2.4rem;font-weight:800;color:var(--pp-accent);opacity:.35;line-height:1}
.pp-faq2__a h3{font-family:var(--wp--preset--font-family--heading);color:var(--pp-heading);font-size:1.35rem;font-weight:800;margin:.6rem 0 .8rem}
.pp-faq2__a p{color:var(--pp-text);font-size:1.05rem;line-height:1.65;margin:0}
@media (max-width:820px){.pp-faq2__split{grid-template-columns:1fr}.pp-faq2__answers{min-height:0}}

/* ---------- CTA map ---------- */
.pp-cta2{background:var(--pp-mist);padding:clamp(3.5rem,7vw,6rem) 2rem}
.pp-cta2__grid{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:1fr 1.1fr;gap:3rem;align-items:stretch}
.pp-cta2__lead{color:var(--pp-text);font-size:1.1rem;line-height:1.6;margin:1rem 0 1.4rem;max-width:46ch}
.pp-cta2__offices{list-style:none;margin:0 0 1.6rem;padding:0;display:grid;gap:.5rem}
.pp-cta2__offices li{display:flex;align-items:center;gap:.6rem;color:var(--pp-text-2);font-size:.95rem}
.pp-cta2__offices li .sr-icon{color:var(--pp-accent-2)}
.pp-cta2__offices li.is-hq{color:var(--pp-heading)}
.pp-cta2__offices li.is-hq .sr-icon{color:var(--pp-accent)}
.pp-cta2__offices strong{font-weight:700}
.pp-cta2__offices span{color:var(--pp-dim);font-size:.85rem}
.pp-cta2__form{background:#fff;border:1px solid var(--pp-line);border-radius:18px;padding:1.5rem;box-shadow:0 24px 60px -34px rgba(11,35,80,.3)}
.pp-cta2__mapwrap{border-radius:20px;overflow:hidden;box-shadow:0 30px 70px -34px rgba(11,35,80,.4);min-height:460px}
.pp-map{width:100%;height:100%;min-height:460px;background:#e8eef5}
.pp-map--failed{display:flex;align-items:center;justify-content:center;color:var(--pp-dim)}
.leaflet-container{font-family:inherit}
.pp-pin__dot{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:16px;height:16px;border-radius:50%;background:var(--pp-accent-2);border:3px solid #fff;box-shadow:0 2px 6px rgba(11,35,80,.4)}
.pp-pin--hq .pp-pin__dot{background:var(--pp-accent);width:20px;height:20px}
.pp-pin__pulse{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:30px;height:30px;border-radius:50%;background:rgba(20,49,95,.3)}
.pp-pin--hq .pp-pin__pulse{background:rgba(244,122,32,.4);animation:pp-pulse 2s ease-out infinite}
@keyframes pp-pulse{0%{transform:translate(-50%,-50%) scale(.6);opacity:.9}100%{transform:translate(-50%,-50%) scale(2.2);opacity:0}}
@media (prefers-reduced-motion: reduce){.pp-pin--hq .pp-pin__pulse{animation:none}}
@media (max-width:900px){.pp-cta2__grid{grid-template-columns:1fr}.pp-cta2__mapwrap{min-height:320px;order:-1}}

/* ============================================================
   ITERATION 3 — titles bigger+left, app fix, stepper entrance,
   services bleed+fade, contact map-cover overlay + form.
   ============================================================ */

/* ---------- Section titles: bigger + left-aligned (hero stays centered) ---------- */
.pp-h2{font-size:clamp(2.1rem,4.6vw,3.4rem);text-align:left;letter-spacing:-.025em;line-height:1.06}
.pp-eyebrow{text-align:left;font-size:.85rem}
.pp-section-sub{text-align:left;margin-left:0}
.pp-app2__head,.pp-svc3__head,.pp-why2__head,.pp-how2__head,.pp-tst__head{text-align:left;margin-left:0;margin-right:auto}
.pp-app2__sub{margin-left:0;text-align:left}
.pp-tst__wrap{text-align:left;max-width:900px}
.pp-tst__quote{margin-left:0;max-width:34ch}
.pp-tst__head{margin-bottom:2.6rem}

/* ---------- APP: fix screen content position + push floating windows out ---------- */
.pp-iphone .pp-scr{min-height:500px;padding:3.3rem 1.05rem 1.1rem}
.pp-iphone--sm .pp-scr{min-height:440px;padding-top:3rem}
.pp-app2__stage{min-height:600px}
.pp-fwin--a{top:5%;left:-7%}
.pp-fwin--b{bottom:8%;right:-7%}
@media (max-width:1080px){.pp-fwin--a{left:-2%}.pp-fwin--b{right:-2%}}

/* ---------- STEPPER: entrance sequence (fill on enter, light nodes + reveal cards one by one) ---------- */
.pp-stepper__line::after{height:0 !important;transition:height 2.4s var(--pp-ease)}
.pp-stepper.is-in .pp-stepper__line::after{height:100% !important}
.pp-step__node{transition:border-color .45s var(--pp-ease),color .45s,box-shadow .45s,transform .45s}
.pp-step__visual{opacity:0;transform:translateX(26px);transition:opacity .55s var(--pp-ease-out),transform .55s var(--pp-ease-out)}
.pp-step.is-active .pp-step__visual{opacity:1;transform:none}
.pp-step__body{opacity:.55;transition:opacity .5s var(--pp-ease-out)}
.pp-step.is-active .pp-step__body{opacity:1}
@media (prefers-reduced-motion: reduce){.pp-step__visual,.pp-step__body{opacity:1 !important;transform:none !important}}
/* mobile: line + circles alignment */
@media (max-width:720px){
	.pp-stepper{padding-left:0}
	.pp-step{grid-template-columns:56px 1fr;align-items:start;column-gap:1.2rem}
	.pp-step__node{margin-top:0}
	.pp-stepper__line{left:27px;top:28px;bottom:28px}
	.pp-step__body{padding-top:.2rem}
}

/* ---------- SERVICES: full-bleed carousel, edges fade like the marquee, no arrows ---------- */
.pp-svc3{position:relative;width:100vw;max-width:100vw;left:50%;margin-left:-50vw;margin-right:0}
.pp-svc3__track{gap:1.8rem;padding:1.8rem clamp(1rem,calc(50vw - 380px),40rem);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 9%,#000 91%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 9%,#000 91%,transparent 100%)}
.pp-svc3__card{flex:0 0 min(760px,84vw)}
.pp-svc3__controls{margin-top:.6rem}
@media (max-width:760px){.pp-svc3__track{padding-inline:8vw}.pp-svc3__card{flex-basis:84vw}}

/* ---------- CONTACT: map covers the container, content overlaid, form fixed ---------- */
.pp-cta2{position:relative;min-height:640px;padding:0;overflow:hidden;background:var(--pp-mist)}
.pp-cta2 .pp-map{position:absolute;inset:0;width:100%;height:100%;min-height:640px;border-radius:0;z-index:0}
.pp-cta2__overlay{position:relative;z-index:2;max-width:1180px;margin:0 auto;min-height:640px;display:flex;align-items:center;padding:clamp(2.5rem,5vw,4rem) 2rem;pointer-events:none}
.pp-cta2__panel{pointer-events:auto;background:rgba(255,255,255,.97);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.8);border-radius:22px;box-shadow:0 40px 90px -38px rgba(11,35,80,.55);padding:clamp(1.8rem,3vw,2.6rem);width:min(480px,100%)}
.pp-cta2__panel .pp-h2{font-size:clamp(1.7rem,3vw,2.3rem)}
.pp-cta2__lead{margin:.9rem 0 1.2rem;font-size:1.02rem}
.pp-cta2__form{background:none;border:0;box-shadow:none;padding:0;margin-top:.4rem}
.pp-cta2__form .pp-field input,.pp-cta2__form .pp-field select{background:var(--pp-mist);border:1.5px solid var(--pp-line)}
.pp-cta2__form .pp-field input:focus,.pp-cta2__form .pp-field select:focus{background:#fff;border-color:var(--pp-accent)}
.pp-cta2__offices{margin-bottom:1.2rem}
/* leaflet controls above overlay but map still behind panel */
.pp-cta2 .leaflet-control-container{z-index:3}
@media (max-width:900px){
	.pp-cta2,.pp-cta2 .pp-map,.pp-cta2__overlay{min-height:auto}
	.pp-cta2 .pp-map{position:relative;height:300px;min-height:300px}
	.pp-cta2__overlay{padding:0 1.2rem 2.5rem;margin-top:-2.5rem}
	.pp-cta2__panel{width:100%}
}

/* ============================================================
   ITERATION 4 — testimonials peek-next+loop, metrics redesign,
   why interaction, services shadow fix, why title 2 lines.
   ============================================================ */

/* ---------- TESTIMONIALS: current + next peek (right only), looping ---------- */
.pp-tst__wrap{max-width:1040px}
.pp-tst__track{scroll-snap-type:x mandatory}
.pp-tst__slide{flex:0 0 80%;scroll-snap-align:start;padding:0 1.6rem 0 0;text-align:left}
.pp-tst__quote{margin:0 0 1.6rem;max-width:38ch}
.pp-tst__stars{margin-bottom:1rem}
@media (max-width:720px){.pp-tst__slide{flex-basis:88%}}

/* ---------- METRICS: redesigned band with icons + dividers ---------- */
.pp-metrics{border-top:3px solid var(--pp-orange)}
.pp-metrics2{max-width:1180px;margin:0 auto;padding:0 2rem;display:grid;grid-template-columns:.85fr 2.3fr;gap:2.6rem;align-items:center}
.pp-metrics2__intro{display:flex;flex-direction:column;gap:.7rem}
.pp-metrics2__prism{align-self:flex-start;background:#fff;color:var(--pp-navy-deep);font-weight:800;font-size:.9rem;padding:.45rem .8rem;border-radius:9px;letter-spacing:.02em}
.pp-metrics2__intro p{color:#c3d3ee;font-size:.98rem;line-height:1.55;margin:0}
.pp-metrics2__grid{display:grid;grid-template-columns:repeat(4,1fr)}
.pp-metric2{text-align:center;padding:.4rem 1.1rem;border-left:1px solid rgba(255,255,255,.14)}
.pp-metric2:first-child{border-left:0}
.pp-metric2__ico{display:inline-flex;width:44px;height:44px;border-radius:12px;background:rgba(244,122,32,.16);color:var(--pp-orange);align-items:center;justify-content:center;margin-bottom:.8rem}
.pp-metric2__n{font-family:var(--wp--preset--font-family--heading);font-weight:800;font-size:clamp(2rem,3vw,2.7rem);color:#fff;line-height:1;font-variant-numeric:tabular-nums}
.pp-metric2__k{color:#9fb4d6;font-size:.85rem;font-weight:600;margin-top:.4rem}
@media (max-width:860px){
	.pp-metrics2{grid-template-columns:1fr;gap:2rem}
	.pp-metrics2__grid{gap:1.6rem 0}
}
@media (max-width:520px){
	.pp-metrics2__grid{grid-template-columns:1fr 1fr}
	.pp-metric2:nth-child(3){border-left:0}
	.pp-metric2{padding:.8rem}
}

/* ---------- WHY: interaction (hover lift + icon + feature glow) ---------- */
.pp-why2__cell{transition:transform .28s var(--pp-ease),box-shadow .28s,border-color .28s}
.pp-why2__cell:hover{transform:translateY(-6px);box-shadow:0 26px 54px -28px rgba(11,35,80,.4);border-color:transparent}
.pp-why2__ico{transition:transform .28s var(--pp-ease),background .28s,color .28s}
.pp-why2__cell:hover .pp-why2__ico{background:var(--pp-accent);color:#fff;transform:rotate(-6deg) scale(1.06)}
.pp-why2__feature{position:relative;overflow:hidden;transition:transform .3s var(--pp-ease)}
.pp-why2__feature:hover{transform:translateY(-4px)}
.pp-why2__feature::after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(244,122,32,.4),transparent 70%);top:-90px;right:-70px;opacity:.5;transition:transform .5s var(--pp-ease),opacity .5s;pointer-events:none}
.pp-why2__feature:hover::after{transform:scale(1.25) translate(-10px,10px);opacity:.8}
.pp-why2__feature>*{position:relative;z-index:1}
.pp-why2__ico--lg{transition:transform .3s var(--pp-ease)}
.pp-why2__feature:hover .pp-why2__ico--lg{transform:scale(1.08) rotate(-5deg)}

/* ---------- SERVICES: stop the card shadow being clipped below ---------- */
.pp-svc3__track{padding-top:2rem;padding-bottom:3.6rem}

/* ============================================================
   ITERATION 5 — testimonials as a warm, local review wall
   (two drifting marquee rows). Replaces the navy carousel.
   ============================================================ */
.pp-tst2{background:linear-gradient(180deg,#FFF9F3 0%,#FCF2E8 100%);padding:clamp(3.5rem,7vw,5.5rem) 0;overflow:hidden}
.pp-tst2__head{max-width:1180px;margin:0 auto 2.6rem;padding:0 2rem;display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}
.pp-tst2__rating{display:flex;align-items:center;gap:.5rem;background:#fff;border:1px solid #F1E3D3;border-radius:40px;padding:.6rem 1.1rem;box-shadow:0 10px 26px -16px rgba(180,110,40,.4)}
.pp-tst2__stars{color:var(--pp-orange);letter-spacing:1px}
.pp-tst2__rating strong{color:var(--pp-heading);font-size:1.05rem}
.pp-tst2__rating span{color:var(--pp-dim);font-size:.88rem}

.pp-tst2__rows{display:flex;flex-direction:column;gap:1.3rem}
.pp-revmarq .pp-marquee__track{animation-duration:60s;padding:.6rem .65rem}
.pp-marquee--rev .pp-marquee__track{animation-direction:reverse}
.pp-revtrack{gap:1.2rem}

.pp-rev{flex:0 0 360px;background:#fff;border:1px solid #F1E5D6;border-radius:18px;box-shadow:0 18px 40px -26px rgba(120,80,30,.4);padding:1.4rem 1.5rem;white-space:normal}
.pp-rev__top{display:flex;align-items:center;gap:.8rem;margin-bottom:.9rem}
.pp-rev__av{flex:none;width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.95rem}
.pp-rev__who{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.pp-rev__who strong{color:var(--pp-heading);font-size:.98rem}
.pp-rev__who span{color:var(--pp-dim);font-size:.82rem}
.pp-rev__stars{color:var(--pp-orange);font-size:.92rem;letter-spacing:1.5px;margin-bottom:.6rem}
.pp-rev__quote{color:var(--pp-text);font-size:.98rem;line-height:1.55;margin:0 0 1rem}
.pp-rev__badge{display:inline-flex;align-items:center;gap:.4rem;color:var(--pp-mint);font-weight:700;font-size:.78rem}
.pp-rev__badge .sr-icon{width:15px;height:15px}
.pp-rev__badge--g{color:var(--pp-dim);font-weight:600}
.pp-rev__g{flex:none}
.pp-tst2__note{margin:1rem auto 0;padding:0 1rem;text-align:center;color:var(--pp-dim);font-size:.82rem}
/* warm avatar palette (cycled) */
.pp-rev--c0 .pp-rev__av{background:#FEE9D8;color:#d9611a}
.pp-rev--c1 .pp-rev__av{background:#DBF1EA;color:#0f8a68}
.pp-rev--c2 .pp-rev__av{background:#FDE2E0;color:#d1483f}
.pp-rev--c3 .pp-rev__av{background:#FBEFCF;color:#b1840f}
.pp-rev--c4 .pp-rev__av{background:#E1ECFB;color:#2f6fd6}

@media (max-width:600px){.pp-rev{flex-basis:300px;padding:1.2rem}.pp-tst2__head{align-items:flex-start;flex-direction:column}}
@media (prefers-reduced-motion: reduce){
	.pp-revmarq .pp-marquee__track{animation:none;flex-wrap:nowrap}
	.pp-revmarq{overflow-x:auto}
}

/* ============================================================
   ITERATION 6 — section gaps, unified head width, shadow fix,
   header btn + mobile drawer, app centering + fwin animation,
   faq tweaks, contact inputs, client-types section.
   ============================================================ */

/* ---- kill the white strip between full-width sections ---- */
.wp-site-blocks main.wp-block-group{gap:0}
.wp-site-blocks main.wp-block-group > *{margin-block:0 !important}

/* ---- one shared content width so every section title lines up ---- */
.pp-svc3__head,.pp-app2__wrap,.pp-why2,.pp-how2,.pp-faq2,.pp-tst2__head,.pp-clients__wrap{
	max-width:1160px !important;margin-inline:auto !important;padding-inline:2rem !important;
}
.pp-svc3__head{max-width:1160px !important}

/* ---- testimonials: card shadow no longer clipped ---- */
.pp-revmarq .pp-marquee__track{padding:1.5rem .65rem 2.6rem}

/* ---- header button correct style + text colour ---- */
.puntualpayroll-header .pp-head__cta .pp-btn--primary{color:#fff !important;background:var(--pp-accent)}
.puntualpayroll-header .pp-head__cta .pp-btn--primary:hover{background:color-mix(in srgb,var(--pp-accent),black 8%)}

/* ---- mobile drawer: full-screen scrim + right panel ---- */
.pp-drawer{display:none;position:fixed;inset:0;width:auto;padding:0;background:none;box-shadow:none;z-index:1300;visibility:hidden;transform:none;pointer-events:none}
.pp-drawer.is-open{visibility:visible;pointer-events:auto;transform:none}
.pp-drawer__scrim{position:absolute;inset:0;background:rgba(11,35,80,.45);opacity:0;transition:opacity .35s}
.pp-drawer.is-open .pp-drawer__scrim{opacity:1}
.pp-drawer__panel{position:absolute;top:0;right:0;bottom:0;width:min(86vw,360px);background:#fff;box-shadow:-24px 0 70px -30px rgba(11,35,80,.55);transform:translateX(100%);transition:transform .4s var(--pp-ease);padding:1.4rem 1.5rem 2rem;display:flex;flex-direction:column;gap:.2rem;overflow-y:auto}
.pp-drawer.is-open .pp-drawer__panel{transform:translateX(0)}
.pp-drawer__x{position:absolute;top:.8rem;right:1.1rem;background:none;border:0;font-size:2rem;line-height:1;color:var(--pp-heading);cursor:pointer;padding:.2rem}
.pp-drawer__logo{margin:.2rem 0 1.2rem}
.pp-drawer__nav{display:flex;flex-direction:column}
.pp-drawer__nav a{padding:.95rem .2rem;font-weight:600;font-size:1.05rem;color:var(--pp-heading);border-bottom:1px solid var(--pp-line);text-decoration:none}
.pp-drawer__client{display:inline-flex;align-items:center;gap:.5rem;color:var(--pp-accent-2) !important;font-weight:700;padding:1rem .2rem;text-decoration:none}
.pp-drawer__panel .pp-btn{margin-top:.6rem;width:100%;justify-content:center}
@media (max-width:980px){.pp-drawer{display:block}}

/* ---- APP: centre the screen views in the mock + animate floating windows ---- */
.pp-iphone__screen{width:100%;overflow:hidden}
.pp-iphone__track{width:100%}
.pp-iphone .pp-scr{flex:0 0 100%;width:100%;box-sizing:border-box}
.pp-fwin__t{display:flex;flex-direction:column;line-height:1.2}
@keyframes pp-swap{0%{opacity:0;transform:translateY(7px)}100%{opacity:1;transform:none}}
@keyframes pp-okpop{0%{transform:scale(.7)}60%{transform:scale(1.16)}100%{transform:scale(1)}}
.pp-fwin.is-pop .pp-fwin__t{animation:pp-swap .42s var(--pp-ease-out)}
.pp-fwin.is-pop .pp-fwin__ok{animation:pp-okpop .45s var(--pp-ease)}

/* ---- FAQ: transparent right panel + coherent (no-border) hover ---- */
.pp-faq2__answers{background:transparent !important;box-shadow:none !important;padding:.3rem 0 0 .2rem !important}
.pp-faq2__q{transition:transform .2s var(--pp-ease),box-shadow .2s,background .2s,color .2s,border-color .2s}
.pp-faq2__q:hover{border-color:var(--pp-line)}
.pp-faq2__q:hover:not(.is-on){transform:translateY(-2px);box-shadow:0 14px 28px -18px rgba(11,35,80,.4);background:#fff}

/* ---- CONTACT: stop Nombre/Correo inputs overlapping / overflowing ---- */
.pp-cta2__form .pp-field{min-width:0}
.pp-cta2__form .pp-field input,.pp-cta2__form .pp-field select{box-sizing:border-box;width:100%;max-width:100%}
.pp-cta2__form .pp-field-row{gap:.8rem}

/* ============ CLIENT TYPES — "hecho para negocios como el tuyo" ============ */
.pp-clients{padding:clamp(3.5rem,7vw,6rem) 0}
.pp-clients__wrap{display:grid;grid-template-columns:.92fr 1.28fr;gap:3rem;align-items:start}
.pp-clients__aside{position:sticky;top:96px}
.pp-clients__intro{color:var(--pp-text-2);font-size:1.08rem;line-height:1.6;margin:1rem 0 1.6rem;max-width:38ch}
.pp-clients__aside .pp-btn{white-space:nowrap}
.pp-clients__list{display:flex;flex-direction:column;gap:1.1rem}
.pp-client{display:flex;gap:1.3rem;align-items:flex-start;background:#fff;border:1px solid var(--pp-line);border-radius:18px;padding:1.7rem;transition:transform .25s var(--pp-ease),box-shadow .25s,border-color .25s}
.pp-client:hover{transform:translateY(-4px);box-shadow:0 26px 54px -30px rgba(11,35,80,.4);border-color:transparent}
.pp-client__ico{flex:none;width:56px;height:56px;border-radius:15px;background:#EEF4FC;color:var(--pp-accent-2);display:flex;align-items:center;justify-content:center;transition:background .25s,color .25s,transform .25s}
.pp-client:hover .pp-client__ico{background:var(--pp-accent);color:#fff;transform:rotate(-6deg) scale(1.05)}
.pp-client__name{font-family:var(--wp--preset--font-family--heading);color:var(--pp-heading);font-size:1.3rem;font-weight:800;margin:0 0 .4rem}
.pp-client__when{color:var(--pp-text-2);font-size:1rem;line-height:1.55;margin:0}
.pp-client__tags{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:1rem}
.pp-client__lbl{color:var(--pp-dim);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-right:.2rem}
.pp-tag2{background:var(--pp-mist);border:1px solid var(--pp-line);color:var(--pp-accent-2);font-weight:700;font-size:.82rem;padding:.35rem .8rem;border-radius:40px}
.pp-client:hover .pp-tag2{border-color:color-mix(in srgb,var(--pp-accent),white 40%)}
@media (max-width:860px){
	.pp-clients__wrap{grid-template-columns:1fr;gap:2rem}
	.pp-clients__aside{position:static}
	.pp-clients__intro{max-width:none}
}

/* ============================================================
   ITERATION 7 — transparent hero header, fwin slide+warm,
   drag cursor, bigger FAQ answer, desktop laptop section.
   ============================================================ */

/* ---- header: transparent over hero, solid only once scrolled ---- */
.puntualpayroll-header{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:1px solid transparent;box-shadow:none}
.puntualpayroll-header:has(.is-scrolled){background:rgba(255,255,255,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom-color:var(--pp-line);box-shadow:0 6px 24px -18px rgba(11,35,80,.5)}

/* ---- drag cursor on carousels ---- */
[data-carousel-track]{cursor:grab}
[data-carousel-track].is-grabbing{cursor:grabbing}
[data-carousel-track] a,[data-carousel-track] button{cursor:pointer}

/* ---- floating windows: content slides out to its side + new slides in; one warm ---- */
.pp-fwin{display:block}
.pp-fwin--a{--fdir:-1}
.pp-fwin--b{--fdir:1}
.pp-fwin__inner{display:flex;align-items:center;gap:.7rem}
.pp-fwin__inner.is-out{opacity:0;transform:translateX(calc(var(--fdir,1)*32px));transition:opacity .2s var(--pp-ease),transform .2s var(--pp-ease)}
.pp-fwin__inner.is-in{animation:pp-fin .34s var(--pp-ease-out)}
@keyframes pp-fin{from{opacity:0;transform:translateX(calc(var(--fdir,1)*32px))}to{opacity:1;transform:none}}
.pp-fwin--warm{background:#FCF2E8;border-color:#F3E1CC}
.pp-fwin--warm .pp-fwin__ok{background:#FCE4CB;color:#d9611a}
.pp-fwin--warm .pp-fwin__t strong{color:#7a3d10}

/* ---- FAQ: bigger question + much bigger number in the answer panel ---- */
.pp-faq2__anum{font-size:clamp(3.4rem,6vw,5.2rem) !important;opacity:.22 !important;line-height:.9}
.pp-faq2__a h3{font-size:clamp(1.5rem,2.6vw,2rem) !important;margin:.4rem 0 1rem !important}
.pp-faq2__a p{font-size:1.12rem !important;line-height:1.7 !important}

/* ============ DESKTOP APP — laptop mock rises + widens on scroll ============ */
.pp-appd{padding:clamp(3rem,6vw,5rem) 2rem clamp(4rem,7vw,6.5rem);overflow:hidden}
.pp-appd__wrap{max-width:1160px;margin:0 auto}
.pp-appd__head{margin-bottom:2.8rem;max-width:660px}
.pp-appd__stage{--g:0;transform:translateY(calc((1 - var(--g,0))*56px)) scale(calc(.9 + var(--g,0)*.1));transform-origin:top center;will-change:transform}
.pp-laptop{max-width:920px;margin:0 auto}
.pp-laptop__screen{background:#0b0b12;border:10px solid #0b0b12;border-radius:18px 18px 0 0;box-shadow:0 50px 90px -44px rgba(11,35,80,.55);overflow:hidden}
.pp-laptop__base{height:15px;width:112%;margin-left:-6%;background:linear-gradient(180deg,#d7dce4,#b7bfcb);border-radius:0 0 14px 14px;position:relative;box-shadow:0 14px 24px -14px rgba(11,35,80,.45)}
.pp-laptop__base::after{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:90px;height:6px;background:#9aa5b4;border-radius:0 0 7px 7px}

.pp-browser2{background:#fff}
.pp-browser2__bar{display:flex;align-items:center;gap:6px;padding:9px 14px;background:#F2F4F8;border-bottom:1px solid var(--pp-line)}
.pp-browser2__bar i{width:10px;height:10px;border-radius:50%;background:#d3d9e2;display:block}
.pp-browser2__url{margin-left:12px;font-size:11px;color:#9aa6b8;background:#fff;border:1px solid var(--pp-line);border-radius:20px;padding:4px 14px}

.pp-appd__track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.pp-appd__track::-webkit-scrollbar{display:none}
.pp-dscr{flex:0 0 100%;scroll-snap-align:start;display:grid;grid-template-columns:190px 1fr;min-height:440px;background:#fff}
.pp-dscr__side{background:var(--pp-navy-deep);color:#fff;padding:1.2rem 1rem}
.pp-dscr__brand{display:flex;align-items:center;gap:.5rem;font-weight:800;font-size:.82rem;margin-bottom:1.4rem;color:#fff}
.pp-dscr__logo{width:24px;height:24px;border-radius:7px;background:var(--pp-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900}
.pp-dscr__nav{display:flex;align-items:center;gap:.6rem;font-size:.8rem;color:#a9bbdb;padding:.55rem .6rem;border-radius:9px;margin-bottom:.15rem}
.pp-dscr__nav.is-on{background:rgba(255,255,255,.12);color:#fff;font-weight:600}
.pp-dscr__navdot{width:14px;height:14px;border-radius:4px;background:currentColor;opacity:.5}
.pp-dscr__main{padding:1.4rem 1.6rem;min-width:0}
.pp-dscr__top{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.1rem}
.pp-dscr__top b{color:var(--pp-heading);font-size:1.05rem;font-family:var(--wp--preset--font-family--heading)}
.pp-dscr__run{background:var(--pp-accent);color:#fff;font-size:.74rem;font-weight:700;padding:.5rem .9rem;border-radius:20px}
.pp-dscr__ok{color:var(--pp-mint) !important}
.pp-dscr__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem;margin-bottom:1.1rem}
.pp-dstat{background:var(--pp-mist);border:1px solid var(--pp-line);border-radius:10px;padding:.7rem .8rem}
.pp-dstat small{display:block;font-size:.64rem;color:var(--pp-dim);text-transform:uppercase;letter-spacing:.04em}
.pp-dstat b{font-size:1.1rem;color:var(--pp-heading);font-variant-numeric:tabular-nums}
.pp-dscr__chart{display:flex;align-items:flex-end;gap:.5rem;background:var(--pp-mist);border:1px solid var(--pp-line);border-radius:12px;padding:1rem;height:150px}
.pp-dscr__chart span{flex:1;background:linear-gradient(180deg,var(--pp-accent-2),#2f6fd6);border-radius:5px 5px 0 0;opacity:.85}
.pp-dscr__chart span.is-accent{background:linear-gradient(180deg,var(--pp-accent),#e46c14);opacity:1}
.pp-dtable{border:1px solid var(--pp-line);border-radius:12px;overflow:hidden}
.pp-dtr{display:grid;grid-template-columns:2fr 1fr .7fr 1fr;gap:.5rem;padding:.7rem 1rem;font-size:.82rem;color:var(--pp-text);border-bottom:1px solid var(--pp-line);align-items:center}
.pp-dtr:last-child{border-bottom:0}
.pp-dtr--h{background:var(--pp-mist);color:var(--pp-dim);font-weight:700;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em}
.pp-dtr span:first-child{display:flex;align-items:center;gap:.5rem;color:var(--pp-heading);font-weight:600}
.pp-dtr b{color:var(--pp-heading);font-variant-numeric:tabular-nums}
.pp-dav{width:26px;height:26px;border-radius:50%;background:#EEF4FC;color:var(--pp-accent-2);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.58rem;font-style:normal}
.pp-dcards{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin-bottom:1rem}
.pp-dcard{background:var(--pp-mist);border:1px solid var(--pp-line);border-radius:12px;padding:1rem}
.pp-dcard small{color:var(--pp-dim);font-size:.72rem}
.pp-dcard b{display:block;color:var(--pp-heading);font-size:1.35rem;margin:.2rem 0 .6rem;font-variant-numeric:tabular-nums}
.pp-dline{height:30px;border-radius:8px;background:linear-gradient(90deg,rgba(20,49,95,.1),rgba(47,111,214,.4))}
.pp-dline--2{background:linear-gradient(90deg,rgba(244,122,32,.1),rgba(244,122,32,.45))}
.pp-appd__dots{display:flex;gap:.5rem;justify-content:center;margin-top:1.8rem}
.pp-appd__dots .pp-dot{background:var(--pp-line)}
.pp-appd__dots .pp-dot.is-on{background:var(--pp-accent)}

@media (max-width:620px){
	.pp-dscr{grid-template-columns:1fr}
	.pp-dscr__side{display:none}
	.pp-dscr__stats{grid-template-columns:1fr 1fr}
	.pp-dscr__main{padding:1.1rem}
	.pp-appd__stage{transform:translateY(calc((1 - var(--g,0))*30px)) scale(calc(.94 + var(--g,0)*.06))}
}

/* ---- hero sits UNDER the transparent header (overlap) ---- */
.wp-site-blocks main.wp-block-group > .pp-hero2{margin-top:-94px !important;padding-top:94px}

/* ---- app: float windows relative to the phone (not the whole stage) ---- */
.pp-app2__stage{min-height:auto;display:flex;align-items:center;justify-content:center}
.pp-app2__phonewrap{position:relative;width:300px;flex:none}
.pp-app2__phonewrap .pp-fwin{position:absolute}
.pp-app2__phonewrap .pp-fwin--a{top:7%;left:-46%;right:auto;bottom:auto}
.pp-app2__phonewrap .pp-fwin--b{bottom:15%;right:-46%;left:auto;top:auto}
@media (max-width:1100px){.pp-app2__phonewrap .pp-fwin{display:none}}

/* ---- app floating windows: anchor holds parallax+position, the CARD slides ---- */
.pp-app2__phonewrap .pp-fwin-anchor{position:absolute;will-change:transform}
.pp-app2__phonewrap .pp-fwin-anchor.pp-fwin--a{top:7%;left:-46%;right:auto;bottom:auto;--fdir:-1}
.pp-app2__phonewrap .pp-fwin-anchor.pp-fwin--b{bottom:15%;right:-46%;left:auto;top:auto;--fdir:1}
.pp-app2__phonewrap .pp-fwin{position:relative !important;display:flex;align-items:center;gap:.7rem;width:auto}
.pp-fwin.is-out{opacity:0;transform:translateX(calc(var(--fdir,1)*46px));transition:opacity .24s var(--pp-ease),transform .24s var(--pp-ease)}
.pp-fwin.is-in{animation:pp-cardin .4s var(--pp-ease-out)}
@keyframes pp-cardin{from{opacity:0;transform:translateX(calc(var(--fdir,1)*46px))}to{opacity:1;transform:none}}
@media (max-width:1100px){.pp-app2__phonewrap .pp-fwin-anchor{display:none}}

/* ============================================================
   ITERATION 8 — app section relayout: head+accordion LEFT,
   phone+floating cards RIGHT; cards in front; portrait mock;
   proper mobile stacking.
   ============================================================ */
.pp-app2__grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.pp-app2__left .pp-app2__head{text-align:left;max-width:none;margin:0 0 1.8rem}
.pp-app2__left .pp-app2__sub{margin:1rem 0 0;text-align:left}
.pp-app2__right{display:flex;justify-content:center;align-items:center;position:relative}
.pp-app2__phonewrap{position:relative;width:300px}
.pp-iphone{position:relative;z-index:1}
.pp-app2__phonewrap .pp-fwin-anchor{z-index:6}
/* keep a consistent portrait phone height across the different screens */
.pp-iphone__screen{aspect-ratio:9 / 19}
.pp-iphone .pp-scr{height:100%;min-height:0;box-sizing:border-box;overflow:hidden}
/* floating cards visible at all widths (override the old <1100 hide) */
@media (min-width:901px){.pp-app2__phonewrap .pp-fwin-anchor{display:block}}

/* (mobile app layout unchanged — uses the carousel below 860px) */

/* mobile app: hide the desktop 2-col grid, show the carousel (must win over the iter8 base grid rule) */
@media (max-width:860px){
	.pp-app2__grid{display:none !important}
	.pp-app2__carousel{display:block}
}

/* app accordion: reserve a constant height so opening/closing panels doesn't
   resize the column (which, with align-items:center, would jog the phone mock) */
@media (min-width:861px){
	.pp-app2__left .pp-acc2{min-height:470px}
}

/* ============================================================
   ITERATION 9 — overflow safety, services mobile stack + auto,
   app-desktop stronger anim + landscape mobile + visible dots,
   stepper per-step connectors (mobile line fix).
   ============================================================ */

/* horizontal-scroll safety net (header is a sibling of main, so its sticky is safe) */
main.wp-block-group{overflow-x:clip}

/* ---- services carousel: visible dots ---- */
.pp-svc3__dots .pp-dot{background:#c9d3e2}
.pp-svc3__dots .pp-dot.is-on{background:var(--pp-accent)}
/* mobile: cards stack vertically (no carousel) */
@media (max-width:760px){
	.pp-svc3{width:auto;max-width:none;left:auto;margin-left:0}
	.pp-svc3__track{flex-direction:column;overflow:visible;padding:0 1.2rem;gap:1.2rem;-webkit-mask-image:none;mask-image:none;scroll-snap-type:none}
	.pp-svc3__track > [aria-hidden="true"]{display:none}
	.pp-svc3__card{flex:none;width:100%;max-width:none;scroll-snap-align:none}
	.pp-svc3__controls{display:none}
}

/* ---- app-desktop: stronger rise+grow, visible dots ---- */
.pp-appd__stage{transform:translateY(calc((1 - var(--g,0))*90px)) scale(calc(.8 + var(--g,0)*.2));opacity:calc(.45 + var(--g,0)*.55)}
.pp-appd__dots .pp-dot{background:#c9d3e2}
.pp-appd__dots .pp-dot.is-on{background:var(--pp-accent)}
/* mobile: keep the screen landscape (wider than tall) + gentler anim */
@media (max-width:620px){
	.pp-appd__stage{transform:translateY(calc((1 - var(--g,0))*34px)) scale(calc(.9 + var(--g,0)*.1));opacity:calc(.6 + var(--g,0)*.4)}
	.pp-dscr{grid-template-columns:1fr;min-height:0}
	.pp-dscr__side{display:none}
	.pp-dscr__main{padding:1rem}
	.pp-dscr__top{margin-bottom:.8rem}
	.pp-dscr__stats{grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.8rem}
	.pp-dstat b{font-size:1rem}
	.pp-dscr__chart{height:78px}
	.pp-dtable .pp-dtr:nth-child(n+4){display:none}
	.pp-dcards{margin-bottom:.6rem}
}

/* ---- STEPPER: per-step connectors so the line always ends at the last node ---- */
.pp-stepper__line{display:none !important}
.pp-step{align-items:start}
.pp-step__node{position:relative;z-index:2}
.pp-step:not(:last-child)::before,
.pp-step:not(:last-child)::after{content:"";position:absolute;left:27px;top:30px;bottom:calc(-2.4rem - 30px);width:3px;border-radius:3px}
.pp-step:not(:last-child)::before{background:var(--pp-line);z-index:0}
.pp-step:not(:last-child)::after{background:linear-gradient(180deg,var(--pp-accent),#e46c14);transform:scaleY(0);transform-origin:top;transition:transform .55s var(--pp-ease);z-index:1}
.pp-step.is-active:not(:last-child)::after{transform:scaleY(1)}
@media (prefers-reduced-motion: reduce){.pp-step:not(:last-child)::after{transition:none}}

/* app-desktop mobile: shorter, no title/button collision */
@media (max-width:620px){
	.pp-dscr__run{display:none}
	.pp-dstat:nth-child(n+3){display:none}
	.pp-dscr__stats{grid-template-columns:1fr 1fr}
	.pp-dscr__chart{height:60px}
	.pp-dscr__top{margin-bottom:.7rem}
}

/* app-desktop mobile: tighten each screen so the mock isn't taller than wide */
@media (max-width:620px){
	.pp-dscr{min-height:0 !important}
	.pp-dtable .pp-dtr:nth-child(n+3){display:none}
	.pp-dcards .pp-dcard:nth-child(n+2){display:none}
	.pp-appd__track{align-items:flex-start}
}

/* ---- services carousel: mask/fade on the FIXED container, not the scrolling track ---- */
.pp-svc3{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%)}
.pp-svc3__track{-webkit-mask-image:none !important;mask-image:none !important}
@media (max-width:760px){.pp-svc3{-webkit-mask-image:none;mask-image:none}}

/* services carousel full-bleed — transform method (WP constrained layout forces
   margin:auto !important, which killed the margin-based full-bleed → shifted right) */
.pp-svc3{width:100vw !important;max-width:100vw !important;left:50% !important;transform:translateX(-50%);margin:0 !important}
@media (max-width:760px){
	.pp-svc3{width:auto !important;max-width:none !important;left:auto !important;transform:none;margin:0 !important}
}


/* phone screens: content stretches to fill the tall mock (slides were too short) */
.pp-iphone .pp-scr,.pp-iphone--sm .pp-scr{justify-content:flex-start}
.pp-iphone .pp-scr__list,.pp-iphone .pp-scr__chart,.pp-iphone .pp-scr__card,
.pp-iphone--sm .pp-scr__list,.pp-iphone--sm .pp-scr__chart,.pp-iphone--sm .pp-scr__card{flex:1 1 auto}
.pp-iphone .pp-scr__list,.pp-iphone--sm .pp-scr__list{justify-content:space-evenly}
.pp-iphone .pp-scr__card,.pp-iphone--sm .pp-scr__card{display:flex;flex-direction:column;justify-content:space-evenly}
.pp-iphone .pp-scr__chart,.pp-iphone--sm .pp-scr__chart{min-height:0}
.pp-iphone .pp-scr__cta,.pp-iphone--sm .pp-scr__cta{margin-top:.6rem;padding:.95rem}
.pp-iphone .pp-scr__top,.pp-iphone--sm .pp-scr__top{padding:1.2rem}
.pp-iphone .pp-scr__row,.pp-iphone--sm .pp-scr__row{padding:.75rem .8rem}

/* make the screen track fill the tall mock so slide content can stretch to the bottom */
.pp-iphone__screen{position:relative;display:block}
.pp-iphone__track{height:100%}
.pp-iphone .pp-scr,.pp-iphone--sm .pp-scr{height:100%}

/* ============================================================
   ITERATION 10 — mobile fixes:
   (1) services cards no longer overflow right (border-box)
   (2) app carousel: mock fits, shadow not clipped, copy visible
   (3) app-desktop laptop: landscape screen (not portrait), fills
   (4) hero trust: icon flows inline with the text (no left-orphan)
   (5) header: hide the "Solicitar demo" button on mobile
   ============================================================ */

/* (1) services — card width includes its padding so it can't overflow the track */
@media (max-width:760px){
	.pp-svc3__card{box-sizing:border-box;width:100%;max-width:100%}
}

/* (2) app mobile carousel — shrink the mock, let the slide match the viewport,
   give room so the phone's drop-shadow isn't sliced off at the edges */
@media (max-width:860px){
	.pp-app2__ctrack{padding-block:1.2rem}
	.pp-app2__slide{min-width:0;box-sizing:border-box;padding:0 1.4rem}
	.pp-iphone--sm{width:min(210px,58vw)}
	.pp-app2__sep{margin:1.1rem 0}
}

/* (3) app-desktop — a laptop screen is landscape; fix the ratio + fill it (kills
   the tall portrait look + the empty white below the shorter slides) */
@media (max-width:620px){
	.pp-laptop__screen{aspect-ratio:4 / 3;overflow:hidden}
	.pp-browser2{height:100%;display:flex;flex-direction:column}
	.pp-appd__track{flex:1;min-height:0;align-items:stretch}
	.pp-dscr{height:100%;min-height:0;overflow:hidden}
	.pp-dscr__main{display:flex;flex-direction:column;min-height:0;padding:.85rem 1rem}
	.pp-dscr__chart{height:auto;flex:1;min-height:40px}
	.pp-dcards{margin-bottom:.7rem}
}

/* (4) hero trust — inline flow so the shield icon stays glued to the text and
   wraps with it (was inline-flex → icon orphaned to the left of a centred block) */
.pp-hero2__trust{display:inline-block;gap:0}
.pp-hero2__trust svg,.pp-hero2__trust .sr-icon{display:inline;vertical-align:-3px;margin-right:.4rem}

/* (5) header — drop the demo button on mobile (redundant with drawer + bottom bar) */
@media (max-width:980px){
	.pp-head__cta .pp-btn--primary{display:none}
}

/* ============================================================
   ITERATION 11 — inner pages (service pages, services index,
   contact). Adapts the base sr-* service patterns to the light
   theme + navy hero, and styles the new pp- inner blocks.
   ============================================================ */

/* ---- service/inner hero: navy gradient (no roofing photo) + light text ---- */
.sr-svc-hero--np .wp-block-cover__image-background{display:none !important}
.sr-svc-hero--np .wp-block-cover__background{background:transparent !important}
.sr-svc-hero--np{background:radial-gradient(80% 90% at 12% -10%,#1c3f7c 0%,transparent 60%),linear-gradient(180deg,var(--pp-navy-deep),var(--pp-navy)) !important}
.sr-svc-hero .sr-hero-title{color:#fff}
.sr-svc-hero__sub{color:#c3d3ee !important}
.sr-svc-hero .sr-crumbs{color:rgba(255,255,255,.55)}
.sr-svc-hero .sr-crumbs a{color:rgba(255,255,255,.72)}
.sr-svc-hero .sr-crumbs a:hover{color:var(--pp-accent)}
.sr-svc-hero .sr-crumbs span[aria-current]{color:#fff}
.sr-svc-hero .sr-eyebrow{color:color-mix(in srgb,var(--pp-accent),white 22%)}
.sr-svc-hero__proof li{color:#c9d6ec}
.sr-svc-hero__proof svg{color:var(--pp-accent)}
.sr-svc-hero .sr-btn--ghost{color:#fff;border-color:rgba(255,255,255,.32)}
.sr-svc-hero .sr-btn--ghost:hover{border-color:#fff;background:rgba(255,255,255,.06)}

/* ---- service overview: single column (photo removed) ---- */
.sr-over--solo{display:block !important;max-width:820px}
.sr-over--solo .sr-over__copy{max-width:none}

/* ---- services index: icon cards ---- */
.pp-svcidx__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.pp-svcidx__card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--pp-line);border-radius:20px;padding:2rem;text-decoration:none;transition:transform .25s var(--pp-ease),box-shadow .25s,border-color .25s}
.pp-svcidx__card:hover{transform:translateY(-6px);box-shadow:0 30px 60px -34px rgba(11,35,80,.4);border-color:transparent}
.pp-svcidx__ico{display:inline-flex;width:60px;height:60px;border-radius:16px;background:#EEF4FC;color:var(--pp-accent);align-items:center;justify-content:center;margin-bottom:1.1rem;transition:background .25s,color .25s}
.pp-svcidx__card:hover .pp-svcidx__ico{background:var(--pp-accent);color:#fff}
.pp-svcidx__name{font-family:var(--wp--preset--font-family--heading);color:var(--pp-heading);font-size:1.5rem;font-weight:800}
.pp-svcidx__tag{color:var(--pp-accent);font-weight:700;font-size:.85rem;margin:.3rem 0 .8rem}
.pp-svcidx__blurb{color:var(--pp-text-2);font-size:.98rem;line-height:1.6;flex:1}
.pp-svcidx__link{display:inline-flex;align-items:center;gap:.4rem;color:var(--pp-accent-2);font-weight:700;margin-top:1.2rem}
@media(max-width:860px){.pp-svcidx__grid{grid-template-columns:1fr}}

/* ---- contact info band ---- */
.pp-cinfo__wrap{max-width:1160px;margin:0 auto}
.pp-cinfo__head{max-width:660px;margin-bottom:2.2rem}
.pp-cinfo__lead{color:var(--pp-text-2);font-size:1.15rem;line-height:1.6;margin-top:1rem}
.pp-cinfo__cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.pp-cinfo__card{display:flex;flex-direction:column;gap:.35rem;background:#fff;border:1px solid var(--pp-line);border-radius:16px;padding:1.5rem;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s}
a.pp-cinfo__card:hover{transform:translateY(-4px);box-shadow:0 20px 44px -26px rgba(11,35,80,.4);border-color:transparent}
.pp-cinfo__ico{display:inline-flex;width:46px;height:46px;border-radius:12px;background:#EEF4FC;color:var(--pp-accent-2);align-items:center;justify-content:center}
.pp-cinfo__lbl{color:var(--pp-dim);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-top:.4rem}
.pp-cinfo__card strong{color:var(--pp-heading);font-size:1.1rem}
@media(max-width:820px){.pp-cinfo__cards{grid-template-columns:1fr}}

/* ============================================================
   ITERATION 12 — Agents: directory (map + filters + grid),
   single agent page, and the map popup (pin → agent page).
   ============================================================ */

/* ---- map popup card ---- */
.pp-pop{display:flex;flex-direction:column;gap:.12rem;min-width:150px}
.pp-pop__role{color:var(--pp-accent);font-weight:700;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em}
.pp-pop__name{color:var(--pp-heading);font-size:1rem}
.pp-pop__zone{color:var(--pp-text-2);font-size:.82rem}
.pp-pop__link{margin-top:.4rem;color:var(--pp-accent-2);font-weight:700;text-decoration:none}
.leaflet-popup-content{margin:.7rem .9rem}

/* ---- directory ---- */
.pp-agdir__wrap{max-width:1180px;margin:0 auto}
.pp-agdir__map{height:420px;border-radius:20px;overflow:hidden;box-shadow:0 30px 70px -34px rgba(11,35,80,.4);margin-bottom:1.6rem}
.pp-agdir__map .pp-map{width:100%;height:100%;min-height:420px;background:#e8eef5}
.pp-agdir__controls{display:flex;gap:.8rem;flex-wrap:wrap;margin-bottom:1.8rem}
.pp-agdir__controls select{appearance:none;-webkit-appearance:none;background:#fff;border:1.5px solid var(--pp-line);border-radius:40px;padding:.7rem 2.6rem .7rem 1.2rem;font-weight:600;color:var(--pp-heading);font-size:.95rem;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2314315F' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center}
.pp-agdir__controls select:focus{border-color:var(--pp-accent);outline:none}
.pp-agdir__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.pp-agdir__empty{text-align:center;color:var(--pp-dim);padding:2rem;font-weight:600}

.pp-agcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--pp-line);border-radius:18px;padding:1.5rem;transition:transform .25s var(--pp-ease),box-shadow .25s,border-color .25s}
.pp-agcard:hover{transform:translateY(-5px);box-shadow:0 26px 54px -30px rgba(11,35,80,.4);border-color:transparent}
.pp-agcard__top{display:flex;align-items:center;gap:1rem;text-decoration:none;margin-bottom:1rem}
.pp-agcard__avatar,.pp-agcard__photo{flex:none;width:60px;height:60px;border-radius:50%;background:#EEF4FC;color:var(--pp-accent-2);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.1rem;background-size:cover;background-position:center}
.pp-agcard__name{display:block;font-family:var(--wp--preset--font-family--heading);color:var(--pp-heading);font-size:1.15rem;font-weight:800}
.pp-agcard__role{color:var(--pp-accent);font-weight:700;font-size:.82rem}
.pp-agcard__zone{display:flex;align-items:flex-start;gap:.4rem;color:var(--pp-text-2);font-size:.9rem;margin:0 0 .9rem}
.pp-agcard__zone svg{color:var(--pp-accent-2);flex:none;margin-top:2px}
.pp-agcard__tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}
.pp-agcard__link{margin-top:auto;color:var(--pp-accent-2);font-weight:700;text-decoration:none;display:inline-flex;gap:.35rem}
@media(max-width:860px){.pp-agdir__grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.pp-agdir__grid{grid-template-columns:1fr}}

/* ---- single agent ---- */
.pp-agpage__grid{display:grid;grid-template-columns:1.6fr 1fr;gap:2.6rem;align-items:start}
.pp-agpage__id{display:flex;align-items:center;gap:1.2rem;margin-bottom:1.6rem}
.pp-agpage__avatar,.pp-agpage__photo{flex:none;width:88px;height:88px;border-radius:50%;background:#EEF4FC;color:var(--pp-accent-2);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.6rem;background-size:cover;background-position:center}
.pp-agpage__name{font-family:var(--wp--preset--font-family--heading);font-size:2rem;font-weight:800;color:var(--pp-heading);margin:0}
.pp-agpage__role{color:var(--pp-accent);font-weight:700;margin:.2rem 0 0}
.pp-agpage__h{font-family:var(--wp--preset--font-family--heading);font-size:1.25rem;font-weight:800;color:var(--pp-heading);margin:1.8rem 0 .6rem}
.pp-agpage__bio{color:var(--pp-text-2);font-size:1.05rem;line-height:1.7;margin:0}
.pp-agpage__svcs{display:flex;flex-direction:column;gap:.7rem}
.pp-agpage__svc{display:flex;align-items:center;gap:.7rem;background:#fff;border:1px solid var(--pp-line);border-radius:12px;padding:.9rem 1.1rem;text-decoration:none;color:var(--pp-heading);font-weight:700;transition:.2s}
.pp-agpage__svc:hover{border-color:var(--pp-accent);transform:translateX(3px)}
.pp-agpage__svc svg{color:var(--pp-accent)}
.pp-agpage__arrow{margin-left:auto;color:var(--pp-accent-2)}
.pp-agpage__card{background:#fff;border:1px solid var(--pp-line);border-radius:18px;padding:1.5rem;box-shadow:0 24px 60px -34px rgba(11,35,80,.3)}
.pp-agpage__row{display:flex;flex-direction:column;gap:.15rem;padding:.6rem 0;border-bottom:1px solid var(--pp-line)}
.pp-agpage__row:last-of-type{border-bottom:0}
.pp-agpage__lbl{color:var(--pp-dim);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.pp-agpage__btns{display:flex;flex-direction:column;gap:.6rem;margin-top:1rem}
.pp-agpage__map{height:220px;border-radius:16px;overflow:hidden;margin-top:1.2rem;min-height:220px;background:#e8eef5}
.pp-agpage__all{display:inline-block;margin-top:1.2rem;color:var(--pp-accent-2);font-weight:700;text-decoration:none}
@media(max-width:860px){.pp-agpage__grid{grid-template-columns:1fr}}
/* Agent page fixes: keep pill buttons inside their card */
.pp-btn{box-sizing:border-box}
/* Lead-form consent checkbox */
.pp-consent{display:flex;gap:.55rem;align-items:flex-start;font-size:.85rem;line-height:1.45;color:var(--pp-text-2);margin:.1rem 0 .2rem;text-align:left}
.pp-consent input{margin-top:.2rem;flex:none;width:16px;height:16px}
.pp-consent a{color:var(--pp-accent-2);text-decoration:underline}

/* ================= TEAM (real people: directory, About section, member pages) ================= */
.pp-team{padding-top:clamp(3.5rem,7vw,5.5rem) !important;padding-bottom:clamp(3.5rem,7vw,5.5rem) !important}
.pp-team--about,.pp-team--mates{background:var(--pp-mist)}
.pp-team__head{max-width:720px;margin:0 auto 2.4rem;text-align:center}
.pp-team__sub{color:var(--pp-text-2);font-size:1.06rem;line-height:1.65;margin:.8rem auto 0}
.pp-team__none{text-align:center;color:var(--pp-text-2)}
.pp-team__dept + .pp-team__dept{margin-top:3rem}
.pp-team__depthead{display:flex;align-items:baseline;flex-wrap:wrap;gap:.4rem 1.4rem;padding-bottom:.9rem;margin-bottom:1.4rem;border-bottom:1px solid var(--pp-line)}
.pp-team__deptname{font-family:var(--wp--preset--font-family--heading);font-size:clamp(1.25rem,2.2vw,1.55rem);font-weight:800;color:var(--pp-heading);margin:0;letter-spacing:-.01em}
.pp-team__deptdesc{flex:1 1 320px;margin:0;color:var(--pp-text-2);font-size:.98rem;line-height:1.55}
.pp-team__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1.3rem}
.pp-team__more{text-align:center;margin:2.2rem 0 0}
.pp-person{box-sizing:border-box;min-width:0;display:flex;flex-direction:column;background:#fff;border:1px solid var(--pp-line);border-radius:18px;overflow:hidden;text-decoration:none;color:inherit;transition:transform .25s var(--pp-ease),box-shadow .25s var(--pp-ease),border-color .25s}
.pp-person:hover{transform:translateY(-4px);box-shadow:0 22px 44px -26px rgba(11,35,80,.35);border-color:color-mix(in srgb,var(--pp-accent),white 55%)}
.pp-person:focus-visible{outline:3px solid var(--pp-accent);outline-offset:3px}
.pp-person__media{display:block;aspect-ratio:1 / 1;background:#EEF4FC;overflow:hidden}
.pp-person__media img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 30%;transition:transform .5s var(--pp-ease)}
.pp-person:hover .pp-person__media img{transform:scale(1.04)}
.pp-person__ph{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-family:var(--wp--preset--font-family--heading);font-weight:800;font-size:clamp(2.2rem,5vw,3rem);letter-spacing:.02em;color:var(--pp-accent-2);background:#EEF4FC}
.pp-person__body{display:flex;flex-direction:column;gap:.2rem;padding:1rem 1.1rem 1.15rem;flex:1}
.pp-person__name{font-family:var(--wp--preset--font-family--heading);font-size:1.05rem;font-weight:800;line-height:1.25;color:var(--pp-heading)}
.pp-person__role{font-size:.88rem;line-height:1.4;color:var(--pp-text-2)}
.pp-person__dept{margin-top:.15rem;font-size:.74rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--pp-dim)}
.pp-person__cta{margin-top:auto;padding-top:.6rem;font-size:.88rem;font-weight:700;color:var(--pp-accent-2)}
/* About teaser: centred rows (6 + 5 for eleven people) instead of a lone last card */
.pp-team--about .pp-team__grid{display:flex;flex-wrap:wrap;justify-content:center}
.pp-team--about .pp-person{flex:0 0 calc((100% - 5 * 1.3rem) / 6)}
@media(max-width:1100px){.pp-team--about .pp-person{flex-basis:calc((100% - 3 * 1.3rem) / 4)}}
@media(max-width:620px){.pp-team--about .pp-person{flex-basis:calc((100% - .8rem) / 2)}}
/* member page: real portrait instead of the small avatar */
img.pp-agpage__photo{display:block;width:132px;height:132px;border-radius:50%;object-fit:cover;object-position:50% 30%;box-shadow:0 16px 32px -18px rgba(11,35,80,.45)}
.pp-agpage__avatar{width:132px;height:132px;font-size:2.4rem}
@media(max-width:620px){
	.pp-team__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}
	.pp-person__body{padding:.75rem .8rem .9rem}
	.pp-person__name{font-size:.95rem}
	.pp-person__role{font-size:.8rem}
	.pp-person__cta{display:none}
	img.pp-agpage__photo,.pp-agpage__avatar{width:96px;height:96px;font-size:1.8rem}
}

/* ================= OFFICES (directory, cards, office pages) ================= */
.pp-offdir{padding-top:clamp(3.5rem,7vw,6rem) !important;padding-bottom:clamp(4.5rem,9vw,7.5rem) !important}
.pp-offdir .pp-offdir__grid:first-child{margin-top:0}
.pp-offdir__map{width:100vw;max-width:none !important;margin-left:0 !important;margin-right:0 !important;position:relative;left:50%;transform:translateX(-50%);height:clamp(320px,46vh,480px);overflow:hidden;background:#e8eef5}
.pp-offdir__map .pp-map{height:100%;min-height:100%}
.pp-offdir__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.4rem;margin-top:clamp(2rem,4vw,3rem)}
.pp-team--mates .pp-offdir__grid{margin-top:0}
.pp-offdir__also{text-align:center;color:var(--pp-text-2);font-size:.98rem;margin:2.2rem 0 0}
.pp-office{box-sizing:border-box;min-width:0;display:flex;flex-direction:column;gap:1.1rem;background:#fff;border:1px solid var(--pp-line);border-radius:20px;padding:1.6rem 1.6rem 1.5rem;box-shadow:0 24px 56px -40px rgba(11,35,80,.35)}
.pp-office.is-hq{border-top:4px solid var(--pp-accent)}
.pp-office__badge{display:inline-block;padding:.28rem .65rem;border-radius:999px;background:#EEF4FC;color:var(--pp-accent-2);font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.pp-office.is-hq .pp-office__badge{background:color-mix(in srgb,var(--pp-accent),white 86%);color:color-mix(in srgb,var(--pp-accent),black 22%)}
.pp-office__name{font-family:var(--wp--preset--font-family--heading);font-size:1.45rem;font-weight:800;letter-spacing:-.01em;margin:.7rem 0 .1rem;line-height:1.2}
.pp-office__name a{color:var(--pp-heading);text-decoration:none}
.pp-office__name a:hover{color:var(--pp-accent-2)}
.pp-office__region{margin:0;color:var(--pp-text-2);font-size:.95rem}
.pp-office__facts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}
.pp-office__facts li{display:flex;gap:.7rem;align-items:flex-start;color:var(--pp-heading);font-size:.95rem;line-height:1.5}
.pp-office__facts svg{flex:none;margin-top:.12rem;color:var(--pp-accent)}
.pp-office__facts a{color:var(--pp-heading);font-weight:700;text-decoration:none}
.pp-office__facts a:hover{color:var(--pp-accent-2)}
.pp-office__actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:auto;padding-top:.4rem}
.pp-offpage{padding-top:clamp(3rem,6vw,4.5rem) !important;padding-bottom:clamp(3rem,6vw,4.5rem) !important}
.pp-offpage__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:2rem;align-items:stretch}
.pp-offpage__card{box-sizing:border-box;background:#fff;border:1px solid var(--pp-line);border-radius:20px;padding:clamp(1.4rem,3vw,2.2rem);box-shadow:0 24px 60px -34px rgba(11,35,80,.3)}
.pp-offpage__h{font-family:var(--wp--preset--font-family--heading);font-size:1.5rem;font-weight:800;color:var(--pp-heading);margin:0 0 1.3rem}
.pp-offpage__facts{margin:0;display:flex;flex-direction:column;gap:1.15rem}
.pp-offpage__facts > div{display:grid;gap:.3rem}
.pp-offpage__facts dt{display:flex;align-items:center;gap:.5rem;color:var(--pp-dim);font-size:.76rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.pp-offpage__facts dt svg{color:var(--pp-accent)}
.pp-offpage__facts dd{margin:0 0 0 1.65rem;color:var(--pp-heading);font-weight:600;line-height:1.55}
.pp-offpage__facts dd a{color:var(--pp-heading);text-decoration:none}
.pp-offpage__facts dd a:hover{color:var(--pp-accent-2)}
.pp-offpage__actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.7rem}
.pp-offpage__map{border-radius:20px;overflow:hidden;min-height:420px;background:#e8eef5;isolation:isolate}
.pp-offpage__map .pp-map{height:100%;min-height:420px}
.pp-cta2__also{margin:-.3rem 0 1.1rem;color:var(--pp-text-2);font-size:.86rem}
/* OpenStreetMap tiles are busier than the old CARTO style: mute them so every map stays light and on-brand (pins are unaffected). */
.pp-map .leaflet-tile-pane{filter:grayscale(.6) saturate(.85) brightness(1.05) contrast(.9)}
@media(max-width:860px){
	.pp-offpage__grid{grid-template-columns:1fr}
	.pp-offpage__map,.pp-offpage__map .pp-map{min-height:320px}
}

/* Header: tighten spacing on narrower desktops, then hand over to the drawer
   before anything can overflow (burger + drawer switch together). Measured with
   the mega menu (5 top items) + "Clientes": ~40px to spare at 1081px. */
@media (max-width:1260px){
	.pp-head{gap:1.3rem;padding-left:1.4rem;padding-right:1.4rem}
	.pp-nav{gap:1.15rem;margin-left:0}
	.pp-nav a{font-size:.92rem}
	.pp-head__cta{gap:.75rem}
}
@media (max-width:1080px){
	.pp-nav,.pp-clientes{display:none}
	.pp-burger{display:flex}
	.pp-drawer{display:block}
}

/* ================= PARTNERS (ecosystem cards, logo strip, service partner block) ================= */
.pp-eco__partner{margin:.7rem 0 0;font-size:.82rem;font-weight:700;color:var(--pp-accent-2)}
.pp-eco__link{display:inline-block;margin-top:.55rem;font-size:.88rem;font-weight:700;color:var(--pp-accent);text-decoration:none}
.pp-eco__link:hover{text-decoration:underline}
.pp-partners{margin-top:clamp(2.2rem,4vw,3rem);padding-top:1.8rem;border-top:1px solid var(--pp-line);text-align:center}
.pp-partners__label{margin:0 0 1.1rem;font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--pp-dim)}
.pp-partners__logos{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1rem 2.4rem}
.pp-partner-logo{display:block;height:52px;width:auto;max-width:220px;object-fit:contain}
.pp-partner-mark{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:.6rem 1.3rem;border:1px solid var(--pp-line);border-radius:14px;background:#fff;font-family:var(--wp--preset--font-family--heading);font-weight:800;font-size:1rem;letter-spacing:-.01em;color:var(--pp-heading)}
.pp-svcpartner{background:var(--pp-mist);padding-top:clamp(3rem,6vw,4.5rem) !important;padding-bottom:clamp(3rem,6vw,4.5rem) !important}
.pp-svcpartner__inner{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:clamp(1.6rem,4vw,3rem);align-items:center;max-width:1000px;margin:0 auto}
.pp-svcpartner__logo{box-sizing:border-box;display:flex;align-items:center;justify-content:center;min-height:180px;padding:1.6rem;background:#fff;border:1px solid var(--pp-line);border-radius:20px;box-shadow:0 24px 56px -40px rgba(11,35,80,.35)}
.pp-svcpartner__logo .pp-partner-logo{height:auto;max-height:110px;max-width:100%}
.pp-svcpartner__logo .pp-partner-mark{border:0;background:none;min-height:0;padding:0;font-size:1.3rem;line-height:1.3;text-align:center}
.pp-svcpartner__text{margin:.8rem 0 0;color:var(--pp-text-2);font-size:1.06rem;line-height:1.7}
@media(max-width:760px){.pp-svcpartner__inner{grid-template-columns:1fr}.pp-svcpartner__logo{min-height:130px}}

/* ================= GOOGLE REVIEWS (buttons under the review wall, office pages) ================= */
.pp-tst2__more{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem;margin:clamp(1.8rem,3.5vw,2.6rem) auto 0;padding:0 1rem}
.pp-offpage__google{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin:1.4rem 0 0;padding-top:1.1rem;border-top:1px solid var(--pp-line);font-size:.92rem;color:var(--pp-dim)}
.pp-offpage__google svg{color:#f5b400}
.pp-offpage__google a{color:var(--pp-accent-2);font-weight:700;text-decoration:none}
.pp-offpage__google a:hover{text-decoration:underline}

/* ================= TAX FORMS (Payroll: W-4 / W-9 downloads) ================= */
.pp-forms{background:var(--pp-mist);padding-top:clamp(3.5rem,7vw,5.5rem) !important;padding-bottom:clamp(3.5rem,7vw,5.5rem) !important}
.pp-forms__head{max-width:760px;margin:0 auto 2.2rem;text-align:center}
.pp-forms__sub{color:var(--pp-text-2);font-size:1.04rem;line-height:1.6;margin:.7rem 0 0}
.pp-forms__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.3rem;align-items:stretch}
.pp-form{box-sizing:border-box;min-width:0;display:flex;flex-direction:column;gap:.6rem;background:#fff;border:1px solid var(--pp-line);border-radius:20px;padding:1.6rem;box-shadow:0 24px 56px -40px rgba(11,35,80,.35)}
.pp-form__code{align-self:flex-start;font-family:var(--wp--preset--font-family--heading);font-weight:800;font-size:1.5rem;letter-spacing:-.01em;color:var(--pp-accent);background:color-mix(in srgb,var(--pp-accent),white 88%);border-radius:12px;padding:.3rem .8rem}
.pp-form__ico{display:inline-flex;align-self:flex-start;align-items:center;justify-content:center;width:52px;height:52px;border-radius:14px;background:#EEF4FC;color:var(--pp-accent-2)}
.pp-form__name{font-family:var(--wp--preset--font-family--heading);font-size:1.12rem;font-weight:800;line-height:1.3;color:var(--pp-heading);margin:.35rem 0 0}
.pp-form__text{margin:0;color:var(--pp-text-2);font-size:.95rem;line-height:1.6}
.pp-form__links{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:auto;padding-top:.7rem}
.pp-form__links .pp-btn{flex:1 1 auto;justify-content:center;font-size:.88rem;padding:.7rem 1.1rem}
.pp-form--help{background:linear-gradient(160deg,#fff,#F4F8FD)}
.pp-forms__note{margin:1.4rem 0 0;color:var(--pp-dim);font-size:.85rem;text-align:center}
@media(max-width:980px){.pp-forms__grid{grid-template-columns:1fr 1fr}.pp-form--help{grid-column:1 / -1}}
@media(max-width:620px){.pp-forms__grid{grid-template-columns:1fr}}

/* archive pagination (category / date archives) */
.pp-blog__pages ul{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin:2.4rem 0 0;padding:0}
.pp-blog__pages a,.pp-blog__pages span{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 .8rem;border:1px solid var(--pp-line);border-radius:999px;background:#fff;color:var(--pp-heading);font-weight:700;text-decoration:none}
.pp-blog__pages .current{background:var(--pp-accent);border-color:var(--pp-accent);color:#fff}
.pp-agpage__btns .pp-btn{max-width:100%}
.pp-agpage__btns .pp-btn span,.pp-agpage__btns .pp-btn{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ============================================================
   ITERATION 13 — differentiated service sections:
   modules (payroll), tiers (bookkeeping), entities (tax).
   ============================================================ */

/* modules grid */
.pp-svcmod__head{max-width:760px;margin:0 0 2.4rem}
.pp-svcmod__sub{color:var(--pp-text-2);font-size:1.08rem;line-height:1.6;margin-top:1rem}
.pp-svcmod__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}
.pp-svcmod__card{background:#fff;border:1px solid var(--pp-line);border-radius:16px;padding:1.6rem;transition:transform .25s var(--pp-ease),box-shadow .25s,border-color .25s}
.pp-svcmod__card:hover{transform:translateY(-4px);box-shadow:0 24px 50px -30px rgba(11,35,80,.4);border-color:transparent}
.pp-svcmod__ico{display:inline-flex;width:50px;height:50px;border-radius:13px;background:#EEF4FC;color:var(--pp-accent);align-items:center;justify-content:center;margin-bottom:1rem}
.pp-svcmod__name{font-family:var(--wp--preset--font-family--heading);font-size:1.15rem;font-weight:800;color:var(--pp-heading);margin:0 0 .4rem}
.pp-svcmod__text{color:var(--pp-text-2);font-size:.95rem;line-height:1.55;margin:0}
@media(max-width:860px){.pp-svcmod__grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.pp-svcmod__grid{grid-template-columns:1fr}}

/* tiers */
.pp-tiers__head{max-width:760px;margin:0 0 2.4rem}
.pp-tiers__grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:stretch}
.pp-tier{position:relative;background:#fff;border:1px solid var(--pp-line);border-radius:20px;padding:2rem;display:flex;flex-direction:column;height:100%}
.pp-tier--feat{border:2px solid var(--pp-accent);box-shadow:0 30px 60px -34px rgba(244,122,32,.5)}
.pp-tier__badge{position:absolute;top:-13px;left:2rem;background:var(--pp-accent);color:#fff;font-weight:800;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;padding:.35rem .85rem;border-radius:20px}
.pp-tier__name{font-family:var(--wp--preset--font-family--heading);font-size:1.4rem;font-weight:800;color:var(--pp-heading);margin:0}
.pp-tier__note{color:var(--pp-accent);font-weight:700;font-size:.85rem;margin:.3rem 0 .8rem}
.pp-tier__desc{color:var(--pp-text-2);font-size:.98rem;line-height:1.55;margin:0 0 1.2rem}
.pp-tier__list{list-style:none;margin:0 0 1.4rem;padding:0;display:grid;gap:.6rem;flex:1}
.pp-tier__list li{display:flex;gap:.6rem;align-items:flex-start;color:var(--pp-text);font-size:.93rem;line-height:1.4}
.pp-tier__list svg{color:var(--pp-mint);flex:none;margin-top:2px}
@media(max-width:820px){.pp-tiers__grid{grid-template-columns:1fr;gap:2.2rem}.pp-tier{height:auto}}

/* entities */
.pp-ent__head{max-width:760px;margin:0 0 2.4rem}
.pp-ent__sub{color:var(--pp-text-2);font-size:1.08rem;line-height:1.6;margin-top:1rem}
.pp-ent__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
.pp-ent__card{background:#fff;border:1px solid var(--pp-line);border-radius:16px;padding:1.6rem;transition:transform .25s var(--pp-ease),box-shadow .25s,border-color .25s}
.pp-ent__card:hover{transform:translateY(-4px);box-shadow:0 24px 50px -30px rgba(11,35,80,.4);border-color:transparent}
.pp-ent__badge{display:inline-block;background:var(--pp-navy);color:#fff;font-family:var(--wp--preset--font-family--heading);font-weight:800;font-size:1rem;padding:.4rem .9rem;border-radius:10px;margin-bottom:.9rem}
.pp-ent__text{color:var(--pp-text-2);font-size:.95rem;line-height:1.55;margin:0}
@media(max-width:860px){.pp-ent__grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.pp-ent__grid{grid-template-columns:1fr}}

/* ============================================================
   ITERATION 14 — blog: index cards + article typography.
   ============================================================ */
.pp-blog__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.pp-blog__empty{color:var(--pp-dim);text-align:center;padding:2rem}
.pp-postcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--pp-line);border-radius:18px;overflow:hidden;transition:transform .25s var(--pp-ease),box-shadow .25s,border-color .25s}
.pp-postcard:hover{transform:translateY(-5px);box-shadow:0 30px 60px -34px rgba(11,35,80,.4);border-color:transparent}
.pp-postcard__body{padding:1.6rem;text-decoration:none;display:block;flex:1}
.pp-postcard__cat{display:inline-block;color:var(--pp-accent);font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.6rem}
.pp-postcard__title{font-family:var(--wp--preset--font-family--heading);font-size:1.25rem;font-weight:800;color:var(--pp-heading);line-height:1.25;margin:0 0 .6rem}
.pp-postcard__ex{color:var(--pp-text-2);font-size:.95rem;line-height:1.55;margin:0}
.pp-postcard__meta{display:flex;gap:.5rem;align-items:center;color:var(--pp-dim);font-size:.82rem;padding:0 1.6rem 1.4rem}
@media(max-width:860px){.pp-blog__grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.pp-blog__grid{grid-template-columns:1fr}}

/* article body */
.pp-article-sec{--pp-flow:1.3rem}
.pp-article{font-size:1.12rem;line-height:1.8;color:var(--pp-text)}
.pp-article p{margin:0 0 1.3rem}
.pp-article h2{font-family:var(--wp--preset--font-family--heading);font-size:1.7rem;font-weight:800;color:var(--pp-heading);line-height:1.2;margin:2.4rem 0 1rem}
.pp-article h3{font-family:var(--wp--preset--font-family--heading);font-size:1.3rem;font-weight:800;color:var(--pp-heading);margin:1.8rem 0 .8rem}
.pp-article ul,.pp-article ol{margin:0 0 1.3rem;padding-left:1.3rem}
.pp-article li{margin-bottom:.5rem}
.pp-article a{color:var(--pp-accent-2);text-decoration:underline;text-underline-offset:2px;font-weight:600}
.pp-article a:hover{color:var(--pp-accent)}
.pp-article strong{color:var(--pp-heading)}

/* ============ REAL LOGO (image) ============ */
.pp-logo--img{display:inline-flex;align-items:center;line-height:0}
.pp-logo__img{height:42px;width:auto;display:block;transition:height .3s var(--pp-ease)}
.pp-head[data-header].is-scrolled .pp-logo__img{height:34px}
.pp-drawer__logo .pp-logo__img{height:38px}
.pp-logo--footer{margin-bottom:.9rem}
.pp-logo--footer .pp-logo__img{height:46px}
@media(max-width:600px){.pp-logo__img{height:34px}}

/* lead form notice */
.pp-cta2__notice{padding:.8rem 1rem;border-radius:12px;font-weight:600;font-size:.95rem;margin:0 0 1rem}
.pp-cta2__notice--ok{background:#E6F6EE;color:#0f8a68}
.pp-cta2__notice--err{background:#FDECEC;color:#d1483f}

/* ============ 404 ============ */
.pp-404{min-height:54vh;display:flex;align-items:center}
.pp-404__wrap{max-width:680px;margin:0 auto;text-align:center}
.pp-404 .sr-eyebrow{color:color-mix(in srgb,var(--pp-accent),white 22%);text-align:center}
.pp-404 .sr-hero-title{color:#fff;font-size:clamp(2.2rem,5vw,3.4rem);margin:.6rem 0}
.pp-404__sub{color:#c3d3ee;font-size:1.15rem;margin:0 0 1.8rem}
.pp-404__cta{margin-bottom:2rem}
.pp-404__links{display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;justify-content:center}
.pp-404__links a{color:#fff;font-weight:600;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:2px}
.pp-404__links a:hover{border-color:#fff}

/* ============================================================
   ITERATION 15 — UI feedback: header no border, laptop floats +
   video-ratio mobile + no opacity fade, reviews single row.
   ============================================================ */

/* header: no border once it gets a background (shadow is enough) */
.puntualpayroll-header:has(.is-scrolled){border-bottom-color:transparent !important}

/* laptop stage: keep the rise/scale on scroll, drop the opacity fade */
.pp-appd__stage{opacity:1 !important}

/* laptop screen on mobile: video aspect ratio (16:9), clip inside if needed */
@media(max-width:620px){
	.pp-laptop__screen{aspect-ratio:16 / 9 !important}
}

/* reviews: single drifting row + more vertical breathing room */
.pp-tst2{padding-top:clamp(4.5rem,9vw,7rem) !important;padding-bottom:clamp(4.5rem,9vw,7rem) !important}
.pp-tst2__rows--single{padding:1.4rem 0}
.pp-tst2__rows--single .pp-revmarq .pp-marquee__track{animation-duration:70s}

/* laptop floating windows (desktop app section) — like the phone mock's */
.pp-appd__stage{position:relative}
.pp-appd__fwin{position:absolute;z-index:5;background:#fff;border:1px solid var(--pp-line);border-radius:14px;box-shadow:0 24px 50px -24px rgba(11,35,80,.4);padding:.8rem 1rem;display:flex;align-items:center;gap:.7rem;will-change:transform}
.pp-appd__fwin .pp-fwin__ok{flex:none;width:34px;height:34px;border-radius:10px;background:#E6F6EE;color:var(--pp-mint);display:flex;align-items:center;justify-content:center}
.pp-appd__fwin .pp-fwin__t{display:flex;flex-direction:column;line-height:1.2}
.pp-appd__fwin .pp-fwin__t strong{color:var(--pp-heading);font-size:.85rem}
.pp-appd__fwin .pp-fwin__t small{color:var(--pp-dim);font-size:.72rem}
.pp-appd__fwin--a{top:6%;left:-3%}
.pp-appd__fwin--b{bottom:10%;right:-3%}
.pp-appd__fwin--warm{background:#FCF2E8;border-color:#F3E1CC}
.pp-appd__fwin--warm .pp-fwin__ok{background:#FCE4CB;color:#d9611a}
.pp-appd__fwin--warm .pp-fwin__t strong{color:#7a3d10}
@media(max-width:900px){.pp-appd__fwin{display:none}}

/* ---- agents explorer (Google-Maps style: full map + left panel) ---- */
.pp-agx__head{max-width:1180px;margin:0 auto 1.6rem;padding:0 2rem}
.pp-agx__sub{color:var(--pp-text-2);font-size:1.1rem;line-height:1.6;margin:.8rem 0 0;max-width:62ch}
.pp-agx{position:relative;height:min(78vh,780px);width:100%}
.pp-agx__map{position:absolute;inset:0;z-index:0}
.pp-agx__map .pp-map{width:100%;height:100%;min-height:100%;background:#e8eef5}
.pp-agx__panel{position:absolute;top:1.2rem;left:1.2rem;bottom:1.2rem;width:380px;max-width:calc(100% - 2.4rem);z-index:3;background:#fff;border-radius:18px;box-shadow:0 30px 70px -34px rgba(11,35,80,.55);display:flex;flex-direction:column;overflow:hidden}
.pp-agx__filters{display:flex;gap:.6rem;padding:1rem;border-bottom:1px solid var(--pp-line)}
.pp-agx__filters select{flex:1;min-width:0;appearance:none;-webkit-appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2314315F' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right .7rem center;border:1.5px solid var(--pp-line);border-radius:30px;padding:.55rem 2rem .55rem .9rem;font-weight:600;font-size:.88rem;color:var(--pp-heading);cursor:pointer}
.pp-agx__filters select:focus{border-color:var(--pp-accent);outline:none}
.pp-agx__count{margin:0;padding:.8rem 1.1rem 0;color:var(--pp-dim);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.pp-agx__list{overflow-y:auto;padding:.5rem;flex:1}
.pp-agx__item{display:flex;gap:.9rem;padding:.9rem;border-radius:14px;text-decoration:none;transition:background .2s;align-items:flex-start}
.pp-agx__item:hover{background:var(--pp-mist)}
.pp-agx__av{flex:none;width:52px;height:52px;border-radius:50%;background:#EEF4FC;color:var(--pp-accent-2);display:flex;align-items:center;justify-content:center;font-weight:800;background-size:cover;background-position:center}
.pp-agx__body{display:flex;flex-direction:column;gap:.12rem;min-width:0}
.pp-agx__name{color:var(--pp-heading);font-size:1rem;font-weight:800;font-family:var(--wp--preset--font-family--heading)}
.pp-agx__role{color:var(--pp-accent);font-weight:700;font-size:.8rem}
.pp-agx__zone{display:flex;align-items:center;gap:.3rem;color:var(--pp-text-2);font-size:.82rem}
.pp-agx__zone svg{color:var(--pp-accent-2);flex:none}
.pp-agx__tags{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.35rem}
.pp-agx__tags .pp-tag2{font-size:.72rem;padding:.2rem .55rem}
.pp-agx__empty{padding:1.5rem;text-align:center;color:var(--pp-dim);font-weight:600}
@media(max-width:820px){
	.pp-agx{height:auto;display:flex;flex-direction:column}
	.pp-agx__map{position:relative;height:46vh;inset:auto}
	.pp-agx__map .pp-map{min-height:46vh}
	.pp-agx__panel{position:relative;top:auto;left:auto;bottom:auto;width:auto;max-width:none;margin:.9rem 1rem 0;box-shadow:0 20px 44px -30px rgba(11,35,80,.4)}
	.pp-agx__list{max-height:64vh}
}

/* ---- legal pages ---- */
.pp-legal__title{font-family:var(--wp--preset--font-family--heading);font-size:clamp(2rem,4vw,2.8rem);font-weight:800;color:var(--pp-heading);line-height:1.1;margin:0 0 1.6rem}
.pp-legal__note{background:#FFF6E9;border:1px solid #F3E1CC;border-left:4px solid var(--pp-accent);border-radius:10px;padding:1rem 1.2rem;margin:0 0 2rem;font-size:.95rem;line-height:1.6;color:var(--pp-text)}
.pp-legal__note strong{color:var(--pp-heading)}

/* ---- agents directory v2: full-width map on top + card cascade below ---- */
.pp-agdir2{padding:0 0 clamp(3rem,6vw,5rem)}
.pp-agdir2__head{max-width:1180px;margin:0 auto;padding:clamp(2.5rem,5vw,4rem) 2rem 1.8rem}
.pp-agdir2__sub{color:var(--pp-text-2);font-size:1.1rem;line-height:1.6;margin:.8rem 0 0;max-width:62ch}
.pp-agdir2__mapwrap{width:100vw;position:relative;left:50%;transform:translateX(-50%);height:58vh;min-height:440px;background:#e8eef5;overflow:hidden}
.pp-agdir2__mapwrap .pp-map{width:100%;height:100%;min-height:100%}
.pp-agdir2__body{max-width:1180px;margin:0 auto;padding:2.2rem 2rem 0}
.pp-agdir2__controls{display:flex;gap:.8rem;flex-wrap:wrap;margin-bottom:1.8rem}
.pp-agdir2__controls select{appearance:none;-webkit-appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2314315F' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 1rem center;border:1.5px solid var(--pp-line);border-radius:40px;padding:.7rem 2.6rem .7rem 1.2rem;font-weight:600;font-size:.95rem;color:var(--pp-heading);cursor:pointer}
.pp-agdir2__controls select:focus{border-color:var(--pp-accent);outline:none}
@media(max-width:620px){.pp-agdir2__mapwrap{height:48vh;min-height:340px}}

/* ============ PHOTO HEROES (render_hero 'photo') ============
   Stock photo, desaturated, under a brand-navy gradient (densest behind the
   copy on the left), a soft orange glow bottom-right and fine film grain —
   all on the cover's overlay layer so the text always sits on top. The photo
   settles with a slow zoom on load (off for reduced motion). */
.puntualpayroll-hero.pp-hero--photo{overflow:hidden;background:var(--pp-navy-deep) !important}
.puntualpayroll-hero.pp-hero--photo .wp-block-cover__image-background{display:block !important;object-fit:cover;filter:grayscale(.55) contrast(1.06) brightness(.95);transform-origin:70% 50%;animation:ppHeroSettle 18s cubic-bezier(.2,.6,.2,1) both}
.puntualpayroll-hero.pp-hero--photo .wp-block-cover__background{opacity:1 !important;background:
	url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .10 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),
	radial-gradient(55% 75% at 100% 100%,rgba(244,122,32,.22),transparent 70%),
	linear-gradient(105deg,rgba(8,25,58,.96) 0%,rgba(11,35,80,.9) 36%,rgba(20,49,95,.66) 68%,rgba(20,49,95,.5) 100%) !important}
@keyframes ppHeroSettle{from{transform:scale(1.12)}to{transform:scale(1)}}
/* slideshow: every slide stacked; the active one fades in (1.8s) and drifts */
.puntualpayroll-hero.pp-hero--slides .pp-hero-slide{opacity:0;transition:opacity 1.8s ease;animation:none}
.puntualpayroll-hero.pp-hero--slides .pp-hero-slide.is-on{opacity:1;animation:ppHeroSettle 9s cubic-bezier(.2,.6,.2,1) both}
@media (prefers-reduced-motion:reduce){.puntualpayroll-hero.pp-hero--slides .pp-hero-slide.is-on{animation:none}}

/* ============ MAP HERO (render_hero 'map'): the live map is the backdrop ============ */
.puntualpayroll-hero.pp-hero--map{overflow:hidden;background:#dfe6ef !important}
.pp-hero--map .pp-hero-map{position:absolute;inset:0;z-index:0;width:100%;height:100%;min-height:0;border-radius:0}
.pp-hero--map .pp-hero-map .leaflet-tile-pane{filter:grayscale(1) contrast(.95) brightness(.97)}
.pp-hero--map .pp-hero-map .leaflet-control-attribution{background:rgba(255,255,255,.75);font-size:10px}
/* navy veil: solid behind the copy, clear over the pin; never blocks the map */
.puntualpayroll-hero.pp-hero--map .wp-block-cover__background{opacity:1 !important;pointer-events:none;background:
	linear-gradient(90deg,rgba(8,25,58,.97) 0%,rgba(11,35,80,.93) 34%,rgba(20,49,95,.55) 58%,rgba(20,49,95,.12) 82%,rgba(20,49,95,0) 100%) !important}
.pp-hero--map .wp-block-cover__inner-container{pointer-events:none}
.pp-hero--map .sr-svc-hero__inner{pointer-events:auto}
@media (max-width:760px){
	.puntualpayroll-hero.pp-hero--map{min-height:0 !important}
	.pp-hero--map .wp-block-cover__inner-container{padding-bottom:240px}
	.puntualpayroll-hero.pp-hero--map .wp-block-cover__background{background:
		linear-gradient(180deg,rgba(8,25,58,.97) 0%,rgba(11,35,80,.93) 55%,rgba(20,49,95,.35) 78%,rgba(20,49,95,0) 100%) !important}
}
@media (max-width:760px){
	.puntualpayroll-hero.pp-hero--photo .wp-block-cover__background{background:
		radial-gradient(80% 50% at 100% 100%,rgba(244,122,32,.2),transparent 70%),
		linear-gradient(180deg,rgba(11,35,80,.86) 0%,rgba(8,25,58,.94) 100%) !important}
}
@media (prefers-reduced-motion:reduce){.puntualpayroll-hero.pp-hero--photo .wp-block-cover__image-background{animation:none}}

/* ============ IMAGE PROTECTION (client request) ============
   No selecting/dragging images; team photos and hero backgrounds also ignore
   the pointer, so "open image in new tab" isn't offered on them. (Deterrent
   only — anything shown in a browser can still be saved via dev tools.) */
img:not(.leaflet-tile):not(.leaflet-marker-icon){-webkit-user-drag:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.pp-person img,.pp-mega__faces img,.pp-agpage img,.wp-block-cover__image-background,.pp-hero-slide,.pp-scr--img img,.pp-dscr--img img{pointer-events:none}

/* ============ MOBILE GUTTERS: one 16px side gutter everywhere ============
   Home sections stacked the section's own 16px with a 2rem inner wrapper
   (48px a side), squeezing the content; service pages already use 16px. */
@media(max-width:620px){
	.pp-svc3__head,.pp-why2,.pp-how2,.pp-faq2{padding-left:0 !important;padding-right:0 !important}
	.pp-appd,.pp-clients__wrap,.pp-tst2__head{padding-left:16px !important;padding-right:16px !important}
	.pp-cta2__overlay{padding-left:12px;padding-right:12px}
	.pp-laptop__base{max-width:100%;box-sizing:border-box}
	.pp-cta2__panel{padding:1.4rem 1.2rem}
}

/* ============ TEAM: compact avatars while member pages are off ============ */
.pp-person--mini{align-items:center;text-align:center;padding:1.3rem 1rem 1.15rem;border-radius:16px}
.pp-person--mini:hover{transform:none;box-shadow:none;border-color:var(--pp-line)}
.pp-person--mini .pp-person__media{width:96px;height:96px;aspect-ratio:auto;flex:none;border-radius:50%;margin:0 auto}
.pp-person--mini:hover .pp-person__media img{transform:none}
.pp-person--mini .pp-person__ph{font-size:1.7rem}
.pp-person--mini .pp-person__body{align-items:center;padding:.75rem 0 0;gap:.15rem}
.pp-team__grid:has(.pp-person--mini){grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.pp-team--about .pp-person--mini{flex-basis:calc((100% - 5 * 1.3rem) / 6)}
@media(max-width:1100px){.pp-team--about .pp-person--mini{flex-basis:calc((100% - 3 * 1.3rem) / 4)}}
@media(max-width:760px){.pp-team--about .pp-person--mini{flex-basis:calc((100% - 2 * 1.3rem) / 3)}}
@media(max-width:620px){
	.pp-team__grid:has(.pp-person--mini){grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}
	.pp-team--about .pp-team__grid{gap:.8rem}
	.pp-team--about .pp-person--mini{flex-basis:calc((100% - .8rem) / 2)}
	.pp-person--mini{padding:1rem .6rem .9rem}
	.pp-person--mini .pp-person__media{width:72px;height:72px}
	.pp-person--mini .pp-person__name{font-size:.92rem}
	.pp-person--mini .pp-person__role{font-size:.78rem;line-height:1.35}
}
/* virtual office page: "how virtual service works" panel in the map's place */
.pp-offvirt{box-sizing:border-box;border-radius:20px;padding:clamp(1.6rem,3vw,2.4rem);color:#fff;background:radial-gradient(70% 80% at 100% 100%,rgba(244,122,32,.22),transparent 70%),linear-gradient(150deg,var(--pp-navy),var(--pp-navy-deep));box-shadow:0 30px 70px -36px rgba(11,35,80,.55)}
.pp-offvirt__eyebrow{margin:0 0 .5rem;font-size:.75rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#F79A55}
.pp-offvirt__h{margin:0 0 1.4rem;font-family:var(--wp--preset--font-family--heading);font-size:clamp(1.4rem,2.4vw,1.8rem);font-weight:800;line-height:1.2;color:#fff}
.pp-offvirt__steps{list-style:none;margin:0 0 1.6rem;padding:0;display:flex;flex-direction:column;gap:1.1rem}
.pp-offvirt__steps li{display:flex;gap:.9rem;align-items:flex-start}
.pp-offvirt__ico{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:rgba(255,255,255,.1);color:#F79A55}
.pp-offvirt__steps strong{display:block;font-size:1rem;color:#fff;margin-bottom:.15rem}
.pp-offvirt__steps span span,.pp-offvirt__steps li>span:last-child{font-size:.92rem;line-height:1.5;color:#c3d3ee}
.pp-offvirt__actions{display:flex;flex-wrap:wrap;gap:.7rem}
.pp-offvirt .pp-btn--onnavy{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.pp-offvirt .pp-btn--onnavy:hover{border-color:#fff}
/* virtual office page: the contact card alone, no map column */
.pp-offpage__grid--solo{grid-template-columns:minmax(0,640px)}

/* ============ MOBILE POLISH (sept 27) ============ */
/* footer column links: readable on navy */
.puntualpayroll-footer .sr-footer__col a,.puntualpayroll-footer .sr-footer__bar,.puntualpayroll-footer .sr-footer__bar a{color:rgba(255,255,255,.72)}
.puntualpayroll-footer .sr-footer__tag,.puntualpayroll-footer .sr-footer__hours{color:rgba(255,255,255,.66)}
@media (max-width:600px){
	/* hero eyebrow pill: one line */
	.pp-hero2__eyebrow{font-size:.66rem;letter-spacing:.08em;padding:.45rem .8rem;white-space:nowrap}
	/* stats: long words ("Garantizado", "Fed+Estatal") must fit the half column */
	.sr-stat__num{font-size:clamp(1.3rem,6.4vw,1.9rem);overflow-wrap:anywhere}
	.sr-stats{gap:1.6rem 1rem}
}
@media (max-width:860px){
	/* app carousel runs edge to edge so the phone's shadow is never sliced */
	.pp-app2__carousel{margin-inline:calc(50% - 50vw);width:100vw}
	.pp-app2__ctrack{padding-block:1.6rem 2rem}
}

/* footer sits on dark navy: the base footer rules use the (dark) heading colour,
   which left the phone number invisible and links vanishing on hover */
.puntualpayroll-footer .sr-footer__phone{color:#fff}
.puntualpayroll-footer .sr-footer__phone:hover{color:var(--pp-accent)}
.puntualpayroll-footer .sr-footer__col a:hover,.puntualpayroll-footer .sr-footer__bar a:hover{color:#fff}
/* footer social icons */
.sr-footer__social{display:flex;gap:.6rem;list-style:none;margin:1rem 0 0;padding:0}
.sr-footer__social a{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.28);color:#fff;transition:background-color .2s,border-color .2s,color .2s}
.sr-footer__social a:hover{background:var(--pp-accent);border-color:var(--pp-accent);color:#fff}

/* ============ REAL APP SCREENSHOTS in the phone + laptop mocks ============ */
.pp-iphone .pp-scr--img,.pp-iphone--sm .pp-scr--img{display:block;padding:0 !important;gap:0;background:#fff}
.pp-scr--img img{display:block;width:100%;height:100%;object-fit:cover;object-position:center bottom;-webkit-user-drag:none;user-select:none}
.pp-dscr--img{display:block !important;padding:0;background:#fff}
.pp-dscr--img img{display:block;width:100%;height:100%;object-fit:cover;object-position:left top;-webkit-user-drag:none;user-select:none}

/* in-page anchors (#resenas, #faq, #app, #formularios) land below the sticky header */
html{scroll-padding-top:84px}

/* ================= MEGA MENU (inc/mega-menu.php) =================
   Panels hang from the full-width header (items are position:static), so
   every panel spans the viewport; the inner grid keeps the 1200px column. */
.pp-mnav{gap:0;margin-left:.2rem}
.pp-mnav__list{display:flex;align-items:center;gap:.15rem;margin:0;padding:0;list-style:none}
.pp-mnav__item{position:static;margin:0}
.pp-mnav .pp-mnav__btn,.pp-mnav .pp-mnav__link{position:relative;display:inline-flex;align-items:center;gap:.3rem;padding:.55rem .7rem;border:0;border-radius:10px;background:none;color:#33405a;font-family:inherit;font-weight:600;font-size:.95rem;line-height:1.2;text-decoration:none;white-space:nowrap;cursor:pointer;transition:color .2s,background-color .2s}
.pp-mnav .pp-mnav__btn:hover,.pp-mnav .pp-mnav__link:hover,.pp-mnav__item.is-open .pp-mnav__btn{color:var(--pp-accent-2);background:color-mix(in srgb,var(--pp-accent-2) 8%,transparent)}
.pp-mnav .pp-mnav__btn:focus-visible,.pp-mnav .pp-mnav__link:focus-visible{outline:2px solid var(--pp-accent-2);outline-offset:2px}
.pp-mnav .is-current{color:var(--pp-heading)}
.pp-mnav .is-current::after{content:"";position:absolute;left:.7rem;right:.7rem;bottom:.2rem;height:2px;border-radius:2px;background:var(--pp-accent)}
.pp-mnav__chev{flex:none;opacity:.65;transition:transform .25s var(--pp-ease)}
.pp-mnav__item.is-open .pp-mnav__chev{transform:rotate(180deg)}

.pp-mega{position:absolute;left:0;right:0;top:100%;z-index:5;background:#fff;border-top:1px solid var(--pp-line);cursor:default;
	/* soft drop shadow + a page scrim, clipped so nothing paints over the header */
	box-shadow:0 30px 50px -30px rgba(11,35,80,.4),0 0 0 100vmax rgba(11,35,80,.2);clip-path:inset(0 -100vmax -100vmax -100vmax);
	opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .2s var(--pp-ease),transform .28s var(--pp-ease),visibility 0s linear .28s}
.pp-mnav__item.is-open .pp-mega{opacity:1;visibility:visible;transform:none;transition:opacity .2s var(--pp-ease),transform .28s var(--pp-ease),visibility 0s}
.puntualpayroll-header:has(.pp-mnav__item.is-open){background:#fff !important}
.pp-mega__in{box-sizing:border-box;max-width:1200px;margin:0 auto;padding:1.8rem 2rem 2rem;display:grid;gap:2rem;align-items:start}
.pp-mega--services .pp-mega__in{grid-template-columns:minmax(0,1fr) 300px}
.pp-mega--about .pp-mega__in,.pp-mega--resources .pp-mega__in{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 300px}
.pp-mega__label{margin:0 0 .6rem .9rem;font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--pp-accent)}
.pp-mega__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.2rem .8rem}
.pp-mega__stack{display:flex;flex-direction:column;gap:.1rem}

.pp-mnav .pp-mlink{display:flex;align-items:flex-start;gap:.85rem;padding:.75rem .9rem;border-radius:14px;color:var(--pp-heading);font-size:1rem;text-decoration:none;transition:background-color .2s}
.pp-mnav .pp-mlink:hover{background:var(--pp-mist);color:var(--pp-heading)}
.pp-mlink__ico{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#FEF1E6;color:var(--pp-accent);transition:background-color .2s,color .2s}
.pp-mlink:hover .pp-mlink__ico{background:var(--pp-accent);color:#fff}
.pp-mlink__ico .sr-icon{width:20px;height:20px}
.pp-mlink__t{display:flex;flex-direction:column;gap:.18rem;min-width:0;padding-top:.12rem}
.pp-mlink__t strong{font-family:var(--wp--preset--font-family--heading);font-size:1rem;font-weight:800;line-height:1.25;color:var(--pp-heading)}
.pp-mlink__t small{font-size:.85rem;font-weight:500;line-height:1.4;color:var(--pp-dim)}

.pp-mega__foot{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.4rem;margin:1rem 0 0;padding:1rem .9rem 0;border-top:1px solid var(--pp-line)}
.pp-mega__footlabel{font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--pp-dim)}
.pp-mnav .pp-mega__foot a{display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem;font-weight:700;color:var(--pp-heading);text-decoration:none}
.pp-mnav .pp-mega__foot a:hover{color:var(--pp-accent-2)}
.pp-mega__foot .sr-icon{width:16px;height:16px;color:var(--pp-accent-2)}
.pp-mnav .pp-mega__all{display:inline-flex;align-items:center;gap:.35rem;font-size:.9rem;font-weight:800;color:var(--pp-accent);text-decoration:none}
.pp-mnav .pp-mega__all:hover{color:color-mix(in srgb,var(--pp-accent),black 14%)}
.pp-mnav .pp-mega__foot .pp-mega__all{margin-left:auto;color:var(--pp-accent)}
.pp-mega__col > .pp-mega__all{margin-left:.9rem}

.pp-mega__aside{box-sizing:border-box;align-self:start;display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;padding:1.6rem;border-radius:18px;background:var(--pp-mist)}
.pp-mega__aside--navy{background:radial-gradient(120% 90% at 100% 0%,#1c3f7c 0%,transparent 60%),linear-gradient(160deg,var(--pp-navy),var(--pp-navy-deep))}
.pp-mega__asideh{margin:0;font-family:var(--wp--preset--font-family--heading);font-size:1.2rem;font-weight:800;line-height:1.25;color:var(--pp-heading)}
.pp-mega__asidep{margin:0 0 .45rem;font-size:.9rem;line-height:1.5;color:var(--pp-text)}
.pp-mega__aside--navy .pp-mega__asideh{color:#fff}
.pp-mega__aside--navy .pp-mega__asidep{color:#c3d3ee}
.pp-mnav .pp-mega__aside .pp-btn{box-sizing:border-box;color:#fff;font-size:.9rem}
.pp-mega__call{margin:.25rem 0 0;font-size:.85rem;color:var(--pp-dim)}
.pp-mnav .pp-mega__call a{font-size:.85rem;font-weight:800;color:var(--pp-heading);text-decoration:none;white-space:nowrap}
.pp-mega__aside--navy .pp-mega__call{color:#c3d3ee}
.pp-mnav .pp-mega__aside--navy .pp-mega__call a{color:#fff}
.pp-mega__aside > .pp-mega__all{margin-top:.2rem}

.pp-mega__offices{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.1rem}
.pp-mnav .pp-mega__offices a{display:flex;align-items:flex-start;gap:.75rem;padding:.7rem .9rem;border-radius:14px;color:var(--pp-heading);text-decoration:none;transition:background-color .2s}
.pp-mnav .pp-mega__offices a:hover{background:var(--pp-mist)}
.pp-mega__pin{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:color-mix(in srgb,var(--pp-accent-2) 11%,#fff);color:var(--pp-accent-2)}
.pp-mega__pin.is-hq{background:#FEF1E6;color:var(--pp-accent)}
.pp-mega__pin .sr-icon{width:16px;height:16px}
.pp-mega__offices strong{display:block;font-family:var(--wp--preset--font-family--heading);font-size:.98rem;font-weight:800;line-height:1.3}
.pp-mega__offices small{display:block;margin-top:.1rem;font-size:.82rem;font-weight:500;line-height:1.4;color:var(--pp-dim)}
.pp-mega__note{margin:.5rem .9rem .6rem;font-size:.82rem;line-height:1.45;color:var(--pp-dim)}

.pp-mega__faces{display:flex;align-items:center;margin-bottom:.35rem}
.pp-mega__faces img,.pp-mega__more{box-sizing:border-box;width:48px;height:48px;margin-left:-12px;border:3px solid var(--pp-mist);border-radius:50%;object-fit:cover}
.pp-mega__faces > :first-child{margin-left:0}
.pp-mega__more{display:grid;place-items:center;background:var(--pp-navy);color:#fff;font-size:.85rem;font-weight:800}

.pp-mega__posts{list-style:none;margin:0 0 .5rem;padding:0;display:flex;flex-direction:column;gap:.1rem}
.pp-mnav .pp-mega__posts a{display:flex;flex-direction:column;gap:.22rem;padding:.7rem .9rem;border-radius:14px;text-decoration:none;transition:background-color .2s}
.pp-mnav .pp-mega__posts a:hover{background:var(--pp-mist)}
.pp-mega__cat{font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--pp-accent-2)}
.pp-mega__posts strong{font-size:.95rem;font-weight:700;line-height:1.35;color:var(--pp-heading)}
.pp-mega__posts small{font-size:.8rem;color:var(--pp-dim)}

@media (max-width:1260px){
	.pp-mnav .pp-mnav__btn,.pp-mnav .pp-mnav__link{padding:.5rem .55rem;font-size:.92rem}
	.pp-mega__in{padding-left:1.4rem;padding-right:1.4rem;gap:1.4rem}
	.pp-mega--services .pp-mega__in{grid-template-columns:minmax(0,1fr) 270px}
	.pp-mega--about .pp-mega__in,.pp-mega--resources .pp-mega__in{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 260px}
}

/* mobile drawer: the same sections as accordions */
.pp-dacc{border-bottom:1px solid var(--pp-line)}
.pp-dacc summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.95rem .2rem;font-weight:600;font-size:1.05rem;color:var(--pp-heading);cursor:pointer;list-style:none}
.pp-dacc summary::-webkit-details-marker{display:none}
.pp-dacc summary .pp-mnav__chev{width:16px;height:16px}
.pp-dacc[open] summary .pp-mnav__chev{transform:rotate(180deg)}
.pp-dacc__body{display:flex;flex-direction:column;padding:0 0 .8rem .2rem}
.pp-drawer__nav .pp-dacc__body a{padding:.55rem .9rem;border:0;border-left:2px solid var(--pp-line);font-size:.98rem;font-weight:500;color:var(--pp-text)}
.pp-drawer__nav .pp-dacc__body a:hover{border-left-color:var(--pp-accent);color:var(--pp-heading)}
.pp-drawer__nav .pp-dacc__body a.pp-dacc__all{color:var(--pp-accent);font-weight:700}
.pp-drawer__nav .pp-dacc__body a.pp-dacc__sub{padding:.4rem .9rem .4rem 1.8rem;font-size:.92rem;color:var(--pp-dim)}
