/*
01. ADS SECTION OVERRIDE
*/
.wm-main-section.wm-studentslove-full {
    /*margin-top: 70px;*/
    margin-bottom: 0px;
}

.wm-main-section.wm-whychooseus-full {
    margin-bottom: 80px;
}

@media (max-width: 768px) {
    .wm-main-section.wm-whychooseus-full {
        margin-bottom: 30px;
    }
}

/* "Why Choose DWU" section: the graduate photo is position:absolute;
   left:100%, so on its own it bleeds ~240px past the white card's right
   edge - a look that only fits once the centered .container's side margin
   is wider than the bleed itself (container maxes at 1170px, so 1650px+
   guarantees 240px+ of clear margin either side). Below that, instead of
   hiding the photo (it must stay visible on every screen, including
   mobile), lay it out in normal flow above the card text, sized with
   clamp() so it scales down smoothly on narrow phones without needing
   extra breakpoints. */
.wm-questions-studying img {
    position: static;
    display: block;
    width: clamp(90px, 28vw, 160px);
    height: auto;
    margin: 0 auto 22px;
}

.wm-questions-studying {
    padding: 45px 30px 50px;
}

@media (min-width: 1650px) {
    .wm-questions-studying {
        padding: 95px 37px 100px 37px;
    }
    .wm-questions-studying img {
        position: absolute;
        left: 100%;
        top: -24px;
        width: auto;
        margin: 0;
    }
}

@media (max-width: 767px) {
    .whychooseus-list ul li span {
        font-size: 44px;
    }
    .whychooseus-list ul li {
        margin-bottom: 35px;
    }
}

.navbar .logo img {
    height: 60px;
}

.wm-study-megamenu > li.row > div:nth-child(4) .wm-thumbnail img {
    height: 230px;
    object-fit: cover;
}

