/* Shared partner invitation: deliberately isolated from the existing PPF components. */
.ngenco-partner {
    --partner-navy: #123344;
    --partner-cyan: #25c6d8;
    --partner-copy: #ffffff;
    position: relative;
    isolation: isolate;
    width: 100%;
    margin: 0;
    padding: clamp(44px, 4.2vw, 64px) 0 34px;
    background: linear-gradient(135deg, #173B50 0%, #21566A 100%);
    color: #fff;
    font-family: inherit;
    scroll-margin-top: 90px;
}
.ngenco-partner,
.ngenco-partner *,
.ngenco-partner *::before,
.ngenco-partner *::after { box-sizing: border-box; }
.ngenco-partner .ngenco-partner__inner { width: 90%; max-width: 1400px; margin: 0 auto; padding: 0; }
.ngenco-partner .ngenco-partner__intro { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 3.8vw, 56px); align-items: stretch; }
.ngenco-partner .ngenco-partner__intro--text { grid-template-columns: 1fr; }
.ngenco-partner .ngenco-partner__copy { min-width: 0; padding: 0; }
.ngenco-partner .ngenco-partner__rule { width: 60px; height: 4px; background: var(--partner-cyan); margin: 0 0 18px; }
.ngenco-partner .ngenco-partner__eyebrow { margin: 0 0 16px; color: var(--partner-copy); font-size: 16px; line-height: 1.4; font-weight: 400; letter-spacing: .15em; text-transform: uppercase; }
.ngenco-partner .ngenco-partner__heading { margin: 0 0 22px; padding: 0; color: #fff; font-family: inherit; font-size: clamp(36px, 3.5vw, 54px); font-weight: 700; line-height: 1.1; letter-spacing: -.02em; text-transform: none; overflow-wrap: break-word; }
.ngenco-partner .ngenco-partner__heading span { color: var(--partner-cyan); }
.ngenco-partner .ngenco-partner__body,
.ngenco-partner .ngenco-partner__body p { color: var(--partner-copy); font-size: clamp(19px, 1.45vw, 22px); line-height: 1.55; font-weight: 400; text-transform: none; letter-spacing: normal; }
.ngenco-partner .ngenco-partner__body p { margin: 0 0 18px; }
.ngenco-partner .ngenco-partner__body > :last-child { margin-bottom: 0; }
.ngenco-partner .ngenco-partner__visual { position: relative; min-width: 0; min-height: 340px; margin: 0; overflow: hidden; border-radius: 10px; background: #e9f1f5; }
.ngenco-partner .ngenco-partner__image { position: absolute; inset: 0; display: block; width: 100%; max-width: 100%; height: 100%; margin: 0; object-fit: cover; object-position: center 29%; }
.ngenco-partner .ngenco-partner__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; margin-top: 32px; }
.ngenco-partner .ngenco-partner__cards--single { grid-template-columns: 1fr; }
.ngenco-partner .ngenco-partner__card { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; padding: 28px 38px; border: 1px solid #416572; border-radius: 10px; background: var(--partner-navy); box-shadow: inset 0 0 0 1px rgba(136, 190, 207, .035); }
.ngenco-partner .ngenco-partner__card .ngenco-partner__rule { width: 56px; margin-bottom: 17px; }
.ngenco-partner .ngenco-partner__card-title { margin: 0 0 10px; padding: 0; color: #fff; font-size: clamp(27px, 2.3vw, 34px); line-height: 1.15; font-weight: 700; letter-spacing: -.01em; text-transform: none; }
.ngenco-partner .ngenco-partner__card-text { margin: 0 0 22px; color: var(--partner-copy); font-size: clamp(18px, 1.4vw, 21px); line-height: 1.4; font-weight: 400; text-transform: none; }
.ngenco-partner .ngenco-partner__button { display: inline-flex; justify-content: space-between; align-items: center; gap: 30px; width: min(100%, 445px); min-height: 58px; margin-top: auto; padding: 13px 26px; border: 1px solid var(--partner-cyan); border-radius: 8px; background: var(--partner-cyan); color: #06202d; font: inherit; font-size: clamp(18px, 1.55vw, 23px); line-height: 1.25; font-weight: 700; text-decoration: none; text-transform: none; transition: background-color .18s ease, color .18s ease, border-color .18s ease; }
.ngenco-partner .ngenco-partner__button span { min-width: 0; overflow-wrap: anywhere; }
.ngenco-partner .ngenco-partner__button svg { width: 31px; height: 25px; flex: 0 0 31px; }
.ngenco-partner .ngenco-partner__button--outline { background: transparent; border-color: #dcebf2; color: #fff; }
.ngenco-partner .ngenco-partner__button:hover { background: #57d9e5; border-color: #57d9e5; color: #06202d; }
.ngenco-partner .ngenco-partner__button--outline:hover { background: #fff; border-color: #fff; color: #06202d; }
.ngenco-partner .ngenco-partner__contact { display: flex; justify-content: center; margin-top: 24px; }
.ngenco-partner .ngenco-partner__contact a { display: inline-flex; align-items: center; gap: 20px; max-width: 100%; padding: 3px 0 5px; border-bottom: 1px solid #aec7d4; color: #fff; font-size: 18px; line-height: 1.4; text-decoration: none; text-transform: none; }
.ngenco-partner .ngenco-partner__contact a:hover { color: var(--partner-cyan); border-color: var(--partner-cyan); }
.ngenco-partner .ngenco-partner__contact svg { width: 25px; height: 22px; flex: 0 0 25px; }
.ngenco-partner a:focus-visible { outline: 3px solid #fff; outline-offset: 5px; }
@media (max-width: 1100px) {
    .ngenco-partner .ngenco-partner__heading { font-size: clamp(34px, 4vw, 42px); }
    .ngenco-partner .ngenco-partner__card { padding: 26px; }
    .ngenco-partner .ngenco-partner__button { padding: 13px 20px; gap: 18px; }
}
@media (max-width: 900px) {
    .ngenco-partner .ngenco-partner__intro { grid-template-columns: 1fr; gap: 28px; }
    .ngenco-partner .ngenco-partner__visual { min-height: 0; aspect-ratio: 1.65; }
    .ngenco-partner .ngenco-partner__heading { max-width: 760px; font-size: clamp(34px, 5.6vw, 46px); }
    .ngenco-partner .ngenco-partner__body { max-width: 760px; }
    .ngenco-partner .ngenco-partner__cards { gap: 20px; }
    .ngenco-partner .ngenco-partner__card { padding: 24px; }
    .ngenco-partner .ngenco-partner__button { font-size: 18px; }
}
@media (max-width: 640px) {
    .ngenco-partner { padding: 38px 0 30px; }
    .ngenco-partner .ngenco-partner__inner { width: calc(100% - 36px); }
    .ngenco-partner .ngenco-partner__cards { grid-template-columns: 1fr; margin-top: 24px; gap: 16px; }
    .ngenco-partner .ngenco-partner__card { padding: 24px; }
    .ngenco-partner .ngenco-partner__heading { font-size: clamp(30px, 7.5vw, 38px); margin-bottom: 18px; }
    .ngenco-partner .ngenco-partner__eyebrow { font-size: 13px; letter-spacing: .13em; }
    .ngenco-partner .ngenco-partner__body,
    .ngenco-partner .ngenco-partner__body p { font-size: 18px; line-height: 1.55; }
    .ngenco-partner .ngenco-partner__card-title { font-size: 28px; }
    .ngenco-partner .ngenco-partner__button { width: 100%; min-height: 56px; padding: 13px 18px; font-size: 18px; }
    .ngenco-partner .ngenco-partner__contact a { font-size: 16px; gap: 14px; }
    .ngenco-partner .ngenco-partner__visual { aspect-ratio: 1.35; }
}
@media (prefers-reduced-motion: reduce) {
    .ngenco-partner .ngenco-partner__button { transition: none; }
}
