/* "Problems we solve" 3D section (SEO agent, pp3d-v1). CSS only: no scripts, CSP-safe. */
.pp3d{--pp-ink:#16242e;--pp-muted:#55626c;--pp-bg1:#f4f7f9;--pp-bg2:#e8eef2;--pp-accent:#234c63;--pp-accent-2:#163444;--pp-glow:rgba(35,76,99,.28);
  --pp-prob-bg:#fff6f1;--pp-prob-edge:#f0c8b4;--pp-prob-ink:#9a4422;--pp-sol-ink:#ffffff;--pp-chip:#ffffff;--pp-gold:#c9a24a;
  position:relative;overflow:hidden;color:var(--pp-ink);background:linear-gradient(180deg,var(--pp-bg1),var(--pp-bg2));padding:clamp(56px,8vw,110px) 18px;font-size:1rem;line-height:1.6}
.pp3d--wwa{--pp-accent:#126d69;--pp-accent-2:#0b4744;--pp-glow:rgba(18,109,105,.28);--pp-bg1:#f3f8f6;--pp-bg2:#e6f0ec;--pp-gold:#d5a54a}
.pp3d--st{--pp-accent:#1c2230;--pp-accent-2:#0f131c;--pp-glow:rgba(242,140,27,.30);--pp-bg1:#f8f6f2;--pp-bg2:#efeae2;--pp-gold:#f28c1b}
.pp3d::before{content:"";position:absolute;inset:auto -10% -40% -10%;height:70%;background:radial-gradient(ellipse at center,var(--pp-glow),transparent 65%);pointer-events:none}
.pp3d *{box-sizing:border-box}
.pp3d .pp3d__inner{position:relative;max-width:1180px;margin:0 auto}
.pp3d .pp3d__eyebrow{margin:0 0 14px;font-size:.8rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--pp-accent)}
.pp3d .pp3d__hook{margin:0 0 16px;max-width:900px;font-size:clamp(1.75rem,3.6vw,2.9rem);line-height:1.15;font-weight:700;letter-spacing:-.02em;color:var(--pp-ink);text-wrap:balance}
.pp3d .pp3d__lede{margin:0 0 clamp(32px,5vw,56px);max-width:640px;font-size:1.1rem;color:var(--pp-muted)}

/* Problem -> solution pairs on a tilted stage */
.pp3d .pp3d__pairs{list-style:none;margin:0;padding:0;display:grid;gap:clamp(22px,3vw,34px);perspective:1400px}
.pp3d .pp3d__pair{position:relative;display:grid;grid-template-columns:1fr 1.05fr;align-items:center;margin:0;padding:0;transform-style:preserve-3d}
.pp3d .pp3d__pair::after{content:"→";position:absolute;left:calc(48.8% - 22px);top:50%;width:44px;height:44px;margin-top:-22px;border-radius:50%;display:grid;place-items:center;
  background:var(--pp-gold);color:#fff;font-weight:700;font-size:1.25rem;box-shadow:0 6px 0 rgba(0,0,0,.18),0 12px 22px rgba(0,0,0,.18);transform:translateZ(60px);z-index:2}
.pp3d .pp3d__card{position:relative;margin:0;padding:24px 26px;border-radius:18px;transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s}
.pp3d .pp3d__card h3{margin:8px 0 6px;font-size:1.18rem;line-height:1.3;font-weight:700;color:inherit}
.pp3d .pp3d__card p{margin:0;font-size:.98rem;line-height:1.55;color:inherit;opacity:.88}
.pp3d .pp3d__tag{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.pp3d .pp3d__card--problem{color:var(--pp-ink);background:var(--pp-prob-bg);border:1px solid var(--pp-prob-edge);margin-right:-14px;
  transform:rotateY(14deg) translateZ(-30px);transform-origin:right center;box-shadow:0 2px 0 var(--pp-prob-edge),0 18px 30px rgba(120,60,30,.10)}
.pp3d .pp3d__card--problem .pp3d__tag{background:#fde2d4;color:var(--pp-prob-ink)}
.pp3d .pp3d__card--solution{color:var(--pp-sol-ink);background:linear-gradient(135deg,var(--pp-accent),var(--pp-accent-2));border:1px solid rgba(255,255,255,.12);margin-left:-14px;
  transform:rotateY(-8deg) translateZ(40px);transform-origin:left center;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 10px 0 var(--pp-accent-2),0 26px 44px var(--pp-glow)}
.pp3d .pp3d__card--solution .pp3d__tag{background:rgba(255,255,255,.16);color:#fff}
.pp3d .pp3d__pair:hover .pp3d__card--problem{transform:rotateY(6deg) translateZ(-40px)}
.pp3d .pp3d__pair:hover .pp3d__card--solution{transform:rotateY(0) translateZ(64px) translateY(-4px)}

/* Specialities as raised chips */
.pp3d .pp3d__specialities{margin:clamp(40px,6vw,64px) 0 0}
.pp3d .pp3d__subhead{margin:0 0 14px;font-size:1.2rem;font-weight:700;color:var(--pp-ink)}
.pp3d .pp3d__chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:12px}
.pp3d .pp3d__chips li{margin:0}
.pp3d .pp3d__chips a{display:inline-block;padding:10px 16px;border-radius:12px;background:var(--pp-chip);color:var(--pp-ink);text-decoration:none;font-weight:600;font-size:.95rem;
  border:1px solid rgba(0,0,0,.06);box-shadow:0 4px 0 rgba(0,0,0,.07),0 10px 18px rgba(0,0,0,.06);transition:transform .2s,box-shadow .2s}
.pp3d .pp3d__chips a:hover{transform:translateY(-3px);box-shadow:0 7px 0 rgba(0,0,0,.07),0 16px 24px rgba(0,0,0,.08);color:var(--pp-accent)}

/* Trust slab + booking slab */
.pp3d .pp3d__closing{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(20px,3vw,32px);margin-top:clamp(40px,6vw,64px);perspective:1600px}
.pp3d .pp3d__slab{border-radius:22px;padding:clamp(24px,3vw,34px);transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.pp3d .pp3d__slab--trust{background:#fff;border:1px solid rgba(0,0,0,.06);transform:rotateX(5deg) rotateY(5deg);transform-origin:center bottom;
  box-shadow:0 8px 0 rgba(0,0,0,.06),0 28px 50px rgba(0,0,0,.10)}
.pp3d .pp3d__slab--book{color:#fff;background:linear-gradient(140deg,var(--pp-accent),var(--pp-accent-2));transform:rotateX(5deg) rotateY(-5deg);transform-origin:center bottom;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 12px 0 var(--pp-accent-2),0 34px 60px var(--pp-glow)}
.pp3d .pp3d__slab:hover{transform:rotateX(0) rotateY(0) translateY(-4px)}
.pp3d .pp3d__slab--book .pp3d__subhead,.pp3d .pp3d__slab--book p,.pp3d .pp3d__slab--book li{color:#fff}
.pp3d .pp3d__slab--book a{color:#fff}
.pp3d .pp3d__ticks{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.pp3d .pp3d__ticks li{position:relative;margin:0;padding-left:32px;font-size:.98rem;line-height:1.5;color:var(--pp-ink)}
.pp3d .pp3d__ticks li::before{content:"✓";position:absolute;left:0;top:0;width:22px;height:22px;border-radius:7px;display:grid;place-items:center;font-size:.8rem;font-weight:700;
  color:#fff;background:var(--pp-accent);box-shadow:0 3px 0 var(--pp-accent-2)}
.pp3d .pp3d__slab--book > p{margin:0 0 16px;font-size:1rem;line-height:1.6;opacity:.95}
.pp3d .pp3d__steps{margin:0 0 22px;padding-left:1.3em;display:grid;gap:8px}
.pp3d .pp3d__steps li{margin:0;font-size:.98rem;line-height:1.5}
.pp3d .pp3d__cta{margin:0 0 12px}
.pp3d .pp3d__button{display:inline-block;padding:16px 28px;border-radius:14px;background:var(--pp-gold);color:#fff;font-weight:700;font-size:1.05rem;text-decoration:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 7px 0 rgba(0,0,0,.28),0 18px 30px rgba(0,0,0,.25);transition:transform .15s,box-shadow .15s}
.pp3d .pp3d__button:hover{transform:translateY(-2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 9px 0 rgba(0,0,0,.28),0 24px 36px rgba(0,0,0,.28)}
.pp3d .pp3d__button:active{transform:translateY(5px);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 2px 0 rgba(0,0,0,.28),0 8px 14px rgba(0,0,0,.22)}
.pp3d a:focus-visible{outline:3px solid var(--pp-gold);outline-offset:3px}
.pp3d .pp3d__alt{margin:0;font-size:.92rem;opacity:.9}
.pp3d .pp3d__note{margin:28px 0 0;font-size:.82rem;color:var(--pp-muted)}

/* Phones and tablets: stack, keep a gentle depth */
@media (max-width:820px){
  .pp3d .pp3d__pair{grid-template-columns:1fr}
  .pp3d .pp3d__pair::after{content:"↓";left:50%;top:auto;bottom:calc(50% - 30px);margin:0 0 0 -22px}
  .pp3d .pp3d__card--problem{margin:0 10px -12px;transform:rotateX(10deg) translateZ(-20px);transform-origin:center bottom}
  .pp3d .pp3d__card--solution{margin:0;transform:rotateX(-4deg) translateZ(20px);transform-origin:center top;padding-top:30px}
  .pp3d .pp3d__pair:hover .pp3d__card--problem{transform:rotateX(10deg) translateZ(-20px)}
  .pp3d .pp3d__pair:hover .pp3d__card--solution{transform:rotateX(-4deg) translateZ(20px)}
  .pp3d .pp3d__closing{grid-template-columns:1fr}
  .pp3d .pp3d__slab--trust,.pp3d .pp3d__slab--book{transform:none}
  .pp3d .pp3d__button{display:block;text-align:center}
}
@media (prefers-reduced-motion:reduce){
  .pp3d .pp3d__card,.pp3d .pp3d__slab,.pp3d .pp3d__chips a,.pp3d .pp3d__button{transition:none}
  .pp3d .pp3d__pair:hover .pp3d__card--problem,.pp3d .pp3d__pair:hover .pp3d__card--solution,.pp3d .pp3d__slab:hover,.pp3d .pp3d__chips a:hover,.pp3d .pp3d__button:hover{transform:none}
}
/* pp3d-v1.1: keep text clear of the arrow and the overlap */
.pp3d .pp3d__card--problem{padding-right:44px}
.pp3d .pp3d__card--solution{padding-left:48px}
@media (max-width:820px){.pp3d .pp3d__card--problem{padding-right:26px;padding-bottom:34px}.pp3d .pp3d__card--solution{padding-left:26px}}
/* pp3d-v1.2: sharper text. Slabs stay flat with depth shadows; card tilt is gentler. */
.pp3d .pp3d__slab--trust,.pp3d .pp3d__slab--book{transform:translateY(0)}
.pp3d .pp3d__slab:hover{transform:translateY(-4px)}
@media (min-width:821px){
  .pp3d .pp3d__card--problem{transform:rotateY(7deg) translateZ(-20px)}
  .pp3d .pp3d__card--solution{transform:rotateY(-3deg) translateZ(24px)}
}
/* v1.3: no backface-visibility (it rasterized the text soft) */
@media (max-width:820px){.pp3d .pp3d__pair::after{display:none}.pp3d .pp3d__card--problem{padding-bottom:30px}}
