/* Home page polish layer. Roll back by removing the ptpl-modern.css / ptpl-modern.js lines near the end of index.php. */

:root {
    --pm-ease: cubic-bezier(.22, .61, .36, 1);
    --pm-shadow: 0 10px 30px rgba(13, 45, 79, .08);
    --pm-shadow-lg: 0 22px 50px rgba(13, 45, 79, .14);
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
::selection { background: var(--ptpl-orange, #E04E1F); color: #fff; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline: 2px solid var(--ptpl-orange, #E04E1F); outline-offset: 3px;
}

/* ---------- Hero ---------- */
.h1-line1 { color: rgba(255, 255, 255, .92); }
.h1-line1::before { background: var(--ptpl-orange, #E04E1F); }
.h1-line3 { -webkit-text-stroke: 1.5px rgba(255, 255, 255, .9); }
.stat-num, .ptpl-cli-stat-num, .ptpl-ldr2-stat-num, .ptpl-testi-stat-num { font-variant-numeric: tabular-nums; }
.ptpl-btn-primary, .ptpl-btn-outline { transition: transform .3s var(--pm-ease), box-shadow .3s var(--pm-ease), background .3s, color .3s; }
.ptpl-btn-primary:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(28, 96, 144, .45); }
.ptpl-btn-outline:hover { transform: translateY(-2px); }

/* ---------- Section titles: one consistent voice ---------- */
.ptpl-about2-heading, .ptpl-s3-heading, .ptpl-proj-heading, .ptpl-leaders-heading,
.ptpl-quickest-heading, .ptpl-clients-heading, .ptpl-news-heading, .ptpl-testi-heading,
.ptpl-faq-title, .ptpl-process-h2, .ptpl-major-title { letter-spacing: -0.02em; }
.ptpl-faq-title { color: var(--ptpl-navy, #0D2D4F); }

.ptpl-about2-eyebrow {
    display: flex; align-items: center; gap: 10px;
    font-size: 12px; letter-spacing: 2.5px; text-transform: uppercase;
}
.ptpl-about2-eyebrow::before { content: ''; width: 24px; height: 2px; background: currentColor; flex-shrink: 0; }

.ptpl-s3-eyebrow, .ptpl-proj-eyebrow, .ptpl-leaders-eyebrow, .ptpl-quickest-eyebrow,
.ptpl-clients-eyebrow, .ptpl-news-eyebrow, .ptpl-testi-eyebrow, .ptpl-major-label, .ptpl-about2-eyebrow {
    font-weight: 700;
}

/* ---------- Process: brand navy instead of flat grey ---------- */
.ptpl-process-area::before { background: linear-gradient(135deg, rgba(10, 31, 53, .94) 0%, rgba(13, 45, 79, .82) 100%); }

/* ---------- Cards: lift + soft shadow where missing ---------- */
.ptpl-news-card, .ptpl-testi-card, .ptpl-faq-item {
    transition: transform .35s var(--pm-ease), box-shadow .35s var(--pm-ease), border-color .3s;
}
.ptpl-news-card:hover { transform: translateY(-4px); box-shadow: var(--pm-shadow-lg); }
.ptpl-testi-card:hover { transform: translateY(-4px); box-shadow: var(--pm-shadow-lg); }
.ptpl-faq-item:hover { border-color: #c9d6e4; box-shadow: var(--pm-shadow); }
.ptpl-faq-item.open { border-color: #c9d6e4; border-left: 3px solid var(--ptpl-orange, #E04E1F); box-shadow: var(--pm-shadow); }

/* ---------- Scroll reveal (only applied when the script runs) ---------- */
.pm-reveal { opacity: 0; transform: translateY(26px); transition: opacity .7s var(--pm-ease), transform .7s var(--pm-ease); }
.pm-reveal.pm-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .pm-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}
