:root {
    --nrp-navy: #17225a;
    --nrp-navy-2: #202d70;
    --nrp-coral: #ff6265;
    --nrp-coral-soft: #fff0ef;
    --nrp-ink: #15204f;
    --nrp-text: #53607a;
    --nrp-line: #e8ebf3;
    --nrp-bg: #f7f8fc;
    --nrp-white: #ffffff;
    --nrp-shadow: 0 24px 60px rgba(25, 36, 91, 0.12);
    --nrp-shadow-soft: 0 14px 36px rgba(25, 36, 91, 0.08);
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body.nrp-creative-home {
    margin: 0;
    background: #fff;
    color: var(--nrp-text);
    font-family: "Inter", Arial, sans-serif;
    font-size: 16px;
    line-height: 1.65;
    overflow-x: hidden;
}

body.nrp-menu-open {
    overflow: hidden;
}

body.nrp-creative-home img {
    display: block;
    max-width: 100%;
}

body.nrp-creative-home a {
    color: inherit;
    text-decoration: none;
}

body.nrp-creative-home button,
body.nrp-creative-home input,
body.nrp-creative-home textarea,
body.nrp-creative-home select {
    font: inherit;
}

.nrp-shell {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
}

/* =========================================================
   HEADER
   ========================================================= */
.nrp-site-header {
    position: relative;
    z-index: 1000;
    background: #fff;
}

.nrp-brand-strip {
    position: relative;
    background: rgba(255, 255, 255, 0.98);
    border-top: 4px solid #f2f5e9;
    border-bottom: 1px solid #edf0f6;
}

.nrp-brand-strip::after {
    content: "";
    position: absolute;
    right: 0;
    top: -4px;
    width: 27%;
    height: 4px;
    background: linear-gradient(90deg, transparent, rgba(255, 98, 101, 0.38));
}

.nrp-brand-strip-inner {
    min-height: 96px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
}

.nrp-iap-brand {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
}

.nrp-iap-brand img {
    width: 78px;
    height: 78px;
    object-fit: contain;
}

.nrp-program-brand {
    margin-left: auto;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 20px;
    min-width: 0;
}

.nrp-program-title {
    width: 390px;
    max-width: min(42vw, 390px);
    height: auto;
}

.nrp-nnf-brand {
    width: 78px;
    height: 78px;
    padding: 4px;
    object-fit: contain;
    background: #fff;
    border: 1px solid #edf0f6;
    border-radius: 18px;
    box-shadow: 0 10px 24px rgba(23, 34, 90, 0.07);
}

.nrp-menu-open {
    display: none;
    width: 46px;
    height: 46px;
    padding: 0;
    border: 0;
    border-radius: 14px;
    background: var(--nrp-navy);
    box-shadow: 0 12px 24px rgba(23, 34, 90, 0.18);
    cursor: pointer;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
}

.nrp-menu-open span {
    display: block;
    width: 20px;
    height: 2px;
    border-radius: 999px;
    background: #fff;
}

.nrp-desktop-nav-wrap {
    position: relative;
    z-index: 20;
    background: #fff;
    border-bottom: 1px solid #edf0f6;
    box-shadow: 0 10px 28px rgba(20, 31, 74, 0.04);
}

.nrp-desktop-nav > ul {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.nrp-desktop-nav > ul > li {
    position: relative;
    list-style: none;
}

.nrp-desktop-nav > ul > li > a {
    position: relative;
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 17px 10px;
    color: var(--nrp-ink);
    font-family: "Outfit", Arial, sans-serif;
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.nrp-desktop-nav > ul > li.active > a {
    color: var(--nrp-coral);
}

.nrp-desktop-nav > ul > li.active > a::before {
    content: "";
    position: absolute;
    left: 10px;
    right: 10px;
    bottom: 9px;
    height: 2px;
    border-radius: 10px;
    background: var(--nrp-coral);
}

.nrp-desktop-nav > ul > li.has-dropdown > a::after {
    content: "";
    width: 7px;
    height: 7px;
    margin-top: -3px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
}

.nrp-dropdown {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    width: 290px;
    padding: 10px;
    background: #fff;
    border: 1px solid #eceff6;
    border-radius: 18px;
    box-shadow: 0 24px 60px rgba(19, 31, 80, 0.16);
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: 0.22s ease;
}

.nrp-dropdown::before {
    content: "";
    position: absolute;
    top: -9px;
    left: 24px;
    width: 18px;
    height: 18px;
    background: #fff;
    border-left: 1px solid #eceff6;
    border-top: 1px solid #eceff6;
    transform: rotate(45deg);
}

.nrp-dropdown a {
    position: relative;
    z-index: 1;
    display: block;
    padding: 11px 12px;
    border-radius: 10px;
    color: #33406d;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.35;
    transition: 0.18s ease;
}

.nrp-dropdown a:hover {
    color: var(--nrp-coral);
    background: #fff5f4;
    padding-left: 16px;
}

.nrp-dropdown-grid {
    width: 500px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2px 8px;
}

.has-dropdown:hover > .nrp-dropdown,
.has-dropdown:focus-within > .nrp-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.has-wide-dropdown:hover > .nrp-dropdown-grid,
.has-wide-dropdown:focus-within > .nrp-dropdown-grid {
    display: grid;
}

.nrp-align-right > .nrp-dropdown {
    right: 0;
    left: auto;
}

.nrp-align-right > .nrp-dropdown::before {
    right: 24px;
    left: auto;
}

/* Mobile drawer */
.nrp-mobile-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1990;
    background: rgba(10, 18, 56, 0.5);
    backdrop-filter: blur(5px);
    opacity: 0;
    visibility: hidden;
    transition: 0.25s ease;
}

.nrp-mobile-drawer {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 2000;
    width: min(92vw, 390px);
    height: 100dvh;
    padding: 18px;
    background: #fff;
    transform: translateX(105%);
    transition: transform 0.28s ease;
    overflow-y: auto;
    box-shadow: -30px 0 60px rgba(18, 30, 78, 0.18);
}

body.nrp-menu-open .nrp-mobile-backdrop {
    opacity: 1;
    visibility: visible;
}

body.nrp-menu-open .nrp-mobile-drawer {
    transform: translateX(0);
}

.nrp-mobile-drawer-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 16px;
    margin-bottom: 8px;
    border-bottom: 1px solid #edf0f6;
}

.nrp-mobile-identity {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
}

.nrp-mobile-identity .iap {
    width: 42px;
    height: 42px;
    object-fit: contain;
}

.nrp-mobile-identity .title {
    width: 148px;
    max-width: 44vw;
    height: auto;
}

.nrp-mobile-identity .nnf {
    width: 38px;
    height: 42px;
    padding: 2px;
    object-fit: contain;
    background: #fff;
    border: 1px solid #edf0f6;
    border-radius: 8px;
}

.nrp-menu-close {
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 13px;
    color: var(--nrp-navy);
    background: #f2f4fa;
    cursor: pointer;
}

.nrp-mobile-nav > a,
.nrp-mobile-nav summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 48px;
    padding: 12px 12px;
    color: var(--nrp-ink);
    border-radius: 12px;
    font-family: "Outfit", Arial, sans-serif;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    list-style: none;
}

.nrp-mobile-nav > a.active {
    color: var(--nrp-coral);
    background: #fff3f2;
}

.nrp-mobile-nav details {
    border-bottom: 1px solid #f0f2f7;
}

.nrp-mobile-nav details summary::-webkit-details-marker {
    display: none;
}

.nrp-mobile-nav details summary::after {
    content: "+";
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    border-radius: 9px;
    display: grid;
    place-items: center;
    color: var(--nrp-navy);
    background: #f5f6fa;
    font-size: 18px;
    font-weight: 500;
}

.nrp-mobile-nav details[open] summary::after {
    content: "−";
    color: #fff;
    background: var(--nrp-coral);
}

