/* =====================================================================
   nppa-about.css — Self-contained styles for the "More About NPPA"
   section in homePage.jsp. Ported from the legacy theme files:
     - HIS/WebContent/hisglobal/assets/css/main.css
     - HIS/WebContent/hisglobal/assets/css/spacing.css
     - HIS/WebContent/hisglobal/assets/css/custom-animation.css

   Every rule below is scoped under .nppa-about-3-area so it can't
   leak into the rest of the page, and the CSS variables are declared
   locally on the wrapper instead of :root.
   ===================================================================== */

.nppa-about-3-area {
    --it-common-white: #ffffff;
    --it-common-black: #1f242c;
    --it-common-red: #ee344e;
    --it-heading-primary: #00102f;
    --it-theme-1: #076cec;
    --it-theme-2: var(--ipdms-primary, #006838);
    --it-theme-3: #efa286;

    position: relative;
    padding-top: 120px;
    padding-bottom: 120px;
    background-color: var(--it-common-white);
    color: var(--it-heading-primary);
}

@media (max-width: 991px) {
    .nppa-about-3-area {
        padding-top: 70px;
        padding-bottom: 70px;
    }
}

/* ---------- generic utilities (only used inside the section) ---------- */
.nppa-about-3-area .p-relative { position: relative; }
.nppa-about-3-area .mb-20 { margin-bottom: 20px; }
.nppa-about-3-area .mb-30 { margin-bottom: 30px; }
.nppa-about-3-area .mt-30 { margin-top: 30px; }

/* ---------- decorative shape (rotating) ---------- */
.nppa-about-3-area .it-about-3-shape-1 {
    position: absolute;
    bottom: 8%;
    right: 3%;
    animation: nppaItRotate 3s ease-in-out 3s infinite alternate forwards;
}
@media only screen and (min-width: 992px) and (max-width: 1399px) {
    .nppa-about-3-area .it-about-3-shape-1 { bottom: 2%; }
    .nppa-about-3-area .it-about-3-shape-1 img { transform: scale(0.6); }
}
@keyframes nppaItRotate {
    0%   { transform: rotate(0deg); }
    100% { transform: rotate(45deg); }
}

/* ---------- left side: image + floating cards ---------- */
/* The grid uses col-lg-auto for this column, so it sizes to its contents.
   We pin the image block to a fixed visual width (matching its original
   half-of-container render width ~540px) so it doesn't grow with the
   viewport. The right column (col-lg) absorbs all remaining width. */
.nppa-about-3-area .nppa-about-3-img-col {
    flex: 0 0 auto;
}
@media (min-width: 992px) {
    .nppa-about-3-area .nppa-about-3-img-col {
        width: 540px;
        max-width: 540px;
    }
    .nppa-about-3-area .nppa-about-3-text-col {
        flex: 1 1 0;
        min-width: 0;
        max-width: none;
    }
}
.nppa-about-3-area .it-about-3-left { margin-right: 5px; }
@media (max-width: 991px) {
    .nppa-about-3-area .it-about-3-left { margin-right: 0; }
}
/* Image must never overflow its column or it will bleed into the
   right-hand text area on narrower screens. Use max-width + auto height
   so it always scales down to fit while preserving aspect ratio. */
.nppa-about-3-area .it-about-3-thumb {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}
.nppa-about-3-area .it-about-3-thumb img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
}
@media (max-width: 991px) {
    /* On tablet/mobile the left column stacks above the text; center
       the image and cap its width so it doesn't dominate the viewport. */
    .nppa-about-3-area .it-about-3-left { margin-right: 0; }
    .nppa-about-3-area .it-about-3-thumb img { max-width: 520px; }
}

.nppa-about-3-area .it-about-3-experience {
    position: absolute;
    border-radius: 20px;
    padding: 20px 30px;
    background-color: var(--it-theme-2);
}
@media only screen and (min-width: 1200px) and (max-width: 1399px) {
    .nppa-about-3-area .it-about-3-experience {
        padding: 31px 27px;
        transform: scale(0.78);
    }
}
@media only screen and (min-width: 992px) and (max-width: 1199px) {
    .nppa-about-3-area .it-about-3-experience {
        padding: 23px 15px;
        transform: scale(0.75);
        left: -8px;
    }
}
.nppa-about-3-area .it-about-3-experience h6 {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 71px;
    width: 71px;
    border-radius: 50%;
    margin-right: 15px;
    margin-bottom: 0;
    border: 1px dashed var(--it-common-white);
    background-color: rgba(255, 255, 255, 0.2);
    font-size: 34px;
    letter-spacing: -0.01em;
    color: var(--it-common-white);
}
.nppa-about-3-area .it-about-3-experience span {
    font-weight: 700;
    font-size: 20px;
    letter-spacing: -0.01em;
    color: var(--it-common-white);
}

