/* Shared visual tokens with the Ziffy Technologies website at 127.0.0.1:8080. */
@font-face {
    font-family: "Inter";
    src: url("../fonts/inter/Inter-Regular.woff2") format("woff2");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}
@font-face {
    font-family: "Inter";
    src: url("../fonts/inter/Inter-Medium.woff2") format("woff2");
    font-style: normal;
    font-weight: 500;
    font-display: swap;
}
@font-face {
    font-family: "Inter";
    src: url("../fonts/inter/Inter-SemiBold.woff2") format("woff2");
    font-style: normal;
    font-weight: 600;
    font-display: swap;
}
@font-face {
    font-family: "Inter";
    src: url("../fonts/inter/Inter-Bold.woff2") format("woff2");
    font-style: normal;
    font-weight: 700 800;
    font-display: swap;
}
:root {
    --font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --ziffy-mint: #00bf8e;
    --ziffy-teal: #046764;
    --ziffy-navy: #012440;
    --ziffy-ink: #10242f;
    --ziffy-paper: #f5f5f5;
    --ziffy-surface: #ffffff;
    --ziffy-muted: #566b76;
    --ziffy-border: #e2e7e6;
    --primary-color: var(--ziffy-teal);
    --secondary-color: var(--ziffy-mint);
    --bs-primary: var(--ziffy-teal);
    --bs-primary-rgb: 4, 103, 100;
    --bs-secondary: var(--ziffy-mint);
    --bs-secondary-rgb: 0, 191, 142;
    --bs-body-color: var(--ziffy-ink);
    --bs-body-bg: var(--ziffy-paper);
    --bs-border-color: var(--ziffy-border);
    --bs-link-color: var(--ziffy-teal);
    --bs-link-hover-color: var(--ziffy-mint);
}

html { font-size: 15px; }
body, button, input, select, textarea, optgroup, option, .btn, .eBtn, .form-control,
p, a, span, li, label, small, strong, .dropdown-item, .accordion-button {
    font-family: var(--font-family) !important;
}
body {
    background: var(--ziffy-paper) !important;
    color: var(--ziffy-ink) !important;
    font-size: 1rem;
    line-height: 1.6;
}
p, li, label, small, .info, .reviews, .total, .text-muted {
    color: var(--ziffy-muted) !important;
}
strong, b, .name, .current, .nice-select, .form-control, .form-select,
.offcanvas, .dropdown-menu, .dropdown-item {
    color: var(--ziffy-ink) !important;
}
h1, h2, h3, h4, h5, h6, .heading-title, .section-title {
    font-family: var(--font-family) !important;
    color: var(--ziffy-navy) !important;
    font-weight: 600;
    letter-spacing: -0.025em;
    line-height: 1.15;
}
h1 { font-size: clamp(2rem, 3.2vw, 3.15rem); }
h2 { font-size: clamp(1.8rem, 2.8vw, 2.4rem); }
h3 { font-size: clamp(1.35rem, 1.8vw, 1.75rem); }
p, li, .form-control, .dropdown-item { font-size: 0.96rem; }
a { color: var(--ziffy-teal); }
a:hover, a:focus { color: var(--ziffy-mint); }

.header-area {
    position: relative;
    z-index: 1050;
    background: rgba(245, 245, 245, .96) !important;
    border-bottom: 1px solid var(--ziffy-border);
    box-shadow: none !important;
    backdrop-filter: blur(18px);
    overflow: visible !important;
}
.sub-header { display: none !important; }
.header-area .container { min-height: 68px; display: flex; align-items: center; }
.logo-image img.ziffy-brand-logo { width: 216px; height: auto; max-height: 40px; object-fit: contain; border-radius: 0 !important; }
.primary-menu > li > a { color: var(--ziffy-ink) !important; font-size: .84rem; font-weight: 600; }
.primary-menu > li > a.active, .primary-menu > li > a:hover { color: var(--ziffy-teal) !important; }
.eBtn.btn.gradient, .eBtn, .btn-primary, .btn-primary:hover, .btn-primary:focus,
.theme-btn1, .theme-btn1:hover, .gradient {
    background: var(--ziffy-mint) !important;
    border-color: var(--ziffy-mint) !important;
    color: #012440 !important;
    border-radius: 8px !important;
    font-weight: 700;
    box-shadow: none !important;
}
.btn-outline-primary, .border-btn1 {
    color: var(--ziffy-teal) !important;
    border-color: var(--ziffy-teal) !important;
    background: transparent !important;
    border-radius: 8px !important;
}
.btn-outline-primary:hover, .border-btn1:hover {
    color: #fff !important;
    background: var(--ziffy-teal) !important;
    border-color: var(--ziffy-teal) !important;
}
.cart-top-number, .badge, .page-item.active .page-link {
    color: var(--ziffy-navy) !important;
    background: var(--ziffy-mint) !important;
    border-color: var(--ziffy-mint) !important;
}
.highlight, .light, .new-price, .text-primary, .link-primary {
    color: var(--ziffy-mint) !important;
}
.bg-primary, .bg-secondary, .progress-bar {
    background-color: var(--ziffy-teal) !important;
}
.page-link { color: var(--ziffy-teal) !important; }
.page-link:hover { color: var(--ziffy-navy) !important; background: var(--ziffy-paper) !important; }