@media (min-width: 992px) {
    .wm-about-megamenu > li.row {
        display: flex;
        flex-wrap: nowrap;
        align-items: flex-start;
    }
    .wm-about-megamenu > li.row > div:nth-child(-n+3) {
        float: none;
        width: 20%;
    }
    .wm-about-megamenu > li.row > div:nth-child(4) {
        float: none;
        width: 40%;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    /* Keep column titles (e.g. "Administrative Divisions") on a single line
       so every column's first list item starts at the same height. */
    .wm-about-megamenu > li.row > div h4 {
        white-space: nowrap;
    }
    /* Fourth-column image: fit neatly, keep aspect ratio (no distortion),
       and stay visually balanced with the text columns. */
    .wm-about-megamenu > li.row > div:nth-child(4) .wm-thumbnail {
        width: 100%;
        margin-bottom: 0;
        text-align: center;
    }
    .wm-about-megamenu > li.row > div:nth-child(4) .wm-thumbnail img {
        width: auto;
        height: auto;
        max-width: 100%;
        max-height: 300px;
        display: inline-block;
    }
    /* Keep long Administrative Divisions items (e.g. "Human Resource
       Management") on a single line in the About Us desktop mega menu.
       Scoped to this mega menu only so the mobile menu and other menus are
       unaffected. The text columns are wide enough for the longest label,
       so no overlap or horizontal overflow is introduced. */
    .wm-about-megamenu .wm-megalist li a {
        white-space: nowrap;
    }
}

@media (max-width: 768px) {
    .wm-main-section {
        padding: 20px 10px;
    }
}

/*
02. LATEST NEWS SECTION OVERRIDE
*/
.wm-main-section.wm-news-grid-full {
    margin-top: 0px !important;
    margin-bottom: 20px;
}

.wm-news-grid-full {
  margin-top: 0px;
}

/*
03. LATEST NEWS SECTION OVERRIDE
*/

/*
04. PROGRAM INFORMATION OVERRIDE
*/


/*
05. COURSES DETAIL PAGE OVERRIDE
*/
.wm-courses-started-text {
    float: left !important;
    padding: 0px 0px 0px 27px !important;
    border-left: 1px solid #e8e8e8 !important;
    width: auto !important;
    display: flex !important;
    flex-direction: column !important;
}
.wm-courses-started-text h6 {
    margin-bottom: 10px !important;
    float: none !important;
    width: 100% !important;
}
.wm-courses-started-text p {
    display: none !important;
    margin: 0 !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
    color: #666 !important;
    float: none !important;
    width: 100% !important;
}
.wm-courses-started-text p.visible {
    display: block !important;
}

/* Toggle span visibility */
.wm-courses-started-text span {
    display: none !important;
}
.wm-courses-started-text span.visible {
    display: block !important;
}

/*
06. PROGRAM INFORMATION LIST ITEMS - SINGLE LINE LAYOUT
*/
.widget_course-price ul li {
    display: flex !important;
    align-items: flex-start !important;
    width: auto !important;
    flex-wrap: wrap !important;
    gap: 2px !important;
}

.widget_course-price ul li a {
    display: flex !important;
    align-items: center !important;
    flex-shrink: 0 !important;
    margin-right: 0 !important;
    width: auto !important;
    padding-left: 0 !important;
}

.widget_course-price ul li strong,
.widget_course-price ul li span {
    margin-left: 0 !important;
    padding-left: 0 !important;
    flex-shrink: 0 !important;
}
.widget_course-price ul li span {
    margin-bottom: 0!important;
}

/* TAB CONTENTS */
.wm-tabs-typo .tab-content {
    border: none;
}

.wm-tabs-listing .nav-tabs > li.active > a,
.wm-tabs-listing .nav-tabs > li.active > a:hover,
.wm-tabs-listing .nav-tabs > li.active > a:focus {
    color: #ffffff !important;
}

.wm-tabs-listing .tab-content {
    color: #ffffff;
}

/*
07. TWO-COLUMN LIST LAYOUT OVERRIDE - PREVENT TEXT WRAPPING
*/
.wm-list-wrap .row {
    display: flex;
    flex-wrap: nowrap;
}

.wm-list-wrap .col-md-6 {
    flex: 0 0 50%;
    max-width: 50%;
}

.wm-list-wrap .wm-icon-list-style li {
    float: none;
    white-space: nowrap;
    width: 100%;
    display: block;
}

/*
08. COURSE UNIT DETAILS IN ACCORDION BOX
*/
.panel-body .col-md-9 {
    width: 100%;
    margin-left: 19px;
    margin-top: 10px;
}

/* ===============================
   RESET LIST CONTAINER
================================ */

.wm-courses-started-listing {
    padding-left: 0;
    margin-left: 0;
    list-style: none;
}

/* ===============================
   MAIN LIST ITEM LAYOUT
================================ */

.wm-courses-started-listing {
    float: none !important; /* override original float: left */
    width: auto !important; /* override original width: 100% */
}

.wm-courses-started-listing li {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 0;
    width: 100%;
    min-height: 120px;
    overflow: visible; /* IMPORTANT: prevents preview clipping */
    flex-wrap: nowrap;
}

/* ===============================
   ICON COLUMN (LEFT)
================================ */

.wm-courses-started-listing li > a.wmicon-pen {
    flex: 0 0 24px;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    margin-top: 2px;
    width: 24px;
}

/* ===============================
   TEXT COLUMN (CENTER)
================================ */

.wm-courses-started-text {
    flex: 1;
    min-width: 0; /* CRITICAL: prevents flex overflow cutting preview */
    display: block;
    padding-left: 0;
    margin-left: 0;
    min-width: 0 !important;
    width: auto !important; /* override responsive.css width: 100% */
    float: none !important; /* override original float: left */
    border-left: none !important; /* override original border */
}

/* Normalize typography */
.wm-courses-started-text h6,
.wm-courses-started-text p,
.wm-courses-started-text span {
    margin: 0;
    padding: 0;
    line-height: 1.4;
    display: block;
}

/* h6 styling */
.wm-courses-started-text h6 {
    line-height: 1.4; /* consistent with span and p for vertical alignment */
    text-indent: 0 !important; /* remove any text indentation */
    padding-left: 0 !important; /* ensure no left padding */
    white-space: nowrap; /* prevent text wrapping */
    overflow: hidden; /* hide overflow if text is too long */
    text-overflow: ellipsis; /* show ellipsis for truncated text */
}

/* h6 anchor tag styling */
.wm-courses-started-text h6 a {
    font-size: 16px!important;
    white-space: nowrap;
}

/* ===============================
   PREVIEW COLUMN (RIGHT)
================================ */

.wm-courses-preview {
    flex: 0 0 auto;
    margin-left: auto;
    margin-right: 15px; /* add space before preview button */
    display: flex;
    white-space: nowrap; /* prevents partial cut text */
    float: none !important; /* override original float: right */
    padding: 0 !important; /* override original padding */
    width: auto !important; /* ensure it can expand */
    max-width: none !important; /* remove any max-width constraints */
    min-width: 80px !important; /* ensure minimum width for preview button */
    flex-shrink: 0 !important; /* prevent shrinking */
}

.wm-courses-preview > a {
    float: none !important; /* override original float: right */
    display: inline-block !important;
    white-space: nowrap !important;
    width: auto !important;
}

/* ===============================
   SAFETY FIX (BOOTSTRAP CONFLICTS)
================================ */

.wm-courses-getting-started,
.wm-courses-started {
    padding-left: 0;
    margin-left: 0;
    overflow: visible;
    float: none !important; /* override original float: left */
    width: auto !important; /* override original width: 100% */
}

/* Ensure column containers don't clip */
.col-md-9 .wm-courses-getting-started {
    width: 100% !important;
    max-width: none !important;
}

/* Override responsive.css specific rule - all screen sizes */
.wm-courses-started-text {
    width: auto !important;
    padding: 0 !important;
    border: none !important;
}

@media (max-width: 940px) {
    .wm-courses-started-text {
        width: auto !important;
        padding: 0 !important;
        border: none !important;
    }
}

/* More specific override for the column containing the courses */
.panel-body .row .col-md-9,
.panel-collapse .panel-body .row .col-md-9 {
    width: 100% !important;
    max-width: none !important;
    overflow: visible !important;
}

/* Override Bootstrap column float and width for this specific context */
@media (min-width: 992px) {
    .panel-body .row .col-md-9 {
        float: none !important;
        width: 100% !important;
        max-width: none !important;
    }
}

/* Ensure the list item can expand */
.wm-courses-started-listing li {
    max-width: none !important;
    position: relative;
    z-index: 1;
}

/* Override accordion width constraints */
.wm-accordion,
.wm-accordion .panel-default,
.wm-faq {
    overflow: visible !important;
    width: 100% !important;
    max-width: none !important;
}

.wm-campus-detail-faq {
    border: 1px solid #e5e5e5;
    padding: 20px 20px 43px;
    box-sizing: border-box;
}

/* Ensure all parent containers allow expansion */
.wm-courses-getting-started,
.wm-courses-started,
.wm-courses-started-listing,
.wm-courses-started-listing li,
.wm-courses-preview {
    overflow: visible !important;
}

/* ===============================
   ACCORDION PANEL STRUCTURE
   Shared by .wm-accordion (year panels), .wm-faq
   (nested semester panels + FAQ tab) and campus_details.html
================================ */

.panel-group .panel {
    position: relative;
    z-index: 1;
    margin-bottom: 10px;
}

.panel {
    position: relative;
}

.panel-heading,
.panel-title {
    margin: 0;
    padding: 0;
}

.panel-title a,
.panel-title button {
    display: block;
    width: 100%;
}

/* Panel body stays visible once open so the "View Course Details"
   preview button is never clipped. This does not cause overflow
   mid-animation: the .panel-collapse.collapsing wrapper below still
   clips via its own hidden overflow regardless of this child's value. */
.panel-body {
    display: block;
    width: 100%;
    position: relative;
    z-index: 1;
    overflow: visible !important;
}

/* ===============================
   ACCORDION OPEN/CLOSE ANIMATION
   Bootstrap's collapse.js drives the height math via the
   .collapsing class; we only refine the easing and add a content
   fade timed to the same class so nested year -> semester panels
   read as one coherent motion instead of a mechanical snap.
================================ */

.panel-collapse {
    overflow: hidden;
    /* Let the browser's native scroll anchoring compensate the scroll
       position when a panel above the viewport changes height (e.g.
       an accordion sibling collapsing via data-parent), instead of
       letting the page jump under the user. */
    overflow-anchor: auto;
}

.panel-collapse.in {
    overflow: visible !important;
}

.panel-collapse.collapsing {
    overflow: hidden;
    -webkit-transition: height 0.35s cubic-bezier(0.4, 0, 0.2, 1) !important;
    -moz-transition: height 0.35s cubic-bezier(0.4, 0, 0.2, 1) !important;
    -o-transition: height 0.35s cubic-bezier(0.4, 0, 0.2, 1) !important;
    transition: height 0.35s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.panel-collapse .panel-body {
    opacity: 0;
    -webkit-transition: opacity 0.3s ease 0.05s;
    transition: opacity 0.3s ease 0.05s;
}

.panel-collapse.collapsing .panel-body,
.panel-collapse.in .panel-body {
    opacity: 1;
}

/* ===============================
   FAQ ITEM LAYOUT (program-details.html "FAQs" tab)
   Force each question/answer pair into a single block column so the
   answer always sits directly under its question at full width,
   instead of beside it. Scoped to .wm-faq only so the Curriculum
   year/semester accordion (.wm-accordion) is untouched.
================================ */
.wm-faq .panel-heading,
.wm-faq .panel-title,
.wm-faq .panel-title a,
.wm-faq .panel-title button {
    float: none !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    grid-column: auto !important;
    clear: both !important;
}

.wm-faq .panel-collapse,
.wm-faq .panel-body {
    float: none !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    grid-column: auto !important;
    clear: both !important;
}

/* Space between the question and its answer */
.wm-faq .panel-heading {
    margin-bottom: 12px;
}

/* Space between separate FAQ items */
.wm-faq .panel {
    clear: both;
    margin-bottom: 22px;
}

/* The campus-detail FAQ (.wm-campus-detail-faq) keeps style.css's tighter
   original rhythm instead of the wider spacing above, which was tuned for
   the program-details.html FAQs tab. Restores question-row height, the
   question/answer gap and the divider position to match the approved
   design without touching .wm-faq elsewhere. */
.wm-faq.wm-campus-detail-faq .panel-heading {
    margin-bottom: 0;
}

.wm-faq.wm-campus-detail-faq .panel {
    margin-bottom: 6px;
}

/* Respect the user's OS-level motion preference: collapse the eased
   height/opacity animation down to a near-instant state change instead
   of disabling the accordion's transition machinery outright (Bootstrap's
   collapse.js still expects a transitionend-style event to fire). */
@media (prefers-reduced-motion: reduce) {
    .panel-collapse.collapsing {
        -webkit-transition-duration: 0.001s !important;
        transition-duration: 0.001s !important;
    }

    .panel-collapse .panel-body {
        -webkit-transition-duration: 0.001s !important;
        transition-duration: 0.001s !important;
    }

    .wm-accordion .panel-default .panel-heading a:before,
    .wm-accordion .panel-default .panel-heading button:before,
    .wm-faq .panel-title a:before,
    .wm-faq .panel-title button:before {
        transition-duration: 0.001s !important;
    }
}

/* ===============================
   PARTNERS PAGE CSS
================================ */
.wm-callaction-two-typo {
    margin-top: 100px;
    margin-bottom: 120px;
}

.wm-main-section.wm-latestnews-full {
    background-color: #fff !important;
}

/*
09. SIDE-BY-SIDE IMAGE AND TEXT
*/
/* =====================================
   STUDENT LIFE FEATURE SECTION
===================================== */

.student-life-section {
    padding: 90px 0;
}




/* =====================================
   STUDENT LIFE IMAGE CONTROL
===================================== */

.student-life-section .wm-figure-thumb {
    width: 100%;
    height: 520px;
    overflow: hidden;
}


.student-life-section .wm-figure-thumb img {
    width: 100% !important;
    height: 520px !important;
    object-fit: cover !important;
    display: block;
}





/* Mobile */

@media(max-width:768px){

    .student-life-section {
        padding:50px 0;
    }


    .student-life-section .wm-figure-thumb img {
        height:350px;
    }


    .student-life-section .wm-editore-text {
        padding-left:0;
        margin-top:30px;
    }


    .student-life-section .wm-editore-text h2 {
        font-size:28px;
    }

}


/* ALL CAMPUSES PAGE MAP */
.wm-maptwo-full {
    margin-top: 0;
    padding-top: 0;
}

/*
10. FIX CONTACT SERVICE DASHES - ADD POSITION RELATIVE TO LIST ITEMS
*/
.wm-contact-service-two ul li {
    position: relative !important;
}

/*
11. CAMPUSES PAGE - ALIGN WM-FANCY-TITLE-THREE LEFT TO MATCH WM-FANCY-TITLE-FOUR
*/
.wm-fancy-title-three.wm-fancy-title-left {
    text-align: left;
}

/*
12. WHO WE ARE SECTION - INCREASE IMAGE HEIGHT
*/
.whowe-are-full .wm-figure-thumb img {
    height: 550px !important;
    object-fit: cover !important;
    width: 100% !important;
}

.campus-latest-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.campus-latest-title .campus-title-buttons {
    float: none;
    width: auto;
    margin-bottom: 0;
    padding: 0;
}

.campus-latest-title .campus-title-buttons .wm-read-button {
    display: inline-block;
    float: none;
    margin: 0 0 0 13px;
    background: transparent;
    cursor: pointer;
    font: inherit;
    text-transform: inherit;
}

.campus-latest-title .campus-title-buttons .wm-read-button.active {
    color: #ffffff;
    background-color: #ea9c0b;
    border-color: #ea9c0b;
}

.campus-latest-title .campus-title-buttons .wm-read-button:hover {
    color: #ea9c0b;
}

.campus-latest-title .campus-title-buttons .wm-read-button.active:hover {
    color: #ffffff;
}

.campus-latest-title .campus-title-buttons .wm-read-button:focus-visible {
    outline: 2px solid #ea9c0b;
    outline-offset: 2px;
}

@media (max-width: 767px) {
    .campus-latest-title {
        display: block;
    }

    .campus-latest-title .campus-title-buttons {
        width: 100%;
        margin-top: 15px;
    }

    .campus-latest-title .campus-title-buttons .wm-read-button {
        margin: 0 13px 10px 0;
    }
}

/* Admin video section (campus_details.html): tighten the whitespace above
   and below the video frame without affecting other wm-studentslove-full
   instances used elsewhere on the page. */
.wm-main-section.wm-studentslove-full.campus-admin-video-full {
    padding-top: 0;
    padding-bottom: 0;
    margin-top: 10px;
    margin-bottom: 10px;
}

@media (max-width: 768px) {
    .wm-main-section.wm-studentslove-full.campus-admin-video-full {
        margin-top: 5px;
        margin-bottom: 5px;
    }
}

/* VIDEO FRAME WIDTH */
.wm-studentslove-full .mejs-container,
.wm-studentslove-full .mejs-inner,
.wm-studentslove-full .mejs-mediaelement,
.wm-studentslove-full .mejs-layers,
.wm-studentslove-full .mejs-poster,
.wm-studentslove-full .mejs-overlay,
.wm-studentslove-full video {
    display: block;
    width: 100% !important;
    height: 550px !important;
    max-height: 550px !important;
    margin: 0 auto;
}

.wm-studentslove-full .mejs-container {
    background: transparent !important;
    overflow: hidden;
}

.wm-studentslove-full video,
.wm-studentslove-full .mejs-poster img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
}

/* The anniversary ad video (index.html, .wm-anniversary-ad-video) sits in a
   narrow col-md-6, not the full-width column the 550px height above was
   sized for. On top of that, MediaElement.js paints its poster as a CSS
   background-image on .mejs-poster (the <img> it also inserts is hidden by
   the library's own ":root .mejs-poster img{display:none}" rule), and the
   vendor stylesheet forces `.mejs-container{padding-top:67%}` plus
   `background-size:cover` on the poster/overlay layers. That 67% box has
   nothing to do with this poster's real ~1.587:1 (1600x1008) shape, so
   `cover` zooms in and crops the logo/text. Cancel the padding-top hack,
   size the box from the poster's own aspect ratio, and switch the
   background/video fit to `contain` so the whole image stays visible
   (letterboxed on the container's own black background) instead of being
   cropped. */
.wm-anniversary-ad-video .mejs-container,
.wm-anniversary-ad-video .mejs-inner,
.wm-anniversary-ad-video .mejs-mediaelement,
.wm-anniversary-ad-video .mejs-layers,
.wm-anniversary-ad-video .mejs-poster,
.wm-anniversary-ad-video .mejs-overlay,
.wm-anniversary-ad-video video {
    height: auto !important;
    max-height: none !important;
    aspect-ratio: 1600 / 1008;
}

.wm-anniversary-ad-video .mejs-container {
    padding-top: 0 !important;
}

.wm-anniversary-ad-video .mejs-poster,
.wm-anniversary-ad-video .mejs-overlay {
    background-size: contain !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
}

.wm-anniversary-ad-video video {
    object-fit: contain !important;
}

/* Fallback for browsers without CSS aspect-ratio support (older mobile
   WebViews/in-app browsers). MediaElement.js's poster/overlay/video layers
   are absolutely positioned with nothing else to size themselves against,
   so without aspect-ratio the container collapses to 0 height and the whole
   frame disappears. Recreate the ratio with the classic padding-top trick,
   using this poster's real 1008/1600 ratio (not the vendor's mismatched
   67%), and pin the layers back to 100% so they fill it. */
@supports not (aspect-ratio: 1 / 1) {
    .wm-anniversary-ad-video .mejs-container {
        padding-top: 63% !important;
    }

    .wm-anniversary-ad-video .mejs-inner,
    .wm-anniversary-ad-video .mejs-mediaelement,
    .wm-anniversary-ad-video .mejs-poster,
    .wm-anniversary-ad-video .mejs-overlay,
    .wm-anniversary-ad-video video {
        height: 100% !important;
    }
}

.wm-studentslove-full .mejs-overlay-button {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 98px;
    height: 98px;
    width: clamp(70px, 18vw, 98px);
    height: clamp(70px, 18vw, 98px);
    margin: 0 !important;
    background-size: contain !important;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
}

.campus-detail-courses .wm-popcourses-grid figure {
    position: relative;
    overflow: hidden;
}

/* Single source of truth for the horizontal gutter: the "Posted by" strip,
   the title and the excerpt all used to compute their own inset separately
   (thumb: left-only theme padding; h6/p: their own 18px margins), which let
   them drift out of sync and made the thumb look like a squeezed-in belt.
   Now every child below the image is width:100% of this padded box, so all
   three line up on identical left/right edges. */
.campus-detail-courses .wm-popcourses-grid-text {
    box-sizing: border-box;
    min-height: 190px;
    padding: 0 18px 24px;
}

.campus-detail-courses .wm-popcourses-grid-text h6 {
    padding: 0 !important;
    margin: 0 0 12px !important;
    line-height: 1.35;
    text-align: left !important;
}

.campus-detail-courses .wm-popcourses-grid-text h6 a.campus-course-nowrap {
    display: block;
    max-width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: #ea9c0b !important;
    text-align: left !important;
}

/* Bleed the green strip out to the card's outer edge (matching the image
   above it) by countering the parent's 18px gutter with a negative margin,
   then re-adding that same 18px as internal padding so the "Posted by" text
   still lines up with the title/excerpt underneath it. */
.campus-detail-courses .wm-popcourses-thumb {
    box-sizing: border-box;
    width: calc(100% + 36px);
    margin: 0 -18px 18px;
    padding: 10px 18px 12px;
}

.campus-detail-courses .wm-popcourses-grid-text p,
.campus-detail-courses .wm-popcourses-grid-text > div:not(.wm-popcourses-thumb) {
    clear: both;
    box-sizing: border-box;
    width: 100%;
    margin: 0 0 18px;
    font-size: 14px;
    line-height: 1.55;
    color: #666666;
    display: -webkit-box;
    line-clamp: 3;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Fix the white "Read More" button background: style.css references
   url(images/see-bg.png) which resolves to css/images/see-bg.png (missing).
   The image actually lives at assets/images/see-bg.png, one level up. */
.campus-detail-courses .wm-popcourses-grid figure figcaption a {
    background-image: url(../images/see-bg.png);
}

/* Same missing-background bug on the campuses page "Read More" slider:
   the green figcaption:before overlay and the wm-color-four text share the
   same green (#47d3a0), so without the see-bg.png ribbon behind it the
   "Read More" label was invisible on hover. */
.wm-ourprofessors-slider-layer figure figcaption a {
    background-image: url(../images/see-bg.png);
}

/* ===== NEWS SECTION – EQUAL-HEIGHT / CONSISTENT CARD OVERRIDES ===== */
/* Fixed, consistent image area with preserved aspect ratio (no distortion) */
.campus-detail-courses .wm-popcourses-grid figure {
    width: 100%;
    height: 180px;
}

.campus-detail-courses .wm-popcourses-grid figure > a {
    display: block;
    width: 100%;
    height: 100%;
}

.campus-detail-courses .wm-popcourses-grid figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* Make every card in a row equal height (desktop / large tablet: 4 across).
   Below 992px the theme's col-md-3 stacks the cards naturally. */
@media (min-width: 992px) {
    .campus-detail-courses .wm-popcourses-grid > ul.row:not([hidden]) {
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    }

    .campus-detail-courses .wm-popcourses-grid > ul.row:not([hidden]) > li {
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-flex-direction: column;
        -ms-flex-direction: column;
        flex-direction: column;
        float: none;
    }

    /* Text block grows to fill the remaining height so card bottoms align */
    .campus-detail-courses .wm-popcourses-grid-text {
        -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
        flex: 1 1 auto;
    }
}

/* Belt-and-braces: guarantee native `hidden` semantics survive regardless of
   any other author-origin display rule on this grid (the flex rules above
   are author CSS and would otherwise always beat the UA [hidden] rule). */
.campus-detail-courses .wm-popcourses-grid > ul.row[hidden] {
    display: none !important;
}

.campus-detail-courses .wm-popcourses-grid figure {
    position: relative;
    overflow: hidden;
}

.campus-card-ribbon {
    position: absolute;
    top: 15px;
    left: 0;
    z-index: 5;

    /* Size to the ribbon text instead of a fixed width */
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    max-width: 85%;
    white-space: nowrap;
    /* Extra right padding keeps text clear of the diagonal clip-path cut */
    padding: 12px 24px 12px 15px;

    color: #ffffff;
    background: linear-gradient(135deg, #b97000 0%, #ea9c0b 100%);

    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1px;
    line-height: 1;

    text-align: left;
    text-transform: uppercase;

    box-shadow: 0 3px 10px rgba(0,0,0,0.22);

    /* Single corner cut */
    clip-path: polygon(
        0 0,
        100% 0,
        85% 100%,
        0 100%
    );
}

.campus-detail-courses .wm-popcourses-grid figure {
    position: relative;
    overflow: hidden;
}

.campus-card-ribbon-news,
.campus-card-ribbon-event {
    background: linear-gradient(135deg, #b97000 0%, #ea9c0b 100%);
}

.navbar-nav > li:focus-within .wm-megamenu {
    opacity: 1;
    visibility: visible;
    -webkit-transform: translateY(0px);
       -moz-transform: translateY(0px);
        -ms-transform: translateY(0px);
         -o-transform: translateY(0px);
            transform: translateY(0px);
}

.wm-campus-megamenu .wm-campus-location-list li.wm-campus-menu-active a,
.wm-campus-megamenu .wm-campus-location-list li a:focus,
.wm-learning-megamenu .wm-learning-menu-list li.wm-learning-menu-active a,
.wm-learning-megamenu .wm-learning-menu-list li a:focus {
    color: #ea9c0b;
}

.wm-campus-mega-text,
.wm-campus-thumbnail,
.wm-learning-mega-text,
.wm-learning-thumbnail {
    -webkit-transition: opacity 0.18s ease;
       -moz-transition: opacity 0.18s ease;
        -ms-transition: opacity 0.18s ease;
         -o-transition: opacity 0.18s ease;
            transition: opacity 0.18s ease;
}

.wm-campus-content-fading,
.wm-learning-content-fading {
    opacity: 0.35;
}

.wm-campus-thumbnail img,
.wm-learning-thumbnail img {
    height: 190px;
    object-fit: cover;
}

.wm-language ul li:before,
.wm-stripinfo li:before,
.wm-adminuser-section li a.wm-register-link:before {
    border-right-color: #ffffff;
}

.wm-language ul li a {
    color: #e79800;
}

.wm-language ul li:hover a {
    color: #ffffff;
}

.wm-stripinfo li i {
    color: #e79800;
}

.wm-adminuser-section li .wm-welcome-user {
    color: #e79800;
    font-size: 12px;
    text-transform: uppercase;
}

.wm-tabs-listing .nav-tabs > li > a {
    color: #ffffff;
}

@media (max-width: 767px) {
    .wm-tabs-listing .nav-tabs {
        display: flex !important;
        flex-wrap: wrap !important;
        width: 100% !important;
    }

    .wm-tabs-listing .nav-tabs > li {
        float: none !important;
        width: 50% !important;
        margin: 0 0 5px 0 !important;
        box-sizing: border-box;
        text-align: center;
    }

    .wm-tabs-listing .nav-tabs > li > a {
        margin-right: 0;
    }
}

/*
09. HOMEPAGE BANNER SLIDER OVERRIDE
*/
body.dwu-homepage #wm-header {
    position: relative;
    z-index: 20;
}

body.dwu-homepage .wm-main-banner {
    --wm-banner-panel-height: clamp(230px, 15vw, 285px);
    --wm-banner-pagination-height: 78px;
    /* Number of stacked slide panels the nav track shows at once (matches the
       JS slidesToShow for .wm-banner-one-nav); 1 below the 480px breakpoint. */
    --wm-banner-nav-slides: 2;
    clear: both;
    position: relative;
    z-index: 1;
    overflow: visible;
}

body.dwu-homepage .wm-main-banner .wm-banner-one {
    display: flex !important;
    align-items: stretch;
    width: 100%;
    overflow: visible;
    background-color: #ffffff;
    /* Reserve space for the pagination bar, which is positioned absolutely
       against .wm-main-banner below, so it never overlaps slide content. */
    margin-bottom: var(--wm-banner-pagination-height);
}

body.dwu-homepage .wm-main-banner .wm-banner-one-for,
body.dwu-homepage .wm-main-banner .wm-banner-one-nav {
    float: none !important;
    min-height: calc(var(--wm-banner-panel-height) * var(--wm-banner-nav-slides));
}

body.dwu-homepage .wm-main-banner .wm-banner-one-for {
    width: 58% !important;
    position: relative;
    z-index: 1;
}

body.dwu-homepage .wm-main-banner .wm-banner-one-nav {
    width: 42% !important;
    position: relative;
    z-index: 4;
    overflow: visible;
    background-color: #ffffff;
}

body.dwu-homepage .wm-main-banner .wm-banner-one-for .slick-list,
body.dwu-homepage .wm-main-banner .wm-banner-one-for .slick-track,
body.dwu-homepage .wm-main-banner .wm-banner-one-for .slick-slide,
body.dwu-homepage .wm-main-banner .wm-banner-one-for-layer {
    height: 100% !important;
}

body.dwu-homepage .wm-main-banner .wm-banner-one-for-layer img {
    height: 100% !important;
    min-height: calc(var(--wm-banner-panel-height) * var(--wm-banner-nav-slides));
    object-fit: cover;
    object-position: center;
}

body.dwu-homepage .wm-main-banner .wm-banner-one-nav .slick-list {
    height: calc(var(--wm-banner-panel-height) * var(--wm-banner-nav-slides)) !important;
    overflow: hidden;
}

body.dwu-homepage .wm-main-banner .wm-banner-one-nav .slick-slide {
    height: var(--wm-banner-panel-height) !important;
}

body.dwu-homepage .wm-main-banner .wm-banner-one-nav-layer {
    box-sizing: border-box;
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    height: var(--wm-banner-panel-height) !important;
    min-height: var(--wm-banner-panel-height);
    padding: clamp(26px, 3.2vw, 48px) clamp(28px, 4vw, 62px) !important;
    position: relative;
    z-index: 2;
    overflow: hidden;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

body.dwu-homepage .wm-main-banner .wm-banner-one-nav-layer h1 {
    margin-bottom: 10px;
    font-size: clamp(24px, 2vw, 34px);
    line-height: 1.15;
}

body.dwu-homepage .wm-main-banner .wm-banner-one-nav-layer p {
    width: 100% !important;
    max-width: 520px;
    margin-bottom: 22px;
    line-height: 1.65;
}

body.dwu-homepage .wm-main-banner .wm-banner-one-nav-layer .wm-banner-btn {
    align-self: flex-start;
    width: auto !important;
    max-width: 100%;
    white-space: normal;
}

body.dwu-homepage .wm-main-banner .wm-banner-one .slick-arrow {
    width: 42px;
    height: 42px;
    line-height: 42px;
    text-align: center;
    border-radius: 50%;
    background-color: rgba(7, 100, 21, 0.92);
    box-shadow: 0px 8px 18px rgba(0, 0, 0, 0.18);
    z-index: 8;
}

body.dwu-homepage .wm-main-banner .wm-banner-one .slick-arrow.slick-arrow-left {
    right: 24px;
    left: auto;
    bottom: 76px;
}

body.dwu-homepage .wm-main-banner .wm-banner-one .slick-arrow.slick-arrow-right {
    right: 24px;
    left: auto;
    bottom: 24px;
}

body.dwu-homepage .wm-main-banner .wm-banner-one-nav .slick-arrow {
    display: none !important;
}

body.dwu-homepage .wm-main-banner .wm-banner-pagination {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    gap: 18px;
    min-height: var(--wm-banner-pagination-height);
    padding: 18px clamp(28px, 4vw, 62px);
    background: linear-gradient(180deg, #ffffff 0%, #f7faf7 100%);
    border-top: 1px solid rgba(7, 100, 21, 0.1);
    border-radius: 0 0 14px 14px;
    box-shadow: 0px -12px 28px rgba(0, 0, 0, 0.04);
    /* Anchored to .wm-main-banner (its nearest positioned ancestor), not to
       .wm-banner-one-nav, so slide transforms/height changes never move it. */
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 6;
}

body.dwu-homepage .wm-main-banner .wm-banner-play-toggle {
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid rgba(7, 100, 21, 0.18);
    border-radius: 50%;
    color: #ffffff;
    background-color: #076415;
    line-height: 40px;
    text-align: center;
    box-shadow: 0px 10px 22px rgba(7, 100, 21, 0.18);
    transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

body.dwu-homepage .wm-main-banner .wm-banner-play-toggle:hover,
body.dwu-homepage .wm-main-banner .wm-banner-play-toggle:focus {
    color: #ffffff;
    background-color: #ea9c0b;
    border-color: #ea9c0b;
    transform: translate3d(0, -1px, 0);
    outline: none;
}

body.dwu-homepage .wm-main-banner .wm-banner-play-toggle.is-paused {
    background-color: #ea9c0b;
    border-color: #ea9c0b;
}

body.dwu-homepage .wm-main-banner .wm-banner-pagination-track {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1 1 auto;
    min-width: 0;
    height: 32px;
    position: relative;
}

body.dwu-homepage .wm-main-banner .wm-banner-pagination-line {
    height: 1px;
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    background-color: rgba(7, 100, 21, 0.18);
    transform: translate3d(0, -50%, 0);
    pointer-events: none;
}

body.dwu-homepage .wm-main-banner .wm-banner-pagination-active {
    height: 4px;
    position: absolute;
    top: 50%;
    left: 0;
    border-radius: 999px;
    background: linear-gradient(90deg, #076415 0%, #ea9c0b 100%);
    box-shadow: 0px 4px 12px rgba(7, 100, 21, 0.22);
    transform: translate3d(0, -50%, 0);
    transition: width 0.35s ease, transform 0.55s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: width, transform;
    pointer-events: none;
    z-index: 2;
}

body.dwu-homepage .wm-main-banner .wm-banner-pagination-segment {
    flex: 1 1 0;
    min-width: 22px;
    height: 32px;
    padding: 0;
    border: 0;
    background-color: transparent;
    position: relative;
    cursor: pointer;
    z-index: 3;
}

body.dwu-homepage .wm-main-banner .wm-banner-pagination-segment:before {
    content: '';
    height: 3px;
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    border-radius: 999px;
    background-color: rgba(7, 100, 21, 0.24);
    transform: translate3d(0, -50%, 0) scaleY(1);
    transition: background-color 0.25s ease, transform 0.25s ease;
}

body.dwu-homepage .wm-main-banner .wm-banner-pagination-segment:hover:before,
body.dwu-homepage .wm-main-banner .wm-banner-pagination-segment:focus:before {
    background-color: rgba(234, 156, 11, 0.55);
    transform: translate3d(0, -50%, 0) scaleY(1.45);
}

body.dwu-homepage .wm-main-banner .wm-banner-pagination-segment.is-active:before {
    background-color: transparent;
}

body.dwu-homepage .wm-main-banner .wm-banner-pagination-segment:focus {
    outline: none;
}

body.dwu-homepage .wm-main-banner .wm-banner-pagination-segment:focus-visible,
body.dwu-homepage .wm-main-banner .wm-banner-play-toggle:focus-visible {
    outline: 2px solid #ea9c0b;
    outline-offset: 3px;
}

/* Desktop only (complements the max-width: 991px tablet/mobile breakpoint
   below): anchor the pagination bar under the right-hand text column
   instead of spanning the full hero width. It stays a sibling of
   .wm-banner-one appended to .wm-main-banner (unchanged by JS), so this is
   purely a repositioning via the same absolute-positioning context used at
   narrower widths. The nav column's own min-height grows to reserve room
   for it (replacing the row-wide margin-bottom below), so the bar always
   sits flush under the nav track's fixed slide-panel height regardless of
   how tall the image column stretches. */
@media (min-width: 992px) {
    body.dwu-homepage .wm-main-banner .wm-banner-one {
        margin-bottom: 0;
    }

    body.dwu-homepage .wm-main-banner .wm-banner-one-nav {
        min-height: calc((var(--wm-banner-panel-height) * var(--wm-banner-nav-slides)) + var(--wm-banner-pagination-height));
    }

    body.dwu-homepage .wm-main-banner .wm-banner-pagination {
        left: auto;
        right: 0;
        width: 42%;
        top: calc(var(--wm-banner-panel-height) * var(--wm-banner-nav-slides));
        bottom: auto;
    }
}

@media (max-width: 991px) {
    body.dwu-homepage .wm-main-banner {
        --wm-banner-panel-height: clamp(215px, 28vw, 250px);
        --wm-banner-pagination-height: 74px;
    }

    body.dwu-homepage .wm-main-banner .wm-banner-one {
        flex-direction: column;
    }

    body.dwu-homepage .wm-main-banner .wm-banner-one-for,
    body.dwu-homepage .wm-main-banner .wm-banner-one-nav {
        width: 100% !important;
    }

    body.dwu-homepage .wm-main-banner .wm-banner-one .slick-arrow.slick-arrow-left {
        right: 22px;
        bottom: 72px;
    }

    body.dwu-homepage .wm-main-banner .wm-banner-one .slick-arrow.slick-arrow-right {
        right: 22px;
        bottom: 22px;
    }

    body.dwu-homepage .wm-main-banner .wm-banner-pagination {
        padding-right: 28px;
        padding-left: 28px;
    }
}

/* responsive.css has a legacy, unscoped "Mobile banner height control" rule
   (`.wm-main-banner, .wm-banner-one, .wm-banner-one-for, .wm-banner-one-for-layer
   { height: 350px !important }` at max-width: 767px) predating this flexible
   hero system. It truncates the container height below the real stacked
   content (image + nav text + pagination), which is what let the pagination
   bar drift away from the true bottom edge on phones. Neutralize it for the
   homepage hero only — other pages that still rely on the legacy fixed
   height are untouched. Selector specificity here already exceeds the
   legacy rule's, but !important is kept to make the override explicit.
*/
@media (max-width: 767px) {
    body.dwu-homepage .wm-main-banner,
    body.dwu-homepage .wm-main-banner .wm-banner-one {
        height: auto !important;
        min-height: 0 !important;
    }

    body.dwu-homepage .wm-main-banner .wm-banner-one-for,
    body.dwu-homepage .wm-main-banner .wm-banner-one-for-layer {
        height: auto !important;
        min-height: calc(var(--wm-banner-panel-height) * var(--wm-banner-nav-slides)) !important;
    }

    body.dwu-homepage .wm-main-banner .wm-banner-one-for-layer img {
        height: 100% !important;
        min-height: calc(var(--wm-banner-panel-height) * var(--wm-banner-nav-slides)) !important;
    }
}

@media (max-width: 480px) {
    body.dwu-homepage .wm-main-banner {
        --wm-banner-panel-height: 270px;
        --wm-banner-pagination-height: 70px;
        /* Matches the JS responsive breakpoint where .wm-banner-one-nav drops
           to slidesToShow: 1 (functions.js) — keeps the track height formula
           in sync so the nav column never overflows its container. */
        --wm-banner-nav-slides: 1;
    }

    body.dwu-homepage .wm-main-banner .wm-banner-one-nav-layer {
        padding: 24px 24px 28px 24px !important;
    }

    body.dwu-homepage .wm-main-banner .wm-banner-one-nav-layer h1 {
        font-size: 21px;
    }

    body.dwu-homepage .wm-main-banner .wm-banner-one-nav-layer p {
        font-size: 14px;
        line-height: 1.5;
    }

    body.dwu-homepage .wm-main-banner .wm-banner-pagination {
        gap: 12px;
        padding: 14px 20px;
    }

    body.dwu-homepage .wm-main-banner .wm-banner-play-toggle {
        flex-basis: 38px;
        width: 38px;
        height: 38px;
        line-height: 36px;
    }

    body.dwu-homepage .wm-main-banner .wm-banner-pagination-track {
        gap: 8px;
    }

    body.dwu-homepage .wm-main-banner .wm-banner-pagination-segment {
        min-width: 16px;
    }
}

/* ==================================
          STUDY AT DWU PAGE
===================================== */
section.study-intro {
    padding: 10px 0 50px;
    background: #fff;
}

section.study-intro .study-intro-row,
.study-section .study-feature-row,
.student-stories .student-story-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}

.study-feature-row {
    margin-bottom: 50px !important;
}

section.study-intro .intro-left {
    padding-right: 50px;
}

.study-eyebrow {
    display: inline-block;
    margin-bottom: 12px;
    color: #003366;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1.7px;
    line-height: 1;
    text-transform: uppercase;
}

section.study-intro .intro-left h2 {
    font-family: 'Ubuntu', sans-serif;
    font-size: 42px;
    color: #076415;
    margin-bottom: 20px;
    font-weight: 700;
    line-height: 1.18;
}

section.study-intro .intro-left p {
    font-size: 16px;
    line-height: 1.8;
    color: #444;
    margin-bottom: 15px;
}

.study-intro-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-top: 32px;
}

.study-intro-stats div {
    min-height: 112px;
    padding: 20px 18px;
    background: #f5f7fa;
    border-top: 4px solid #009959;
    box-shadow: 0 10px 28px rgba(0,0,0,0.06);
}

.study-intro-stats strong {
    display: block;
    color: #076415;
    font-family: 'Ubuntu', sans-serif;
    font-size: 34px;
    line-height: 1;
    margin-bottom: 9px;
}

.study-intro-stats span {
    display: block;
    color: #555;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.35;
    text-transform: uppercase;
}

section.study-intro .intro-right-col {
    padding-left: 50px;
}

.study-quick-panel {
    padding: 36px;
    background: #ffffff;
    border: 1px solid #e8edf2;
    border-top: 3px solid #e79800;
    box-shadow: 0 18px 45px rgba(0,0,0,0.09);
}

/* Framed quick-panel variant - light-grey background with short-dashed
   border, matching the wm-promo-box treatment. Shared by student-services.html
   and how-to-apply.html. */
.study-quick-panel.panel-framed {
    background: #f4f3f3;
    border: 2px dashed #dedede;
    border-top: 3px solid #e79800;
    border-radius: 10px;
}

section.study-intro h3.intro-right {
    font-size: 22px;
    color: #076415;
    font-weight: 700;
    margin-bottom: 16px;
}

/* Alumni "give back" panel only ever renders 2 stat cards, but
   .study-intro-stats defaults to a 3-column grid (built for the other
   panel-framed pages), leaving a dangling empty column. The action
   buttons below also rely on Bootstrap 5 utilities (d-grid/gap-2/mt-4)
   that this project's trimmed bootstrap.css doesn't define, so they were
   rendering as unspaced inline-block links instead of a stacked block. */
.alumni-page .study-intro-stats {
    grid-template-columns: repeat(2, 1fr);
}

.alumni-page .study-quick-panel .d-grid {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 28px;
}

.alumni-page .study-quick-panel .d-grid .wm-banner-btn {
    display: block;
    width: 100%;
    text-align: center;
}

section.study-intro .intro-right-link {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 20px;
    margin-bottom: 12px;
    background: #f8f9fa;
    border-radius: none;
    border-left: 2.5px solid #076415;
    color: #076415;
    font-weight: 400;
    transition: all 0.3s ease;
}

section.study-intro .intro-right-link:hover {
    background: #e8f5ee;
    border-left-color: #e79800;
    color: #e79800;
    transform: translateX(4px);
}

section.study-intro .intro-right-link:last-child {
    margin-bottom: 0;
}

section.study-intro .intro-right-link i.ql-icon {
    font-size: 22px;
    color: #009959;
    width: 28px;
    text-align: center;
}

section.study-intro .intro-right-link i.ql-arrow {
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-left: auto;
    color: #e79800;
    position: relative;
}

section.study-intro .intro-right-link i.ql-arrow:before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    width: 8px;
    height: 8px;
    border-top: 1px solid currentColor;
    border-right: 1px solid currentColor;
    transform: translateY(-50%) rotate(45deg);
}

.study-col-left {
    padding-right: 50px;
}

.study-col-right {
    padding-left: 50px;
}

.study-section-img {
    width: 100%;
    height: 680px;
    object-fit: cover;
}

.study-section {
    padding: 60px 0;
}

.study-section.bg-light {
    background: #f5f7fa;
}

/*
GRADUATION FORM - FIX LABEL POSITIONING
*/
.wm-form-wrap .wm-form-listing > li.wm-label-sec {
    width: 30% !important;
    float: left;
}

.wm-form-wrap .wm-form-listing > li:not(.wm-label-sec):not(.wm-clearfix):not(.wm-radio-container):not(.wm-textarea-container) {
    width: 70% !important;
    float: left;
}

.wm-form-wrap .wm-form-listing > li.wm-clearfix {
    clear: both;
    width: 100%;
}

.wm-form-wrap .wm-form-listing > li:not(.wm-label-sec):not(.wm-clearfix):not(.wm-radio-container):not(.wm-textarea-container) textarea {
    width: 100% !important;
}

/* Radio button label and container should be on same line as label/input pattern */
.wm-form-wrap .wm-form-listing > li.wm-radio-label {
    width: 30% !important;
    float: left;
}

.wm-form-wrap .wm-form-listing > li.wm-radio-container {
    width: 70% !important;
    float: left;
}

/* Textarea container should be 70% width to match label */
.wm-form-wrap .wm-form-listing > li.wm-textarea-container {
    width: 70% !important;
    float: left;
}

.wm-form-wrap .wm-form-listing > li.wm-textarea-container textarea {
    width: 100% !important;
}

/* Postal address row - label and textarea side by side */
.wm-form-wrap .wm-form-listing > li.wm-postal-address-row {
    width: 100%;
    clear: both;
    display: flex;
    align-items: flex-start;
}

.wm-form-wrap .wm-form-listing > li.wm-postal-address-row > .wm-label-sec {
    width: 30%;
    float: none;
    flex-shrink: 0;
}

.wm-form-wrap .wm-form-listing > li.wm-postal-address-row > .wm-textarea-container {
    width: 70%;
    float: none;
    flex-shrink: 0;
}

.wm-form-wrap .wm-form-listing > li.wm-postal-address-row > .wm-textarea-container textarea {
    width: 100%;
}

.study-section .section-header,
.question-section .section-header,
.student-stories .section-header {
    margin-bottom: 40px;
}

.study-section .section-header h2,
.question-section .section-header h2,
.student-stories .section-header h2 {
    font-family: 'Ubuntu', sans-serif;
    font-size: 36px;
    color: #076415;
    font-weight: 700;
    margin-bottom: 10px;
    line-height: 1.2;
}

.study-section .section-header p,
.question-section .section-header p,
.student-stories .section-header p {
    font-size: 16px;
    color: #555;
    max-width: 700px;
}

.study-section .section-header.text-center p,
.question-section .section-header.text-center p,
.student-stories .section-header.text-center p {
    margin-left: auto;
    margin-right: auto;
}

.begin-future-list .future-item {
    margin-bottom: 30px;
    padding-bottom: 20px;
    border-bottom: 1px solid #e0e0e0;
}

.begin-future-list .future-item:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.begin-future-list .future-item h3 {
    color: #076415;
    font-size: 20px;
    font-weight: 700;
    margin-bottom: 10px;
}

.begin-future-list .future-item p {
    color: #555;
    font-size: 15px;
    line-height: 1.75;
    margin-bottom: 10px;
}

.future-item-icon {
    color: #e79800;
    margin-right: 10px;
    font-size: 20px;
}

.future-item-link {
    color: #e79800;
    text-decoration: none;
    font-weight: 300;
    transition: color 0.3s;
}

.future-item-link:hover {
    color: #e79800;
    text-decoration: underline;
}

.future-item-link .fa-long-arrow-right {
    display: inline-block;
    width: 18px;
    height: 8px;
    margin-left: 5px;
    position: relative;
    vertical-align: middle;
}

.future-item-link .fa-long-arrow-right:before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    width: 17px;
    height: 1px;
    background: currentColor;
    transform: translateY(-50%);
}

.future-item-link .fa-long-arrow-right:after {
    content: '';
    position: absolute;
    top: 50%;
    right: 0;
    width: 6px;
    height: 6px;
    border-top: 1px solid currentColor;
    border-right: 1px solid currentColor;
    transform: translateY(-50%) rotate(45deg);
}

/* ================================
   Admission Page - Search Section
================================ */

.admission-search-section {
    margin-top: 40px;
}

.admission-search-container {
    padding-top: 48px;
    padding-bottom: 48px;
}

.admission-results-box {
    border-left: 1px solid #e0e0e0;
}

.admission-results-title {
    color: #076415;
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 15px;
}

.admission-results-table {
    margin-bottom: 0;
    background-color: #ffffff;
}

.admission-search-alert {
    margin-bottom: 0;
}

@media (max-width: 991px) {
    .admission-results-box {
        border-left: none;
        border-top: 1px solid #e0e0e0;
        margin-top: 25px;
        padding-top: 25px;
    }
}

.study-image-card {
    position: relative;
    overflow: hidden;
    margin: 0;
    background: #003366;
    box-shadow: 0 20px 45px rgba(0,0,0,0.16);
}

.study-image-card img {
    display: block;
    transition: transform 0.45s ease;
}

.study-image-card:hover img {
    transform: scale(1.04);
}

.study-image-card figcaption {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    padding: 26px 32px;
    background: linear-gradient(180deg, rgba(0,51,102,0), rgba(0,51,102,0.92));
    color: #fff;
    z-index: 2;
}

.study-image-card-blue figcaption {
    background: linear-gradient(180deg, rgba(0,153,89,0), rgba(0,80,55,0.94));
}

.study-image-card figcaption strong,
.study-image-card figcaption span {
    display: block;
}

.study-image-card figcaption strong {
    font-family: 'Ubuntu', sans-serif;
    font-size: 24px;
    margin-bottom: 6px;
}

.study-image-card figcaption span {
    color: rgba(255,255,255,0.9);
    font-size: 14px;
    line-height: 1.55;
}

.student-stories {
    padding: 70px 0;
    background: #fff;
    color: #333;
}

.student-stories .section-header {
    text-align: center;
}

.student-stories .section-header h2 {
    color: #333;
}

.student-stories .section-header p {
    color: #666;
}

.video-wrapper {
    position: relative;
    padding-bottom: 40%;
    height: 0;
    overflow: hidden;
    border-radius: 10px;
    box-shadow: 0 20px 45px rgba(0,0,0,0.14);
}

.video-wrapper iframe,
.video-wrapper video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
    object-fit: cover;
}

.video-bx {
    position: relative;
    padding-bottom: 40%;
    height: 0;
    overflow: hidden;
    border-radius: 10px;
    box-shadow: 0 20px 45px rgba(0,0,0,0.14);
}

.video-bx img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* The campus tour video sits in a col-md-6 (narrower than the full-width
   student-stories section .video-wrapper was designed for), so it needs a
   taller aspect ratio to avoid looking squashed. */
.wm-studentslove-full .video-wrapper,
.wm-studentslove-full .video-bx {
    padding-bottom: 75%;
}

@media (max-width: 768px) {
    .wm-studentslove-full .video-wrapper,
    .wm-studentslove-full .video-bx {
        padding-bottom: 56.25%;
    }
}

.story-note {
    height: 100%;
    min-height: 320px;
    padding: 36px 32px;
    background: #003366;
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.story-note > i {
    color: #FFD700;
    font-size: 34px;
    margin-bottom: 20px;
}

.story-note h3 {
    color: #fff;
    font-family: 'Ubuntu', sans-serif;
    font-size: 26px;
    line-height: 1.25;
    margin-bottom: 14px;
}

.story-note p {
    color: rgba(255,255,255,0.86);
    font-size: 15px;
    line-height: 1.75;
}

.story-note a,
.study-info-card a,
.study-related-card a {
    color: #e79800;
    font-weight: 300;
}

.story-note a {
    color: #FFD700;
}

.study-card-row,
.study-related-row {
    display: flex;
    flex-wrap: wrap;
}

.study-card-row > [class*="col-"],
.study-related-row > [class*="col-"] {
    margin-bottom: 30px;
}

.study-info-card {
    height: 100%;
    min-height: 268px;
    padding: 34px 30px;
    background: #fff;
    border: 1px solid #e7ebef;
    border-top: 4px solid #009959;
    box-shadow: 0 12px 30px rgba(0,0,0,0.06);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.study-info-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 40px rgba(0,0,0,0.1);
}

.study-info-card > i {
    color: #009959;
    font-size: 40px;
    margin-bottom: 18px;
}

.study-info-card h3 {
    color: #003366;
    font-size: 21px;
    font-weight: 700;
    margin-bottom: 12px;
}

.study-info-card p {
    color: #555;
    font-size: 14px;
    line-height: 1.7;
    margin-bottom: 16px;
}

.course-search-cta {
    padding: 60px 0;
    background: #009959;
    text-align: center;
    color: #fff;
}

.course-search-cta .study-eyebrow {
    color: #FFD700;
}

.course-search-cta h2 {
    font-family: 'Ubuntu', sans-serif;
    font-size: 30px;
    font-weight: 700;
    margin-bottom: 15px;
    color: #fff;
}

.course-search-cta p {
    font-size: 17px;
    margin: 0 auto 25px;
    color: rgba(255,255,255,0.9);
    max-width: 760px;
}

.course-search-cta .cta-btn {
    display: inline-block;
    padding: 14px 40px;
    background: #fff;
    color: #009959;
    font-weight: 600;
    border-radius: 5px;
    text-decoration: none;
    transition: all 0.3s;
}

.course-search-cta .cta-btn:hover {
    background: #003366;
    color: #fff;
}

.study-related-card {
    height: 100%;
    background: #fff;
    border: 1px solid #e7ebef;
    box-shadow: 0 12px 30px rgba(0,0,0,0.06);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.study-related-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 40px rgba(0,0,0,0.1);
}

.study-related-card img {
    display: block;
    width: 100%;
    height: 170px;
    object-fit: cover;
}

.study-related-card div {
    padding: 22px 22px 24px;
}

.study-related-card h3 {
    color: #076415;
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 12px;
}

.question-section {
    padding: 60px 0;
    background: #fff;
}

.question-section .section-header h2 {
    color: #009959;
}

.question-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    margin-top: 40px;
}

.question-card {
    background: #fff;
    border-radius: 10px;
    padding: 35px 28px;
    border: 1px solid #e8e8e8;
    box-shadow: 0 2px 15px rgba(0,0,0,0.06);
    transition: transform 0.3s;
}

.question-card:hover {
    transform: translateY(-3px);
}

.question-card .q-icon {
    font-size: 40px;
    color: #009959;
    margin-bottom: 15px;
}

.question-card h3 {
    font-size: 20px;
    color: #009959;
    margin-bottom: 10px;
    font-weight: 700;
}

.question-card p {
    font-size: 14px;
    color: #666;
    line-height: 1.6;
    margin-bottom: 18px;
}

.question-card a {
    display: inline-block;
    padding: 10px 25px;
    background: #009959;
    color: #fff;
    border-radius: 5px;
    text-decoration: none;
    font-size: 14px;
    transition: background 0.3s;
}

.question-card a:hover {
    background: #007a47;
}

@media (max-width: 991px) {
    section.study-intro .study-intro-row,
    .study-section .study-feature-row,
    .student-stories .student-story-row,
    .study-card-row,
    .study-related-row {
        display: block;
    }

    section.study-intro .intro-left,
    section.study-intro .intro-right-col,
    .study-col-left,
    .study-col-right {
        padding-left: 15px;
        padding-right: 15px;
    }

    section.study-intro .intro-left {
        margin-bottom: 34px;
    }

    .study-section .section-header h2,
    .question-section .section-header h2,
    .student-stories .section-header h2 {
        font-size: 26px;
    }

    section.study-intro .intro-left h2 {
        font-size: 34px;
    }

    .study-section-img {
        height: 420px;
    }

    .story-note {
        min-height: 0;
        margin-top: 30px;
    }

    .question-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 767px) {
    section.study-intro {
        padding: 45px 0 40px;
    }

    .study-section,
    .student-stories,
    .course-search-cta,
    .question-section {
        padding: 45px 0;
    }

    .question-grid,
    .study-intro-stats {
        grid-template-columns: 1fr;
    }

    section.study-intro .intro-left h2 {
        font-size: 28px;
    }

    .study-quick-panel,
    .story-note,
    .study-info-card,
    .question-card {
        padding: 28px 24px;
    }

    .study-section-img {
        height: 340px;
    }

    .video-wrapper {
        padding-bottom: 56.25%;
    }
}


/* =============================
NON SCHOOL LEAVERS CSS
=============================== */
/* ================================
   Hero Slider Section
================================ */

#wm-header {
  position: relative;
  z-index: 30;
}

#wm-header .wm-megamenu,
#wm-header .wm-dropdown-menu {
  z-index: 9999;
}