.nrp-mobile-submenu {
    padding: 0 8px 10px 18px;
}

.nrp-mobile-submenu a {
    display: block;
    padding: 8px 10px;
    color: #64708c;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.45;
    border-left: 1px solid #e8ebf2;
}

/* =========================================================
   GENERIC
   ========================================================= */
.nrp-section-heading {
    position: relative;
    z-index: 1;
}

.nrp-section-heading h2 {
    margin: 0;
    color: var(--nrp-ink);
    font-family: "Outfit", Arial, sans-serif;
    font-size: clamp(30px, 3vw, 46px);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -0.035em;
}

.nrp-section-heading-row {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 24px;
    margin-bottom: 38px;
}

.nrp-section-heading-left {
    margin-bottom: 25px;
}

.nrp-heading-rule {
    height: 1px;
    background: linear-gradient(90deg, rgba(23, 34, 90, 0.2), transparent);
}

.nrp-section-heading-left .nrp-heading-rule {
    width: 74px;
    height: 3px;
    margin-top: 14px;
    border-radius: 999px;
    background: var(--nrp-coral);
}

.nrp-btn {
    min-height: 54px;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 0 22px;
    border: 1px solid transparent;
    border-radius: 18px;
    font-family: "Outfit", Arial, sans-serif;
    font-size: 15px;
    font-weight: 700;
    transition: 0.22s ease;
}

.nrp-btn i {
    font-size: 15px;
}

.nrp-btn-primary {
    color: #fff;
    background: var(--nrp-coral);
    box-shadow: 0 14px 26px rgba(255, 98, 101, 0.28);
}

.nrp-btn-secondary {
    color: #fff;
    background: var(--nrp-navy);
    box-shadow: 0 14px 26px rgba(23, 34, 90, 0.18);
}

.nrp-btn:hover {
    transform: translateY(-3px);
}

.nrp-btn-compact {
    min-width: 150px;
}

/* =========================================================
   HERO
   ========================================================= */
.nrp-creative-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 72px 0 86px;
    background:
        linear-gradient(115deg, #f2f8ff 0%, #fff 48%, #fff1f0 100%);
}

.nrp-creative-hero::before {
    content: "";
    position: absolute;
    left: -170px;
    bottom: -250px;
    width: 430px;
    height: 430px;
    border: 1px solid rgba(23, 34, 90, 0.08);
    border-radius: 50%;
    box-shadow: 0 0 0 55px rgba(23, 34, 90, 0.025), 0 0 0 110px rgba(23, 34, 90, 0.018);
    z-index: -1;
}

.nrp-hero-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(1px);
    z-index: -1;
}

.nrp-hero-orb-one {
    width: 170px;
    height: 170px;
    right: 7%;
    top: 8%;
    background: rgba(255, 98, 101, 0.08);
}

.nrp-hero-orb-two {
    width: 90px;
    height: 90px;
    left: 48%;
    bottom: 14%;
    background: rgba(63, 120, 255, 0.07);
}

.nrp-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(380px, 0.85fr);
    align-items: center;
    gap: 70px;
}

.nrp-hero-copy {
    position: relative;
    z-index: 2;
}

.nrp-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 22px;
    color: var(--nrp-coral);
    font-family: "Outfit", Arial, sans-serif;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.nrp-kicker-icon {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    color: var(--nrp-coral);
    background: #fff;
    border: 1px solid rgba(255, 98, 101, 0.16);
    border-radius: 13px;
    box-shadow: 0 10px 22px rgba(255, 98, 101, 0.12);
}

.nrp-hero-copy h1 {
    margin: 0;
    color: var(--nrp-navy);
    font-family: "Outfit", Arial, sans-serif;
    font-size: clamp(48px, 5vw, 72px);
    font-weight: 800;
    line-height: 0.98;
    letter-spacing: -0.055em;
}

.nrp-hero-line {
    display: block;
}

.nrp-hero-line + .nrp-hero-line {
    margin-top: 8px;
}

.nrp-hero-copy h1 em {
    color: var(--nrp-coral);
    font-style: normal;
}

.nrp-hero-actions {
    display: flex;
    align-items: stretch;
    gap: 14px;
    margin-top: 34px;
}

.nrp-hero-actions .nrp-btn {
    min-width: 190px;
}

.nrp-hero-media {
    position: relative;
    min-height: 520px;
}

.nrp-hero-image-shell {
    position: absolute;
    inset: 0 0 0 20px;
    overflow: hidden;
    border-radius: 42px 42px 120px 42px;
    box-shadow: var(--nrp-shadow);
    background: #e9edf6;
}

.nrp-hero-image-shell::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 55%, rgba(15, 24, 68, 0.12));
    pointer-events: none;
}

.nrp-hero-image-shell img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.nrp-hero-label {
    position: absolute;
    left: -20px;
    bottom: 42px;
    z-index: 3;
    width: min(340px, 78%);
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 21px 23px;
    color: var(--nrp-navy);
    background: rgba(255, 255, 255, 0.96);
    border-left: 5px solid var(--nrp-coral);
    border-radius: 20px;
    box-shadow: 0 20px 45px rgba(17, 29, 76, 0.18);
    backdrop-filter: blur(10px);
}

.nrp-hero-label strong {
    font-family: "Outfit", Arial, sans-serif;
    font-size: 20px;
    line-height: 1.15;
}

.nrp-hero-label-dot {
    flex: 0 0 12px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--nrp-coral);
    box-shadow: 0 0 0 7px rgba(255, 98, 101, 0.12);
}

.nrp-hero-stroke {
    position: absolute;
    top: 46px;
    right: -24px;
    width: 110px;
    height: 110px;
    border: 2px solid rgba(255, 98, 101, 0.38);
    border-radius: 34px;
    transform: rotate(12deg);
    z-index: -1;
}

/* =========================================================
   INTERACTIVE
   ========================================================= */
.nrp-interactive-section {
    position: relative;
    padding: 78px 0 88px;
    background: #fff;
}

.nrp-interactive-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.nrp-access-card {
    position: relative;
    min-height: 190px;
    padding: 26px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    border: 1px solid rgba(24, 35, 88, 0.06);
    border-radius: 28px;
    box-shadow: var(--nrp-shadow-soft);
    transition: 0.25s ease;
}

.nrp-access-card::before {
    content: "";
    position: absolute;
    width: 125px;
    height: 125px;
    right: -50px;
    top: -50px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.54);
}

.nrp-access-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 22px 46px rgba(24, 35, 88, 0.14);
}