.nppa-about-3-area .it-about-3-contact {
    position: absolute;
    right: 0;
    bottom: 10px;
    border-radius: 20px;
    padding: 24px 26px;
    background-color: #001e21;
}
@media only screen and (min-width: 1200px) and (max-width: 1399px) {
    .nppa-about-3-area .it-about-3-contact {
        right: -10px;
        bottom: 0;
        transform: scale(0.78);
    }
}
@media only screen and (min-width: 992px) and (max-width: 1199px) {
    .nppa-about-3-area .it-about-3-contact {
        right: -30px;
        bottom: -4%;
        transform: scale(0.63);
    }
}
@media only screen and (min-width: 768px) and (max-width: 991px) {
    .nppa-about-3-area .it-about-3-contact { right: 7%; }
}
.nppa-about-3-area .it-about-3-contact > span {
    font-weight: 600;
    font-size: 18px;
    display: block;
    margin-bottom: 2px;
    color: var(--it-common-white);
}
.nppa-about-3-area .it-about-3-contact p {
    font-size: 14px;
    letter-spacing: -0.01em;
    margin-bottom: 4px;
    color: var(--it-common-white);
}

/* ---------- right side: title + text + carousel ---------- */
/* This column (col-lg) takes ALL the remaining horizontal space next to
   the fixed image column, so title/paragraph/cards stretch full-width. */
.nppa-about-3-area .it-about-3-right { margin-left: 45px; }
@media only screen and (min-width: 1200px) and (max-width: 1399px) {
    .nppa-about-3-area .it-about-3-right { margin-left: 20px; }
}
@media only screen and (min-width: 992px) and (max-width: 1199px) {
    .nppa-about-3-area .it-about-3-right { margin-left: 0; }
}
@media (max-width: 991px) {
    .nppa-about-3-area .it-about-3-right {
        margin-left: 0;
        margin-bottom: 70px;
    }
}

.nppa-about-3-area .it-section-subtitle {
    display: block;
    font-weight: 600;
    font-size: 18px;
    color: var(--it-theme-1);
    text-transform: capitalize;
    padding-bottom: 15px;
}
.nppa-about-3-area .it-section-subtitle.tertiary { color: var(--it-theme-2); }
@media (max-width: 1199px) {
    .nppa-about-3-area .it-section-subtitle { font-size: 16px; }
}
@media (max-width: 767px) {
    .nppa-about-3-area .it-section-subtitle { font-size: 14px; }
}

.nppa-about-3-area .it-section-title {
    display: block;
    font-weight: 700;
    font-size: 42px;
    text-transform: capitalize;
    color: var(--it-heading-primary);
    margin-bottom: 0;
}
@media only screen and (min-width: 1200px) and (max-width: 1399px) {
    .nppa-about-3-area .it-section-title { font-size: 38px; }
}
@media only screen and (min-width: 992px) and (max-width: 1199px) {
    .nppa-about-3-area .it-section-title { font-size: 33px; }
}
@media (max-width: 991px) {
    .nppa-about-3-area .it-section-title { font-size: 28px; }
}

.nppa-about-3-area .it-about-3-text p {
    font-size: 16px;
    line-height: 1.6;
    color: #2a2f3a;
}
@media (max-width: 1399px) {
    .nppa-about-3-area .it-about-3-text p { font-size: 15px; }
    .nppa-about-3-area .it-about-3-text p br { display: none; }
}

/* ---------- the function cards (it-choose-staff) ---------- */
.nppa-about-3-area .it-choose-staff {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    transition: 0.3s;
}
@media (max-width: 767px) {
    .nppa-about-3-area .it-choose-staff { margin-bottom: 15px; }
}

