/* ==========================================================
   NURIA GC
   Executive Education Inquiry
   Institutional Edition

   File:
   /assets/css/executive-education-inquiry.css

   Purpose:
   Institutional experience for Executive Education Inquiry.

   Standards:
   - Bootstrap 5 compatible
   - Responsive
   - Editorial typography
   - Institutional spacing
   - Reusable components
   ========================================================== */



/* ==========================================================
   01. SECTION
   ========================================================== */

.ngc-ee-inquiry{
    background:#f7f4ee;
    padding:7rem 0;
    position:relative;
}

.ngc-ee-container{
    max-width:1280px;
}

.ngc-ee-section{
    padding:6rem 0;
}

.ngc-ee-section-sm{
    padding:4rem 0;
}

.ngc-ee-divider{
    width:72px;
    height:2px;
    margin:2rem 0;
    background:#c21d1d;
}






/* ==========================================================
   02. TYPOGRAPHY
   ========================================================== */

.ngc-ee-kicker{

    display:inline-block;

    margin-bottom:1rem;

    font-size:.78rem;

    font-weight:700;

    letter-spacing:.18em;

    text-transform:uppercase;

    color:#c21d1d;

}

.ngc-ee-title{

    margin:0;

    font-family:"Playfair Display",serif;

    font-size:clamp(2.7rem,4vw,4.5rem);

    line-height:1.08;

    font-weight:500;

    color:#161616;

}

.ngc-ee-subtitle{

    margin-top:1.75rem;

    max-width:760px;

    font-size:1.15rem;

    line-height:2;

    color:#555;

}

.ngc-ee-heading{

    margin-bottom:1.5rem;

    font-family:"Playfair Display",serif;

    font-size:2rem;

    font-weight:500;

    color:#1d1d1d;

}

.ngc-ee-text{

    font-size:1.05rem;

    line-height:2;

    color:#555;

}

.ngc-ee-small{

    font-size:.9rem;

    color:#777;

    line-height:1.8;

}

/* ==========================================================
   03. HERO
   ========================================================== */

.ngc-ee-hero{

    position:relative;

    overflow:hidden;

    padding:9rem 0 7rem;

    background:#ffffff;

}

.ngc-ee-hero::before{

    content:"";

    position:absolute;

    inset:0;

    background:
    linear-gradient(to right,
    rgba(247,244,238,.98),
    rgba(247,244,238,.92));

    z-index:1;

}

.ngc-ee-hero>.container{

    position:relative;

    z-index:2;

}

.ngc-ee-hero-content{

    max-width:760px;

}

.ngc-ee-hero-title{

    margin-bottom:1.75rem;

}

.ngc-ee-hero-text{

    max-width:700px;

    font-size:1.12rem;

    line-height:2;

    color:#555;

}

.ngc-ee-hero-actions{

    display:flex;

    align-items:center;

    gap:1rem;

    margin-top:2.75rem;

    flex-wrap:wrap;

}

.ngc-ee-hero-note{

    margin-top:2rem;

    font-size:.95rem;

    color:#777;

    letter-spacing:.02em;

}

.ngc-ee-hero-media{

    position:relative;

    border:1px solid rgba(0,0,0,.08);

    background:#ebe5da;

    padding:1rem;

}

.ngc-ee-hero-image{

    width:100%;

    display:block;

    object-fit:cover;

}

.ngc-ee-hero-line{

    width:90px;

    height:2px;

    margin:2rem 0;

    background:#c21d1d;

}

/* ==========================================================
   04. INSTITUTIONAL FORM CARD
   ========================================================== */

.ngc-ee-form-section{

    position:relative;

    padding:7rem 0;

    background:#f7f4ee;

}

.ngc-ee-form-wrapper{

    max-width:1180px;

    margin:0 auto;

}