.edubin-slider-section-03 {
  clear: both;
  position: relative;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  padding: 0;
  z-index: 1;
  margin-top: 0;
  width: 100%;
}

.edubin-slider-section-03 .slider-cont {
  position: relative;
  z-index: 5;
  background-color: rgba(0, 0, 0, 0.4);
  padding: 30px 45px;
  text-align: left;
  max-width: 1400px;
  margin: 0;
}

.edubin-slider-section-03 .slider-cont .title {
  font-size: 42px;
  color: #ffffff;
  padding-bottom: 15px;
  font-weight: 700;
  line-height: 1.15;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  letter-spacing: -0.5px;
}

.edubin-slider-section-03 .slider-cont span {
  font-size: 16px;
  color: #ffffff;
  display: block;
  margin-bottom: 30px;
  font-weight: 400;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  line-height: 1.5;
}

.edubin-slider-section-03 .slider-btn {
  display: inline-block;
  padding: 12px 30px;
  background-color: #EFBB20;
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  text-decoration: none;
  border-radius: 4px;
  transition: all 0.3s ease;
  margin-top: 10px;
}

.edubin-slider-section-03 .slider-btn:hover {
  background-color: #D4A017;
  color: #ffffff;
  transform: translateY(-2px);
}


/* ================================
   Hero Slider Container
================================ */

