.pg-grid {
    --pg-gap: 12rem;
    --pg-gap-inner: 2.5rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--pg-gap);
    width: 98%;
    align-items: start;
    font-family: inherit;
}

.pg-grid > .title-img {
    justify-self: stretch;
    width: 100%;
    height: auto;
    max-height: none;
    aspect-ratio: 21 / 9;
    margin: 0;
}

.pg-section {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--pg-gap-inner);
    align-content: start;
}

.pg-heading {
    margin: 0 0 calc(1.5rem - var(--pg-gap-inner));
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: start;
    text-decoration: underline 4px white;
    text-underline-offset: 6px;
}

.pg-lead {
    margin: 0;
    font-size: 1.375rem;
    font-weight: 500;
    line-height: 1.4;
}

.pg-text {
    font-size: 1.0625rem;
    font-weight: 400;
    line-height: 1.6;
    color: white;
}

.pg-text p {
    margin: 0 0 1rem;
}

.pg-list {
    margin: 0;
    padding-left: 1.25rem;
    display: grid;
    gap: 0.75rem;
}

.pg-subtitle {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 600;
    text-decoration: underline 2px white;
    text-underline-offset: 4px;
}

.pg-stack {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--pg-gap-inner);
}

.pg-grid .company-card,
.pg-grid .mkd-shadow-cl-line {
    border-radius: 24px !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    border-bottom: 3px solid #8bc5ff !important;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.28) !important;
    overflow: hidden;
    margin: 0 !important;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.pg-grid .company-card:hover,
.pg-grid .mkd-shadow-cl-line:hover {
    border-color: rgba(139, 197, 255, 0.6) !important;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.38) !important;
}

.pg-reveal {
    opacity: 0;
}

.pg-reveal.is-visible {
    animation: pg-rise 0.9s cubic-bezier(0.22, 0.8, 0.24, 1) both;
}

.pg-stagger > * {
    opacity: 0;
}

.pg-reveal.is-visible .pg-stagger > * {
    animation: pg-rise 0.8s cubic-bezier(0.22, 0.8, 0.24, 1) both;
    animation-delay: calc(var(--d, 0) * 90ms + 150ms);
}

.pg-stagger > :nth-child(2) { --d: 1; }
.pg-stagger > :nth-child(3) { --d: 2; }
.pg-stagger > :nth-child(4) { --d: 3; }
.pg-stagger > :nth-child(5) { --d: 4; }
.pg-stagger > :nth-child(6) { --d: 5; }
.pg-stagger > :nth-child(7) { --d: 6; }

@keyframes pg-rise {
    from {
        opacity: 0;
        transform: translateY(40px) scale(0.98);
        filter: blur(6px);
    }

    to {
        opacity: 1;
        transform: none;
        filter: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .pg-reveal,
    .pg-stagger > * {
        opacity: 1;
        animation: none !important;
    }
}

@media (max-width: 950px) {
    .pg-grid {
        --pg-gap: 7rem;
    }

    .pg-heading {
        font-size: 1.625rem;
    }

    .pg-lead {
        font-size: 1.25rem;
    }
}

.spec-list { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: 0.75rem; }
.spec-item { display: grid; grid-template-columns: 64px minmax(0, 1fr); align-items: center; gap: 1.25rem; padding: 1rem 1.25rem; border-radius: 16px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); border-left: 4px solid #8bc5ff; line-height: 1.5; }
.spec-icon { width: 48px; height: 48px; object-fit: contain; justify-self: center; padding: 8px; border-radius: 50%; background: rgba(255,255,255,0.9); box-sizing: content-box; }
.spec-item strong { display: block; font-size: 1.125rem; font-weight: 600; margin-bottom: 0.15rem; }

.ws-header { max-height: none !important; min-height: 4.5rem; padding-top: 0.5rem; padding-bottom: 0.5rem; display: flex; align-items: center; }
.ws-header > .ws-row { width: 100%; }
.ws-body { padding-top: 7rem; }

.ws-body {
    scrollbar-width: thin;
    scrollbar-color: rgba(139, 197, 255, 0.55) rgba(0, 0, 0, 0.25);
}

.ws-body::-webkit-scrollbar {
    width: 10px;
}

.ws-body::-webkit-scrollbar-track {
    background: rgba(0, 0, 0, 0.25);
}

.ws-body::-webkit-scrollbar-thumb {
    background: rgba(139, 197, 255, 0.45);
    border-radius: 999px;
    border: 2px solid transparent;
    background-clip: padding-box;
    transition: background 0.25s ease;
}

.ws-body::-webkit-scrollbar-thumb:hover {
    background: rgba(139, 197, 255, 0.8);
    background-clip: padding-box;
}

.pg-grid > .pg-hero {
    position: relative;
    display: flex;
    align-items: flex-end;
    aspect-ratio: auto !important;
    min-height: clamp(420px, 46vw, 640px);
    background-size: cover;
    background-position: center;
    overflow: hidden;
    border-radius: 24px;
}

.pg-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.6) 50%, rgba(0,0,0,0.85) 100%);
    pointer-events: none;
}

.pg-hero-text {
    position: relative;
    z-index: 1;
    width: 100%;
    padding: clamp(1.5rem, 4vw, 3.5rem);
    text-shadow: 0 2px 12px rgba(0,0,0,0.7);
}

.pg-hero-text .pg-heading { margin-bottom: 0; }
.pg-hero-text .pg-lead { font-size: clamp(1.1rem, 1.8vw, 1.5rem); font-weight: 600; }
.pg-hero-text .pg-text { max-width: 90ch; }
.pg-hero-text .pg-text,
.pg-hero-text .pg-list { font-size: 1rem; }