.ngc-ee-form-card{

    position:relative;

    background:#ffffff;

    padding:clamp(2.5rem,4vw,4.5rem);

    border-top:4px solid #c21d1d;

    border-left:1px solid rgba(0,0,0,.06);

    border-right:1px solid rgba(0,0,0,.06);

    border-bottom:1px solid rgba(0,0,0,.06);

    box-shadow:0 20px 60px rgba(0,0,0,.08);

}

.ngc-ee-form-header{

    margin-bottom:3rem;

}

.ngc-ee-form-kicker{

    display:inline-block;

    margin-bottom:.85rem;

    font-size:.78rem;

    font-weight:700;

    letter-spacing:.18em;

    text-transform:uppercase;

    color:#c21d1d;

}

.ngc-ee-form-title{

    margin-bottom:1.25rem;

    font-family:"Playfair Display",serif;

    font-size:clamp(2rem,3vw,2.8rem);

    font-weight:500;

    line-height:1.15;

    color:#1b1b1b;

}

.ngc-ee-form-intro{

    max-width:760px;

    font-size:1.05rem;

    line-height:1.95;

    color:#575757;

}

.ngc-ee-form-divider{

    width:70px;

    height:2px;

    margin:2rem 0;

    background:#c21d1d;

}

/* ==========================================================
   05. INSTITUTIONAL FORM SYSTEM
   ========================================================== */

.ngc-ee-form .form-label{

    display:block;

    margin-bottom:.75rem;

    font-size:.82rem;

    font-weight:700;

    letter-spacing:.12em;

    text-transform:uppercase;

    color:#2b2b2b;

}

.ngc-ee-form .form-control,
.ngc-ee-form .form-select{

    min-height:60px;

    padding:1rem 1.15rem;

    border:1px solid rgba(0,0,0,.12);

    border-radius:0;

    background:#fff;

    color:#222;

    font-size:1rem;

    line-height:1.5;

    box-shadow:none;

    transition:
        border-color .25s ease,
        box-shadow .25s ease,
        background-color .25s ease;

}

.ngc-ee-form textarea.form-control{

    min-height:180px;

    resize:vertical;

    line-height:1.9;

}

.ngc-ee-form .form-control::placeholder,
.ngc-ee-form .form-select{

    color:#8b8b8b;

}

.ngc-ee-form .form-control:hover,
.ngc-ee-form .form-select:hover{

    border-color:#b6b6b6;

}

.ngc-ee-form .form-control:focus,
.ngc-ee-form .form-select:focus{

    border-color:#c21d1d;

    box-shadow:0 0 0 .18rem rgba(194,29,29,.08);

    background:#fff;

    outline:none;

}

.ngc-ee-form .form-text{

    margin-top:.55rem;

    font-size:.88rem;

    line-height:1.6;

    color:#777;

}

.ngc-ee-form .required{

    color:#c21d1d;

    margin-left:.2rem;

}

.ngc-ee-form .row{

    --bs-gutter-x:2rem;

    --bs-gutter-y:2rem;

}

.ngc-ee-form .form-group{

    margin-bottom:.5rem;

}

/* ==========================================================
   06. INSTITUTIONAL CTA SYSTEM
   ========================================================== */

.ngc-ee-form-actions{

    display:flex;

    align-items:flex-start;

    justify-content:space-between;

    gap:2rem;

    margin-top:3.5rem;

    padding-top:2.5rem;

    border-top:1px solid rgba(0,0,0,.08);

}

.ngc-ee-submit{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    min-width:260px;

    min-height:60px;

    padding:1rem 2rem;

    border:none;

    background:#1b1b1b;

    color:#fff;

    font-size:.82rem;

    font-weight:700;

    letter-spacing:.16em;

    text-transform:uppercase;

    text-decoration:none;

    transition:all .30s ease;

    cursor:pointer;

}

.ngc-ee-submit:hover{

    background:#c21d1d;

    color:#fff;

    transform:translateY(-2px);

}

.ngc-ee-submit:focus{

    outline:none;

    box-shadow:0 0 0 .2rem rgba(194,29,29,.15);

}

.ngc-ee-submit:disabled{

    background:#8c8c8c;

    cursor:not-allowed;

    transform:none;

}