.card, .course-card, .Ecard, .g-card, .single-category, .accordion-item {
    border-color: var(--ziffy-border) !important;
    border-radius: 16px !important;
    box-shadow: none !important;
}
.card, .course-card, .Ecard, .g-card { background: var(--ziffy-surface); }
.form-control, .form-select, .nice-select {
    border-color: var(--ziffy-border) !important;
    border-radius: 10px !important;
    font-size: .94rem !important;
}
.form-control:focus, .form-select:focus { border-color: var(--ziffy-mint) !important; box-shadow: 0 0 0 .2rem rgba(0,191,142,.15) !important; }
.ziffy-policy-hero { padding: 88px 0 76px; background: var(--ziffy-navy); color: #fff; }
.ziffy-policy-hero h1 { max-width: 760px; margin: 8px 0 16px; color: #fff !important; font-size: clamp(2.4rem, 4.2vw, 4rem); }
.ziffy-policy-hero > .container > p:not(.ziffy-policy-kicker) { max-width: 620px; margin: 0; color: rgba(255,255,255,.82) !important; font-size: 1rem; }
.ziffy-policy-kicker { margin: 0; color: var(--ziffy-mint) !important; font-size: .74rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.ziffy-policy-section { padding: 72px 0 96px; background: var(--ziffy-paper); }
.ziffy-policy-content { max-width: 860px; padding: clamp(28px, 5vw, 56px); border: 1px solid var(--ziffy-border); border-radius: 18px; background: var(--ziffy-surface); }
.ziffy-policy-content h2, .ziffy-policy-content h3 { margin: 2rem 0 .65rem; color: var(--ziffy-navy); }
.ziffy-policy-content h2 { font-size: clamp(1.35rem, 2vw, 1.75rem); }
.ziffy-policy-content h3 { font-size: 1.08rem; }
.ziffy-policy-content p, .ziffy-policy-content li { color: var(--ziffy-muted); line-height: 1.7; }
.ziffy-policy-content ul { padding-left: 1.25rem; }
.ziffy-policy-content a { font-weight: 700; }
.ziffy-policy-updated { margin-bottom: 1.7rem; color: var(--ziffy-teal) !important; font-size: .82rem !important; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.footer-area, footer { background: var(--ziffy-navy) !important; color: rgba(255,255,255,.78); }
.ziffy-footer {
    margin-top: 0 !important;
    padding: 64px 0 0 !important;
    border-top: 4px solid var(--ziffy-mint);
}
.ziffy-footer-grid {
    display: grid;
    grid-template-columns: minmax(280px, 1.45fr) minmax(140px, .65fr) minmax(140px, .65fr) minmax(270px, 1.1fr);
    gap: clamp(32px, 4vw, 68px);
    align-items: start;
}
.ziffy-footer h2 {
    margin: 2px 0 22px;
    color: #fff !important;
    font-family: var(--font-family) !important;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.ziffy-footer p,
.ziffy-footer li {
    color: rgba(255, 255, 255, .68) !important;
}
.ziffy-footer a {
    color: rgba(255, 255, 255, .8) !important;
}
.ziffy-footer a:hover,
.ziffy-footer a:focus {
    color: var(--ziffy-mint) !important;
}
.ziffy-footer-logo-wrap {
    display: inline-flex;
    width: 208px;
    margin-bottom: 20px;
    padding: 9px 11px;
    border-radius: 10px;
    background: #fff;
}
.ziffy-footer-logo-wrap img {
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    object-fit: contain !important;
}
.ziffy-footer-brand > p {
    max-width: 420px;
    margin: 0 0 25px !important;
    font-size: .92rem !important;
    font-weight: 400 !important;
    line-height: 1.72 !important;
}
.ziffy-footer-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    align-items: center;
}
.ziffy-social-link {
    display: inline-flex !important;
    width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 10px;
    background: rgba(255, 255, 255, .06);
    font-size: 1rem;
}
.ziffy-footer-cta {
    display: inline-flex !important;
    min-height: 42px;
    padding: 0 17px;
    align-items: center;
    gap: 10px;
    border-radius: 9px;
    background: var(--ziffy-mint);
    color: var(--ziffy-navy) !important;
    font-size: .86rem;
    font-weight: 800;
}
.ziffy-footer-cta:hover,
.ziffy-footer-cta:focus {
    background: #fff;
    color: var(--ziffy-navy) !important;
}

.ziffy-footer .ziffy-footer-cta,
.ziffy-footer .ziffy-footer-cta:hover,
.ziffy-footer .ziffy-footer-cta:focus {
    color: var(--ziffy-navy) !important;
}
.ziffy-footer-column ul {
    display: grid;
    gap: 13px;
    margin: 0;
    padding: 0;
}
.ziffy-footer-column li {
    margin: 0;
}
.ziffy-footer-column a {
    font-size: .9rem;
}
.ziffy-footer-connect {
    min-width: 0;
}
.ziffy-contact-link {
    display: flex !important;
    margin-bottom: 12px;
    align-items: center;
    gap: 10px;
    font-size: .88rem;
    overflow-wrap: anywhere;
}
.ziffy-contact-link i {
    width: 18px;
    color: var(--ziffy-mint);
    text-align: center;
}
.ziffy-footer-connect > p {
    margin: 22px 0 13px;
    font-size: .85rem !important;
    line-height: 1.6;
}
.ziffy-newsletter-form {
    display: flex;
    overflow: hidden;
    min-height: 46px;
    border: 1px solid rgba(0, 191, 142, .65);
    border-radius: 10px;
    background: rgba(255, 255, 255, .05);
}
.ziffy-newsletter-form .form-control {
    min-width: 0;
    border: 0 !important;
    background: transparent !important;
    color: #fff !important;
    box-shadow: none !important;
}
.ziffy-newsletter-form .form-control::placeholder {
    color: rgba(255, 255, 255, .48);
}
.ziffy-newsletter-form button {
    flex: 0 0 auto;
    padding: 0 18px;
    border: 0;
    background: var(--ziffy-mint);
    color: var(--ziffy-navy);
    font-family: var(--font-family);
    font-size: .84rem;
    font-weight: 800;
}
.ziffy-footer-bottom {
    margin-top: 58px;
    border-top: 1px solid rgba(255, 255, 255, .13);
}
.ziffy-footer-bottom-inner {
    display: flex;
    min-height: 74px;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.ziffy-footer-bottom p {
    margin: 0 !important;
    color: rgba(255, 255, 255, .55) !important;
    font-size: .8rem !important;
}
.ziffy-footer-legal {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
}
.ziffy-footer-legal a {
    font-size: .8rem;
}
@media (max-width: 991.98px) {
    .ziffy-footer-grid {
        grid-template-columns: 1.35fr 1fr 1fr;
    }
    .ziffy-footer-connect {
        grid-column: 1 / -1;
        max-width: 540px;
    }
}
@media (max-width: 767.98px) {
    .ziffy-footer {
        margin-top: 0 !important;
        padding-top: 48px !important;
    }
    .ziffy-footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: 36px 24px;
    }
    .ziffy-footer-brand,
    .ziffy-footer-connect {
        grid-column: 1 / -1;
    }
    .ziffy-footer-bottom-inner {
        padding: 22px 0;
        flex-direction: column-reverse;
        align-items: flex-start;
    }
}
.ziffy-footer .fa-solid,
.ziffy-footer .fa-brands {
    font-family: "Font Awesome 6 Free" !important;
}
.ziffy-footer .fa-brands {
    font-family: "Font Awesome 6 Brands" !important;
    font-weight: 400;
}
.why-choose-section1 { margin: 0 0 80px !important; background-color: var(--ziffy-paper) !important; }
.why-choose-area1 { position: relative; z-index: 1; padding: 72px 0 !important; }
.why-choose-area1 > .title, .why-choose1-single .total, .why-choose1-single .info { font-family: var(--font-family) !important; }
.why-choose-area1 > .title { color: var(--ziffy-navy) !important; font-size: clamp(1.8rem, 2.8vw, 2.4rem) !important; letter-spacing: -.025em; }
.why-choose1-single .total { color: var(--ziffy-teal) !important; font-size: clamp(2.7rem, 5vw, 4.5rem) !important; letter-spacing: -.05em; }
.why-choose1-single .info { color: var(--ziffy-ink) !important; font-size: .94rem !important; }

/* Remove the original template's purple/blue decorative palette. */
.hero-banner1, .hero-area, .banner-area, .breadcrumb-area,
.faq-area, .testimonial-area, .blog-area, .category-area {
    background-color: var(--ziffy-paper) !important;
}
.course-card .title, .Ecard .title, .g-card .title,
.accordion-button, .dropdown-item:hover, .dropdown-item:focus {
    color: var(--ziffy-navy) !important;
}
.accordion-button:not(.collapsed) {
    color: var(--ziffy-navy) !important;
    background: var(--ziffy-paper) !important;
    box-shadow: none !important;
}
input:focus, select:focus, textarea:focus, button:focus-visible, a:focus-visible {
    border-color: var(--ziffy-mint) !important;
    outline-color: var(--ziffy-mint) !important;
}
.ziffy-page-breadcrumb {
    padding: 56px 0 !important;
    background:
        radial-gradient(circle at 80% 20%, rgba(0, 191, 142, .32), transparent 36%),
        linear-gradient(120deg, var(--ziffy-teal), #028878 58%, var(--ziffy-mint)) !important;
}
.ziffy-page-breadcrumb ul {
    display: flex;
    gap: 14px;
    margin: 0 !important;
}
.ziffy-page-breadcrumb li {
    display: flex;
    gap: 8px;
}
.ziffy-page-breadcrumb h4 {
    margin: 0 !important;
    font-size: clamp(2.3rem, 4.4vw, 3.75rem) !important;
    letter-spacing: -.045em;
}
.ziffy-page-breadcrumb h4,
.ziffy-page-breadcrumb p,
.ziffy-page-breadcrumb i {
    color: #fff !important;
}

.contact-card > a,
.down-text,
.color-facebook,
.color-facebook i,
.color-twitter,
.color-twitter i,
.color-linkedin,
.color-linkedin i,
.color-whatsapp,
.color-whatsapp i {
    color: var(--ziffy-teal) !important;
}

.contact-card stop:first-child {
    stop-color: var(--ziffy-teal) !important;
}

.contact-card stop:last-child {
    stop-color: var(--ziffy-mint) !important;
}

/* Keep the desktop header inside the viewport at common laptop widths. */
@media (min-width: 1200px) and (max-width: 1399.98px) {
    .header-area .logo-image img.ziffy-brand-logo { width: 178px; }
    .header-area .primary-menu > li > a { font-size: .78rem; }
    .header-area .primary-menu > li:last-child { padding-left: 1.25rem !important; }
    .header-area .col-xl-4 { width: 25%; }
    .header-area .Esearch_entry { margin-left: 0 !important; }
    .header-area .ms-lg-auto.col-auto { margin-left: 0 !important; }
}

/* Accessible Courses dropdown for hover, keyboard, click and touch. */
.main-menu-ul > li.have-mega-menu > .main-mega-menu {
    pointer-events: none;
}
.main-menu-ul > li.have-mega-menu:hover > .main-mega-menu,
.main-menu-ul > li.have-mega-menu:focus-within > .main-mega-menu,
.main-menu-ul > li.have-mega-menu.menu-open > .main-mega-menu {
    top: 48px;
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
}
.main-menu-ul > li.have-mega-menu.menu-open > .menu-parent-a::after {
    transform: rotate(180deg);
}
.main-menu-ul .main-mega-menu {
    border: 1px solid var(--ziffy-border);
    box-shadow: 0 18px 42px rgba(1, 36, 64, .14);
}
.main-menu-ul .mega_list li a:hover,
.main-menu-ul .mega_list li a:focus {
    color: var(--ziffy-teal) !important;
    background: rgba(0, 191, 142, .09) !important;
}
.main-menu-ul .main-mega-menu .child_category_menu {
    position: static;
    width: 100%;
    padding: 2px 0 6px 24px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    visibility: visible;
    opacity: 1;
}
.main-menu-ul .main-mega-menu .child_category_menu li {
    padding: 0;
}
.main-menu-ul .main-mega-menu .child_category_menu a {
    padding: 7px 10px;
    color: var(--ziffy-muted) !important;
    font-size: .82rem;
}

/* Professional hero treatment for the active Elegant homepage. */
.home1-banner-section {
    position: relative;
    overflow: hidden;
    padding: 56px 0 24px;
    background: var(--ziffy-paper) !important;
}
.home1-banner-section::before,
.home1-banner-section::after,
.home1-banner-image::before,
.home1-banner-image::after {
    display: none !important;
}
.home1-banner-section .row {
    min-height: 560px;
}
.home1-banner-content {
    max-width: 620px;
    padding-right: clamp(12px, 3vw, 48px);
}
.home1-banner-content .light {
    margin-bottom: 18px;
    color: var(--ziffy-mint) !important;
    font-size: .78rem !important;
    font-weight: 800 !important;
    letter-spacing: .13em;
    text-transform: uppercase;
}
.home1-banner-content .title {
    margin-bottom: 24px;
    color: var(--ziffy-navy) !important;
    font-size: clamp(2.75rem, 4.2vw, 4.65rem) !important;
    font-weight: 700 !important;
    line-height: 1.05 !important;
}
.home1-banner-content .info {
    max-width: 590px;
    margin-bottom: 30px !important;
    color: var(--ziffy-muted) !important;
    font-size: 1.02rem !important;
    line-height: 1.65;
}
.home1-banner-image {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--ziffy-border);
    border-radius: 20px;
    background: var(--ziffy-navy);
    box-shadow: 0 24px 60px rgba(1, 36, 64, .14);
}
.home1-banner-image img {
    display: block;
    width: 100% !important;
    aspect-ratio: 4 / 3;
    height: auto !important;
    object-fit: cover;
}

/* Course details: carry the Ziffy green identity through the full page. */
.breadcum-area {
    background:
        radial-gradient(circle at 82% 18%, rgba(0, 191, 142, .22), transparent 34%),
        linear-gradient(120deg, #f4fbf8 0%, #e1f7ee 48%, #c9f1e2 100%) !important;
}
.course-details .fa-star {
    color: #f4b400 !important;
}
.gradient-border {
    background: linear-gradient(135deg, var(--ziffy-teal) 0%, var(--ziffy-mint) 100%) !important;
}
.gradient-border .ps-sidebar {
    border-radius: 20px !important;
}
.gradient-border .hero-details img {
    width: 100% !important;
    aspect-ratio: 16 / 9;
    height: auto !important;
    object-fit: cover;
    border-radius: 14px !important;
}
.details-page-content .nav-bordered .nav-link.active,
.details-page-content .nav-bordered .nav-link:hover,
.details-page-content #more_description {
    color: var(--ziffy-teal) !important;
}
.details-page-content .nav-bordered .nav-link.active,
.details-page-content .nav-bordered .nav-link:hover {
    border-bottom-color: var(--ziffy-mint) !important;
}

.course-meta-grid {
    --bs-gutter-x: 1.5rem;
    --bs-gutter-y: 1.25rem;
}

.course-meta-item,
.course-meta-link {
    display: flex !important;
    min-height: 34px;
    align-items: center !important;
    gap: 8px;
    margin: 0 !important;
    color: var(--ziffy-ink) !important;
    font-size: .94rem;
    font-weight: 400 !important;
    line-height: 1.35;
}

.course-meta-link {
    width: 100%;
}

.course-meta-item > img,
.course-meta-link > img {
    flex: 0 0 auto;
    margin-right: 2px !important;
}

.course-meta-icon {
    display: inline-flex;
    width: 20px;
    flex: 0 0 20px;
    align-items: center;
    justify-content: center;
    color: var(--ziffy-ink) !important;
    font-size: 1rem;
    line-height: 1;
}

.course-rating-star,
.re-star .fa-star,
.rating-stars .fa-star,
.rating-stars .fa-regular {
    color: #f4b400 !important;
}

.course-meta-muted {
    color: var(--ziffy-muted) !important;
    font-size: .82rem;
    white-space: nowrap;
}

/* Clean, consistent course cards and 16:9 artwork. */
.course-card1-link {
    display: block;
    height: 100%;
    color: inherit !important;
}
.course-card1-inner {
    display: flex;
    height: 100%;
    min-height: 100%;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--ziffy-border) !important;
    border-radius: 16px !important;
    background: var(--ziffy-surface) !important;
    box-shadow: 0 14px 34px rgba(1, 36, 64, .07) !important;
    transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.course-card1-link:hover .course-card1-inner {
    transform: translateY(-5px);
    border-color: var(--ziffy-mint) !important;
    box-shadow: 0 20px 42px rgba(1, 36, 64, .12) !important;
}
.course-card1-inner > .banner {
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--ziffy-navy);
}
.course-card1-inner > .banner img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    transition: transform .3s ease;
}
.course-card1-link:hover .banner img {
    transform: scale(1.025);
}
.course-card1-details {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 22px !important;
}
.course-card1-details .title-info {
    flex: 1;
}
.course-card1-details .title {
    color: var(--ziffy-navy) !important;
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
}
.course-card1-details .info {
    display: -webkit-box;
    overflow: hidden;
    color: var(--ziffy-muted) !important;
    line-height: 1.55;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.courses-img .cText h4 {
    color: #ffffff !important;
    text-shadow: 0 1px 5px rgba(1, 36, 64, .72);
}

.courses-img .cText del {
    color: rgba(255, 255, 255, .82) !important;
}

/* Remove the template's remaining blue/purple UI accents. Gold is reserved for ratings. */
.menu-parent-a::after,
.menu-parent-a.active::after {
    border-top-color: var(--ziffy-teal) !important;
    border-bottom-color: var(--ziffy-teal) !important;
}

.layout.color svg stop,
svg stop[stop-color="#2F57EF"],
svg stop[stop-color="#C464FD"] {
    stop-color: var(--ziffy-navy) !important;
}

@media (max-width: 767px) {
    .home1-banner-section { padding-top: 28px; }
    .home1-banner-section .row { min-height: 0; }
    .home1-banner-image { margin-bottom: 32px; }
    .home1-banner-content { padding-right: 0; }
    .home1-banner-content .title { font-size: clamp(2.4rem, 11vw, 3.35rem) !important; }
}

@media (max-width: 991px) {
    .header-area .container { min-height: 62px; }
    .logo-image img.ziffy-brand-logo { width: 164px; }
    html { font-size: 16px; }
}

/* Match the restrained Inter hierarchy used by the main Ziffy website. */
html {
    font-size: 16px;
}

body,
p,
li,
label,
small,
input,
select,
textarea,
.form-control,
.dropdown-item {
    font-weight: 400 !important;
}

strong,
b {
    font-weight: 600 !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
.heading-title,
.section-title,
.g-title {
    font-weight: 600 !important;
}

.primary-menu > li > a {
    font-weight: 500 !important;
}

.primary-menu > li > a.active,
.primary-menu > li > a:hover {
    font-weight: 600 !important;
}

.btn,
.eBtn,
.theme-btn1,
.border-btn1,
button[type="submit"] {
    font-weight: 600 !important;
}

.sidebar .widget-title {
    font-weight: 500 !important;
}

.sidebar a,
.sidebar span,
.sidebar label,
.sidebar .category-link {
    font-weight: 400 !important;
}

.sidebar a.active,
.sidebar .active > a,
.sidebar .active > span {
    font-weight: 500 !important;
}

.sidebar .entry-widget .category.active > a,
.sidebar .entry-widget .category.active > a span,
.sidebar .entry-widget .category > a:hover,
.sidebar .entry-widget .category > a:hover span {
    color: var(--ziffy-primary, #04735e) !important;
}

.Ecard .entry-title h3,
.Ecard .entry-title h4,
.Ecard .entry-title h5,
.course-card1-details .title {
    font-size: 1.04rem !important;
    font-weight: 500 !important;
    letter-spacing: -.015em !important;
    line-height: 1.45 !important;
}

.Ecard .creator h5,
.Ecard .entry-details li,
.Ecard .entry-details span,
.Ecard .learn-more {
    font-weight: 400 !important;
}

.courses-img .cText h4 {
    font-size: 1.28rem !important;
    font-weight: 500 !important;
    letter-spacing: -.02em !important;
}

.courses-img .cText del {
    font-size: .84rem !important;
    font-weight: 400 !important;
}

/* Course catalogue: dependable view switcher and consistently aligned cards. */
.tab-list ul {
    gap: 4px !important;
    padding: 5px !important;
    border: 1px solid var(--ziffy-border, #dfe7e4) !important;
    background: rgba(255, 255, 255, .82) !important;
    box-shadow: 0 8px 24px rgba(15, 86, 70, .06);
}

.tab-list ul li,
.tab-list ul li.active {
    padding: 0 !important;
    background: transparent !important;
}

.tab-list a {
    display: inline-flex !important;
    min-width: 82px;
    min-height: 40px;
    padding: 9px 14px !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border-radius: 7px;
    color: var(--ziffy-ink, #172b3a) !important;
    background: transparent !important;
    font-size: .92rem;
    font-weight: 500 !important;
    line-height: 1;
    white-space: nowrap;
    transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
}

.tab-list li.active a,
.tab-list a:hover,
.tab-list a:focus-visible {
    color: #fff !important;
    background: var(--ziffy-primary, #00796b) !important;
    box-shadow: 0 6px 16px rgba(0, 121, 107, .18);
}

.tab-list a i {
    color: currentColor !important;
    font-size: .9rem;
}

.card.Ecard.eBar-card {
    width: 100%;
}

.card.Ecard.eBar-card .entry-details {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
}

.card.Ecard.eBar-card .entry-title {
    min-height: 3.75rem;
}

.card.Ecard.eBar-card .learn-more {
    margin-top: auto;
}

.single-feature {
    width: 100%;
}

@media (max-width: 767.98px) {
    .eNtry-breadcum .row.row-gap-3 > [class*="col-"] {
        width: 100%;
        flex: 0 0 100%;
        margin-right: 0 !important;
        margin-left: 0 !important;
    }

    .eNtry-breadcum .showing-text {
        margin-top: 0 !important;
    }

    .tab-list ul {
        float: none !important;
        width: 100%;
    }

    .tab-list ul li {
        flex: 1 1 50%;
    }

    .tab-list a {
        width: 100%;
        min-width: 0;
    }
}

.ziffy-policy-kicker,
.ziffy-policy-updated,
.ziffy-footer-kicker,
.ziffy-footer-title {
    font-weight: 600 !important;
}

/* Mobile header: one compact row with dependable touch targets and a branded drawer. */
@media (max-width: 991.98px) {
    body.ziffy-mobile-drawer-open {
        overflow: hidden !important;
        touch-action: none;
    }

    .header-area {
        position: sticky !important;
        top: 0;
        z-index: 1070;
        padding: 8px 0 !important;
        background: rgba(255, 255, 255, .98) !important;
        border-bottom: 1px solid var(--ziffy-border) !important;
        box-shadow: 0 8px 24px rgba(1, 36, 64, .07) !important;
        backdrop-filter: blur(16px);
    }

    .header-area > .container {
        display: block !important;
        min-height: 52px !important;
        padding-right: 14px;
        padding-left: 14px;
    }

    .header-area > .container > .row {
        width: 100%;
        min-height: 52px;
        margin: 0;
        flex-wrap: nowrap !important;
        align-items: center;
        gap: 6px;
    }

    .header-area > .container > .row > [class*="col-"] {
        padding-right: 0;
        padding-left: 0;
    }

    .header-area .header-menu {
        display: none !important;
    }

    .header-area .logo-image {
        display: flex;
        align-items: center;
        line-height: 1;
    }

    .header-area .logo-image img.ziffy-brand-logo {
        display: block;
        width: clamp(126px, 36vw, 154px) !important;
        height: auto !important;
        max-height: 38px !important;
        object-fit: contain !important;
    }

    .header-area > .container > .row > .col-sm-5 {
        width: auto;
        flex: 0 0 auto;
        margin-left: auto !important;
    }

    /* Bootstrap shows the desktop form from the sm breakpoint onward. At the
       mobile-header breakpoint that created both a full search field and a
       second search button in the same column. Keep only the compact control. */
    .header-area .Esearch_entry {
        display: none !important;
    }

    .header-area > .container > .row > .ms-lg-auto.col-auto {
        width: auto;
        flex: 0 0 auto;
        margin-left: 0 !important;
    }

    .header-area .primary-end,
    .header-area .primary-end > .d-flex {
        gap: 6px !important;
    }

    .ziffy-mobile-icon-button {
        display: inline-flex !important;
        width: 42px !important;
        height: 42px !important;
        min-width: 42px;
        padding: 0 !important;
        align-items: center;
        justify-content: center;
        color: var(--ziffy-navy) !important;
        background: #ffffff !important;
        border: 1px solid var(--ziffy-border) !important;
        border-radius: 12px !important;
        box-shadow: none !important;
        line-height: 1 !important;
        transition: border-color .2s ease, background-color .2s ease, color .2s ease;
    }

    .ziffy-mobile-icon-button:hover,
    .ziffy-mobile-icon-button:focus-visible,
    .ziffy-mobile-icon-button[aria-expanded="true"] {
        color: #ffffff !important;
        background: var(--ziffy-teal) !important;
        border-color: var(--ziffy-teal) !important;
        outline: 3px solid rgba(0, 191, 142, .18);
        outline-offset: 1px;
    }

    .ziffy-mobile-icon-button i {
        margin: 0 !important;
        font-size: 1rem;
        line-height: 1;
    }

    .header-area .primary-end a[href*="/cart"] {
        display: inline-flex;
        width: 42px;
        height: 42px;
        min-width: 42px;
        margin: 0 !important;
        align-items: center;
        justify-content: center;
        background: #ffffff;
        border: 1px solid var(--ziffy-border);
        border-radius: 12px;
    }

    .header-area .primary-end a[href*="/cart"] svg {
        width: 21px;
        height: 21px;
    }

    .header-area .cart-top-number {
        top: -6px;
        right: -5px;
        min-width: 18px;
        height: 18px;
        padding: 0 4px;
        border: 2px solid #ffffff !important;
        font-size: .62rem;
        line-height: 14px;
    }

    .floating-searchbar {
        display: inline-flex !important;
        align-items: center;
    }

    .floating-searchbar > form.ziffy-mobile-search-form {
        position: fixed !important;
        top: 70px !important;
        right: 12px !important;
        left: 12px !important;
        z-index: 1090 !important;
        width: auto !important;
        margin: 8px 0 0 !important;
        padding: 8px !important;
        gap: 6px;
        align-items: center;
        background: #ffffff;
        border: 1px solid var(--ziffy-border);
        border-radius: 14px;
        box-shadow: 0 18px 42px rgba(1, 36, 64, .16);
        transform: translateY(-8px);
        visibility: hidden;
        opacity: 0;
        pointer-events: none;
        transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
    }

    .floating-searchbar > form.ziffy-mobile-search-form.show {
        margin-top: 8px !important;
        transform: translateY(0);
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
    }

    .ziffy-mobile-search-form .form-control {
        height: 44px;
        min-width: 0;
        padding: 0 44px 0 14px;
        color: var(--ziffy-ink) !important;
        background: var(--ziffy-paper) !important;
        border: 1px solid var(--ziffy-border) !important;
        border-radius: 10px !important;
    }

    .floating-searchbar form.ziffy-mobile-search-form > button {
        position: absolute;
        top: 10px;
        right: 10px;
        width: 40px;
        height: 40px;
        margin: 0;
        color: #ffffff;
        background: var(--ziffy-teal) !important;
        border: 0;
        border-radius: 9px;
    }

    .ziffy-mobile-drawer.offcanvas {
        display: block !important;
        position: fixed !important;
        inset: 0 auto 0 0 !important;
        z-index: 1095 !important;
        width: min(88vw, 360px) !important;
        height: 100vh !important;
        height: 100dvh !important;
        visibility: hidden;
        color: var(--ziffy-ink) !important;
        background: #ffffff !important;
        border-right: 0 !important;
        box-shadow: 24px 0 60px rgba(1, 36, 64, .2);
        transform: translateX(-100%) !important;
        transition: transform .24s ease, visibility .24s ease !important;
    }

    .ziffy-mobile-drawer.offcanvas.show {
        visibility: visible !important;
        transform: translateX(0) !important;
    }

    .ziffy-mobile-drawer .offcanvas-header {
        min-height: 72px;
        padding: 14px 18px !important;
        align-items: center;
        border-bottom: 1px solid var(--ziffy-border);
    }

    .ziffy-mobile-drawer-brand {
        display: inline-flex;
        align-items: center;
    }

    .ziffy-mobile-drawer-brand img {
        display: block;
        width: 188px;
        height: auto;
        max-height: 42px;
        object-fit: contain;
    }

    .ziffy-mobile-drawer .ziffy-mobile-drawer-close {
        position: static !important;
        width: 40px !important;
        height: 40px !important;
        margin: 0 0 0 auto !important;
        padding: 0 !important;
        background-color: var(--ziffy-paper) !important;
        border: 1px solid var(--ziffy-border) !important;
        border-radius: 12px !important;
        opacity: 1;
        box-shadow: none !important;
    }

    .ziffy-mobile-drawer .offcanvas-body {
        padding: 12px 18px 28px !important;
        overscroll-behavior: contain;
    }

    .ziffy-mobile-drawer .off-menu > .mt-3 {
        margin-top: 0 !important;
    }

    .ziffy-mobile-drawer .btn-toggle,
    .ziffy-mobile-drawer .btn-toggle-list {
        min-height: 48px;
        margin-bottom: 4px;
        padding: 11px 12px !important;
        justify-content: flex-start;
        color: var(--ziffy-ink) !important;
        background: transparent !important;
        border-radius: 10px !important;
        font-size: .95rem !important;
        font-weight: 500 !important;
        text-align: left;
    }

    .ziffy-mobile-drawer .btn-toggle:hover,
    .ziffy-mobile-drawer .btn-toggle:focus-visible,
    .ziffy-mobile-drawer .btn-toggle-list:hover,
    .ziffy-mobile-drawer .btn-toggle-list:focus-visible,
    .ziffy-mobile-drawer .btn-toggle[aria-expanded="true"] {
        color: var(--ziffy-teal) !important;
        background: rgba(0, 191, 142, .09) !important;
    }

    .ziffy-mobile-drawer .ziffy-mobile-courses-toggle .icons {
        transition: transform .2s ease;
    }

    .ziffy-mobile-drawer .ziffy-mobile-courses-toggle[aria-expanded="true"] .icons {
        transform: rotate(180deg);
    }

    .ziffy-mobile-drawer .btn-toggle-nav {
        margin: 2px 0 8px 10px;
        padding: 5px !important;
        background: var(--ziffy-paper) !important;
        border-left: 2px solid var(--ziffy-mint);
        border-radius: 0 10px 10px 0;
    }

    .ziffy-mobile-drawer .btn-toggle-nav li {
        margin: 0;
    }

    .ziffy-mobile-drawer .btn-toggle-nav a {
        display: block;
        color: var(--ziffy-muted) !important;
        border-radius: 8px;
        font-size: .88rem;
        line-height: 1.35;
    }

    .ziffy-mobile-drawer .btn-toggle-nav a:hover,
    .ziffy-mobile-drawer .btn-toggle-nav a:focus {
        color: var(--ziffy-teal) !important;
        background: #ffffff;
    }

    .ziffy-mobile-drawer .btn-off {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px;
        margin: 20px 0 0;
    }

    .ziffy-mobile-drawer .btn-off .eBtn {
        min-height: 46px;
        margin: 0 !important;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .offcanvas-backdrop.show {
        z-index: 1085 !important;
        background: rgba(2, 47, 42, .76) !important;
        opacity: 1 !important;
        backdrop-filter: blur(3px);
    }

    .sidebar .overlay-content.show-more > p:last-child,
    .sidebar .overlay-content.show-less > p:last-child {
        right: 0;
        left: 0;
        width: auto;
        margin: 0;
        padding: 18px 0 4px;
        background: linear-gradient(180deg, rgba(255, 255, 255, 0), #ffffff 55%);
    }

    .sidebar .overlay-content .overlay-action {
        display: inline-flex;
        min-height: 36px;
        padding: 8px 10px;
        align-items: center;
        color: var(--ziffy-primary) !important;
        background: #ffffff;
        border: 1px solid var(--ziffy-border);
        border-radius: 8px;
    }
}

@media (max-width: 379.98px) {
    .header-area > .container {
        padding-right: 10px;
        padding-left: 10px;
    }

    .header-area .logo-image img.ziffy-brand-logo {
        width: 118px !important;
    }

    .ziffy-mobile-icon-button,
    .header-area .primary-end a[href*="/cart"] {
        width: 38px !important;
        height: 38px !important;
        min-width: 38px;
        border-radius: 10px !important;
    }

    .header-area .primary-end,
    .header-area .primary-end > .d-flex {
        gap: 4px !important;
    }
}