.nrp-access-coral { background: linear-gradient(145deg, #fff1f0, #ffe1df); }
.nrp-access-blue { background: linear-gradient(145deg, #edf4ff, #dfeaff); }
.nrp-access-sand { background: linear-gradient(145deg, #fff8ec, #fff0cf); }
.nrp-access-pink { background: linear-gradient(145deg, #fff0f7, #ffe0ee); }

.nrp-access-icon {
    position: relative;
    z-index: 1;
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    border-radius: 17px;
    color: var(--nrp-navy);
    background: rgba(255, 255, 255, 0.78);
    font-size: 20px;
    box-shadow: 0 10px 20px rgba(24, 35, 88, 0.08);
}

.nrp-access-title {
    position: relative;
    z-index: 1;
    max-width: 165px;
    color: var(--nrp-ink);
    font-family: "Outfit", Arial, sans-serif;
    font-size: 20px;
    font-weight: 800;
    line-height: 1.1;
}

.nrp-access-arrow {
    position: absolute;
    right: 22px;
    bottom: 22px;
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--nrp-navy);
    transition: 0.2s ease;
}

.nrp-access-card:hover .nrp-access-arrow {
    transform: rotate(12deg) scale(1.06);
}

/* =========================================================
   ABOUT
   ========================================================= */
.nrp-about-section {
    position: relative;
    padding: 100px 0;
    background: var(--nrp-bg);
    overflow: hidden;
}

.nrp-about-section::before {
    content: "";
    position: absolute;
    left: -100px;
    top: 50px;
    width: 240px;
    height: 240px;
    border-radius: 50%;
    background: rgba(255, 98, 101, 0.07);
}

.nrp-about-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    align-items: center;
    gap: 80px;
}

.nrp-about-visual {
    position: relative;
    min-height: 535px;
}

.nrp-about-image {
    position: absolute;
    overflow: hidden;
    background: #e9edf6;
    box-shadow: var(--nrp-shadow);
}

.nrp-about-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.nrp-about-image-main {
    inset: 0 54px 32px 0;
    border-radius: 38px 38px 100px 38px;
}

.nrp-about-image-small {
    right: 0;
    bottom: 0;
    width: 44%;
    height: 210px;
    border: 9px solid var(--nrp-bg);
    border-radius: 28px;
}

.nrp-about-shape {
    position: absolute;
    left: -18px;
    bottom: 18px;
    width: 88px;
    height: 88px;
    border: 2px solid rgba(23, 34, 90, 0.18);
    border-radius: 28px;
    transform: rotate(-12deg);
}

.nrp-about-content {
    position: relative;
    z-index: 2;
    padding: 36px 0;
}

.nrp-about-copy p {
    margin: 0 0 18px;
    color: #5c6780;
    font-size: 15.5px;
    line-height: 1.8;
}

.nrp-about-copy p:last-child {
    margin-bottom: 0;
}

/* =========================================================
   COURSES
   ========================================================= */
.nrp-courses-section {
    padding: 92px 0 100px;
    background: #fff;
}

.nrp-course-rail {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}

.nrp-course-card {
    display: block;
    color: var(--nrp-ink);
}

.nrp-course-image {
    position: relative;
    height: 325px;
    overflow: hidden;
    border-radius: 28px;
    background: #e9edf6;
    box-shadow: var(--nrp-shadow-soft);
}

.nrp-course-image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 58%, rgba(12, 23, 66, 0.22));
}

.nrp-course-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: 0.35s ease;
}

.nrp-course-arrow {
    position: absolute;
    right: 16px;
    bottom: 16px;
    z-index: 2;
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    color: var(--nrp-navy);
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 10px 24px rgba(18, 28, 74, 0.16);
}

.nrp-course-card h3 {
    margin: 16px 5px 0;
    color: var(--nrp-ink);
    font-family: "Outfit", Arial, sans-serif;
    font-size: 19px;
    font-weight: 800;
    line-height: 1.2;
}

.nrp-course-card-offset {
    transform: translateY(28px);
}

.nrp-course-card:hover .nrp-course-image img {
    transform: scale(1.055);
}

.nrp-course-card:hover h3 {
    color: var(--nrp-coral);
}

/* =========================================================
   GALLERY
   ========================================================= */
.nrp-gallery-section {
    padding: 100px 0 94px;
    background: linear-gradient(180deg, #f7f8fc, #fff);
}

.nrp-gallery-mosaic {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr 0.85fr;
    grid-template-rows: 230px 230px;
    gap: 16px;
}

.nrp-gallery-item {
    position: relative;
    overflow: hidden;
    border-radius: 26px;
    background: #e7ebf4;
    box-shadow: 0 15px 36px rgba(21, 32, 79, 0.08);
}

.nrp-gallery-item::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 65%, rgba(14, 24, 64, 0.16));
    opacity: 0;
    transition: 0.25s ease;
}

.nrp-gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: 0.35s ease;
}

.nrp-gallery-tall {
    grid-row: 1 / span 2;
}

.nrp-gallery-wide {
    grid-column: 2 / span 2;
}

.nrp-gallery-item:hover img {
    transform: scale(1.04);
}

.nrp-gallery-item:hover::after {
    opacity: 1;
}

.nrp-gallery-action {
    display: flex;
    justify-content: center;
    margin-top: 34px;
}

/* =========================================================
   FOOTER
   ========================================================= */
.nrp-site-footer {
    position: relative;
    color: #dfe4f4;
    background: var(--nrp-navy);
    overflow: hidden;
}

.nrp-site-footer::before {
    content: "";
    position: absolute;
    left: -130px;
    top: -170px;
    width: 360px;
    height: 360px;
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 50%;
    box-shadow: 0 0 0 50px rgba(255,255,255,0.018), 0 0 0 100px rgba(255,255,255,0.012);
}

.nrp-footer-top {
    position: relative;
    z-index: 1;
    padding: 62px 0 46px;
    display: grid;
    grid-template-columns: 1.05fr 1.65fr 1.2fr;
    gap: 54px;
}

.nrp-footer-logos {
    display: grid;
    grid-template-columns: 62px minmax(120px, 1fr) 52px;
    align-items: center;
    gap: 10px;
    padding: 15px;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 20px;
}

.nrp-footer-logos .iap {
    width: 62px;
    height: 62px;
    padding: 4px;
    object-fit: contain;
    background: #fff;
    border-radius: 13px;
}

.nrp-footer-logos .title {
    width: 100%;
    max-width: 200px;
    height: auto;
}

.nrp-footer-logos .nnf {
    width: 52px;
    height: 60px;
    padding: 3px;
    object-fit: contain;
    background: #fff;
    border-radius: 10px;
}

.nrp-footer-desktop-links {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
}

.nrp-footer-column h3,
.nrp-footer-contact h3 {
    margin: 0 0 17px;
    color: #fff;
    font-family: "Outfit", Arial, sans-serif;
    font-size: 18px;
    font-weight: 800;
}

.nrp-footer-column a {
    display: block;
    width: fit-content;
    margin: 0 0 8px;
    color: #d6dcef;
    font-size: 13px;
    line-height: 1.45;
    transition: 0.18s ease;
}

.nrp-footer-column a:hover {
    color: #fff;
    transform: translateX(3px);
}

.nrp-footer-contact strong {
    display: block;
    margin-bottom: 8px;
    color: #fff;
    font-size: 13px;
}

.nrp-footer-contact p {
    margin: 0 0 13px;
    color: #d5daec;
    font-size: 12.5px;
    line-height: 1.65;
}

.nrp-footer-phone {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.nrp-footer-phone i {
    margin-top: 5px;
    color: var(--nrp-coral);
}

.nrp-footer-mobile-links {
    display: none;
}

.nrp-footer-bottom {
    position: relative;
    z-index: 1;
    border-top: 1px solid rgba(255,255,255,0.1);
}

.nrp-footer-bottom p {
    margin: 0;
    padding: 16px 0;
    color: #cbd2e7;
    text-align: center;
    font-size: 12px;
}

.nrp-footer-bottom a {
    color: #fff;
}

.nrp-scroll-top {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 900;
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border: 2px solid var(--nrp-coral);
    border-radius: 50%;
    color: var(--nrp-coral);
    background: #fff;
    box-shadow: 0 12px 28px rgba(23, 34, 90, 0.16);
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    cursor: pointer;
    transition: 0.22s ease;
}

.nrp-scroll-top.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width: 1199.98px) {
    .nrp-shell {
        width: min(1040px, calc(100% - 36px));
    }

    .nrp-program-title {
        width: 340px;
    }

    .nrp-desktop-nav > ul > li > a {
        padding-inline: 7px;
        font-size: 13.5px;
    }

    .nrp-hero-grid {
        gap: 45px;
        grid-template-columns: minmax(0, 1.05fr) minmax(340px, 0.95fr);
    }

    .nrp-hero-copy h1 {
        font-size: 56px;
    }

    .nrp-about-grid {
        gap: 55px;
    }
}

@media (max-width: 991.98px) {
    .nrp-shell {
        width: min(760px, calc(100% - 32px));
    }

    .nrp-brand-strip-inner {
        min-height: 74px;
        gap: 14px;
    }

    .nrp-iap-brand img {
        width: 54px;
        height: 54px;
    }

    .nrp-program-brand {
        gap: 10px;
        margin-left: 0;
        flex: 1 1 auto;
        justify-content: center;
    }

    .nrp-program-title {
        width: min(235px, 42vw);
        max-width: none;
    }

    .nrp-nnf-brand {
        width: 48px;
        height: 52px;
        border-radius: 12px;
    }

    .nrp-menu-open {
        display: inline-flex;
        flex: 0 0 46px;
    }

    .nrp-desktop-nav-wrap {
        display: none;
    }

    .nrp-creative-hero {
        padding: 55px 0 68px;
    }

    .nrp-hero-grid {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .nrp-hero-copy {
        max-width: 690px;
    }

    .nrp-hero-copy h1 {
        font-size: clamp(44px, 7vw, 58px);
        line-height: 1.02;
    }

    .nrp-hero-media {
        width: min(650px, 100%);
        min-height: 470px;
        margin: 0 auto;
    }

    .nrp-hero-image-shell {
        inset-left: 0;
    }

    .nrp-interactive-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .nrp-about-grid {
        grid-template-columns: 1fr;
        gap: 44px;
    }

    .nrp-about-visual {
        width: min(620px, 100%);
        min-height: 510px;
        margin: 0 auto;
    }

    .nrp-about-content {
        padding: 0;
    }

    .nrp-course-rail {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        row-gap: 48px;
    }

    .nrp-course-card-offset {
        transform: none;
    }

    .nrp-gallery-mosaic {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 250px 250px 250px;
    }

    .nrp-gallery-tall {
        grid-row: 1 / span 2;
    }

    .nrp-gallery-wide {
        grid-column: 1 / span 2;
    }

    .nrp-footer-top {
        grid-template-columns: 1fr 1fr;
        gap: 36px;
    }

    .nrp-footer-brand {
        grid-column: 1 / span 2;
    }

    .nrp-footer-logos {
        max-width: 420px;
    }

    .nrp-footer-desktop-links {
        grid-column: 1;
    }

    .nrp-footer-contact {
        grid-column: 2;
    }
}

@media (max-width: 767.98px) {
    .nrp-shell {
        width: calc(100% - 28px);
    }

    .nrp-brand-strip {
        position: sticky;
        top: 0;
        z-index: 1000;
    }

    .nrp-brand-strip-inner {
        min-height: 64px;
    }

    .nrp-iap-brand img {
        width: 44px;
        height: 44px;
    }

    .nrp-program-brand {
        gap: 6px;
        justify-content: flex-start;
        min-width: 0;
    }

    .nrp-program-title {
        width: min(165px, 43vw);
    }

    .nrp-nnf-brand {
        width: 38px;
        height: 42px;
        padding: 2px;
        border-radius: 9px;
    }

    .nrp-menu-open {
        width: 42px;
        height: 42px;
        flex-basis: 42px;
        border-radius: 12px;
    }

    .nrp-creative-hero {
        padding: 38px 0 54px;
    }

    .nrp-hero-grid {
        gap: 30px;
    }

    .nrp-kicker {
        margin-bottom: 15px;
        font-size: 11px;
        letter-spacing: 0.1em;
    }

    .nrp-kicker-icon {
        width: 32px;
        height: 32px;
        border-radius: 11px;
    }

    .nrp-hero-copy h1 {
        font-size: clamp(34px, 9.3vw, 42px);
        line-height: 1.03;
        letter-spacing: -0.045em;
    }

    .nrp-hero-line + .nrp-hero-line {
        margin-top: 5px;
    }

    .nrp-hero-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        margin-top: 25px;
    }

    .nrp-hero-actions .nrp-btn {
        min-width: 0;
        min-height: 50px;
        padding: 0 15px;
        gap: 8px;
        border-radius: 15px;
        font-size: 12.5px;
    }

    .nrp-hero-actions .nrp-btn i {
        font-size: 12px;
    }

    .nrp-hero-media {
        min-height: 350px;
    }

    .nrp-hero-image-shell {
        inset: 0;
        border-radius: 28px 28px 74px 28px;
    }

    .nrp-hero-label {
        left: 14px;
        bottom: 14px;
        width: min(270px, calc(100% - 28px));
        padding: 15px 16px;
        border-left-width: 4px;
        border-radius: 16px;
    }

    .nrp-hero-label strong {
        font-size: 16px;
    }

    .nrp-hero-stroke {
        display: none;
    }

    .nrp-interactive-section,
    .nrp-courses-section,
    .nrp-gallery-section {
        padding: 62px 0;
    }

    .nrp-section-heading-row {
        grid-template-columns: 1fr;
        gap: 12px;
        margin-bottom: 26px;
    }

    .nrp-section-heading h2 {
        font-size: 30px;
    }

    .nrp-heading-rule {
        width: 80px;
        height: 3px;
        border-radius: 999px;
        background: var(--nrp-coral);
    }

    .nrp-interactive-grid {
        gap: 12px;
    }

    .nrp-access-card {
        min-height: 150px;
        padding: 18px;
        border-radius: 22px;
    }

    .nrp-access-icon {
        width: 44px;
        height: 44px;
        border-radius: 14px;
        font-size: 17px;
    }

    .nrp-access-title {
        max-width: 118px;
        font-size: 16px;
    }

    .nrp-access-arrow {
        right: 14px;
        bottom: 14px;
        width: 31px;
        height: 31px;
        font-size: 12px;
    }

    .nrp-about-section {
        padding: 66px 0;
    }

    .nrp-about-grid {
        gap: 30px;
    }

    .nrp-about-visual {
        min-height: 360px;
    }

    .nrp-about-image-main {
        inset: 0 34px 28px 0;
        border-radius: 28px 28px 72px 28px;
    }

    .nrp-about-image-small {
        width: 42%;
        height: 145px;
        border-width: 6px;
        border-radius: 20px;
    }

    .nrp-about-shape {
        width: 60px;
        height: 60px;
        left: -10px;
        bottom: 10px;
        border-radius: 18px;
    }

    .nrp-about-copy p {
        font-size: 14px;
        line-height: 1.75;
    }

    .nrp-course-rail {
        display: flex;
        gap: 14px;
        margin-right: -14px;
        padding: 2px 14px 16px 0;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    .nrp-course-rail::-webkit-scrollbar {
        display: none;
    }

    .nrp-course-card {
        flex: 0 0 78%;
        scroll-snap-align: start;
    }

    .nrp-course-image {
        height: 300px;
        border-radius: 24px;
    }

    .nrp-course-card h3 {
        margin-top: 13px;
        font-size: 18px;
    }

    .nrp-gallery-mosaic {
        grid-template-columns: 1.1fr 0.9fr;
        grid-template-rows: 190px 190px 170px;
        gap: 10px;
    }

    .nrp-gallery-item {
        border-radius: 19px;
    }

    .nrp-gallery-tall {
        grid-row: 1 / span 2;
    }

    .nrp-gallery-wide {
        grid-column: 1 / span 2;
    }

    .nrp-gallery-action {
        margin-top: 24px;
    }

    .nrp-btn-compact {
        min-width: 140px;
        min-height: 48px;
        font-size: 13px;
    }

    .nrp-footer-top {
        padding: 42px 0 28px;
        display: block;
    }

    .nrp-footer-brand {
        margin-bottom: 26px;
    }

    .nrp-footer-logos {
        grid-template-columns: 48px minmax(110px, 1fr) 42px;
        max-width: 100%;
        gap: 7px;
        padding: 12px;
        border-radius: 17px;
    }

    .nrp-footer-logos .iap {
        width: 48px;
        height: 48px;
        border-radius: 10px;
    }

    .nrp-footer-logos .title {
        max-width: 180px;
    }

    .nrp-footer-logos .nnf {
        width: 42px;
        height: 48px;
        border-radius: 8px;
    }

    .nrp-footer-desktop-links {
        display: none;
    }

    .nrp-footer-mobile-links {
        display: block;
        margin-bottom: 30px;
    }

    .nrp-footer-mobile-links details {
        border-bottom: 1px solid rgba(255,255,255,0.12);
    }

    .nrp-footer-mobile-links summary {
        min-height: 52px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        color: #fff;
        font-family: "Outfit", Arial, sans-serif;
        font-size: 15px;
        font-weight: 700;
        cursor: pointer;
        list-style: none;
    }

    .nrp-footer-mobile-links summary::-webkit-details-marker {
        display: none;
    }

    .nrp-footer-mobile-links summary::after {
        content: "+";
        font-size: 18px;
        font-weight: 400;
        color: var(--nrp-coral);
    }

    .nrp-footer-mobile-links details[open] summary::after {
        content: "−";
    }

    .nrp-footer-mobile-links details > div {
        padding: 0 0 12px;
    }

    .nrp-footer-mobile-links a {
        display: block;
        padding: 5px 0;
        color: #d5daec;
        font-size: 12.5px;
    }

    .nrp-footer-contact h3 {
        font-size: 18px;
    }

    .nrp-footer-contact p {
        font-size: 12.5px;
    }

    .nrp-footer-bottom p {
        padding: 14px 0;
        font-size: 10.5px;
        line-height: 1.5;
    }

    .nrp-scroll-top {
        right: 14px;
        bottom: 14px;
        width: 42px;
        height: 42px;
    }
}

@media (max-width: 420px) {
    .nrp-shell {
        width: calc(100% - 24px);
    }

    .nrp-iap-brand img {
        width: 40px;
        height: 40px;
    }

    .nrp-program-title {
        width: min(142px, 39vw);
    }

    .nrp-nnf-brand {
        width: 34px;
        height: 38px;
    }

    .nrp-menu-open {
        width: 40px;
        height: 40px;
        flex-basis: 40px;
    }

    .nrp-hero-copy h1 {
        font-size: clamp(31px, 9vw, 36px);
    }

    .nrp-hero-actions .nrp-btn {
        padding-inline: 12px;
        font-size: 11.5px;
    }

    .nrp-hero-media {
        min-height: 315px;
    }

    .nrp-interactive-grid {
        gap: 10px;
    }

    .nrp-access-card {
        min-height: 140px;
        padding: 15px;
    }

    .nrp-access-title {
        max-width: 100px;
        font-size: 15px;
    }

    .nrp-about-visual {
        min-height: 320px;
    }

    .nrp-about-image-small {
        height: 125px;
    }

    .nrp-course-card {
        flex-basis: 82%;
    }

    .nrp-course-image {
        height: 270px;
    }

    .nrp-gallery-mosaic {
        grid-template-rows: 165px 165px 150px;
    }
}

/* =========================================================
   CLIENT DESKTOP FEEDBACK FIXES - V2
   Keeps the original Inter / Outfit type system from the template.
   ========================================================= */

/* Give the desktop header its own wider canvas so the full menu never
   gets squeezed into the regular page-content width. */
@media (min-width: 1400px) {
    .nrp-brand-strip .nrp-shell {
        width: min(1540px, calc(100% - 72px));
    }

    .nrp-desktop-nav-wrap .nrp-shell {
        width: min(1740px, calc(100% - 64px));
    }

    .nrp-brand-strip-inner {
        min-height: 118px;
    }

    .nrp-iap-brand img {
        width: 104px;
        height: 104px;
    }

    .nrp-program-brand {
        gap: 16px;
    }

    .nrp-program-title {
        width: 315px;
        max-width: 315px;
    }

    .nrp-nnf-brand {
        width: 70px;
        height: 76px;
        border-radius: 14px;
    }

    .nrp-desktop-nav > ul {
        justify-content: center;
        gap: 0;
    }

    .nrp-desktop-nav > ul > li > a {
        padding: 16px 10px;
        font-family: "Outfit", Arial, sans-serif;
        font-size: 13.5px;
        font-weight: 600;
        letter-spacing: 0;
    }

    .nrp-desktop-nav > ul > li.active > a::before {
        left: 10px;
        right: 10px;
        bottom: 8px;
    }
}

/* On normal-size laptops a 10-item desktop navigation is inherently too
   tight. Use the clean drawer instead of clipping the last items. */
@media (max-width: 1399.98px) and (min-width: 992px) {
    .nrp-desktop-nav-wrap {
        display: none;
    }

    .nrp-menu-open {
        display: inline-flex;
        flex: 0 0 46px;
    }

    .nrp-brand-strip .nrp-shell {
        width: min(1120px, calc(100% - 44px));
    }

    .nrp-brand-strip-inner {
        min-height: 96px;
    }

    .nrp-iap-brand img {
        width: 82px;
        height: 82px;
    }

    .nrp-program-title {
        width: 300px;
        max-width: 34vw;
    }

    .nrp-nnf-brand {
        width: 62px;
        height: 66px;
    }
}

/* Clear, high-contrast CTA buttons. Explicit child colors avoid any
   inherited text color from other template styles. */
.nrp-btn,
.nrp-btn span,
.nrp-btn i {
    color: #ffffff !important;
}

.nrp-btn-primary,
.nrp-btn-primary:visited,
.nrp-btn-primary:hover,
.nrp-btn-primary:focus {
    color: #ffffff !important;
    background: #f4585d;
    border-color: #f4585d;
}

.nrp-btn-secondary,
.nrp-btn-secondary:visited,
.nrp-btn-secondary:hover,
.nrp-btn-secondary:focus {
    color: #ffffff !important;
    background: #18245f;
    border-color: #18245f;
}

.nrp-btn-primary:hover,
.nrp-btn-secondary:hover {
    filter: brightness(0.96);
}

/* Desktop hero: keep the client wording, but make it readable rather than
   letting the copy dominate the entire first screen. */
@media (min-width: 1200px) {
    .nrp-shell {
        width: min(1360px, calc(100% - 64px));
    }

    .nrp-creative-hero {
        padding: 64px 0 76px;
    }

    .nrp-hero-grid {
        grid-template-columns: minmax(0, 1.02fr) minmax(470px, 0.98fr);
        gap: 72px;
    }

    .nrp-hero-copy h1 {
        max-width: 720px;
        font-size: clamp(46px, 3.25vw, 58px);
        line-height: 1.08;
        letter-spacing: -0.035em;
    }

    .nrp-hero-line + .nrp-hero-line {
        margin-top: 7px;
    }

    .nrp-hero-actions {
        margin-top: 30px;
        gap: 14px;
    }

    .nrp-hero-actions .nrp-btn {
        width: 218px;
        min-width: 218px;
        min-height: 58px;
        padding: 0 22px;
        border-radius: 17px;
        font-size: 15px;
    }

    .nrp-hero-media {
        min-height: 505px;
    }

    .nrp-hero-label {
        left: -14px;
        bottom: 34px;
        width: min(330px, 78%);
    }
}

/* Preserve the same CTA contrast on mobile as desktop. */
@media (max-width: 767.98px) {
    .nrp-hero-actions .nrp-btn,
    .nrp-hero-actions .nrp-btn span,
    .nrp-hero-actions .nrp-btn i {
        color: #ffffff !important;
    }
}

/* Hero line sizing after desktop review. */
@media (min-width: 1200px) {
    .nrp-hero-grid {
        grid-template-columns: minmax(0, 1.12fr) minmax(460px, 0.88fr);
        gap: 64px;
    }

    .nrp-hero-copy h1 {
        max-width: 720px;
        font-size: clamp(46px, 2.8vw, 52px);
        line-height: 1.09;
    }
}

/* =========================================================
   FINAL CLIENT HEADER / HERO CORRECTIONS
   27-Sep-2026
   - Desktop always uses horizontal navigation (>= 992px)
   - Burger remains mobile/tablet only (< 992px)
   - Larger IAP logo, smaller programme title on desktop
   - Slightly smaller hero/slider heading
   - Existing font family is intentionally preserved
   ========================================================= */

@media (min-width: 992px) {
    /* Desktop must never show the hamburger menu. */
    .nrp-menu-open {
        display: none !important;
    }

    /* Keep the complete desktop menu visible. */
    .nrp-desktop-nav-wrap {
        display: block !important;
    }

    .nrp-desktop-nav-wrap .nrp-shell {
        width: min(1760px, calc(100% - 28px));
    }

    .nrp-desktop-nav > ul {
        justify-content: center;
        gap: 0;
    }

    .nrp-desktop-nav > ul > li > a {
        padding: 15px 7px;
        font-size: 12.5px;
        /* Do not change the existing font family. */
    }

    .nrp-desktop-nav > ul > li.active > a::before {
        left: 7px;
        right: 7px;
        bottom: 7px;
    }

    /* Header branding requested by client. */
    .nrp-brand-strip .nrp-shell {
        width: min(1600px, calc(100% - 48px));
    }

    .nrp-brand-strip-inner {
        min-height: 112px;
    }

    .nrp-iap-brand img {
        width: 104px;
        height: 104px;
    }

    .nrp-program-brand {
        gap: 14px;
    }

    .nrp-program-title {
        width: 275px;
        max-width: 275px;
    }

    .nrp-nnf-brand {
        width: 64px;
        height: 70px;
    }

    /* Slider / hero text: reduce size only, keep the existing typeface. */
    .nrp-hero-copy h1 {
        font-size: clamp(40px, 3vw, 48px);
        line-height: 1.1;
        letter-spacing: -0.035em;
    }
}

@media (min-width: 1400px) {
    .nrp-brand-strip-inner {
        min-height: 120px;
    }

    .nrp-iap-brand img {
        width: 112px;
        height: 112px;
    }

    .nrp-program-title {
        width: 285px;
        max-width: 285px;
    }

    .nrp-nnf-brand {
        width: 66px;
        height: 72px;
    }

    .nrp-desktop-nav > ul > li > a {
        padding-inline: 9px;
        font-size: 13px;
    }
}


/* =========================================================
   INNER PAGES - shared layout
   ========================================================= */
.nrp-inner-page {
    background: #ffffff;
}

.nrp-inner-hero {
    position: relative;
    overflow: hidden;
    padding: 70px 0 64px;
    background:
        radial-gradient(circle at 85% 20%, rgba(255, 98, 101, 0.10), transparent 28%),
        radial-gradient(circle at 12% 84%, rgba(69, 112, 238, 0.08), transparent 25%),
        linear-gradient(180deg, #fbfbfe 0%, #f5f7fb 100%);
    border-bottom: 1px solid #edf0f6;
}

.nrp-inner-hero-copy {
    max-width: 900px;
}

.nrp-inner-kicker {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 13px;
    margin-bottom: 15px;
    border-radius: 999px;
    color: var(--nrp-coral);
    background: rgba(255, 98, 101, 0.09);
    font-family: "Outfit", Arial, sans-serif;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.nrp-inner-hero h1 {
    margin: 0;
    color: var(--nrp-navy);
    font-family: "Outfit", Arial, sans-serif;
    font-size: clamp(38px, 5vw, 64px);
    font-weight: 800;
    line-height: 1.02;
    letter-spacing: -.045em;
}

.nrp-inner-hero p {
    max-width: 760px;
    margin: 18px 0 0;
    color: #59667f;
    font-size: 17px;
    line-height: 1.75;
}

.nrp-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-top: 24px;
    font-size: 13px;
}

.nrp-breadcrumb a { color: var(--nrp-coral); font-weight: 700; }
.nrp-breadcrumb span { color: #a1a8b8; }
.nrp-breadcrumb strong { color: var(--nrp-ink); }

.nrp-inner-shell { width: min(1180px, calc(100% - 40px)); }

.nrp-section-jump {
    position: relative;
    z-index: 5;
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 18px 0;
    scrollbar-width: thin;
}

.nrp-section-jump a {
    flex: 0 0 auto;
    padding: 9px 13px;
    border: 1px solid #e8ebf3;
    border-radius: 999px;
    color: #34416c;
    background: #fff;
    font-size: 12.5px;
    font-weight: 700;
    box-shadow: 0 5px 16px rgba(23,34,90,.04);
}

.nrp-section-jump a:hover { color: var(--nrp-coral); border-color: rgba(255,98,101,.28); }

.nrp-inner-section {
    scroll-margin-top: 105px;
    padding: 76px 0;
    background: #fff;
}

.nrp-inner-section-alt { background: #f7f8fc; }

.nrp-inner-section-head { max-width: 800px; margin-bottom: 30px; }
.nrp-inner-section-head > span {
    display: block;
    margin-bottom: 8px;
    color: var(--nrp-coral);
    font-family: "Outfit", Arial, sans-serif;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase;
}
.nrp-inner-section-head h2 {
    margin: 0;
    color: var(--nrp-navy);
    font-family: "Outfit", Arial, sans-serif;
    font-size: clamp(30px, 4vw, 46px);
    font-weight: 800;
    line-height: 1.08;
    letter-spacing: -.035em;
}

.nrp-prose { max-width: 920px; color: #53607a; }
.nrp-prose p { margin: 0 0 18px; line-height: 1.8; }
.nrp-prose p:last-child { margin-bottom: 0; }

.nrp-prose-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
    gap: 42px;
    align-items: start;
}

.nrp-highlight-card,
.nrp-resource-panel,
.nrp-status-card,
.nrp-contact-panel {
    padding: 28px;
    border: 1px solid #e7eaf3;
    border-radius: 24px;
    background: #fff;
    box-shadow: var(--nrp-shadow-soft);
}

.nrp-highlight-card { color: #fff; background: var(--nrp-navy); border: 0; }
.nrp-highlight-label { display:block; margin-bottom:10px; color:#ffb7b8; font-size:12px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.nrp-highlight-card strong { display:block; font-family:"Outfit",Arial,sans-serif; font-size:26px; line-height:1.15; }
.nrp-highlight-card p { color:#e5e8f4; line-height:1.7; }
.nrp-highlight-card ul { margin:18px 0 0; padding-left:20px; color:#e4e8f5; }
.nrp-highlight-card li { margin:7px 0; }

.nrp-info-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}
.nrp-info-grid:has(.nrp-info-card:nth-child(4)) { grid-template-columns: repeat(4, minmax(0,1fr)); }
.nrp-info-card {
    min-width: 0;
    padding: 26px;
    border: 1px solid #e7eaf3;
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(23,34,90,.06);
}
.nrp-info-icon { width:48px; height:48px; display:grid; place-items:center; margin-bottom:20px; border-radius:15px; color:var(--nrp-coral); background:#fff1f0; font-size:20px; }
.nrp-info-card h3 { margin:0 0 10px; color:var(--nrp-navy); font-family:"Outfit",Arial,sans-serif; font-size:20px; }
.nrp-info-card p { margin:0 0 18px; color:#5a667e; font-size:14px; line-height:1.7; }
.nrp-text-link { display:inline-flex; align-items:center; gap:7px; color:var(--nrp-coral)!important; font-size:13px; font-weight:800; }

.nrp-table-wrap { overflow:auto; border:1px solid #e4e8f1; border-radius:20px; background:#fff; box-shadow:0 12px 32px rgba(23,34,90,.05); }
.nrp-data-table { width:100%; min-width:660px; border-collapse:collapse; }
.nrp-data-table th, .nrp-data-table td { padding:14px 16px; text-align:left; border-bottom:1px solid #edf0f5; }
.nrp-data-table th { color:var(--nrp-navy); background:#f8f9fc; font-family:"Outfit",Arial,sans-serif; font-size:13px; }
.nrp-data-table td { color:#53607a; font-size:13.5px; }
.nrp-data-table tr:last-child td { border-bottom:0; }

.nrp-resource-panel { text-align:center; }
.nrp-resource-panel > i { display:grid; place-items:center; width:58px; height:58px; margin:0 auto 16px; border-radius:18px; color:var(--nrp-coral); background:#fff1f0; font-size:24px; }
.nrp-resource-panel h3 { color:var(--nrp-navy); font-family:"Outfit",Arial,sans-serif; }
.nrp-resource-panel p { color:#59657d; font-size:14px; line-height:1.65; }

.nrp-chip-row { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.nrp-chip-row span { padding:9px 12px; border-radius:999px; color:#33406d; background:#f1f4fa; font-size:12px; font-weight:700; }

.nrp-status-card,.nrp-contact-panel { display:flex; align-items:center; justify-content:space-between; gap:28px; }
.nrp-status-card span,.nrp-contact-panel span { color:var(--nrp-coral); font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.1em; }
.nrp-status-card h3,.nrp-contact-panel h3 { margin:6px 0 8px; color:var(--nrp-navy); font-family:"Outfit",Arial,sans-serif; font-size:25px; }
.nrp-status-card p,.nrp-contact-panel p { margin:0; color:#5b667d; font-size:14px; }

.nrp-faq-list { display:grid; gap:12px; max-width:980px; }
.nrp-faq-list details { border:1px solid #e6eaf2; border-radius:17px; background:#fff; overflow:hidden; }
.nrp-faq-list summary { cursor:pointer; padding:18px 20px; color:var(--nrp-navy); font-family:"Outfit",Arial,sans-serif; font-weight:700; }
.nrp-faq-list details p { margin:0; padding:0 20px 20px; color:#59657d; line-height:1.75; }

.nrp-steps { display:grid; gap:14px; max-width:980px; }
.nrp-step { display:grid; grid-template-columns:58px 1fr; gap:18px; align-items:start; padding:20px; border:1px solid #e7eaf3; border-radius:20px; background:#fff; }
.nrp-step > span { width:52px; height:52px; display:grid; place-items:center; border-radius:16px; color:#fff; background:var(--nrp-navy); font-family:"Outfit",Arial,sans-serif; font-weight:800; }
.nrp-step h3 { margin:2px 0 6px; color:var(--nrp-navy); font-family:"Outfit",Arial,sans-serif; font-size:18px; }
.nrp-step p { margin:0; color:#59657d; font-size:14px; line-height:1.7; }

.nrp-resource-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.nrp-resource-list > div { display:flex; gap:12px; align-items:flex-start; padding:16px 18px; border:1px solid #e7eaf3; border-radius:16px; background:#fff; color:#4f5c76; font-size:14px; line-height:1.5; }
.nrp-resource-list i { color:var(--nrp-coral); margin-top:3px; }
.nrp-section-note { margin-top:18px; }

.nrp-link-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.nrp-link-grid a { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 18px; border:1px solid #e7eaf3; border-radius:16px; color:#33406d; background:#fff; font-size:14px; font-weight:700; }
.nrp-link-grid a:hover { color:var(--nrp-coral); border-color:rgba(255,98,101,.28); }

.nrp-upload-layout { display:grid; grid-template-columns:minmax(230px,.55fr) minmax(0,1.45fr); gap:34px; align-items:start; }
.nrp-upload-copy h3 { margin:0 0 8px; color:var(--nrp-navy); font-family:"Outfit",Arial,sans-serif; font-size:24px; }
.nrp-upload-copy p { color:#59657d; font-size:14px; line-height:1.7; }
.nrp-contribute-form { padding:26px; border:1px solid #e7eaf3; border-radius:22px; background:#fff; box-shadow:0 12px 32px rgba(23,34,90,.05); }
.nrp-contribute-form label { display:block; margin-bottom:15px; color:#2f3c68; font-size:12px; font-weight:800; }
.nrp-contribute-form input { width:100%; height:48px; margin-top:7px; padding:0 14px; border:1px solid #dde2ec; border-radius:13px; color:#29355d; background:#fbfcfe; outline:none; }
.nrp-contribute-form input[type=file] { padding:11px 12px; }
.nrp-contribute-form input:focus { border-color:rgba(255,98,101,.5); box-shadow:0 0 0 4px rgba(255,98,101,.08); }
.nrp-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 14px; }
.nrp-form-help { display:block; margin-top:12px; color:#8a6470; font-size:11.5px; line-height:1.5; }

.nrp-empty-state { padding:48px 24px; text-align:center; border:1px dashed #dce1ec; border-radius:24px; background:#fff; }
.nrp-empty-state i { display:grid; place-items:center; width:62px; height:62px; margin:0 auto 16px; border-radius:18px; color:var(--nrp-coral); background:#fff1f0; font-size:26px; }
.nrp-empty-state h3 { margin:0 0 7px; color:var(--nrp-navy); font-family:"Outfit",Arial,sans-serif; font-size:24px; }
.nrp-empty-state p { margin:0; color:#5d687e; }

.nrp-inner-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.nrp-inner-gallery a { display:block; overflow:hidden; min-height:240px; border-radius:20px; background:#e9edf4; }
.nrp-inner-gallery img { width:100%; height:100%; min-height:240px; object-fit:cover; transition:transform .35s ease; }
.nrp-inner-gallery a:hover img { transform:scale(1.035); }

.nrp-contact-grid { display:grid; grid-template-columns:1.4fr .8fr .9fr; gap:18px; }
.nrp-contact-card { padding:26px; border:1px solid #e7eaf3; border-radius:22px; background:#fff; box-shadow:0 12px 32px rgba(23,34,90,.05); }
.nrp-contact-card > i { display:grid; place-items:center; width:48px; height:48px; margin-bottom:18px; border-radius:15px; color:var(--nrp-coral); background:#fff1f0; font-size:20px; }
.nrp-contact-card h3 { margin:0 0 10px; color:var(--nrp-navy); font-family:"Outfit",Arial,sans-serif; font-size:20px; }
.nrp-contact-card p,.nrp-contact-card a { color:#59657d; font-size:14px; line-height:1.75; }
.nrp-contact-card a:hover { color:var(--nrp-coral); }

@media (max-width: 1199.98px) {
    .nrp-info-grid,
    .nrp-info-grid:has(.nrp-info-card:nth-child(4)) { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .nrp-contact-grid { grid-template-columns:1fr 1fr; }
    .nrp-link-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 767.98px) {
    .nrp-inner-hero { padding:46px 0 42px; }
    .nrp-inner-hero h1 { font-size:clamp(34px,10vw,46px); }
    .nrp-inner-hero p { font-size:15px; }
    .nrp-inner-shell { width:calc(100% - 28px); }
    .nrp-inner-section { padding:54px 0; }
    .nrp-prose-grid,.nrp-upload-layout { grid-template-columns:1fr; gap:24px; }
    .nrp-info-grid,.nrp-info-grid:has(.nrp-info-card:nth-child(4)),.nrp-resource-list,.nrp-link-grid,.nrp-contact-grid { grid-template-columns:1fr; }
    .nrp-status-card,.nrp-contact-panel { align-items:flex-start; flex-direction:column; }
    .nrp-form-grid { grid-template-columns:1fr; }
    .nrp-inner-gallery { grid-template-columns:1fr 1fr; }
    .nrp-inner-gallery a,.nrp-inner-gallery img { min-height:180px; }
    .nrp-step { grid-template-columns:46px 1fr; padding:16px; }
    .nrp-step > span { width:42px; height:42px; border-radius:13px; font-size:12px; }
}

@media (max-width: 460px) {
    .nrp-inner-gallery { grid-template-columns:1fr; }
    .nrp-inner-gallery a,.nrp-inner-gallery img { min-height:220px; }
}


/* =========================================================
   NRP OFFICE CONTENT UPDATE - 06 Oct 2026
   Blue-highlighted source headings are published.
   Pink-highlighted headings are intentionally not published pending guidance.
   ========================================================= */
.nrp-source-content { display:grid; gap:20px; }
.nrp-source-block { padding:24px 26px; border:1px solid #e7eaf3; border-radius:20px; background:#fff; box-shadow:0 10px 26px rgba(23,34,90,.045); }
.nrp-source-block h3 { margin:0 0 14px; color:var(--nrp-navy); font-family:"Outfit",Arial,sans-serif; font-size:22px; line-height:1.25; }
.nrp-source-block .nrp-source-subhead { margin-top:24px; }
.nrp-source-block p { margin:0 0 14px; color:#53607a; line-height:1.78; }
.nrp-source-block p:last-child { margin-bottom:0; }
.nrp-source-list { margin:12px 0 0; padding-left:22px; color:#53607a; }
.nrp-source-list li { margin:8px 0; line-height:1.65; }
.nrp-prose-wide { max-width:1100px; }
.nrp-course-type-grid,.nrp-course-requisites-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.nrp-status-stack { display:block; }
.nrp-status-stack > div { width:100%; }
.nrp-coordinator-groups { display:grid; gap:42px; }
.nrp-coordinator-title { display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.nrp-coordinator-title span { padding:6px 10px; border-radius:999px; color:#fff; background:var(--nrp-coral); font-size:11px; font-weight:800; letter-spacing:.08em; }
.nrp-coordinator-title h3 { margin:0; color:var(--nrp-navy); font-family:"Outfit",Arial,sans-serif; font-size:24px; }
.nrp-zone-card { margin-bottom:12px; border:1px solid #e4e8f1; border-radius:18px; background:#fff; overflow:hidden; }
.nrp-zone-card summary { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 20px; cursor:pointer; color:var(--nrp-navy); background:#f8f9fc; font-family:"Outfit",Arial,sans-serif; font-weight:800; }
.nrp-zone-card summary small { color:#69758d; font-family:"Inter",Arial,sans-serif; font-size:12px; font-weight:600; text-align:right; }
.nrp-zone-body { padding:18px; }
.nrp-zonal-contact { display:grid; grid-template-columns:160px 1fr 1.3fr .7fr; gap:10px 16px; align-items:center; margin-bottom:16px; padding:14px 16px; border:1px solid #ffe0df; border-radius:14px; background:#fff7f6; color:#45516c; font-size:13px; }
.nrp-zonal-contact strong { color:var(--nrp-navy); }
.nrp-zonal-contact a,.nrp-coordinator-table a { color:#41517b; text-decoration:none; }
.nrp-zonal-contact a:hover,.nrp-coordinator-table a:hover { color:var(--nrp-coral); }
.nrp-repeat-state { color:#a8afbd; }
.nrp-coordinator-table { min-width:820px; }
.nrp-empty-compact { padding:30px 20px; }
.nrp-empty-compact h3 { margin-bottom:0; }
.nrp-faq-group + .nrp-faq-group { margin-top:34px; }
.nrp-faq-group > h3 { margin:0 0 14px; color:var(--nrp-navy); font-family:"Outfit",Arial,sans-serif; font-size:24px; }
.nrp-faq-body { padding:0 20px 20px; }
.nrp-faq-list details .nrp-faq-body p { padding:0; margin:0 0 9px; }
.nrp-contact-single { grid-template-columns:minmax(300px,650px); }
.nrp-footer-desktop-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media (max-width: 991.98px) {
  .nrp-course-type-grid,.nrp-course-requisites-grid { grid-template-columns:1fr; }
  .nrp-zonal-contact { grid-template-columns:1fr; }
  .nrp-zone-card summary { align-items:flex-start; flex-direction:column; }
  .nrp-zone-card summary small { text-align:left; }
}
@media (max-width: 767.98px) {
  .nrp-source-block { padding:20px; }
  .nrp-source-block h3 { font-size:20px; }
  .nrp-coordinator-title { align-items:flex-start; flex-direction:column; }
}


/* =========================================================
   NRP COMMITTEE + INSTRUCTOR DIRECTORY UPDATE - 08 Oct 2026
   Data is displayed from the supplied Committee and Instructor files.
   ========================================================= */
.nrp-committee-tabs,
.nrp-instructor-type-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0 0 20px;
}
.nrp-committee-tabs button,
.nrp-instructor-type-tabs button {
    min-height: 42px;
    padding: 10px 18px;
    border: 1px solid #dde3ef;
    border-radius: 999px;
    color: var(--nrp-navy);
    background: #fff;
    font-family: "Outfit", Arial, sans-serif;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
    transition: .2s ease;
}
.nrp-committee-tabs button:hover,
.nrp-instructor-type-tabs button:hover {
    border-color: rgba(255,98,101,.45);
}
.nrp-committee-tabs button.is-active,
.nrp-instructor-type-tabs button.is-active {
    color: #fff;
    border-color: var(--nrp-coral);
    background: var(--nrp-coral);
}
.nrp-committee-panel[hidden] { display: none !important; }
.nrp-committee-year-title {
    margin: 0 0 14px;
    color: var(--nrp-navy);
    font-family: "Outfit", Arial, sans-serif;
    font-size: 22px;
    line-height: 1.2;
}
.nrp-committee-table {
    min-width: 1180px;
}
.nrp-committee-table th,
.nrp-committee-table td {
    white-space: normal;
    vertical-align: top;
}
.nrp-committee-table td {
    min-width: 110px;
}
.nrp-committee-table td:nth-child(6) {
    min-width: 280px;
}

.nrp-instructor-filters {
    display: grid;
    grid-template-columns: minmax(170px,.7fr) minmax(190px,.85fr) minmax(260px,1.45fr);
    gap: 14px;
    align-items: end;
    margin: 0 0 16px;
}
.nrp-instructor-filters label {
    display: grid;
    gap: 7px;
}
.nrp-instructor-filters label > span {
    color: #3c4867;
    font-size: 12px;
    font-weight: 800;
}
.nrp-instructor-filters select,
.nrp-instructor-filters input {
    width: 100%;
    min-height: 46px;
    padding: 0 13px;
    border: 1px solid #dce2ed;
    border-radius: 13px;
    color: #33406d;
    background: #fff;
    font: inherit;
    outline: none;
}
.nrp-instructor-filters select:focus,
.nrp-instructor-filters input:focus {
    border-color: rgba(255,98,101,.55);
    box-shadow: 0 0 0 4px rgba(255,98,101,.08);
}
.nrp-instructor-table-meta {
    display: flex;
    justify-content: flex-end;
    min-height: 24px;
    margin-bottom: 8px;
    color: #657089;
    font-size: 12px;
    font-weight: 700;
}
.nrp-instructor-table {
    min-width: 980px;
}
.nrp-instructor-table td {
    vertical-align: top;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}
.nrp-instructor-table th:nth-child(4),
.nrp-instructor-table td:nth-child(4) {
    min-width: 240px;
}
.nrp-instructor-empty {
    padding: 30px !important;
    text-align: center !important;
    color: #7a8499 !important;
}
.nrp-instructor-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin-top: 18px;
}
.nrp-instructor-pagination button {
    min-width: 98px;
    min-height: 40px;
    padding: 9px 15px;
    border: 1px solid #dde3ef;
    border-radius: 12px;
    color: var(--nrp-navy);
    background: #fff;
    font-weight: 800;
    cursor: pointer;
}
.nrp-instructor-pagination button:disabled {
    opacity: .45;
    cursor: default;
}
.nrp-instructor-pagination span {
    color: #647089;
    font-size: 12px;
    font-weight: 700;
}

@media (max-width: 767.98px) {
    .nrp-instructor-filters {
        grid-template-columns: 1fr;
    }
    .nrp-committee-tabs,
    .nrp-instructor-type-tabs {
        gap: 8px;
    }
    .nrp-committee-tabs button,
    .nrp-instructor-type-tabs button {
        flex: 1 1 auto;
        padding-inline: 13px;
        font-size: 12px;
    }
}