.ngc-ee-form-note{

    max-width:460px;

    font-size:.92rem;

    line-height:1.9;

    color:#6b6b6b;

}

.ngc-ee-form-note strong{

    color:#1b1b1b;

    font-weight:600;

}

.ngc-ee-form-security{

    display:flex;

    align-items:center;

    gap:.65rem;

    margin-top:1rem;

    font-size:.82rem;

    letter-spacing:.08em;

    text-transform:uppercase;

    color:#777;

}

.ngc-ee-form-security::before{

    content:"";

    width:8px;

    height:8px;

    border-radius:50%;

    background:#c21d1d;

}

/* ==========================================================
   07. SUPPORTING INFORMATION
   ========================================================== */

.ngc-ee-support{

    padding:3rem;

    height:100%;

    background:#ffffff;

    border:1px solid rgba(0,0,0,.06);

}

.ngc-ee-support-title{

    margin-bottom:2rem;

    font-family:"Playfair Display",serif;

    font-size:1.7rem;

    font-weight:500;

    color:#1d1d1d;

}

.ngc-ee-support-item{

    padding-bottom:2rem;

    margin-bottom:2rem;

    border-bottom:1px solid rgba(0,0,0,.06);

}

.ngc-ee-support-item:last-child{

    margin-bottom:0;

    padding-bottom:0;

    border-bottom:none;

}

.ngc-ee-support-heading{

    margin-bottom:.75rem;

    font-size:.82rem;

    font-weight:700;

    letter-spacing:.16em;

    text-transform:uppercase;

    color:#c21d1d;

}

.ngc-ee-support-text{

    margin:0;

    font-size:1rem;

    line-height:1.9;

    color:#5b5b5b;

}

.ngc-ee-support-quote{

    margin-top:2.5rem;

    padding-left:1.5rem;

    border-left:2px solid #c21d1d;

}

.ngc-ee-support-quote p{

    margin:0;

    font-family:"Playfair Display",serif;

    font-size:1.15rem;

    line-height:1.8;

    color:#1d1d1d;

}

.ngc-ee-support-signature{

    display:block;

    margin-top:1rem;

    font-size:.78rem;

    font-weight:700;

    letter-spacing:.16em;

    text-transform:uppercase;

    color:#c21d1d;

}

.ngc-ee-support-divider{

    width:60px;

    height:2px;

    margin:2rem 0;

    background:#c21d1d;

}

/* ==========================================================
   08. ACCESSIBILITY & INTERACTION STATES
   ========================================================== */

.ngc-ee-form *:focus-visible{

    outline:3px solid rgba(194,29,29,.18);

    outline-offset:3px;

}

.ngc-ee-form .is-invalid{

    border-color:#c21d1d;

    box-shadow:none;

}

.ngc-ee-form .is-valid{

    border-color:#1b5e20;

    box-shadow:none;

}

.ngc-ee-form .invalid-feedback{

    margin-top:.65rem;

    font-size:.88rem;

    line-height:1.6;

    color:#c21d1d;

}

.ngc-ee-form .valid-feedback{

    margin-top:.65rem;

    font-size:.88rem;

    line-height:1.6;

    color:#1b5e20;

}

.ngc-ee-form .form-control:disabled,
.ngc-ee-form .form-select:disabled,
.ngc-ee-form textarea:disabled{

    background:#f4f4f4;

    color:#8a8a8a;

    cursor:not-allowed;

    opacity:1;

}

.ngc-ee-form-loading{

    position:relative;

    pointer-events:none;

    opacity:.75;

}

.ngc-ee-form-loading::after{

    content:"";

    position:absolute;

    top:50%;

    right:1.5rem;

    width:18px;

    height:18px;

    margin-top:-9px;

    border:2px solid rgba(194,29,29,.2);

    border-top-color:#c21d1d;

    border-radius:50%;

    animation:ngc-ee-spin .8s linear infinite;

}

@keyframes ngc-ee-spin{

    from{

        transform:rotate(0deg);

    }

    to{

        transform:rotate(360deg);

    }

}