.nppa-about-3-area .it-choose-staff-icon {
    flex: 0 0 auto;
}
.nppa-about-3-area .it-choose-staff-icon span {
    height: 68px;
    width: 68px;
    line-height: 68px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--it-theme-2);
    text-align: center;
    background-color: rgba(203, 249, 255, 0.2);
    border: 1px solid var(--it-theme-2);
    position: relative;
    z-index: 1;
    transition: 0.3s;
}
.nppa-about-3-area .it-choose-staff-icon span::after {
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    border-radius: 50%;
    background-color: var(--it-theme-2);
    transform: scale(0);
    transition: 0.5s;
    z-index: -1;
}
.nppa-about-3-area .it-choose-staff-icon span svg {
    width: 30px;
    height: 30px;
    fill: currentColor;
}
.nppa-about-3-area .it-choose-staff:hover .it-choose-staff-icon span {
    color: var(--it-common-white);
}
.nppa-about-3-area .it-choose-staff:hover .it-choose-staff-icon span::after {
    transform: scale(1);
}

.nppa-about-3-area .it-choose-staff-text { flex: 1; min-width: 0; }
.nppa-about-3-area .it-choose-staff-title {
    font-size: 18px;
    letter-spacing: -0.01em;
    color: var(--it-heading-primary);
    margin-bottom: 6px;
}
@media (max-width: 1399px) {
    .nppa-about-3-area .it-choose-staff-title { font-size: 17px; }
}
.nppa-about-3-area .it-choose-staff-text p {
    font-weight: 400;
    font-size: 14px;
    letter-spacing: -0.01em;
    color: #707279;
    margin: 0;
}
@media (max-width: 1399px) {
    .nppa-about-3-area .it-choose-staff-text p { font-size: 12px; }
}
.nppa-about-3-area .it-choose-staff.style-2 { margin-left: -5px; }
@media (max-width: 1199px) {
    .nppa-about-3-area .it-choose-staff.style-2 { margin-left: 0; }
}

/* ---------- carousel (slides + dots) ---------- */
.nppa-about-3-area #nppaCarouselContainer { position: relative; }
.nppa-about-3-area #nppaCarouselContainer .nppa-slide { display: none; }
.nppa-about-3-area #nppaCarouselContainer .nppa-slide.active {
    display: block;
    animation: nppaFadeIn 0.5s ease-in-out;
}
@keyframes nppaFadeIn {
    from { opacity: 0; transform: translateX(20px); }
    to   { opacity: 1; transform: translateX(0); }
}
.nppa-about-3-area #nppaCarouselContainer .it-choose-staff { min-height: 130px; }

.nppa-about-3-area .nppa-carousel-dots {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 15px;
}
.nppa-about-3-area .nppa-carousel-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #ccc;
    cursor: pointer;
    transition: background 0.3s ease, transform 0.3s ease;
    border: none;
    padding: 0;
}
.nppa-about-3-area .nppa-carousel-dot.active {
    background: var(--it-theme-2);
    transform: scale(1.2);
}

/* ---------- Visit-NPPA button ---------- */
.nppa-about-3-area .it-about-3-button { margin-top: 30px; }
.nppa-about-3-area .it-btn-theme {
    display: inline-block;
    font-weight: 600;
    font-size: 16px;
    letter-spacing: -0.01em;
    border-radius: 5px;
    padding: 18px 38px;
    text-align: center;
    text-decoration: none;
    color: var(--it-common-white);
    background-color: var(--it-theme-2);
    overflow: hidden;
    transition: background-color 0.3s ease;
}
.nppa-about-3-area .it-btn-theme.tertiary-bg { background-color: var(--it-theme-2); }
.nppa-about-3-area .it-btn-theme:hover { background-color: #038f99; }
.nppa-about-3-area .it-btn-theme .btn-wrap {
    position: relative;
    z-index: 1;
    overflow: hidden;
    display: inline-block;
}
.nppa-about-3-area .it-btn-theme .btn-wrap .text-one {
    display: block;
    color: inherit;
    transition: 0.3s;
    text-transform: capitalize;
}
.nppa-about-3-area .it-btn-theme .btn-wrap .text-two {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    display: block;
    transition: 0.3s;
    text-transform: capitalize;
}
.nppa-about-3-area .it-btn-theme:hover .btn-wrap .text-one { transform: translateY(-150%); }
.nppa-about-3-area .it-btn-theme:hover .btn-wrap .text-two {
    top: 50%;
    transform: translateY(-50%);
}
@media (max-width: 1199px) {
    .nppa-about-3-area .it-btn-theme { padding: 15px 28px; font-size: 14px; }
}
