/* Page-level overrides & hero styling */

/* Tokens moved to core.css */

/* Shared hero wrapper improvements */
/* Generic hero utility */
:is(body.page-services .pn-section:first-of-type,
    body.page-competencies #core-competencies.pn-section:first-of-type,
    body.page-packages .pn-packages-hero,
    .pn-hero) {
        position: relative;
        padding-top: var(--pn-hero-pt-desktop);
        background: var(--hero-bg-base);
        overflow: hidden;
}

:is(body.page-services .pn-section:first-of-type,
    body.page-competencies #core-competencies.pn-section:first-of-type,
    body.page-packages .pn-packages-hero,
    .pn-hero)::before {
        content:"";
        position:absolute;
        inset:0;
        background: var(--hero-bg-accent);
        mix-blend-mode:normal;
        pointer-events:none;
        animation: heroPulse var(--pn-hero-anim-speed) linear infinite;
        opacity:.9;
}

:is(body.page-services .pn-section:first-of-type,
    body.page-competencies #core-competencies.pn-section:first-of-type,
    body.page-packages .pn-packages-hero,
    .pn-hero)::after {
        content:"";
        position:absolute;
        inset:0;
        background-image: var(--hero-bg-noise);
        background-size:320px 320px;
        opacity:.35;
        pointer-events:none;
        mix-blend-mode:multiply;
}

/* Bottom fade mask */
:is(body.page-services .pn-section:first-of-type,
    body.page-competencies #core-competencies.pn-section:first-of-type,
    body.page-packages .pn-packages-hero,
    .pn-hero) {
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 calc(100% - var(--pn-hero-fade-height)), rgba(0,0,0,0) 100%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 calc(100% - var(--pn-hero-fade-height)), rgba(0,0,0,0) 100%);
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

@keyframes heroPulse { 0%{filter:hue-rotate(0deg) brightness(1);} 50%{filter:hue-rotate(12deg) brightness(1.04);} 100%{filter:hue-rotate(0deg) brightness(1);} }

@media (prefers-reduced-motion: reduce){
	.pn-hero::before { animation: none; }
}

/* Perf-lite removes heavy layering */
body.perf-lite :is(.pn-section:first-of-type, .pn-packages-hero, .pn-hero)::after { display:none; }
body.perf-lite :is(.pn-section:first-of-type, .pn-packages-hero, .pn-hero) { background: linear-gradient(180deg,#fff,#f7f9fe); }

@media (max-width: 720px){
  :is(body.page-services .pn-section:first-of-type,
     body.page-competencies #core-competencies.pn-section:first-of-type,
     body.page-packages .pn-packages-hero,
     .pn-hero) { padding-top: var(--pn-hero-pt-mobile); }
}