@media (prefers-reduced-motion:reduce){

    *{

        animation:none !important;

        transition:none !important;

        scroll-behavior:auto !important;

    }

}

/* ==========================================================
   09. RESPONSIVE SYSTEM
   ========================================================== */

/* ---------- Large Desktop ---------- */

@media (max-width:1399.98px){

    .ngc-ee-title{

        font-size:4rem;

    }

}


/* ---------- Desktop ---------- */

@media (max-width:1199.98px){

    .ngc-ee-hero{

        padding:8rem 0 6rem;

    }

    .ngc-ee-form-card{

        padding:3rem;

    }

}


/* ---------- Laptop ---------- */

@media (max-width:991.98px){

    .ngc-ee-section,
    .ngc-ee-form-section{

        padding:5rem 0;

    }

    .ngc-ee-title{

        font-size:3.2rem;

    }

    .ngc-ee-heading{

        font-size:1.75rem;

    }

    .ngc-ee-subtitle,
    .ngc-ee-text{

        font-size:1rem;

        line-height:1.9;

    }

    .ngc-ee-form-actions{

        flex-direction:column;

        align-items:flex-start;

    }

    .ngc-ee-submit{

        width:100%;

        justify-content:center;

    }

    .ngc-ee-support{

        margin-top:3rem;

    }

}


/* ---------- Tablet ---------- */

@media (max-width:767.98px){

    .ngc-ee-hero{

        padding:6rem 0 4rem;

    }

    .ngc-ee-form-card{

        padding:2.25rem;

    }

    .ngc-ee-title{

        font-size:2.6rem;

    }

    .ngc-ee-heading{

        font-size:1.5rem;

    }

    .ngc-ee-divider,
    .ngc-ee-form-divider{

        margin:1.5rem 0;

    }

}


/* ---------- Mobile ---------- */

@media (max-width:575.98px){

    .ngc-ee-section,
    .ngc-ee-form-section{

        padding:4rem 0;

    }

    .ngc-ee-title{

        font-size:2.15rem;

        line-height:1.15;

    }

    .ngc-ee-subtitle,
    .ngc-ee-text{

        font-size:.98rem;

    }

    .ngc-ee-form-card{

        padding:1.75rem;

    }

    .ngc-ee-support{

        padding:2rem;

    }

    .ngc-ee-submit{

        min-width:100%;

    }

}

/* ==================================================
   10. INSTITUTIONAL ASSURANCE
   ================================================== */

.ngc-ee-assurance {
    position: relative;
    padding: 7.5rem 0;
    background: #f6f5f2;
    overflow: hidden;
}

.ngc-ee-assurance::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: min(1320px, calc(100% - 3rem));
    height: 1px;
    transform: translateX(-50%);
    background: rgba(29, 29, 29, 0.12);
}

.ngc-ee-assurance-header {
    max-width: 920px;
    margin: 0 auto 4.5rem;
    text-align: center;
}

.ngc-ee-assurance-header .ngc-ee-heading {
    max-width: 880px;
    margin-right: auto;
    margin-left: auto;
}

.ngc-ee-assurance-intro {
    max-width: 780px;
    margin: 1.75rem auto 0;
    font-size: 1.06rem;
    line-height: 1.85;
    color: rgba(29, 29, 29, 0.72);
}


/* Assurance Cards */

.ngc-ee-assurance-card {
    position: relative;
    height: 100%;
    min-height: 290px;
    padding: 2.75rem 2.75rem 2.6rem;
    border: 1px solid rgba(29, 29, 29, 0.1);
    background: rgba(255, 255, 255, 0.7);
    transition:
        transform 220ms ease,
        border-color 220ms ease,
        box-shadow 220ms ease;
}

.ngc-ee-assurance-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 2.75rem;
    width: 44px;
    height: 2px;
    background: #b32127;
}