.hero-slider-active {
  position: relative;
  overflow: hidden !important;
  width: 100%;
  max-width: none;
  margin: 0;
}

.hero-slider-active .swiper-wrapper {
  display: flex;
  transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: transform;
}

.hero-slider-active .swiper-slide {
  flex: 0 0 100%;
  max-width: 100%;
}

.hero-slider-active .swiper-pagination-bullet {
  border: 0;
  cursor: pointer;
  display: block;
  padding: 0;
}

.hero-slider-active .swiper-slide {
  clip-path: polygon(
    0 0,
    100% 0,
    100% 100%,
    60% 100%,
    55% calc(100% - 50px),
    0 calc(100% - 50px)
  );
  overflow: visible;
}

.hero-slide-item {
  position: relative;
  background-repeat: no-repeat !important;
  background-position: center center !important;
  background-size: cover !important;
  min-height: 400px;
  max-height: 638px;
  height: 638px;
  display: flex;
  align-items: center;
  overflow: hidden;
}

.hero-slide-item::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 0%);
  z-index: 1;
}

.hero-slide-item .container,
.hero-slide-item .row,
.hero-slide-item .slider-cont {
  position: relative;
  z-index: 2;
}


/* ================================
   Slide Background Images
================================ */

.hero-slide-item {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
}

.slide-1 {
  background-image: url(../extra-images/new_slider-1.jpg);
}

.slide-2 {
  background-image: url(../extra-images/new_slider-2.jpg);
}

.slide-3 {
  background-image: url(../extra-images/banner-campuses-1.jpg);
}

.slide-4 {
  background-image: url(../extra-images/banner-campuses-3.jpg);
}


/* ================================
   Pagination Bars + Pause Button
================================ */

.slider-controls {
  position: absolute;
  bottom: -5px;
  left: 0;
  /* Stop at the slide's diagonal clip-path cut (0-55% flat, 55-60% diagonal)
     instead of the full container width, so the bar fills the cut-out
     notch rather than floating short of it or overlapping the photo. */
  right: 45%;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  z-index: 100;
  padding: 12px 30px;
  padding-left: 50px;
  box-sizing: border-box;
}

.slide-counter {
  font-size: 14px;
  font-weight: 600;
  color: #333;
  min-width: 20px;
  text-align: center;
}

.hero-slider-active .swiper-pagination {
  position: relative;
  bottom: auto;
  left: auto;
  right: auto;
  text-align: center;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  background: rgba(0, 0, 0, 0.3);
  padding: 0 15px;
  border-radius: 2px;
  height: 2px;
  /* Stretch to fill the space .slider-controls now reserves, instead of
     sizing to the bullets' own fixed width. */
  flex: 1 1 auto;
  min-width: 0;
}

.hero-slider-active .swiper-pagination-bullet {
  /* Share the stretched pagination width evenly instead of a fixed 80px,
     so the bar reaches the end of .slider-controls (the clip-path cut). */
  flex: 1 1 0;
  width: auto;
  height: 2px;
  background: rgba(255, 255, 255, 0.5);
  opacity: 1;
  margin: 0;
  transition: all 0.3s ease;
  border-radius: 2px;
}

.hero-slider-active .swiper-pagination-bullet-active {
  background: #389940;
  height: 1.5px;
}

.pause-btn {
  width: 32px;
  height: 32px;
  background: transparent;
  border: 2px solid #555555;
  color: #555555;
  cursor: pointer;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  border-radius: 4px;
  flex-shrink: 0;
}

.pause-btn:hover {
  background: transparent;
  color: #ffffff;
}

.pause-btn i {
  pointer-events: none;
}


/* ================================
   Desktop / Tablet Responsive
================================ */

@media only screen and (max-width: 1199px) {
  .edubin-slider-section-03 .slider-cont {
    padding: 70px 60px 80px;
  }

  .edubin-slider-section-03 .slider-cont .title {
    font-size: 40px;
  }
}