.ngc-ee-assurance-card:hover {
    transform: translateY(-4px);
    border-color: rgba(29, 29, 29, 0.18);
    box-shadow: 0 20px 55px rgba(0, 0, 0, 0.06);
}

.ngc-ee-assurance-number {
    display: block;
    margin-bottom: 2.4rem;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.18em;
    color: #b32127;
}

.ngc-ee-assurance-title {
    margin: 0 0 1.15rem;
    font-family: "Playfair Display", Georgia, serif;
    font-size: clamp(1.45rem, 2vw, 1.8rem);
    font-weight: 500;
    line-height: 1.25;
    color: #1d1d1d;
}

.ngc-ee-assurance-text {
    margin: 0;
    font-size: 0.98rem;
    line-height: 1.8;
    color: rgba(29, 29, 29, 0.7);
}


/* Institutional Closing */

.ngc-ee-assurance-closing {
    margin-top: 2.5rem;
    padding-top: 4.5rem;
    border-top: 1px solid rgba(29, 29, 29, 0.12);
    text-align: center;
}

.ngc-ee-assurance-quote {
    max-width: 850px;
    margin: 0 auto;
    padding: 0;
    border: 0;
}

.ngc-ee-assurance-quote p {
    margin: 0;
    font-family: "Playfair Display", Georgia, serif;
    font-size: clamp(1.75rem, 3.2vw, 2.75rem);
    font-weight: 400;
    line-height: 1.35;
    color: #1d1d1d;
}

.ngc-ee-assurance-quote footer {
    margin-top: 1.75rem;
    font-size: 0.73rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #b32127;
}

.ngc-ee-assurance-closing-text {
    max-width: 720px;
    margin: 2.75rem auto 0;
    font-size: 1rem;
    line-height: 1.85;
    color: rgba(29, 29, 29, 0.68);
}


/* ==================================================
   ACCESSIBILITY
   ================================================== */

@media (prefers-reduced-motion: reduce) {

    .ngc-ee-assurance-card {
        transition: none;
    }

    .ngc-ee-assurance-card:hover {
        transform: none;
    }

}


/* ==================================================
   RESPONSIVE
   ================================================== */

@media (max-width: 991.98px) {

    .ngc-ee-assurance {
        padding: 6rem 0;
    }

    .ngc-ee-assurance-header {
        margin-bottom: 3.75rem;
    }

    .ngc-ee-assurance-card {
        min-height: 270px;
        padding: 2.4rem;
    }

    .ngc-ee-assurance-card::before {
        left: 2.4rem;
    }

    .ngc-ee-assurance-closing {
        padding-top: 4rem;
    }

}

@media (max-width: 767.98px) {

    .ngc-ee-assurance {
        padding: 5rem 0;
    }

    .ngc-ee-assurance::before {
        width: calc(100% - 2rem);
    }

    .ngc-ee-assurance-header {
        margin-bottom: 3.25rem;
        text-align: left;
    }

    .ngc-ee-assurance-header .ngc-ee-heading,
    .ngc-ee-assurance-intro {
        margin-right: 0;
        margin-left: 0;
    }

    .ngc-ee-assurance-card {
        min-height: auto;
    }

    .ngc-ee-assurance-closing {
        margin-top: 1rem;
        padding-top: 3.5rem;
        text-align: left;
    }

    .ngc-ee-assurance-quote,
    .ngc-ee-assurance-closing-text {
        margin-right: 0;
        margin-left: 0;
    }

}

@media (max-width: 575.98px) {

    .ngc-ee-assurance {
        padding: 4.5rem 0;
    }

    .ngc-ee-assurance-card {
        padding: 2.1rem 1.75rem;
    }

    .ngc-ee-assurance-card::before {
        left: 1.75rem;
        width: 36px;
    }

    .ngc-ee-assurance-number {
        margin-bottom: 2rem;
    }

    .ngc-ee-assurance-title {
        font-size: 1.45rem;
    }

    .ngc-ee-assurance-quote p {
        font-size: 1.75rem;
    }

    .ngc-ee-assurance-closing {
        padding-top: 3rem;
    }

}