@media only screen and (max-width: 991px) {
  .edubin-slider-section-03 {
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
  }

  .hero-slider-active {
    overflow: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .hero-slider-active .swiper-wrapper,
  .hero-slider-active .swiper-slide {
    clip-path: none !important;
    overflow: hidden !important;
  }

  .hero-slide-item {
    min-height: 50vh !important;
    background-size: cover !important;
    background-position: center top !important;
    background-repeat: no-repeat !important;
    display: flex !important;
    align-items: flex-end !important;
    padding-bottom: 40px !important;
    overflow: hidden !important;
  }

  .slider-cont {
    text-align: left !important;
    padding: 25px 30px !important;
  }

  .slider-cont .title {
    font-size: 28px !important;
    line-height: 1.3 !important;
  }

  .slider-cont span {
    font-size: 14px !important;
    line-height: 1.5 !important;
  }

  .slider-statistics {
    margin-top: 15px !important;
    padding: 0 5px !important;
  }

  .slider-statistics .single-counter span::before {
    display: none !important;
  }
}


/* ================================
   Tablet Hero Slider Fix
   767px - 991px
================================ */

@media only screen and (min-width: 767px) and (max-width: 991px) {
  .edubin-slider-section-03 {
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    position: relative !important;
  }

  .hero-slider-active {
    overflow: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .hero-slider-active .swiper-wrapper {
    overflow: hidden !important;
  }

  .hero-slider-active .swiper-slide {
    overflow: hidden !important;
  }

  .hero-slide-item {
    min-height: 55vh !important;
    height: 55vh !important;
    display: flex !important;
    align-items: flex-end !important;
    justify-content: flex-start !important;
    background-size: cover !important;
    background-position: center top !important;
    background-repeat: no-repeat !important;
    overflow: hidden !important;
    padding: 0 0 40px 0 !important;
  }

  .hero-slide-item::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background: transparent !important;
    z-index: 1 !important;
  }

  .hero-slide-item .container,
  .hero-slide-item .row {
    position: relative !important;
    z-index: 2 !important;
    height: auto !important;
    width: 100% !important;
  }

  .edubin-slider-section-03 .slider-cont {
    position: relative !important;
    z-index: 3 !important;
    text-align: left !important;
    padding: 25px 30px !important;
    background-color: rgba(7, 41, 77, 0.55) !important;
    border-radius: 8px !important;
    max-width: 85% !important;
  }

  .edubin-slider-section-03 .slider-cont .title {
    font-size: 28px !important;
    line-height: 1.3 !important;
    margin: 0 0 8px 0 !important;
    padding: 0 !important;
  }

  .edubin-slider-section-03 .slider-cont span {
    font-size: 14px !important;
    line-height: 1.5 !important;
    display: block !important;
    margin-bottom: 12px !important;
  }

  .edubin-slider-section-03 .slider-btn {
    padding: 10px 24px !important;
    font-size: 14px !important;
    margin-top: 8px !important;
  }

  .hero-slide-item .col-lg-8 {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }

  .slider-statistics .single-counter span::before {
    display: none !important;
  }

  .slider-statistics .single-counter .stat-number {
    font-size: 20px !important;
    font-weight: 700 !important;
    display: inline-block !important;
    border-bottom: 2px solid #EFBB20 !important;
    padding-bottom: 4px !important;
    margin-bottom: 4px !important;
  }

  .slider-statistics {
    margin-top: 15px !important;
    padding: 0 !important;
    width: 100% !important;
  }

  .slider-statistics .row {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 10px !important;
    margin: 0 !important;
    width: 100% !important;
  }

  .slider-statistics .single-counter {
    padding: 10px 8px !important;
    margin: 0 !important;
    text-align: center !important;
    background-color: rgba(255, 255, 255, 0.1) !important;
    border-radius: 4px !important;
  }

  .slider-statistics p {
    font-size: 11px !important;
    margin: 4px 0 0 0 !important;
    line-height: 1.3 !important;
  }
}


/* ================================
   Mobile Hero Slider
================================ */

@media only screen and (max-width: 767px) {
  .slider-controls {
    position: static !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    margin: 5px 0 0 0 !important;
    justify-content: flex-start !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    width: 100% !important;
    gap: 4px !important;
    box-sizing: border-box !important;
  }

  .slider-controls .slide-counter,
  .slider-controls .swiper-pagination,
  .slider-controls .pause-btn {
    margin: 0 4px 0 0 !important;
  }

  .slider-controls .slide-counter {
    font-size: 1rem !important;
    min-width: 36px !important;
  }

  .slider-controls .pause-btn {
    font-size: 1.1rem !important;
    padding: 4px 8px !important;
  }

  .slider-controls .swiper-pagination {
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }

  .edubin-slider-section-03 {
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
  }

  .hero-slider-active .swiper-wrapper,
  .hero-slider-active .swiper-slide {
    clip-path: none !important;
  }

  .swiper-slide,
  .slider-item,
  .hero-slide-item {
    min-height: 65vh !important;
    height: 65vh !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
  }

  .hero-slide-item {
    display: flex !important;
    align-items: flex-end !important;
    padding: 0 0 40px 0 !important;
  }

  .edubin-slider-section-03 .slider-cont {
    padding: 20px 16px;
  }

  .edubin-slider-section-03 .slider-cont .title {
    font-size: 22px;
  }

  .edubin-slider-section-03 .slider-cont span {
    font-size: 20px;
  }
}

@media only screen and (max-width: 576px) {
  .hero-slide-item .container {
    position: relative !important;
    z-index: 2 !important;
    height: auto !important;
    width: 100% !important;
  }

  .hero-slide-item .row {
    position: relative !important;
    z-index: 2 !important;
    height: auto !important;
    margin: 0 !important;
    width: 100% !important;
  }

  .edubin-slider-section-03 {
    padding: 0 !important;
    margin: 0 !important;
  }

  .hero-slide-item {
    min-height: 65vh !important;
    height: 65vh !important;
    display: flex !important;
    align-items: flex-end !important;
    justify-content: center !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    overflow: hidden !important;
    padding: 0 0 40px 0 !important;
  }

  .hero-slide-item::before {
    background: transparent !important;
  }

  .edubin-slider-section-03 .slider-cont {
    position: relative !important;
    z-index: 3 !important;
    text-align: center !important;
    padding: 20px 16px !important;
    background-color: rgba(7, 41, 77, 0.6) !important;
    border-radius: 8px !important;
    max-width: 85% !important;
    margin: 0 auto !important;
  }

  .edubin-slider-section-03 .slider-cont .title {
    position: relative !important;
    font-size: 20px !important;
    line-height: 1.3 !important;
    margin: 0 0 6px 0 !important;
    padding: 0 !important;
    background-color: transparent !important;
    text-align: center !important;
  }

  .edubin-slider-section-03 .slider-cont span {
    font-size: 13px !important;
    line-height: 1.5 !important;
    display: block !important;
    margin-bottom: 10px !important;
  }

  .edubin-slider-section-03 .slider-btn {
    padding: 8px 20px !important;
    font-size: 13px !important;
    margin-top: 6px !important;
    border-radius: 4px !important;
    display: inline-block !important;
  }

  .hero-slide-item .col-lg-8 {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    padding: 0 10px !important;
  }

  .slider-statistics .single-counter span::before {
    display: none !important;
  }

  .slider-statistics .single-counter .stat-number {
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    display: inline-block !important;
    border-bottom: 2px solid #EFBB20 !important;
    padding-bottom: 4px !important;
    margin-bottom: 4px !important;
  }

  .slider-statistics {
    margin-top: 12px !important;
    padding: 0 !important;
    width: 100% !important;
    float: none !important;
  }

  .slider-statistics .row {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 6px !important;
    margin: 0 !important;
    width: 100% !important;
    position: relative !important;
  }

  .slider-statistics .single-counter {
    padding: 8px 6px !important;
    margin: 0 !important;
    min-width: 0 !important;
    width: 100% !important;
    text-align: center !important;
    background-color: rgba(255, 255, 255, 0.1) !important;
    border-radius: 4px !important;
  }

  .slider-statistics p {
    font-size: 10px !important;
    margin: 4px 0 0 0 !important;
    line-height: 1.2 !important;
  }

  .hero-slider-active .swiper-pagination {
    position: relative !important;
    bottom: auto !important;
    left: auto !important;
    width: 100% !important;
    margin: 15px 0 0 0 !important;
    padding: 0 15px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 8px !important;
    z-index: 5 !important;
  }

  .hero-slider-active .swiper-pagination-bullet {
    width: 40px !important;
    height: 3px !important;
    background: rgba(255, 255, 255, 0.4) !important;
    border-radius: 2px !important;
    opacity: 1 !important;
    transition: all 0.3s ease !important;
    margin: 0 !important;
  }

  .hero-slider-active .swiper-pagination-bullet-active {
    background: #ffffff !important;
    height: 4px !important;
    transform: scale(1.1) !important;
  }

  .slider-controls {
    position: absolute !important;
    bottom: 20px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    display: flex !important;
    align-items: center !important;
    gap: 15px !important;
    z-index: 10 !important;
    padding: 0 15px !important;
  }

  .slide-counter {
    color: #ffffff !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    background: rgba(0, 0, 0, 0.5) !important;
    padding: 4px 8px !important;
    border-radius: 12px !important;
  }

  .pause-btn {
    background: transparent !important;
    border: 1px solid #555555 !important;
    color: #555555 !important;
    width: 32px !important;
    height: 32px !important;
    border-radius: 4px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
  }

  .pause-btn:hover {
    background: #f5f5f5 !important;
  }
}

/* ==============================
      PROMOBOX AND BANNER
=============================== */
/* Main banner wrapper */
.wm-inner-banner {

    position: relative;

    height: 500px;

    margin-bottom: 180px; /* space for overlapping promo box */

    overflow: visible;

}


/* Background image */
.wm-inner-banner-bg {

    position: absolute;

    top:0;
    left:0;

    width:100%;
    height:100%;

    background-image: url("extra-images/HP-slider2.png");

    background-size: cover;

    background-position:center;

    z-index:1;

}


/* Optional dark effect on image */
.wm-inner-banner-bg::after {

    content:"";

    position:absolute;

    inset:0;

    background:rgba(0,0,0,0.35);

}


/* Promo box positioning */
.wm-banner-promo-wrapper {

    position:absolute;

    bottom:-130px;

    left:0;

    width:100%;

    z-index:5;

}


/* Promo box styling enhancement */
.wm-banner-promo-wrapper .wm-promo-box {

    background:#ffffff;

    box-shadow:0 15px 40px rgba(0,0,0,0.15);

    border-radius:10px;

}


/* Make sure content below stays visible */
.wm-content-section {

    position:relative;

    z-index:1;

}

/* =======================================
   IMPORTANT NOTICE CSS
======================================= */

.important-notice {
    display: flow-root;
    width: 100%;
    background: #f5f5f5;
    border-left: 3px solid #e79800;
    padding: 20px;
    margin: 20px 0;
    box-sizing: border-box;

    color: #444;
    font-size: 16px;
    line-height: 1.7;
}


.important-notice p {
    margin: 10px 0;
    float: none !important;
}


.important-notice strong {
    display: inline;   /* Important */
    font-weight: 700;
    color: #222;
}

/* ===========================
 ACCOMMODATION CAMPUS CSS
============================ */

.row.d-flex {
    display: flex;
    flex-wrap: wrap;
}

.col-lg-4.col-md-6.d-flex {
    display: flex;
}


.accommodation-card {
    width: 100%;
    height: 100%;
    display: flex !important;
    flex-direction: column;
    background: #fff;
}


.accommodation-card figure {
    margin: 0;
}


.accommodation-card img {
    width: 100%;
    height: 230px;
    object-fit: cover;
}


/* Card content area */
.accommodation-card .wm-latest-event-text {
    padding: 20px;
    display: flex !important;
    flex-direction: column;
    flex: 1;
    text-align: left;
}


/* Title */
.accommodation-card .wm-latest-event-text h6 {
    margin-bottom: 15px;
    font-weight: 700 !important;
}


/* Description */
.accommodation-card .wm-latest-event-text p {
    margin-bottom: 20px;
    flex: 1;
}


/* Button */
.accommodation-card .wm-banner-btn {
    margin-top: auto !important;
    align-self: flex-start;
}

.accommodation-row {
    display:flex;
    flex-wrap:wrap;
}

/* =============================
ABOUT US PAGE FACULTY CARDS CSS
============================== */
/* Faculty Cards */
@media (min-width: 992px) {
    .faculty-row {
        display: flex;
        flex-wrap: wrap;
        margin-left: -15px;
        margin-right: -15px;
    }

    .faculty-row .faculty-card {
        width: 25%;
        max-width: 25%;
        flex: 0 0 25%;
        padding-left: 15px;
        padding-right: 15px;
        margin-bottom: 30px;
        display: flex;
    }

    .faculty-row .faculty-card .wm-event {
        height: 100%;
    }
}

/* Tablet */
@media (max-width: 991px) and (min-width: 768px) {
    .faculty-row .faculty-card {
        width: 50%;
        max-width: 50%;
        flex: 0 0 50%;
        margin-bottom: 30px;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .faculty-row .faculty-card {
        width: 100%;
        max-width: 100%;
        flex: 0 0 100%;
        margin-bottom: 30px;
    }
}
/* =============================
FACULTY CARD BUTTON ALIGNMENT
============================== */

.faculty-row .faculty-card,
.faculty-row .faculty-card .wm-event,
.faculty-row .faculty-card ul,
.faculty-row .faculty-card li {
    height: 100%;
}

.faculty-row .faculty-card .wm-latest-event-text {
    display: flex;
    flex-direction: column;
    min-height: 220px; /* adjust depending on your card height */
}

.faculty-row .faculty-card .wm-latest-event-text p {
    flex: 1;
}

.faculty-row .faculty-card .wm-latest-event-text {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.faculty-row .faculty-card .wm-banner-btn {
    width: fit-content !important;
    display: inline-block !important;
    margin-top: auto;
}
/* =====================================
DWU MAIN MENU HOVER EFFECT (INCLUDING HOME)
Override active menu colour
===================================== */

/* Normal state */
.wm-header-one .navbar-nav > li > a {
    color: #121212 !important;
    transition: color 0.3s ease;
}


/* Hover state for ALL menu items including Home */
.wm-header-one .navbar-nav > li:hover > a,
.wm-header-one .navbar-nav > li > a:hover {
    color: #ea9c0b !important;
}


/* Active Home item should not lock the colour */
.wm-header-one .navbar-nav > li.active > a {
    color: #121212 !important;
}


/* Active item hover should still become yellow */
.wm-header-one .navbar-nav > li.active:hover > a,
.wm-header-one .navbar-nav > li.active > a:hover {
    color: #ea9c0b !important;
}


/* Remove underline */
.wm-header-one .navbar-nav > li > a:after {
    display: none !important;
}
.wm-header-one .navbar-nav > li > a {
    text-transform: none !important;
}

/* =====================================
DWU MEGA MENU ITEM HOVER UNDERLINE
===================================== */

/* Positioning for mega menu text links only */
.wm-header-one .wm-megalist li a {
    position: relative;
    display: inline-block;
}


/* Hover text colour */
.wm-header-one .wm-megalist li a:hover {
    color: #ea9c0b !important;
}


/* Yellow underline animation */
.wm-header-one .wm-megalist li a:after {
    content: "";
    position: absolute;
    width: 100%;
    height: 3px;
    bottom: -3px;
    left: 0;
    background-color: #ea9c0b;
    visibility: hidden;
    transform: scaleX(0);
    transition: all .25s ease-out;
}


/* Display underline on hover */
.wm-header-one .wm-megalist li a:hover:after {
    visibility: visible;
    transform: scaleX(1);
}

/* ==========================================
DWU MOBILE MEGA MENU (MEANMENU)
========================================== */
/* =====================================
   MOBILE MENU HAMBURGER
===================================== */
.mobile-menu-toggle {
    display:none;
    width:45px;
    height:40px;
    background:transparent;
    border:none;
    cursor:pointer;
    padding:0;
}

.mobile-menu-toggle span {
    display:block;
    width:30px;
    height:3px;
    margin:6px auto;
    background:#009959;
    border-radius:3px;
    transition:all .3s ease;
}

/* Hamburger Animation */
.mobile-menu-toggle.active span:nth-child(1){
    transform:translateY(9px) rotate(45deg);
}

.mobile-menu-toggle.active span:nth-child(2){
    opacity:0;
}

.mobile-menu-toggle.active span:nth-child(3){
    transform:translateY(-9px) rotate(-45deg);
}

/* =====================================
   OVERLAY
===================================== */
.mobile-menu-overlay {
    position:fixed;
    top:0;
    left:0;
    width:100%;
    height:100%;
    background:rgba(0,0,0,.55);
    opacity:0;
    visibility:hidden;
    transition:opacity .35s ease, visibility .35s ease;
    z-index:9998;
}

.mobile-menu-overlay.active {
    opacity:1;
    visibility:visible;
}

/* =====================================
   MOBILE SIDEBAR
===================================== */
.mobile-sidebar {
    position:fixed;
    top:0;
    right:-390px;
    display:flex;
    flex-direction:column;
    width:360px;
    max-width:50%;
    height:100vh;
    background:#fff;
    z-index:9999;
    transition:right .4s ease;
    overflow:hidden;
    box-shadow:-5px 0 25px rgba(0,0,0,.15);
}
.mobile-sidebar.active {
    right:0;
}

/* =====================================
   MOBILE HEADER
===================================== */
.mobile-sidebar-header {
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex:0 0 auto;
    padding:20px;
    border-bottom:1px solid #eee;
    background:#ffffff;
}
.mobile-sidebar-header img {
    width:150px;
    height:auto;
}

.mobile-sidebar-body {
    display:flex;
    flex:1 1 auto;
    flex-direction:column;
    min-height:0;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
}
.mobile-close {
    width:40px;
    height:40px;
    border:none;
    background:none;
    font-size:35px;
    line-height:1;
    color:#009959;
    cursor:pointer;
}

.mobile-sidebar-image {
    margin-top:auto;
    padding:18px 20px 0;
}

.mobile-sidebar-image img {
    display:block;
    width:100%;
    height:130px;
    object-fit:cover;
    border-radius:6px;
}

.mobile-sidebar-social {
    padding:18px 20px 24px;
    border-top:1px solid #eeeeee;
    text-align:center;
    background:#ffffff;
}

.mobile-sidebar-social span {
    display:block;
    margin-bottom:14px;
    color:#222222;
    font-size:14px;
    font-weight:600;
}

.mobile-social-icons {
    display:flex;
    justify-content:center;
    gap:12px;
}

.mobile-social-icons a {
    display:flex;
    align-items:center;
    justify-content:center;
    width:38px;
    height:38px;
    border:1px solid #e5e5e5;
    border-radius:50%;
    color:#076415;
    font-size:16px;
    text-decoration:none;
    transition:all .3s ease;
}

.mobile-social-icons a:hover {
    border-color:#ea9c0b;
    color:#ea9c0b;
}

/* =====================================
   MOBILE CONTACT CARD
===================================== */
.mobile-menu-contact {
    margin-top:auto;
    padding:20px;
}

.mobile-menu-contact-card {
    background: linear-gradient(65deg, #009959 0%, #076415 100%);
    color:#fff;
    border-radius:8px;
    padding:24px 20px;
    min-height:200px;
    box-shadow:0 4px 14px rgba(0,0,0,.12);
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.mobile-menu-contact-eyebrow {
    display:block;
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:1.5px;
    opacity:.85;
    margin-bottom:6px;
}

.mobile-menu-contact-card h4 {
    color:#fff;
    margin:0 0 10px;
    font-size:18px;
    font-weight: 400;
}

.mobile-menu-contact-card > p {
    font-family: "Inter", "Segoe UI", Arial, sans-serif;
    font-size: 13.5px;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.2px;
}

.mobile-menu-contact-list {
    margin:0;
    padding:0;
    list-style:none;
}

.mobile-menu-contact-list li {
    display:flex;
    align-items:flex-start;
    margin-bottom:10px;
}

.mobile-menu-contact-icon {
    display:flex;
    align-items:center;
    justify-content:center;
    width:35px;
    height:35px;
    background:#e79800;
    border-radius:50%;
    margin-right:14px;
    flex:0 0 34px;
    color:#fff;
    font-size:12px;
}

.mobile-menu-contact-list div span {
    display:block;
    font-size:12px;
    opacity:.75;
    margin-bottom:2px;
}

.mobile-menu-contact-list a,
.mobile-menu-contact-list p {
    color: #fff;
    font-family: "Inter", "Segoe UI", Arial, sans-serif;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0.2px;
    margin: 0;
}

.mobile-menu-contact-list a:hover {
    text-decoration:underline;
}

.mobile-menu-contact-actions {
    margin-top:18px;
}

.mobile-contact-button {
    display:inline-block;
    background:#e79800;
    color:#000;
    padding:10px 18px;
    border-radius:6px;
    text-decoration:none;
    font-size:12px;
    font-weight:500;
    transition:all .3s ease;
}

.mobile-contact-button:hover {
    background:#f0f0f0;
    color:#007a47;
}

.mobile-menu-social {
    padding-top:20px;
    text-align:center;
}

.mobile-menu-social span {
    display:block;
    margin-bottom:12px;
    color:#222;
    font-size:1px;
    font-weight:400;
}

.mobile-menu-social-links {
    display:flex;
    justify-content:center;
    gap:12px;
}

.mobile-menu-social-links a {
    display:flex;
    align-items:center;
    justify-content:center;
    width:38px;
    height:38px;
    border:1px solid #e5e5e5;
    border-radius:50%;
    color:#076415;
    font-size:16px;
    text-decoration:none;
    transition:all .3s ease;
}

.mobile-menu-social-links a:hover {
    border-color:#ea9c0b;
    color:#ea9c0b;
}

/* =====================================
   MOBILE NAVIGATION
===================================== */
.mobile-navigation ul {
    margin:0;
    padding:0;
    list-style:none;
}

.mobile-navigation li {
    list-style:none;
    line-height:normal;
}

.mobile-navigation li::before,
.mobile-navigation li::after {
    display:none;
    content:none;
}

.mobile-navigation > ul > li {
    border-bottom:1px solid #eeeeee;
}

.mobile-navigation a {
    display:flex;
    align-items:center;
    justify-content:space-between;
    position:relative;
    padding:16px 22px;
    font-size:15px;
    font-weight:500;
    color:#222;
    text-decoration:none;
    transition:color .3s ease;
}
.mobile-navigation a:after {
    content:"";
    position:absolute;
    height:3px;
    right:22px;
    bottom:8px;
    left:22px;
    background-color:#ea9c0b;
    visibility:hidden;
    transform:scaleX(0);
    transform-origin:left;
    transition:all .25s ease-out;
}
.mobile-navigation a:hover {
    color:#ea9c0b;
}
.mobile-navigation a:hover:after {
    visibility:visible;
    transform:scaleX(1);
}
.mobile-navigation li ul a:after {
    left:40px;
}
.mobile-navigation li ul li ul a:after {
    left:60px;
}
.mobile-navigation a:hover .arrow {
    border-color:currentColor;
}

/* Sub Menu */
.mobile-navigation li ul {
    display:none;
    background:#f8f8f8;
}
.mobile-navigation li.has-submenu.active > ul {
    display:block;
}
.mobile-navigation li ul a {
    padding-left:40px;
    font-size:14px;
    font-weight:400;
}

/* Nested submenu */
.mobile-navigation li ul li ul a {
    padding-left:60px;
}


/* =====================================
   CHEVRON ARROW
===================================== */
.mobile-navigation .arrow {
    display:inline-block;
    flex:0 0 auto;
    width:9px;
    height:9px;
    border-right:2px solid #333;
    border-bottom:2px solid #333;
    transform:rotate(45deg);
    transform-origin:center;
    transition:transform .3s ease;
    margin:0 5px 0 12px;
}

.mobile-navigation .arrow i {
    display:none;
}


/* Rotate when active */
.mobile-navigation .has-submenu.active > a .arrow {
    transform:rotate(225deg);
}


/* =====================================
   RESPONSIVE
===================================== */
@media(max-width:991px){
    body.dwu-homepage {
        overflow-y:auto;
    }

    body.dwu-homepage > .wm-main-wrapper {
        padding-top:104px;
    }

    body.dwu-homepage #wm-header {
        position:fixed;
        top:0;
        left:0;
        width:100%;
        z-index:9997;
    }

    .wm-main-header {
        text-align:left;
        box-shadow:0 2px 12px rgba(0,0,0,.08);
    }

    .wm-main-header .row {
        display:flex;
        align-items:center;
        justify-content:space-between;
        flex-wrap:nowrap;
    }

    .wm-main-header .col-md-3 {
        float:none!important;
        width:auto!important;
        flex:1 1 auto;
        min-width:0;
    }

    .wm-main-header .col-md-9 {
        float:none!important;
        width:auto!important;
        flex:0 0 auto;
    }

    .wm-main-header .wm-logo {
        display:inline-flex!important;
        align-items:center;
        max-width:calc(100vw - 95px);
        margin:18px 0 14px 0!important;
        float:none!important;
    }

    .wm-main-header .wm-logo img {
        width:220px!important;
        max-width:100%;
        height:auto;
    }

    .wm-main-header .navbar {
        float:none;
        min-height:0;
        margin:0;
    }

    .wm-main-header .navbar-header {
        float:none;
    }

    .desktop-navigation {
        display:none!important;
    }

    .mobile-menu-toggle {
        display:block;
    }
}

@media(max-width:480px){
    .mobile-sidebar {
        width:100%;
        max-width:70%;
        right:-70%;
    }
}


/* =========== MOBILE MENU NAVIGATION ARROWS   =============== */
.arrow i {
    transition: transform .3s ease;
}

.has-submenu.active > a .arrow i {
    transform: rotate(180deg);
}

/* ============== HIDE ENTIRE TOP HEADER =============== */
/* Hide top strip on tablets and mobile */
@media (max-width: 991px) {
    .wm-topstrip {
        display: none;
    }
}
/* ==========================================
DWU MOBILE MEGA MENU (MEANMENU) CSS ENDS HERE
========================================== */




/*=====================================
 WORK EXPERIENCE WITH TABLE
======================================*/

.work-experience-section {
    width:100%;
}


.wm-work-table-wrapper {
    width:100%;
    overflow-x:auto;
}


.work-experience-table {
    width:100%;
    border-collapse:collapse;
    margin-top:20px;
}


.work-experience-table th {
    background:#f5f5f5;
    padding:12px;
    text-align:left;
    font-weight:600;
    border:1px solid #ddd;
}


.work-experience-table td {
    padding:10px;
    border:1px solid #ddd;
}


.work-experience-table input {
    width:100%;
    height:40px;
    border:1px solid #ddd;
    padding:8px 12px;
}


.work-action {
    white-space:nowrap;
}


.work-action a {
    display:inline-block;
    margin-right:15px;
    color:#076415;
    font-size:14px;
    font-weight:600;
}


.work-action a:hover {
    color:#ea9c0b;
}

/*===================================
 WORK EXPERIENCE WITHOUT SECTION
===================================*/


.work-experience-item {
    margin-bottom:30px;
    padding-bottom:20px;
    border-bottom:1px solid #eeeeee;
}


.form-action-buttons {
    margin-top:15px;
}


.form-action-buttons a {

    display:inline-block;
    margin-right:20px;

    color:#076415;
    font-size:14px;
    font-weight:400;
    text-decoration:none;

}


.form-action-buttons a:hover {

    color:#ea9c0b;

}


.form-action-buttons i {

    margin-right:6px;

}

/* Work Experience Date Fields */
.work-date-field {
    width:100%;
    height:45px;
    padding:0 15px;
    border:1px solid #e5e5e5;
    font-size:14px;
    color:#555;
    background:#fff;
}


.work-date-field:focus {
    border-color:#076415;
    outline:none;
}


/* Calendar icon spacing */
.work-date-field::-webkit-calendar-picker-indicator {
    cursor:pointer;
}

/* Remove extra divider only */

.work-experience-section {
    border-bottom: none !important;
}

.work-experience-section .wm-student-dashboard-settings {
    border-bottom: none !important;
}

.work-experience-section .work-experience-item {
    border-bottom: none !important;
}

/* =====================================
   FORM NAVIGATION BUTTONS
===================================== */

.form-navigation form ul {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center;
    gap: 20px;
    width: 100%;
    padding: 0;
    margin: 0;
}

.form-navigation form ul li {
    float: none !important;
    display: inline-block !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Optional: Add spacing between buttons */
.form-navigation ul li + li {
    margin-left: 20px;
}

.wm-upload-field {
    margin-bottom: 20px;
}

/* Match DWU template label style */
.wm-select-two label,
.wm-upload-field label {
    display: block;
    margin-bottom: 8px;
}

/* Match field heights */
.wm-upload-field input[type="file"] {
    width: 100%;
    height: 45px;
    padding: 10px;
    border: 1px solid #e5e5e5;
    background: #fff;
    font-size: 14px;
}

.wm-upload-field small {
    display: block;
    margin-top: 6px;
    color: #777;
    font-size: 12px;
}

/* Declaration Checkbox Override */
.declaration-checkbox label {
    display: flex;
    align-items: center;
    cursor: pointer;
    font-size: 14px;
    color: #333;
}


.declaration-checkbox input[type="checkbox"] {
    appearance: checkbox !important;
    -webkit-appearance: checkbox !important;
    width: 16px !important;
    height: 16px !important;
    margin-right: 10px !important;
    padding: 0 !important;
    display: inline-block !important;
    opacity: 1 !important;
    visibility: visible !important;
}


/* Date Field */
input[type="date"] {
    width: 100%;
    height: 45px;
    padding: 0 15px;
    border: 1px solid #e5e5e5;
    font-size: 14px;
    color: #555;
    background: #fff;
}

/* =====================================
   EDUCATION SECTION BORDER BOX
===================================== */

#education-row1-container .education-row1,
#education-row2-container .education-row2 {
    border: none;
    border-radius: 0;
    padding: 0;
    margin-bottom: 15px;
    background: transparent;
    width: 100%;
    float: none;
    display: flow-root;
    box-sizing: border-box;
}


/* Clear template floating issues */
#education-row1-container .education-row1::after,
#education-row2-container .education-row2::after {
    content: "";
    display: table;
    clear: both;
}


/* Remove default HR divider if not needed */
.education-row1 hr,
.education-row2 hr {
    display: none;
}


/* Action buttons spacing */
.form-action-buttons {
    margin-top: 15px;
    display: flex;
    gap: 20px;
}


/* Add/remove link styling */
.form-action-buttons a {
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}

.education-row1 .wm-student-dashboard-settings,
.education-row2 .wm-student-dashboard-settings {
    overflow: hidden;
}
/* =====================================
   EDUCATION SECTION BORDER
===================================== */

.education-section-border {
    border: 1px solid #ddd;
    border-radius: none;
    padding: 20px;
    margin-bottom: 25px;
    background: #fff;
    box-sizing: border-box;
    display: flow-root;
}


/* Individual added rows */
.education-row1,
.education-row2 {
    border: none;
    padding: 0;
    margin-bottom: 15px;
}


/* Keep floated fields contained */
.education-row1,
.education-row2 {
    display: flow-root;
}


/* Action buttons */
.form-action-buttons {
    clear: both;
    margin-top: 10px;
}


/* Separator between added rows */
.education-row1:not(:last-child),
.education-row2:not(:last-child) {
    border-bottom: 1px solid #eee;
    padding-bottom: 15px;
    margin-bottom: 15px;
}

/* ==============================
FIVE CHECKBOXES CSS
=============================== */
.checkbox-row {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    align-items: center;
}

.checkbox-item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 15px;
    cursor: pointer;
    white-space: nowrap;
}

.checkbox-item input[type="checkbox"] {
    width: 16px;
    height: 16px;
}

/* ==============================
TEXT AREA CSS
=============================== */
.wm-form-group {
    width: 100%;
}

.wm-form-group textarea {
    width: 100%;
    min-height: 320px;
    padding: 15px;
    border: 1px solid #d9d9d9;
    border-radius: 6px;
    box-sizing: border-box;
    resize: vertical;
    font-family: inherit;
    font-size: 15px;
}

/* =========================== 
HOME PAGE STUDY OPTIONS CARD H6
============================= */
/* Course title */
.wm-popular-courses-text h6 a {
    display: block;
    text-align: left !important;
    text-decoration: none;
}

/* Course title */
.campus-course-nowrap h6 a {
    display: block;
    text-align: left !important;
    text-decoration: none;
}

/* =========================================================
HOME PAGE STUDY OPTIONS CARDS - UNIFORM LAYOUT
===========================================================
The base theme lays these cards out with floats, so images keep
their native aspect ratio and cards take the height of their own
text (which varies with how many lines the title wraps to). We
override with flexbox so every card in a row is the same height,
every image is the same height, and the meta info aligns to the
bottom of every card. Scoped to .wm-courses-popular only, excluding
.wm-courses-mediumsec (the all-programs list layout keeps the theme's
original side-by-side float layout). */

/* Make the row a flex container so cards stretch to equal height. */
.wm-courses-popular:not(.wm-courses-mediumsec) > ul.row {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
            flex-wrap: wrap;
    -webkit-align-items: stretch;
            align-items: stretch;
}

/* Each column becomes a flex item; drop the base float. */
.wm-courses-popular:not(.wm-courses-mediumsec) > ul.row > li {
    display: -webkit-flex;
    display: flex;
    float: none;
    margin-bottom: 30px;
}

/* Card fills its column and stacks its contents in a column so the
   text area can grow to absorb any extra height. */
.wm-courses-popular:not(.wm-courses-mediumsec) .wm-courses-popular-wrap {
    display: -webkit-flex;
    display: flex;
    -webkit-flex-direction: column;
            flex-direction: column;
    float: none;
    width: 100%;
    height: 100%;
}

/* Image block: fixed height + object-fit: cover so every image
   fills the same area edge-to-edge without distortion. */
.wm-courses-popular:not(.wm-courses-mediumsec) .wm-courses-popular-wrap > figure {
    float: none;
    width: 100%;
}
.wm-courses-popular:not(.wm-courses-mediumsec) .wm-courses-popular-wrap > figure > a,
.wm-courses-popular:not(.wm-courses-mediumsec) .wm-courses-popular-wrap > figure > a img {
    float: none;
    display: block;
    width: 100%;
}
.wm-courses-popular:not(.wm-courses-mediumsec) .wm-courses-popular-wrap > figure > a img {
    height: 200px;
    object-fit: cover;
    -o-object-fit: cover;
    object-position: center;
}

/* Text area grows to fill the remaining card height. Consistent
   padding is inherited from the base .wm-popular-courses-text rule. */
.wm-courses-popular:not(.wm-courses-mediumsec) .wm-popular-courses-text {
    float: none;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-direction: column;
            flex-direction: column;
    -webkit-flex: 1 1 auto;
            flex: 1 1 auto;
}

/* Push the duration/level meta list (the card's bottom row) to the
   bottom so it aligns across every card regardless of title length. */
.wm-courses-popular:not(.wm-courses-mediumsec) .wm-popular-courses-text > ul {
    float: none;
    width: 100%;
    margin-top: auto;
    overflow: hidden;
}

/* ===========================================================
INTERACTIVE MEGA MENUS - CAMPUSES + LEARNING AND TEACHING
=============================================================
Each left-column link (.wm-campus-link / .wm-lt-link) is paired by its
data attribute with a detail panel (.wm-campus-detail / .wm-lt-detail)
and an image (.wm-campus-image / .wm-lt-image). Hovering/focusing a link
toggles the matching .is-active panel and image via custom.js. Scoped to
the desktop mega menus only, so the mobile menu and other menus are
unaffected. */

/* Experience details: only the active item's details are shown. */
.wm-campus-experience .wm-campus-detail,
.wm-lt-experience .wm-lt-detail {
    display: none;
}
.wm-campus-experience .wm-campus-detail.is-active,
.wm-lt-experience .wm-lt-detail.is-active {
    display: block;
}

/* Experience image: only the active item's image is shown. Stacking all
   images in the same box with a fixed height (object-fit: cover keeps the
   aspect ratio, no distortion) prevents the mega menu from changing size
   when moving between items. */
.wm-campus-media,
.wm-lt-media {
    position: relative;
    width: 100%;
}
.wm-campus-media .wm-campus-image,
.wm-lt-media .wm-lt-image {
    display: none;
    margin-bottom: 0;
}
.wm-campus-media .wm-campus-image.is-active,
.wm-lt-media .wm-lt-image.is-active {
    display: block;
}
.wm-campus-media .wm-campus-image img,
.wm-lt-media .wm-lt-image img {
    width: 100%;
    height: 230px;
    object-fit: cover;
    display: block;
}

/* Highlight the active link (matches the theme hover accent and its
   underline animation) so users can see the current item. */
.wm-header-one .wm-campuses-megamenu .wm-campus-link.is-active,
.wm-header-one .wm-lt-megamenu .wm-lt-link.is-active {
    color: #ea9c0b !important;
}
.wm-header-one .wm-campuses-megamenu .wm-campus-link.is-active:after,
.wm-header-one .wm-lt-megamenu .wm-lt-link.is-active:after {
    visibility: visible;
    transform: scaleX(1);
}

/* Keyboard accessibility: reveal the mega menu while focus is within its
   top-level item, so keyboard users can tab through the links and trigger
   the content/image updates. Scoped to these two menus only. */
@media (min-width: 992px) {
    .wm-megamenu-li:focus-within .wm-campuses-megamenu,
    .wm-megamenu-li:focus-within .wm-lt-megamenu {
        opacity: 1;
        visibility: visible;
        -webkit-transform: translateY(0px);
           -moz-transform: translateY(0px);
            -ms-transform: translateY(0px);
             -o-transform: translateY(0px);
                transform: translateY(0px);
    }
}

/* Campus of Application (how-to-apply page): a single reusable preview
   card (.wm-campus-card) and an instructional placeholder
   (.wm-campus-card-placeholder) share the same slot - only whichever one
   has .is-active is shown, so selecting a campus never stacks up extra
   cards. Reuses .wm-courses-medium's figure/text layout and typography. */
.wm-apply-campus-preview .wm-campus-card,
.wm-apply-campus-preview .wm-campus-card-placeholder {
    display: none;
}
.wm-apply-campus-preview .wm-campus-card.is-active,
.wm-apply-campus-preview .wm-campus-card-placeholder.is-active {
    display: block;
}
.wm-apply-campus-preview .wm-campus-card-placeholder p {
    background-color: #f6f6f6;
    padding: 30px;
    color: #6c6c6c;
    margin: 0;
}

/* =============================================================
   ALL-EVENTS PAGE — EVENT CARDS
   Scoped strictly to .wm-latestevents-full so the .wm-event /
   .wm-latest-event / .wm-latest-event-text design used elsewhere
   is untouched. Gives every event card the same height with
   consistently aligned image, title, date, paragraph and button,
   while preserving the existing card look and carousel behaviour.
   ============================================================= */

/* Text block is a flex column on every card so the date/paragraph
   keep a fixed position and the button can be pinned to the bottom. */
.wm-latestevents-full .wm-latest-event .wm-latest-event-text {
    float: none;
    width: 100%;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    padding: 17px 0 0 0; /* keep the theme's existing padding */
}

/* Image: identical dimensions on every card, cropped without distortion. */
.wm-latestevents-full .wm-latest-event figure,
.wm-latestevents-full .wm-latest-event figure a {
    float: none;
    width: 100%;
    display: block;
    margin-bottom: 0;
}
.wm-latestevents-full .wm-latest-event figure img {
    float: none;
    width: 100%;
    height: 210px;
    display: block;
}
/* card_thumbnail is an editor-cropped 16:9 image, safe to cover-fit. */
.wm-latestevents-full .wm-latest-event figure img.wm-event-card-thumb--cover {
    object-fit: cover;
    object-position: center top;
}
/* No thumbnail: this is the raw event poster, which may carry dates, QR
   codes or sponsor logos anywhere in the frame, so it is shown in full
   (letterboxed) rather than cropped. */
.wm-latestevents-full .wm-latest-event figure img.wm-event-card-thumb--contain {
    object-fit: contain;
    background-color: #f6f6f6;
}

/* Fallback placeholder (no event image): match the image's footprint
   so the rest of the card stays aligned with cards that do have one. */
.wm-latestevents-full .wm-latest-event figure .alert {
    width: 100%;
    height: 210px;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

/* Title: reserve a fixed 2-line area and clamp overflow, so longer
   titles never push the date/paragraph/button downward. */
.wm-latestevents-full .wm-latest-event .wm-latest-event-text h6 {
    margin: 0 0 17px 0;
    min-height: 48px; /* ~2 lines at 24px line-height */
    line-height: 24px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Date/time: consistent spacing across all cards. */
.wm-latestevents-full .wm-latest-event .wm-latest-event-text time {
    float: none;
    width: 100%;
    margin-bottom: 8px;
    padding-bottom: 12px;
}

/* Paragraph: reserve a fixed 3-line area and clamp overflow, so
   differing description lengths don't affect card alignment. */
.wm-latestevents-full .wm-latest-event .wm-latest-event-text p {
    margin: 0 0 6px 0;
    line-height: 24px;
    min-height: 72px; /* ~3 lines at 24px line-height */
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* "Check event" button pinned to the bottom of every card, with
   identical alignment regardless of title/paragraph length. */
.wm-latestevents-full .wm-latest-event .wm-latest-event-text .wm-banner-btn {
    margin-top: auto;
    align-self: flex-start;
}
.wm-latestevents-full .wm-latest-event .wm-latest-event-text .wm-banner-btn:focus,
.wm-latestevents-full .wm-latest-event .wm-latest-event-text .wm-banner-btn:focus-visible {
    outline: 2px solid #ea9c0b;
    outline-offset: 2px;
    color: #ffffff;
    background-color: #ea9c0b;
}

/* From the sm breakpoint up (where the cards start sitting side-by-side —
   2-up at sm, 3-up at md+ via col-sm-6 col-md-4), lay the row out with
   flexbox so every card in a row shares the tallest height and its
   button aligns along a common bottom edge. Matches Bootstrap's own
   576px grid breakpoint so the equal-height fix and the column count
   change together instead of leaving a tablet-width gap. */
@media (min-width: 576px) {
    .wm-latestevents-full .wm-latest-event > ul.row {
        display: flex;
        flex-wrap: wrap;
    }
    /* Neutralise the theme's clearfix pseudo-elements which would
       otherwise become stray flex items. */
    .wm-latestevents-full .wm-latest-event > ul.row:before,
    .wm-latestevents-full .wm-latest-event > ul.row:after {
        display: none;
    }
    .wm-latestevents-full .wm-latest-event > ul.row > li {
        float: none;
        display: flex;
        flex-direction: column;
        margin-bottom: 10px;
    }
}

/* ==================================================
   GRADUATE HOME PAGE VIDEO TESTIMONIAL SLIDER
=================================================== */

.graduate-stories {
    --testimonial-green: #076415;
    --testimonial-green-overlay: rgba(7, 100, 21, 0.7);
    --testimonial-orange: #e79800;
    --testimonial-ink: #24162f;
    --testimonial-muted: #655d69;
    --testimonial-panel: #f5f5f5;
    --testimonial-white: #ffffff;

    padding: 24px 0 56px;
    color: var(--testimonial-ink);
}

/*
 * Keep box-sizing changes inside this section.
 */
.graduate-stories,
.graduate-stories *,
.graduate-stories *::before,
.graduate-stories *::after {
    box-sizing: border-box;
}

.stories-shell {
    width: min(1140px, calc(100% - 40px));
    margin: 0 auto;
}

/* Title styled to match .wm-fancy-title-three (see style.css / color-three.css) without
   reusing its float:left layout, which broke the shell's block flow. */
.stories-shell > h2 {
    display: inline-block;
    position: relative;
    margin: 0 0 33px;
    padding-bottom: 33px;
    color: var(--testimonial-green);
    font-size: clamp(1.75rem, 3vw, 35px);
    font-weight: 500;
    line-height: 1.2;
}

.stories-shell > h2::before {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 49px;
    height: 2px;
    background-color: var(--testimonial-orange);
}

/* ==================================================
   MAIN IMAGE AND VIDEO AREA
=================================================== */

.story-stage {
    position: relative;
    z-index: 2;
    min-height: 480px;
    overflow: hidden;
    background: #ded9e3;
}

.story-image {
    display: block;
    width: 100%;
    height: 480px;
    object-fit: cover;
    object-position: center top;
    transition:
        opacity 220ms ease,
        transform 550ms ease;
}

.story-stage:hover .story-image {
    transform: scale(1.015);
}

.story-image.is-changing {
    opacity: 0.2;
}

/* Left-side image overlay */

.story-overlay {
    position: absolute;
    inset: 0 50% 0 0;
    z-index: 2;
    background-color: var(--testimonial-green-overlay);
}

/* Large name displayed over the image */

.story-name {
    position: absolute;
    top: 50%;
    left: 8%;
    z-index: 3;
    width: 34%;
    color: var(--testimonial-white);
    font-size: clamp(2.6rem, 5vw, 4.8rem);
    font-weight: 700;
    line-height: 0.94;
    letter-spacing: -0.05em;
    overflow-wrap: anywhere;
    transform: translateY(-50%);
}

/* Play button */

.play-button {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 4;
    display: grid;
    place-items: center;
    width: 78px;
    height: 78px;
    padding: 0;
    color: var(--testimonial-white);
    border: 3px solid var(--testimonial-white);
    border-radius: 50%;
    background: rgba(25, 8, 37, 0.2);
    cursor: pointer;
    transform: translate(-50%, -50%);
    transition:
        background-color 180ms ease,
        transform 180ms ease;
}

.play-button:hover,
.play-button:focus-visible {
    background: var(--testimonial-orange);
    outline: none;
    transform: translate(-50%, -50%) scale(1.07);
}

.play-button svg {
    width: 38px;
    fill: currentColor;
    transform: translateX(3px);
}

.play-button[hidden] {
    display: none;
}

/* ==================================================
   INLINE VIDEO
=================================================== */

.story-inline-video[hidden] {
    display: none;
}

.story-inline-video {
    position: absolute;
    inset: 0;
    z-index: 10;
    width: 100%;
    height: 100%;
    background: #000;
}

.story-inline-video iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

.close-inline-video {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 12;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    color: var(--testimonial-white);
    border: 2px solid var(--testimonial-white);
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.68);
    font-size: 1.8rem;
    line-height: 1;
    cursor: pointer;
    transition:
        background-color 180ms ease,
        transform 180ms ease;
}

.close-inline-video:hover,
.close-inline-video:focus-visible {
    background: var(--testimonial-orange);
    outline: none;
    transform: scale(1.06);
}

/* ==================================================
   INFORMATION PANEL
=================================================== */

.story-panel {
    position: relative;
    min-height: 380px;
    margin: -145px -7vw 0;
    padding: 200px max(7vw, 28px) 42px;
    background: var(--testimonial-panel);
}

/* Counter and progress bar */

.story-progress-wrap {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 32px;
    padding-top: 12px;
}

.story-count {
    flex: 0 0 auto;
    color: var(--testimonial-ink);
}

.story-progress {
    width: 100%;
    height: 3px;
    margin-top: 9px;
    overflow: hidden;
    background: #cccccc;
}

.story-progress span {
    display: block;
    width: 0;
    height: 100%;
    background: var(--testimonial-orange);
    transition: width 350ms ease;
}

/* Graduate information */

.graduate-information {
    width: 100%;
}

.graduate-slide[hidden] {
    display: none;
}

.story-copy {
    min-height: 150px;
}

.story-heading-row {
    display: flex;
    align-items: center;
    gap: 18px;
}

.story-student-name {
    margin: 0;
    color: var(--testimonial-ink);
    font-size: clamp(1.35rem, 2.2vw, 1.75rem);
    line-height: 1.25;
}

/* Slider navigation */

.story-navigation {
    display: flex;
    flex: 0 0 auto;
    gap: 8px;
}

.story-navigation button {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    padding: 0;
    color: var(--testimonial-green);
    border: 0;
    background: transparent;
    font-size: 1.65rem;
    line-height: 1;
    cursor: pointer;
    transition:
        color 160ms ease,
        transform 160ms ease;
}

.story-navigation button:hover,
.story-navigation button:focus-visible {
    color: var(--testimonial-orange);
    outline: none;
    transform: scale(1.14);
}

.story-department {
    margin: 14px 0 12px;
    color: #6f626c;
    font-weight: 500;
}

.story-testimony {
    max-width: 700px;
    margin: 0;
    color: var(--testimonial-muted);
    line-height: 1.65;
}

/* No-testimonial message */

.graduate-stories-empty {
    padding: 24px;
    color: #664d03;
    border: 1px solid #ffecb5;
    background: #fff3cd;
}

/* ==================================================
   TABLET AND MOBILE
=================================================== */

@media (max-width: 760px) {
    .stories-shell {
        width: min(100% - 28px, 620px);
    }

    .story-stage {
        min-height: 520px;
    }

    .story-image {
        height: 520px;
    }

    .story-overlay {
        inset: 55% 0 0;
        background: linear-gradient(
            0deg,
            rgba(7, 100, 21, 0.98),
            rgba(7, 100, 21, 0.78),
            transparent
        );
    }

    .story-name {
        top: auto;
        bottom: 26px;
        left: 24px;
        width: calc(100% - 48px);
        font-size: clamp(2.4rem, 12vw, 4rem);
        transform: none;
    }

    .play-button {
        top: 43%;
        left: 50%;
        width: 68px;
        height: 68px;
    }

    .story-panel {
        min-height: 0;
        margin: 0 -14px;
        padding: 30px 24px 36px;
    }

    .story-heading-row {
        align-items: flex-start;
    }

    .story-testimony {
        max-width: 100%;
    }
}

@media (max-width: 480px) {
    .graduate-stories {
        padding-top: 18px;
    }

    .stories-shell {
        width: calc(100% - 20px);
    }

    .story-stage {
        min-height: 440px;
    }

    .story-image {
        height: 440px;
    }

    .story-name {
        right: 20px;
        bottom: 22px;
        left: 20px;
        width: auto;
    }

    .story-panel {
        margin: 0 -10px;
        padding: 28px 20px 32px;
    }

    .story-progress-wrap {
        gap: 14px;
    }

    .story-heading-row {
        flex-direction: column;
        gap: 12px;
    }

    .story-navigation {
        order: 2;
    }

    .story-student-name {
        order: 1;
    }

    .close-inline-video {
        top: 10px;
        right: 10px;
        width: 40px;
        height: 40px;
    }
}

/* ==================================================
   REDUCED MOTION
=================================================== */

@media (prefers-reduced-motion: reduce) {
    .graduate-stories *,
    .graduate-stories *::before,
    .graduate-stories *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

/* ==========================
  EVENT DETAILS IMAGE CSS
========================== */

.wm-event-countdown img {
    display: block;
    width: 100%;
    height: auto;
}

/* ====================
 NEWS DETAILS CAPTION TEXT
====================== */
.wm-authorpost {
    display: inline-block;
    margin-left: 20px;
}


.wm-blog-single {
    width: 100%;
}

.wm-detail-thumb,
.wm-blog-author {
    width: 100%;
    box-sizing: border-box;
}

.wm-detail-thumb {
    margin: 0;
}

.wm-detail-thumb img {
    display: block;
    width: 100%;
    height: auto;
}

/* ==================================================
   Rich-text article body images (news-details, event-details)
   Default TinyMCE inserts stamp the image's native pixel
   width/height (often ~300-500px from pasted Word/screenshot
   content) as HTML attributes. width:100% here scales those
   up to fill the content column while height:auto preserves
   the saved aspect ratio; the alignment classes below map to
   TINYMCE_DEFAULT_CONFIG's image_class_list.
   ================================================== */
.wm-detail-editore img {
    display: block;
    max-width: 100%;
    width: 100%;
    height: auto;
    margin: 1.5rem 0;
}

.wm-detail-editore img.wm-img-align-left {
    display: inline;
    float: left;
    width: auto;
    max-width: 100%;
    margin: 0.5rem 1.5rem 1rem 0;
}

.wm-detail-editore img.wm-img-align-right {
    display: inline;
    float: right;
    width: auto;
    max-width: 100%;
    margin: 0.5rem 0 1rem 1.5rem;
}

.wm-detail-editore img.wm-img-align-center {
    width: auto;
    max-width: 100%;
    margin: 1.5rem auto;
}

.wm-detail-editore::after {
    content: "";
    display: table;
    clear: both;
}

/* ====== READ MORE BUTTON ALIGNMENT ==== */
.faculty-row {
    display: flex;
    flex-wrap: wrap;
}

.faculty-card {
    display: flex;
    margin-bottom: 30px;
}

.faculty-card .wm-latest-event {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
}

.faculty-card .wm-latest-event-text {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.faculty-card .wm-banner-btn {
    align-self: flex-start;
    margin-top: auto;
}



/* ==========================
   CAMPUS DETAILED PAGE 
=========================== */

/* ── Slider Item ── */
.slider-item {
  height: 650px;
  overflow: hidden;
  position: relative;
  padding-top: 85px;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}
.slider-item::before {
  background: #07294d none repeat scroll 0 0;
  content: "";
  height: 100%;
  opacity: 0;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: -1;
}

/* ── Slide Animation ── */
.swiper-slide-active .slider-item {
  animation-name: slideInRight;
  animation-duration: 1.7s;
  animation-timing-function: ease;
  animation-delay: 0.5s;
  animation-fill-mode: both;
}
@keyframes fadeInUp {
  from { transform: translate3d(0, 40px, 0); }
  to   { transform: none; }
}

/* ── Slider Arrows (nav buttons) ──
   Positioned via Swiper's own top:50% + margin-top centering (set by the
   swiper-bundle CSS); we only style size/appearance and the icon glyph.
   Previously these used flaticon codepoints (\f16d/\f16e) that don't exist
   in flaticon.css's glyph set, so no arrow rendered at all. */
.slider-active .slider-arrow {
  width: 50px;
  height: 50px;
  line-height: 48px;
  margin-top: -25px; /* re-center against our own 50px height (swiper's default assumes 44px) */
  border-radius: 50%;
  border: 1px solid #ffffff;
  background: rgba(7, 41, 77, 0.35);
  box-shadow: 0px 5px 57px 0px rgba(0, 0, 0, 0.15);
  color: #ffffff;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
}
.slider-active .slider-arrow::after {
  font-family: "FontAwesome" !important;
  font-size: 18px;
}
.slider-active .slider-arrow.swiper-button-prev {
  left: 20px;
}
.slider-active .slider-arrow.swiper-button-prev::after {
  content: "\f053";
}
.slider-active .slider-arrow.swiper-button-next {
  right: 20px;
}
.slider-active .slider-arrow.swiper-button-next::after {
  content: "\f054";
}
.slider-active .slider-arrow:hover {
  color: #07294d;
  background: #ea9c0b;
  border-color: #ea9c0b;
}

/* ── Reveal arrows on hover ── */
.slider-active:hover .slider-arrow {
  opacity: 1;
  visibility: visible;
}
.slider-active:hover .slider-arrow.swiper-button-prev {
  left: 30px;
}
.slider-active:hover .slider-arrow.swiper-button-next {
  right: 30px;
}
@media only screen and (max-width: 449px) {
  .slider-active:hover .slider-arrow.swiper-button-prev {
    left: 15px;
  }
  .slider-active:hover .slider-arrow.swiper-button-next {
    right: 15px;
  }
}

/* ── Active slide content animations ── */
.slider-active .swiper-slide-active .slider-content p,
.slider-active .swiper-slide-active .slider-content .title,
.slider-active .swiper-slide-active .slider-content .hero-btn {
  animation-fill-mode: both;
  animation-name: fadeInUp;
}
.slider-active .swiper-slide-active .slider-content .title {
  animation-delay: 0.6s;
  animation-duration: 0.6s;
}
.slider-active .swiper-slide-active .slider-content p {
  animation-delay: 0.8s;
  animation-duration: 0.8s;
}
.slider-active .swiper-slide-active .slider-content .hero-btn {
  animation-delay: 0.9s;
  animation-duration: 0.9s;
}

/* ── Responsive: .slider-item ── */
@media only screen and (max-width: 991px) {
  .slider-item { height: 450px; }
  .slider-item .slider-content { padding-top: 80px; }
  .slider-item .slider-content .title { font-size: 52px; }
}
@media only screen and (max-width: 767px) {
  .slider-item {
    height: 450px;
    background-size: cover;
    background-position: center;
    width: 100%;
  }
  .slider-item .slider-content .title { font-size: 36px; }
  .slider-item .slider-content p { padding-right: 0; }
}
@media only screen and (max-width: 449px) {
  .slider-item .slider-content { padding-top: 50px; }
  .slider-item .slider-content .title { font-size: 30px; }
}

/* ── Responsive: .edubin-slider-section ── */
@media only screen and (max-width: 767px) {
  .edubin-slider-section {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
  .edubin-slider-section .slider-active,
  .edubin-slider-section .swiper-wrapper,
  .edubin-slider-section .swiper-slide {
    height: 450px;
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
  .edubin-slider-section .slider-item {
    height: 100%;
    padding-top: 0 !important;
    background-size: cover !important;
    background-position: center center !important;
  }
}

/* ── Campus detail leaflet map ── */
.dwu-campus-map {
  height: 496px;
  width: 100%;
  border-radius: 8px;
}

/* ── Fix float clearing so consecutive partner/event cards don't overlap ── */
.wm-event-medium-wrap:after {
  content: "";
  display: table;
  clear: both;
}

/* ── Uniform partner logo/image size on the Partners page ── */
.wm-blog-grid figure img {
  height: 220px;
  object-fit: cover;
  object-position: center;
}

/* ── Equal-height partner cards, with the message clamped to the same
   number of lines and the button aligned at the same spot on every card ── */
.wm-blog-grid ul.row {
  display: flex;
  flex-wrap: wrap;
}
.wm-blog-grid ul.row > li {
  display: flex;
  flex-direction: column;
  float: none;
}
.wm-blog-grid ul.row > li figure {
  flex: 0 0 auto;
}
.wm-blog-grid-text {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}
.wm-blog-grid-text p {
  flex: 1 1 auto;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
}
.wm-blog-grid-text .wm-readarticle-btn {
  align-self: flex-start;
  margin-top: auto;
}

/* ── Mini header banner (Admin Divisions, President's Page, Partners, and
   all other inner-page breadcrumb banners sharing the .wm-mini-header class) ── */
.wm-pro-mini-header,
.wm-mini-header {
  background: #bcdfe4 url("../extra-images/default_banner.jpeg") no-repeat center center;
  padding-top: 150px;
  min-height: 250px;
  display: flex;
  align-items: center;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  animation: banner-bg-move 10s ease-in-out infinite alternate;
  position: relative;
  overflow: hidden;
  z-index: 1;
  margin-bottom: 120px;
}

@media (max-width: 767px) {
  body.dwu-homepage > .wm-main-wrapper {
    padding-top: 116px;
  }

  .wm-pro-mini-header,
  .wm-mini-header {
    padding-top: 90px;
    min-height: 170px;
    margin-bottom: 30px;
  }

  .wm-main-content {
    padding-top: 50px;
  }
}

@keyframes banner-bg-move {
  0% {
    background-position: center center;
  }
  50% {
    background-position: center 60%;
  }
  100% {
    background-position: center center;
  }
}

/* ── Admission progress section (announcement bar + hero + tabbed panel) ── */
.admission-announce-bar {
  clear: both;
  background: #d5121c;
  color: #ffffff;
  clip-path: polygon(0 0, calc(100% - 26px) 0, 100% 26px, 100% 100%, 0 100%);
}

.admission-announce-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 15px;
}

.admission-announce-text {
  margin: 0;
  font-size: 14px;
  font-weight: 700;
  color: #ffffff;
}

.admission-announce-btn {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 20px;
  border: 1px solid #ffffff;
  color: #ffffff;
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.admission-announce-btn:hover,
.admission-announce-btn:focus-visible {
  background: #ffffff;
  color: #d5121c;
  text-decoration: none;
}

.admission-announce-btn:focus-visible {
  outline: 3px solid #ffffff;
  outline-offset: 2px;
}

.admission-hero {
  position: relative;
}

.admission-hero-media {
  height: 390px;
  overflow: hidden;
}

.admission-hero-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%;
}

.admission-overlap {
  position: relative;
  z-index: 2;
  margin-top: -110px;
  display: flex;
  align-items: flex-start;
  gap: 0;
}

.admission-intro-card {
  flex: 0 0 300px;
  max-width: 300px;
  background: #f2f1ef;
  padding: 34px 30px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
  clip-path: polygon(0 0, calc(100% - 26px) 0, 100% 26px, 100% 100%, 0 100%);
}

.admission-intro-title {
  color: #3a1152;
  font-size: 24px;
  font-weight: 800;
  margin: 0 0 14px;
}

.admission-intro-text {
  color: #4a4a4a;
  font-size: 14px;
  line-height: 1.7;
  margin: 0;
}

.admission-panel {
  flex: 1 1 auto;
  background: #ffffff;
  box-shadow: 0 10px 34px rgba(0, 0, 0, 0.14);
  margin-left: 24px;
}

.admission-tabs {
  display: flex;
}

.admission-tab {
  flex: 1;
  min-height: 56px;
  padding: 14px 20px;
  background: #ffffff;
  color: #2b1331;
  border: 1px solid #e7e4e1;
  border-bottom: none;
  font-size: 15px;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  position: relative;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
}

.admission-tab.is-active {
  background: #d5121c;
  color: #ffffff;
  border-color: #d5121c;
}

.admission-tab.is-active::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -8px;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 8px solid #d5121c;
}

.admission-tab:focus-visible {
  outline: 3px solid #3a1152;
  outline-offset: -3px;
  z-index: 1;
}

.admission-tabpanel {
  padding: 30px 34px 34px;
}

.admission-tabpanel:focus-visible {
  outline: 3px solid #3a1152;
  outline-offset: -3px;
}

.admission-item + .admission-item {
  margin-top: 22px;
}

.admission-item h3 {
  color: #3a1152;
  font-size: 17px;
  font-weight: 800;
  margin: 0 0 6px;
}

.admission-item p {
  color: #4a4a4a;
  font-size: 14px;
  line-height: 1.7;
  margin: 0 0 8px;
}

.admission-learn-more {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #d5121c;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}

.admission-learn-more:hover,
.admission-learn-more:focus-visible {
  color: #a30e16;
  text-decoration: underline;
}

.admission-learn-more:focus-visible {
  outline: 3px solid #3a1152;
  outline-offset: 2px;
}

@media (max-width: 991px) {
  .admission-hero-media {
    height: 340px;
  }

  .admission-overlap {
    margin-top: -70px;
    flex-direction: column;
    gap: 20px;
  }

  .admission-intro-card {
    flex: none;
    max-width: none;
    width: 100%;
  }

  .admission-panel {
    margin-left: 0;
  }
}

@media (max-width: 767px) {
  .admission-announce-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    padding: 16px 15px;
  }

  .admission-announce-btn {
    width: 100%;
    justify-content: center;
  }

  .admission-hero-media {
    height: 220px;
  }

  .admission-overlap {
    margin-top: 0;
    padding-left: 0;
    padding-right: 0;
  }

  .admission-intro-card {
    clip-path: none;
    padding: 26px 20px;
  }

  .admission-panel {
    box-shadow: none;
    border-top: 1px solid #eee;
  }

  .admission-tabs {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .admission-tab {
    flex: 0 0 auto;
    min-width: 160px;
  }

  .admission-tabpanel {
    padding: 24px 20px 28px;
  }
}



/* ==================================================
   DWU Progress Component
   All styles are restricted to this component.
   ================================================== */

.dwu-progress-component {
    --dwu-red: #ed2618;
    --dwu-red-dark: #d91f13;
    --dwu-green: #076415;
    --dwu-text: #4e4851;
    --dwu-border: #e7e5e7;
    --dwu-light-grey: #f4f3f3;
    --dwu-white: #ffffff;
    --dwu-focus: #2675dc;
    --dwu-shadow: 0 4px 12px rgb(39 24 52 / 13%);

    width: 100%;
    min-width: 0;
    color: var(--dwu-text);
    background-color: var(--dwu-white);
    font-family: "Open Sans", Arial, sans-serif;
    font-weight: 400;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

/* Restrict box sizing to this component. */
.dwu-progress-component,
.dwu-progress-component *,
.dwu-progress-component *::before,
.dwu-progress-component *::after {
    box-sizing: border-box;
}

/* Prevent external theme styles from affecting component images. */
.dwu-progress-component img {
    max-width: 100%;
}

/* ==================================================
   Notice banner
   ================================================== */

.dwu-progress-component .notice {
    min-height: 104px;
    overflow: hidden;
    color: var(--dwu-white);
    background-color: var(--dwu-red);
    clip-path: polygon(
        0 0,
        calc(100% - 16px) 0,
        100% 19px,
        100% 100%,
        0 100%
    );
}

.dwu-progress-component .notice__inner {
    width: min(calc(100% - 32px), 1248px);
    min-height: 104px;
    margin-right: auto;
    margin-left: auto;
    padding-top: 26px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
}

.dwu-progress-component .notice__inner p {
    margin: 0;
    color: var(--dwu-white);
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.25;
}

.dwu-progress-component .notice__button {
    min-height: 23px;
    padding: 5px 10px;
    border: 1px solid var(--dwu-white);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--dwu-white);
    background-color: transparent;
    font-family: "Open Sans", Arial, sans-serif;
    font-size: 8px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    transition:
        color 160ms ease,
        background-color 160ms ease;
}

.dwu-progress-component .notice__button:hover {
    color: var(--dwu-red);
    background-color: var(--dwu-white);
    text-decoration: none;
}

/* ==================================================
   Hero image
   ================================================== */

.dwu-progress-component .hero {
    width: 100%;
    height: 350px;
    overflow: hidden;
    background-color: #dedede;
}

.dwu-progress-component .hero img {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
    object-fit: cover;
    object-position: center 48%;
}

/* ==================================================
   Overlapping content section
   ================================================== */

.dwu-progress-component .progress {
    position: relative;
    width: 100%;
}

.dwu-progress-component .progress__grid {
    position: relative;
    z-index: 2;
    width: min(calc(100% - 40px), 568px);
    margin: -111px auto 0;
    display: grid;
    grid-template-columns: 182px minmax(0, 1fr);
    align-items: start;
}

/* ==================================================
   Introduction card
   ================================================== */

.dwu-progress-component .intro-card {
    min-height: 146px;
    margin: 0;
    padding: 31px 16px 15px;
    color: var(--dwu-text);
    background-color: var(--dwu-light-grey);
    clip-path: polygon(
        0 0,
        calc(100% - 31px) 0,
        100% 31px,
        100% 100%,
        0 100%
    );
}

.dwu-progress-component .intro-card h2 {
    margin: 0 0 6px;
    padding: 0;
    color: var(--dwu-green);
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 20px;
    font-weight: 700;
    line-height: 0.92;
    letter-spacing: -0.5px;
    text-transform: none;
}

.dwu-progress-component .intro-card p {
    margin: 0;
    padding: 0;
    color: #66616b;
    font-family: "Open Sans", Arial, sans-serif;
    font-size: 7.5px;
    font-weight: 400;
    line-height: 1.42;
}

/* ==================================================
   Main content card
   ================================================== */

.dwu-progress-component .content-card {
    min-width: 0;
    min-height: 504px;
    padding: 23px 24px 30px;
    color: var(--dwu-text);
    background-color: var(--dwu-white);
}

/* ==================================================
   Tabs
   ================================================== */

.dwu-progress-component .tabs {
    width: 100%;
    height: 31px;
    margin: 0 0 52px;
    padding: 0;
    display: grid;
    grid-template-columns: 91px 72px minmax(0, 1fr);
    box-shadow: var(--dwu-shadow);
}

.dwu-progress-component .tab {
    position: relative;
    min-width: 0;
    height: 31px;
    margin: 0;
    padding: 4px 7px;
    border: 1px solid var(--dwu-border);
    border-left: 0;
    border-radius: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #181219;
    background: var(--dwu-white);
    box-shadow: none;
    cursor: pointer;
    appearance: none;
    font-family: "Open Sans", Arial, sans-serif;
    font-size: 7px;
    font-weight: 600;
    line-height: 1.15;
    text-align: center;
    text-transform: none;
    white-space: normal;
}

.dwu-progress-component .tab:first-child {
    border-left: 1px solid var(--dwu-border);
}

.dwu-progress-component .tab:hover:not(.is-active) {
    color: var(--dwu-green);
    background-color: #fafafa;
}

.dwu-progress-component .tab.is-active {
    z-index: 1;
    border-color: var(--dwu-red);
    color: var(--dwu-white);
    background-color: var(--dwu-red);
    font-weight: 700;
}

.dwu-progress-component .tab.is-active::after {
    content: "";
    position: absolute;
    bottom: -7px;
    left: 50%;
    width: 0;
    height: 0;
    border: 7px solid transparent;
    border-top-color: var(--dwu-red);
    border-bottom: 0;
    transform: translateX(-50%);
}

/* ==================================================
   Tab panels
   ================================================== */

.dwu-progress-component .tab-panel {
    margin: 0;
    padding: 0;
}

.dwu-progress-component .tab-panel[hidden] {
    display: none;
}

/* ==================================================
   Information items
   ================================================== */

.dwu-progress-component .info-item {
    margin: 0 0 27px;
    padding: 0;
}

.dwu-progress-component .info-item:last-child {
    margin-bottom: 0;
}

.dwu-progress-component .info-item h3 {
    margin: 0 0 7px;
    padding: 0;
    color: var(--dwu-green);
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.2px;
    text-transform: none;
}

.dwu-progress-component .info-item p {
    max-width: 334px;
    margin: 0 0 12px;
    padding: 0;
    color: var(--dwu-text);
    font-family: "Open Sans", Arial, sans-serif;
    font-size: 7px;
    font-weight: 400;
    line-height: 1.45;
}

.dwu-progress-component .info-item a {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--dwu-red-dark);
    font-family: "Open Sans", Arial, sans-serif;
    font-size: 7px;
    font-weight: 400;
    line-height: 1.4;
    text-decoration: none;
}

.dwu-progress-component .info-item a:hover {
    color: var(--dwu-red-dark);
    text-decoration: underline;
}

/* ==================================================
   Keyboard focus
   ================================================== */

.dwu-progress-component .tab:focus-visible,
.dwu-progress-component .notice__button:focus-visible,
.dwu-progress-component .info-item a:focus-visible {
    outline: 3px solid var(--dwu-focus);
    outline-offset: 3px;
}

/* ==================================================
   Tablet layout
   ================================================== */

@media (max-width: 720px) {
    .dwu-progress-component .notice,
    .dwu-progress-component .notice__inner {
        min-height: 88px;
    }

    .dwu-progress-component .notice__inner {
        padding-top: 0;
        align-items: center;
    }

    .dwu-progress-component .hero {
        height: 330px;
    }

    .dwu-progress-component .hero img {
        object-position: center;
    }

    .dwu-progress-component .progress__grid {
        width: min(calc(100% - 32px), 580px);
        margin-top: -54px;
        grid-template-columns: minmax(0, 1fr);
    }

    .dwu-progress-component .intro-card {
        width: min(88%, 360px);
        min-height: 0;
        padding: 26px 24px 24px;
    }

    .dwu-progress-component .intro-card h2 {
        font-size: 25px;
        line-height: 0.95;
    }

    .dwu-progress-component .intro-card p {
        max-width: 290px;
        font-size: 12px;
        line-height: 1.5;
    }

    .dwu-progress-component .content-card {
        min-height: 0;
        padding: 28px 24px 40px;
    }

    .dwu-progress-component .tabs {
        height: auto;
        margin-bottom: 44px;
        grid-template-columns: 1fr 1fr 1.5fr;
    }

    .dwu-progress-component .tab {
        min-height: 44px;
        height: auto;
        padding: 8px;
        font-size: 10px;
    }

    .dwu-progress-component .info-item {
        margin-bottom: 32px;
    }

    .dwu-progress-component .info-item h3 {
        font-size: 17px;
        line-height: 1.25;
    }

    .dwu-progress-component .info-item p {
        max-width: 100%;
        font-size: 12px;
        line-height: 1.55;
    }

    .dwu-progress-component .info-item a {
        min-height: 32px;
        font-size: 12px;
    }
}

/* ==================================================
   Mobile layout
   ================================================== */

@media (max-width: 480px) {
    .dwu-progress-component .notice {
        clip-path: polygon(
            0 0,
            calc(100% - 12px) 0,
            100% 14px,
            100% 100%,
            0 100%
        );
    }

    .dwu-progress-component .notice__inner {
        width: calc(100% - 30px);
        min-height: 110px;
        padding: 18px 0;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        gap: 12px;
    }

    .dwu-progress-component .notice__inner p {
        font-size: 11px;
    }

    .dwu-progress-component .notice__button {
        min-height: 36px;
        padding: 8px 12px;
        font-size: 10px;
    }

    .dwu-progress-component .hero {
        height: 270px;
    }

    .dwu-progress-component .hero img {
        object-position: 51% center;
    }

    .dwu-progress-component .progress__grid {
        width: calc(100% - 32px);
        margin-top: -34px;
    }

    .dwu-progress-component .intro-card {
        width: 94%;
    }

    .dwu-progress-component .content-card {
        padding: 24px 16px 34px;
    }

    .dwu-progress-component .tabs {
        grid-template-columns: minmax(0, 1fr);
        margin-bottom: 35px;
        box-shadow: none;
    }

    .dwu-progress-component .tab {
        width: 100%;
        min-height: 44px;
        border-top: 0;
        border-left: 1px solid var(--dwu-border);
        font-size: 11px;
    }

    .dwu-progress-component .tab:first-child {
        border-top: 1px solid var(--dwu-border);
    }

    .dwu-progress-component .tab.is-active {
        border-color: var(--dwu-red);
    }

    .dwu-progress-component .tab.is-active::after {
        display: none;
    }

    .dwu-progress-component .info-item {
        margin-bottom: 30px;
    }
}

/* ==================================================
   Reduced-motion preference
   ================================================== */

@media (prefers-reduced-motion: reduce) {
    .dwu-progress-component *,
    .dwu-progress-component *::before,
    .dwu-progress-component *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }

    .wm-weather-marquee-track {
        animation: none !important;
        white-space: normal !important;
    }
}

/* ==================================================
   Campus weather marquee (footer)
   ================================================== */

.wm-weather-marquee {
    overflow: hidden;
    white-space: nowrap;
    position: relative;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
            mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}

.wm-weather-marquee-track {
    display: inline-block;
    white-space: nowrap;
    animation: wm-weather-marquee-scroll 35s linear infinite;
}

.wm-weather-marquee:hover .wm-weather-marquee-track {
    animation-play-state: paused;
}

.wm-weather-marquee-track span {
    display: inline-block;
    padding-right: 50px;
}

@keyframes wm-weather-marquee-scroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

/* ==================================================
   Faculty page department-head thumbnail
   Theme's .wm-reviews-thums only floats the wrapper and
   never caps the <img> itself, so admin-uploaded photos
   of any resolution render at native size.
   ================================================== */

.wm-reviews-thums img {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: 100%;
}

/* ==================================================
   BACK TO TOP BUTTON
   Fixed circular button, hidden until the page is
   scrolled down; fills with the brand accent color
   while the page is being scrolled.
   ================================================== */
.wm-back-to-top {
    position: fixed;
    right: 30px;
    bottom: 30px;
    z-index: 999;

    width: 46px;
    height: 46px;
    padding: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    color: #ea9c0b;
    background-color: #ffffff;
    border: 2px solid #ea9c0b;
    border-radius: 50%;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.15);
    cursor: pointer;

    opacity: 0;
    visibility: hidden;
    transform: translateY(15px);
    transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s,
        background-color 0.25s ease, color 0.25s ease;
}

.wm-back-to-top i {
    font-size: 18px;
    line-height: 1;
}

.wm-back-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.wm-back-to-top:hover {
    color: #ffffff;
    background-color: #ea9c0b;
}

/* Filled state while the page is actively being scrolled */
.wm-back-to-top.is-scrolling {
    color: #ffffff;
    background-color: #ea9c0b;
}

@media (max-width: 767px) {
    .wm-back-to-top {
        right: 18px;
        bottom: 18px;
        width: 40px;
        height: 40px;
    }

    .wm-back-to-top i {
        font-size: 16px;
    }
}

/* ===== EXPLORE OUR CAMPUSES CARD — WHOLE-CARD LINK ===== */
/* Card is now a single <a> (or a plain <div> when a campus has no valid
   detail page) instead of three separate anchors, so it needs its own
   reset plus a visible keyboard-focus state. The "Read More" figcaption
   badge and the title are now <span>s inside that single link; extend the
   original anchor-only selectors from style.css so they keep their look. */
a.wm-ourprofessors-slider-layer {
    text-decoration: none;
    color: inherit;
    cursor: pointer;
}
.wm-ourprofessors-slider-layer figure figcaption span.wm-color-four {
    position: absolute;
    left: 50%;
    top: 0%;
    padding: 17px 32px 17px 27px;
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 600;
    background: url(../images/see-bg.png);
    background-repeat: no-repeat;
    background-position: right 0px;
    line-height: 1;
    margin: -22px 0px 0px -66px;
}
.wm-ourprofessors-slider-layer:hover figure figcaption span.wm-color-four {
    top: 50%;
}
a.wm-ourprofessors-slider-layer:focus-visible {
    outline: 3px solid #ea9c0b;
    outline-offset: 3px;
}
a.wm-ourprofessors-slider-layer:focus:not(:focus-visible) {
    outline: none;
}



/* =============================================================
   EduChamp login page — single-file stylesheet (scoped)
   -------------------------------------------------------------
   EVERY rule in this file is scoped to .auth-page, so nothing
   leaks into the rest of your site and nothing here can be
   clobbered by a global .btn / .row / body rule elsewhere.

   USAGE:  <body class="auth-page">  ...login markup...  </body>

   The class must sit on <body> (or on a full-height wrapper) —
   the layout uses 100vh for the left panel.

   Tokens live on .auth-page, not :root, so they cannot collide
   with a :root block in your custom.css. They are also prefixed
   --auth-* as belt and braces.

   RECOLOR THE WHOLE PAGE BY EDITING THE TOKEN BLOCK BELOW.
   ============================================================= */

.auth-page {
    /* Brand */
    --auth-primary:       #009959;   /* buttons, links, focused label, checkbox, underline */
    --auth-primary-hover: #007a47;   /* button :hover / :focus / :active */
    --auth-accent:        #e79800;   /* heading accent bar, logo sub-text */

    /* Left panel gradient */
    --auth-panel-from:    #0a3d2e;
    --auth-panel-via:     #145a32;
    --auth-panel-to:      #1e7c4a;

    /* Neutrals */
    --auth-heading:       #111111;
    --auth-text:          #505050;
    --auth-muted:         #0f192d;
    --auth-label:         #606060;
    --auth-field-border:  rgba(0, 0, 0, 0.2);
}


/* =============================================================
   1. BASE  (was: typography.css + the body rule)
   ============================================================= */

.auth-page,
.auth-page *,
.auth-page *::before,
.auth-page *::after { box-sizing: border-box; }

/* A rule that targets an element directly (e.g. `p { font-family: serif }`
   in your custom.css) beats a value INHERITED from an ancestor, whatever
   the specificity. So the font is re-asserted on every descendant rather
   than left to inherit from .auth-page — otherwise a bare element rule
   elsewhere on the site silently changes the typeface here. */
.auth-page,
.auth-page * { font-family: Rubik, sans-serif; }

.auth-page {
    margin: 0;
    padding: 0;
    background-color: #fff;
    background-size: cover;          /* only matters if you add a background-image */
    background-attachment: fixed;
    font-family: Rubik, sans-serif;
    font-size: 16px;
    font-weight: 400;
    color: var(--auth-text);
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.auth-page a         { color: #6f6f6f; text-decoration: none; outline: 0 none; }
.auth-page a:hover,
.auth-page a:focus   { text-decoration: none; outline: 0 none; color: #333333; }
.auth-page img       { border-style: none; height: auto; max-width: 100%; vertical-align: middle; }
/* `color: inherit` for the same reason as the font rule above — a bare
   `p { color: ... }` in another stylesheet would otherwise win. */
.auth-page p         { color: inherit; line-height: 28px; margin-top: 0; margin-bottom: 24px; }

.auth-page h1,
.auth-page h2,
.auth-page h3,
.auth-page h4,
.auth-page h5,
.auth-page h6 {
    color: var(--auth-heading);
    font-family: Rubik, sans-serif;
    margin-top: 0;
}
.auth-page h2 { font-size: 32px; line-height: 45px; margin-bottom: 25px; font-weight: 700; }
.auth-page h6 { font-size: 16px; line-height: 22px; margin-bottom: 10px; font-weight: 500; }


/* =============================================================
   2. LAYOUT UTILITIES  (the Bootstrap classes this page uses)
   -------------------------------------------------------------
   Bootstrap's .row carries -15px side margins meant to be
   cancelled by a .container's 15px padding. There is no such
   container here, so they would push the form past each edge and
   overflow on narrow screens. Every column here is full-width,
   so the gutter is dropped instead.
   ============================================================= */

.auth-page .row       { display: flex; flex-wrap: wrap; }
.auth-page .col-lg-12 { position: relative; flex: 0 0 100%; max-width: 100%; min-width: 0; }

.auth-page .d-flex    { display: flex; }
.auth-page .flex-fill { flex: 1 1 auto; }
.auth-page .ml-auto   { margin-left: auto; }

.auth-page .m-b30     { margin-bottom: 30px; }
.auth-page .m-r5      { margin-right: 5px; }
.auth-page .m-l5      { margin-left: 5px; }


/* =============================================================
   3. ACCOUNT SHELL  (was: style.css .account-*)
   ============================================================= */

.auth-page .account-form {
    display: flex;
    width: 100%;
    position: relative;
}

/* Left panel. Pure gradient — no background image. */
.auth-page .account-head {
    position: sticky;
    left: 0;
    top: 0;
    z-index: 1;
    width: 500px;
    min-width: 500px;
    height: 100vh;
    display: flex;
    align-items: center;      /* vertical centering — no margin-top hack needed */
    justify-content: center;
    text-align: center;
    background: linear-gradient(135deg,
                var(--auth-panel-from) 0%,
                var(--auth-panel-via)  60%,
                var(--auth-panel-to)   100%);
}

.auth-page .account-head a {
    display: block;
    width: 100%;
}

.auth-page .account-head img {
    width: 120px;
    height: auto;
    display: block;
    margin: 0 auto 16px;
}

.auth-page .account-form-inner {
    width: 100%;
    align-self: center;
}

.auth-page .account-container {
    max-width: 400px;
    margin: auto;
    padding: 30px 0;
}


/* ---------- Logo lockup inside the left panel ---------- */

.auth-page .logo-text-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.auth-page .logo-bold-text {
    font-weight: 700;
    font-size: 25px;
    color: #fff;
    margin: 0;
    line-height: 1.3;
}

.auth-page .logo-small-text {
    font-size: 18px;
    font-weight: 500;
    color: var(--auth-accent);
    opacity: 0.8;
    margin: 0;
    line-height: 1.4;
}


/* =============================================================
   4. HEADING BLOCK  (the accent bar)
   ============================================================= */

.auth-page .heading-bx { margin-bottom: 40px; }

.auth-page .heading-bx h1,
.auth-page .heading-bx h2,
.auth-page .heading-bx h3 { margin-top: 0; }

.auth-page .heading-bx h2 { font-size: 30px; }

.auth-page .heading-bx p {
    padding-top: 10px;
    font-size: 16px;
    color: var(--auth-muted);
}

.auth-page .contact-bx .heading-bx { margin-bottom: 30px; }

/* The vertical bar. `border-left` shorthand is required — `border-color`
   on its own sets neither width nor style, so nothing would be drawn. */
.auth-page .heading-bx.left .title-head {
    margin-top: 0;
    margin-bottom: 10px;
    line-height: 32px;
    padding-left: 10px;
    border-left: 5px solid var(--auth-accent);
}

.auth-page .heading-bx.left p {
    max-width: 500px;
    margin-bottom: 0;
}

.auth-page .title-head span { font-weight: 400; }

.auth-page .account-form .heading-bx p a {
    color: var(--auth-primary);
    text-decoration: underline;
    padding-bottom: 0;
}


/* =============================================================
   5. FORM FIELDS + FLOATING LABELS
   The `.focused` / `.filled` classes are applied by login.js
   ============================================================= */

.auth-page .form-group { margin-bottom: 1rem; }

.auth-page .form-control {
    display: block;
    width: 100%;
    height: 40px;
    padding: 9px 12px;
    font-size: 13px;
    line-height: 20px;
    font-family: inherit;
    color: var(--auth-text);
    background-color: #fff;
    border: 1px solid #e1e6eb;
    border-radius: 0;
    box-shadow: none;
    transition: all 0.2s linear;
}

.auth-page .form-control:focus {
    outline: 0;
    box-shadow: none;
}

.auth-page .contact-bx .input-group {
    display: block;
    position: relative;
    width: 100%;
}

.auth-page .contact-bx .input-group .form-control,
.auth-page .contact-bx .input-group label { width: 100%; }

.auth-page .contact-bx .input-group label {
    font-size: 14px;
    font-weight: 400;
    color: var(--auth-label);
    position: absolute;
    top: 10px;
    left: 0;
    margin: 0;
    pointer-events: none;
    transition: all 0.5s;
}

.auth-page .contact-bx .focused .input-group label {
    top: -8px;
    font-size: 10px;
    color: var(--auth-primary);
}

.auth-page .contact-bx .input-group .form-control {
    border-width: 0 0 1px 0;
    border-color: var(--auth-field-border);
    background-color: transparent;
    padding: 10px 0;
}

.auth-page .contact-bx .input-group .form-control:focus {
    border-color: var(--auth-primary);
    background-color: transparent;
    outline: none;
    box-shadow: none;
}

.auth-page .contact-bx .input-group textarea.form-control { height: 120px; }


/* =============================================================
   6. CUSTOM CHECKBOX  (Bootstrap 4 custom-control, distilled)
   ============================================================= */

.auth-page .custom-control {
    position: relative;
    display: inline-block;
    min-height: 1.5rem;
    padding-left: 30px;   /* 20px box + 10px gap */
}

.auth-page .custom-control-input {
    position: absolute;
    z-index: -1;
    opacity: 0;
}

.auth-page .custom-control-label {
    position: relative;
    margin-bottom: 0;
    vertical-align: middle;
    cursor: pointer;
}

.auth-page .custom-control-label::before,
.auth-page .custom-control-label::after {
    position: absolute;
    top: 2px;
    left: -30px;
    display: block;
    width: 20px;
    height: 20px;
    content: "";
}

.auth-page .custom-control-label::before {
    background-color: transparent;
    border: 2px solid var(--auth-primary);
    border-radius: 3px;
}

.auth-page .custom-control-label::after {
    background-repeat: no-repeat;
    background-position: center center;
    background-size: 50% 50%;
}

.auth-page .custom-checkbox .custom-control-input:checked ~ .custom-control-label::before {
    background-color: var(--auth-primary);
}

.auth-page .custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E");
}

.auth-page .custom-control-input:focus ~ .custom-control-label::before {
    box-shadow: 0 0 0 3px rgba(0, 153, 89, 0.25);
}


/* ---------- Remember me / Forgot password row ---------- */

.auth-page .account-container .form-forget {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.auth-page .account-container .form-forget .custom-control-label {
    font-weight: 400;
    margin-bottom: 0;
}


/* =============================================================
   7. BUTTONS
   ============================================================= */

.auth-page .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 100%;
    height: 48px;
    padding: 0 24px;
    font-family: inherit;
    font-size: 16px;
    font-weight: 500;
    line-height: 1;
    white-space: nowrap;
    vertical-align: middle;
    cursor: pointer;
    border: 1px solid transparent;
    border-radius: 4px;
    background-color: var(--auth-primary);
    color: #fff;
    transition: all 0.2s ease-in-out 0s;
}

.auth-page .btn:hover,
.auth-page .btn:focus,
.auth-page .btn:active {
    background-color: var(--auth-primary-hover);
    color: #fff;
    outline: 0;
}

.auth-page .account-container .btn.button-md { padding: 0 40px; }

/* Social buttons: inline SVG icon with the white divider rule */
.auth-page .btn .btn-icon {
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
    fill: currentColor;
    border-right: 1px solid #fff;
    box-sizing: content-box;
    padding-right: 10px;
    margin-right: 10px;
}


/* =============================================================
   8. RESPONSIVE — TABLET (max-width: 991px)
   ============================================================= */

@media (max-width: 991px) {
    .auth-page .account-form { flex-direction: column; }

    .auth-page .account-head {
        position: relative;
        width: 100%;
        min-width: 100%;
        height: auto;
        padding: 40px 20px 30px;
        top: auto;
        left: auto;
    }

    .auth-page .account-head img { width: 100px; }

    .auth-page .account-form-inner { width: 100%; padding: 30px 20px; }
    .auth-page .account-container  { max-width: 500px; padding: 20px 0; }

    .auth-page .logo-bold-text  { font-size: 22px; }
    .auth-page .logo-small-text { font-size: 16px; }

    .auth-page .heading-bx      { margin-bottom: 28px; }
    .auth-page .heading-bx h2   { font-size: 26px; }
}


/* =============================================================
   9. RESPONSIVE — MOBILE (max-width: 576px)
   ============================================================= */

@media (max-width: 576px) {
    .auth-page .account-head       { padding: 30px 15px 20px; }
    .auth-page .account-head img   { width: 80px; }

    .auth-page .account-form-inner { padding: 20px 15px; }
    .auth-page .account-container  { max-width: 100%; padding: 15px 0; }

    .auth-page .logo-bold-text  { font-size: 18px; }
    .auth-page .logo-small-text { font-size: 14px; }

    .auth-page .heading-bx      { margin-bottom: 20px; }
    .auth-page .heading-bx h2   { font-size: 22px; }
    .auth-page .heading-bx p    { font-size: 14px; }

    .auth-page .btn { font-size: 14px; height: 44px; padding: 0 16px; }
    .auth-page .account-container .btn.button-md { padding: 0 20px; }

    .auth-page .contact-bx .input-group label { font-size: 13px; }

    .auth-page .custom-control-label::before,
    .auth-page .custom-control-label::after { width: 16px; height: 16px; }
}

/* Login page heading — yellow accent bar in front of "Login to your Account" */
#login-heading .title-head {
    padding-left: 10px;
    border-left: 5px solid #e79800;
}
