/* =========================================================
   01. ROOT / BASE / GLOBAL
========================================================= */
body{
    font-family:'Inter',sans-serif;
    color:#1f2937;
    background:#ffffff;
}

img{
    max-width:100%;
    display:block;
}

a{
    text-decoration:none;
}

.section-block{
    padding:90px 0;
}

.section-title{
    font-size:38px;
    font-weight:800;
    margin-bottom:14px;
    color:#111827;
}

.section-subtitle{
    font-size:16px;
    color:#6b7280;
    margin-bottom:40px;
}

.section-mini-badge{
    display:inline-block;
    padding:8px 16px;
    border-radius:999px;
    background:var(--primary-light);
    color:var(--primary);
    font-size:13px;
    font-weight:700;
    margin-bottom:16px;
}

.btn-premium{
    background:linear-gradient(90deg,var(--primary),var(--secondary));
    color:#fff !important;
    border:none;
    border-radius:999px;
    padding:12px 22px;
    font-weight:700;
    box-shadow:0 10px 25px rgba(0,0,0,.12);
    transition:.3s ease;
}

.btn-premium:hover,
.btn-premium:focus,
.btn-premium:active{
    color:#fff !important;
    opacity:.95;
    transform:translateY(-1px);
}


.section-block.bg-light{
    background: linear-gradient(
        135deg,
        var(--primary-light),
        #ffffff 50%,
        var(--secondary-light)
    ) !important;
}

/* =========================================================
   02. TOPBAR
========================================================= */
.topbar{
    background:linear-gradient(90deg,var(--primary),var(--secondary));
    color:#fff;
    font-size:14px;
    padding:10px 0;
}

.topbar-left,
.topbar-right{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
}

/* =========================================================
   03. HEADER / NAVBAR
========================================================= */
.main-navbar{
    background:#fff;
    box-shadow:0 10px 30px rgba(0,0,0,.06);
    position:sticky;
    top:0;
    z-index:999;
}

.site-logo{
    width:56px;
    height:56px;
    object-fit:contain;
    border-radius:12px;
    background:#fff;
}

.brand-title{
    font-size:20px;
    font-weight:800;
    line-height:1.1;
    color:#111827;
}

.brand-subtitle{
    font-size:12px;
    color:#6b7280;
}

.navbar .nav-link{
    font-weight:600;
    color:#111827 !important;
    padding:12px 14px !important;
}

.navbar .dropdown-menu{
    border:none;
    border-radius:18px;
    box-shadow:0 18px 40px rgba(0,0,0,.10);
    padding:10px;
}

.navbar .dropdown-item{
    border-radius:12px;
    padding:10px 14px;
    font-weight:500;
}

.navbar .dropdown-item:hover{
    background:rgba(var(--primary-rgb), 0.04);
    color:var(--primary);
}



/* =========================================================
   04. PREMIUM SLIDER SECTION
========================================================= */
.premium-slider-section{
    position:relative;
    overflow:hidden;
    background:linear-gradient(135deg,
    color-mix(in srgb, var(--primary) 10%, #fff),
    #ffffff 50%,
    color-mix(in srgb, var(--secondary) 10%, #fff)
	);
}

.premium-slide-wrap{
    min-height:720px;
    display:flex;
    align-items:center;
    padding:80px 0;
}

.premium-slide-content{
    position:relative;
    z-index:2;
}

.premium-slide-badge{
    display:inline-block;
    padding:9px 18px;
    border-radius:999px;
    background:var(--primary-light);
    color:var(--primary);
    font-size:13px;
    font-weight:700;
    margin-bottom:18px;
}

.premium-slide-title{
    font-size:58px;
    line-height:1.08;
    font-weight:800;
    color:#111827;
    margin-bottom:20px;
}

.premium-slide-text{
    font-size:18px;
    color:#4b5563;
    line-height:1.9;
    margin-bottom:30px;
    max-width:620px;
}

.premium-slide-buttons{
    margin-top:10px;
}

.btn-premium-outline{
    background:#fff;
    color:#111827;
    border:1px solid #d1d5db;
    border-radius:999px;
    padding:12px 22px;
    font-weight:700;
    box-shadow:0 10px 25px rgba(0,0,0,.06);
    transition:.3s ease;
}

.btn-premium-outline:hover{
    color:var(--primary);
    border-color:var(--primary);
    transform:translateY(-1px);
}

.premium-slide-image-wrap{
    position:relative;
}

.premium-slide-image{
    width:100%;
    max-height:560px;
    object-fit:cover;
    border-radius:32px;
    box-shadow:0 25px 80px rgba(0,0,0,.10);
}

.premium-slide-placeholder{
    width:100%;
    min-height:540px;
    border-radius:32px;
    background:linear-gradient(135deg,var(--primary-light),var(--secondary-light));
    box-shadow:0 25px 80px rgba(0,0,0,.10);
    color:var(--primary);
    font-size:72px;
}

.premium-slide-placeholder h4{
    color:#111827;
    font-weight:800;
}

.premium-slider-indicators{
    margin-bottom:28px;
}

.premium-slider-indicators [data-bs-target]{
    width:12px;
    height:12px;
    border-radius:50%;
    border:0;
    background-color:rgba(17,24,39,.28);
    margin:0 5px;
}

.premium-slider-indicators .active{
    background-color:var(--primary);
}

.premium-slider-control{
    width:52px;
}

.premium-slider-control .carousel-control-prev-icon,
.premium-slider-control .carousel-control-next-icon{
    background-color:rgba(17,24,39,.65);
    border-radius:50%;
    width:44px;
    height:44px;
    background-size:18px 18px;
}

@media (max-width:1199px){
    .premium-slide-title{
        font-size:50px;
    }
}

@media (max-width:991px){
    .premium-slide-wrap{
        min-height:auto;
        padding:70px 0;
    }

    .premium-slide-title{
        font-size:40px;
    }

    .premium-slide-image{
        max-height:420px;
    }

    .premium-slide-placeholder{
        min-height:380px;
        font-size:56px;
    }
}

@media (max-width:767px){
    .premium-slide-wrap{
        padding:55px 0;
    }

    .premium-slide-title{
        font-size:30px;
    }

    .premium-slide-text{
        font-size:16px;
    }

    .premium-slide-image{
        max-height:300px;
        border-radius:22px;
    }

    .premium-slide-placeholder{
        min-height:260px;
        border-radius:22px;
        font-size:42px;
    }

    .premium-slider-control{
        display:none;
    }
}


/* =========================================================
   04. HERO SECTION
========================================================= */
.hero-section{
    position:relative;
    padding:100px 0;
    background:linear-gradient(135deg,
    color-mix(in srgb, var(--primary) 10%, #fff),
    #ffffff 50%,
    color-mix(in srgb, var(--secondary) 10%, #fff)
	);
    overflow:hidden;
}

.hero-badge{
    display:inline-block;
    padding:8px 16px;
    border-radius:999px;
    background:var(--primary-light);
    color:var(--primary);
    font-weight:700;
    font-size:13px;
    margin-bottom:18px;
}

.hero-title{
    font-size:52px;
    line-height:1.1;
    font-weight:800;
    color:#111827;
    margin-bottom:20px;
}

.hero-text{
    font-size:18px;
    color:#4b5563;
    margin-bottom:28px;
}

.hero-card{
    background:#fff;
    border-radius:24px;
    padding:30px;
    box-shadow:0 20px 60px rgba(0,0,0,.08);
}

/* =========================================================
   05. ABOUT SECTION
========================================================= */
.about-image-wrap{
    position:relative;
}

.about-main-image{
    width:100%;
    border-radius:28px;
    box-shadow:0 20px 60px rgba(0,0,0,.08);
    object-fit:cover;
}

.about-image-placeholder{
    min-height:420px;
    border-radius:28px;
    background:linear-gradient(135deg,
        color-mix(in srgb, var(--primary) 15%, #fff),
        color-mix(in srgb, var(--secondary) 15%, #fff)
    );
    box-shadow:0 20px 60px rgba(0,0,0,.08);
    font-size:28px;
    font-weight:800;
    color:#111827;
    text-align:center;
    padding:20px;
}

.about-content-text{
    color:#4b5563;
    line-height:1.9;
    font-size:16px;
}

.about-feature-box{
    display:flex;
    gap:14px;
    align-items:flex-start;
    background:#fff;
    padding:18px;
    border-radius:18px;
    box-shadow:0 10px 30px rgba(0,0,0,.05);
    height:100%;
}

.about-feature-box i{
    font-size:22px;
    color:var(--primary);
    margin-top:4px;
}

.about-feature-box h6{
    font-weight:800;
    margin-bottom:6px;
    color:#111827;
}

.about-feature-box p{
    margin:0;
    color:#6b7280;
    font-size:14px;
}

/* =========================================================
   06. COURSES SECTION
========================================================= */
.course-card{
    background:#fff;
    border-radius:22px;
    overflow:hidden;
    box-shadow:0 12px 35px rgba(0,0,0,.07);
    transition:.3s ease;
    height:100%;
}

.course-card:hover{
    transform:translateY(-6px);
}

.course-card img{
    width:100%;
    height:220px;
    object-fit:cover;
}

.course-card-body{
    padding:22px;
}

.course-image-placeholder{
    width:100%;
    height:220px;
    background:linear-gradient(135deg,var(--primary-light),var(--secondary-light));
    color:var(--primary);
    font-size:42px;
}

/* =========================================================
   07. DIRECTOR MESSAGE SECTION
========================================================= */
.director-card{
    background:#fff;
    border-radius:28px;
    overflow:hidden;
    box-shadow:0 16px 45px rgba(0,0,0,.08);
}

.director-image{
    width:100%;
    height:420px;
    object-fit:cover;
}

.director-image-placeholder{
    width:100%;
    height:420px;
    background:linear-gradient(135deg,var(--primary-light),#f8fafc);
    color:var(--primary);
    font-size:70px;
}

.director-meta{
    padding:24px;
    text-align:center;
}

.director-meta h4{
    font-weight:800;
    margin-bottom:8px;
    color:#111827;
}

.director-meta p{
    margin:0;
    color:#6b7280;
}

.director-message-box{
    position:relative;
    background:#fff;
    border-radius:26px;
    padding:36px;
    box-shadow:0 15px 45px rgba(0,0,0,.06);
}

.quote-icon{
    position:absolute;
    top:20px;
    right:24px;
    font-size:34px;
    color:rgba(var(--primary-rgb), .15);
}

/* ================================
   CKEDITOR CONTENT SUPPORT
================================ */
.director-message-content{
    color:#374151;
    line-height:1.95;
    font-size:16px;
}

/* Paragraph */
.director-message-content p{
    margin-bottom:16px;
}

/* Lists */
.director-message-content ul,
.director-message-content ol{
    margin:0 0 18px;
    padding-left:22px;
}

.director-message-content li{
    margin-bottom:8px;
}

/* Links */
.director-message-content a{
    color:var(--primary);
    font-weight:600;
    text-decoration:none;
}

.director-message-content a:hover{
    text-decoration:underline;
}

/* Bold / Italic */
.director-message-content strong{
    font-weight:700;
    color:#111827;
}

.director-message-content em{
    font-style:italic;
}

/* Blockquote */
.director-message-content blockquote{
    margin:20px 0;
    padding:14px 18px;
    border-left:4px solid var(--primary);
    background:rgba(var(--primary-rgb), .06);
    border-radius:10px;
    color:#374151;
    font-style:italic;
}

/* Headings inside editor */
.director-message-content h1,
.director-message-content h2,
.director-message-content h3,
.director-message-content h4,
.director-message-content h5,
.director-message-content h6{
    color:#111827;
    font-weight:800;
    line-height:1.35;
    margin-top:18px;
    margin-bottom:10px;
}

.director-message-content h1{ font-size:32px; }
.director-message-content h2{ font-size:28px; }
.director-message-content h3{ font-size:24px; }
.director-message-content h4{ font-size:20px; }
.director-message-content h5{ font-size:18px; }
.director-message-content h6{ font-size:16px; }

/* Responsive */
@media (max-width:767px){

    .director-image,
    .director-image-placeholder{
        height:300px;
    }

    .director-message-box{
        padding:24px;
    }

    .director-message-content{
        font-size:15px;
        line-height:1.85;
    }

    .director-message-content h1{ font-size:28px; }
    .director-message-content h2{ font-size:24px; }
    .director-message-content h3{ font-size:21px; }
    .director-message-content h4{ font-size:18px; }
}

/* =========================================================
   08. IMAGE GALLERY SECTION
========================================================= */
.image-gallery-section .gallery-block-title{
    font-size:28px;
    font-weight:800;
    color:#111827;
}

.image-gallery-section .gallery-block-line{
    display:block;
    width:90px;
    height:4px;
    border-radius:999px;
    background:linear-gradient(90deg,var(--primary),var(--secondary));
}

.image-gallery-section .image-gallery-card{
    position:relative;
    border-radius:24px;
    overflow:hidden;
    box-shadow:0 12px 35px rgba(0,0,0,.07);
    background:#fff;
    height:100%;
    border:1px solid rgba(15,23,42,.06);
    transition:transform .28s ease, box-shadow .28s ease;
}

.image-gallery-section .image-gallery-card:hover{
    transform:translateY(-4px);
    box-shadow:0 18px 42px rgba(0,0,0,.11);
}

.image-gallery-section .gallery-image-link{
    position:relative;
    display:block;
    overflow:hidden;
    border-radius:24px;
    cursor:pointer;
    background:rgba(var(--primary-rgb), 0.04);
    text-decoration:none;
}

.image-gallery-section .gallery-image-link img{
    width:100%;
    height:260px;
    object-fit:contain;   /* full image visible */
    object-position:center;
    display:block;
    transition:transform .45s ease;
    background:rgba(var(--primary-rgb), 0.04);
    padding:8px;
}

.image-gallery-section .gallery-image-link:hover img{
    transform:scale(1.04);
}

.image-gallery-section .gallery-overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,rgba(15,23,42,.04),rgba(15,23,42,.42));
    display:flex;
    align-items:center;
    justify-content:center;
    opacity:0;
    transition:.35s ease;
}

.image-gallery-section .gallery-overlay i{
    width:58px;
    height:58px;
    border-radius:50%;
    background:#fff;
    color:var(--primary);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:20px;
    box-shadow:0 12px 25px rgba(0,0,0,.15);
    transform:scale(.9);
    transition:.3s ease;
}

.image-gallery-section .gallery-image-link:hover .gallery-overlay{
    opacity:1;
}

.image-gallery-section .gallery-image-link:hover .gallery-overlay i{
    transform:scale(1);
}

.image-gallery-section .image-gallery-placeholder{
    width:100%;
    height:260px;
    background:linear-gradient(135deg,var(--primary-light),var(--secondary-light));
    font-size:44px;
    color:var(--primary);
    border-radius:24px;
}

/* ===========================
   ZOOM MODAL / LIGHTBOX
=========================== */
.gallery-zoom-modal{
    position:fixed;
    inset:0;
    z-index:99999;
    background:rgba(2,6,23,.88);
    display:none;
    align-items:center;
    justify-content:center;
    padding:30px;
}

.gallery-zoom-modal.active{
    display:flex;
}

.gallery-zoom-backdrop{
    position:absolute;
    inset:0;
}

.gallery-zoom-dialog{
    position:relative;
    z-index:2;
    max-width:min(1100px, 96vw);
    max-height:90vh;
    width:auto;
    display:flex;
    align-items:center;
    justify-content:center;
    animation:galleryZoomIn .22s ease;
}

.gallery-zoom-image{
    max-width:100%;
    max-height:90vh;
    width:auto;
    height:auto;
    object-fit:contain;
    border-radius:18px;
    background:#fff;
    padding:10px;
    box-shadow:0 20px 60px rgba(0,0,0,.28);
}

.gallery-zoom-close{
    position:absolute;
    top:-16px;
    right:-16px;
    width:46px;
    height:46px;
    border:none;
    border-radius:50%;
    background:#fff;
    color:#111827;
    font-size:20px;
    font-weight:700;
    box-shadow:0 12px 25px rgba(0,0,0,.18);
    cursor:pointer;
    z-index:3;
}

.gallery-zoom-close:hover{
    background:#f3f4f6;
}

@keyframes galleryZoomIn{
    from{
        opacity:0;
        transform:scale(.94);
    }
    to{
        opacity:1;
        transform:scale(1);
    }
}

body.gallery-modal-open{
    overflow:hidden;
}

@media (max-width: 991.98px){
    .image-gallery-section .gallery-image-link img,
    .image-gallery-section .image-gallery-placeholder{
        height:240px;
    }
}

@media (max-width: 767.98px){
    .image-gallery-section .gallery-image-link img,
    .image-gallery-section .image-gallery-placeholder{
        height:220px;
    }

    .gallery-zoom-modal{
        padding:16px;
    }

    .gallery-zoom-close{
        top:-10px;
        right:-10px;
        width:40px;
        height:40px;
        font-size:18px;
    }
}

/* =========================================================
   09. VIDEO GALLERY SECTION
========================================================= */
.video-gallery-section .gallery-block-title{
    font-size:28px;
    font-weight:800;
    color:#111827;
}

.video-gallery-section .gallery-block-line{
    display:block;
    width:90px;
    height:4px;
    border-radius:999px;
    background:linear-gradient(90deg,var(--primary),var(--secondary));
}

.video-card{
    background:#fff;
    border-radius:24px;
    overflow:hidden;
    box-shadow:0 12px 35px rgba(0,0,0,.07);
    height:100%;
}

.video-frame-wrap{
    position:relative;
    width:100%;
    padding-top:56.25%;
    background:#000;
    overflow:hidden;
}

.video-frame-wrap iframe,
.video-frame-wrap video{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    border:0;
}

.direct-video-wrap video{
    object-fit:cover;
    background:#000;
}

.video-fallback-card{
    min-height:320px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:30px;
    background:linear-gradient(135deg,var(--primary-light),var(--secondary-light));
}

.video-fallback-icon{
    width:78px;
    height:78px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg,var(--primary),var(--secondary));
    color:#fff;
    font-size:30px;
    margin-bottom:18px;
    box-shadow:0 14px 30px rgba(0,0,0,.12);
}

.video-fallback-card h5{
    font-weight:800;
    margin-bottom:10px;
    color:#111827;
}

.video-fallback-card p{
    color:#6b7280;
    margin-bottom:18px;
    line-height:1.7;
}

/* =========================================================
   10. FAQ SECTION
========================================================= */
.faq-premium-wrap{
    max-width:1000px;
    margin:0 auto;
}

.custom-faq-accordion .faq-item{
    border:none;
    border-radius:18px !important;
    overflow:hidden;
    margin-bottom:10px;
    box-shadow:0 10px 30px rgba(0,0,0,.05);
}

.custom-faq-accordion .accordion-button{
    font-weight:700;
    padding:16px 18px;
    color:#111827;
    background:#fff;
    box-shadow:none;
}

.custom-faq-accordion .accordion-button:not(.collapsed){
    color:var(--primary);
    background:rgba(var(--primary-rgb), 0.04);
}

.custom-faq-accordion .accordion-body{
    padding:16px 18px;
    color:#4b5563;
    line-height:1.5;
    background:#fff;
}



/* =========================================================
   11. CONTACT SECTION
========================================================= */
.contact-info-card,
.contact-form-card{
    background:#fff;
    border-radius:28px;
    padding:32px;
    box-shadow:0 16px 45px rgba(0,0,0,.06);
}

.contact-info-item{
    display:flex;
    gap:16px;
    align-items:flex-start;
    margin-bottom:22px;
}

.contact-info-item i{
    width:48px;
    height:48px;
    border-radius:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg,var(--primary),var(--secondary));
    color:#fff;
    font-size:18px;
    flex-shrink:0;
}

.contact-info-item h6{
    margin-bottom:6px;
    font-weight:800;
    color:#111827;
}

.contact-info-item p{
    margin:0;
    color:#6b7280;
    line-height:1.7;
}

.premium-input{
    border-radius:16px;
    border:1px solid #e5e7eb;
    padding:14px 16px;
    min-height:52px;
    box-shadow:none !important;
}

.premium-input:focus{
    border-color:var(--primary);
    box-shadow:0 0 0 0.2rem rgba(var(--primary-rgb), .08) !important;
}

/* =========================================================
   12. CTA STRIP
========================================================= */
.cta-strip{
    position: relative;
    overflow: hidden;
    padding: 80px 0;
    background: linear-gradient(90deg, var(--primary), var(--secondary));
    color: #fff;
    text-align: center;
}

.cta-strip::before{
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 20% 20%, rgba(255,255,255,.14) 0, rgba(255,255,255,0) 22%),
        radial-gradient(circle at 80% 30%, rgba(255,255,255,.10) 0, rgba(255,255,255,0) 18%);
    pointer-events: none;
}

.cta-strip-inner{
    position: relative;
    z-index: 2;
    max-width: 860px;
    margin: 0 auto;
}

.cta-mini-badge{
    display: inline-block;
    padding: 8px 16px;
    border-radius: 999px;
    background: rgba(255,255,255,.14);
    border: 1px solid rgba(255,255,255,.22);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 18px;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.cta-title{
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.15;
    font-weight: 800;
    margin-bottom: 16px;
    color: #fff;
}

.cta-text{
    font-size: 17px;
    line-height: 1.85;
    color: rgba(255,255,255,.92);
    margin: 0 auto 28px;
    max-width: 760px;
}

.cta-btn{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 56px;
    padding: 0 28px;
    border-radius: 999px;
    background: #fff;
    color: var(--primary) !important;
    font-weight: 800;
    text-decoration: none;
    box-shadow: 0 16px 35px rgba(0,0,0,.16);
    transition: all .25s ease;
}

.cta-btn:hover,
.cta-btn:focus,
.cta-btn:active{
    color: var(--primary) !important;
    transform: translateY(-2px);
    box-shadow: 0 20px 42px rgba(0,0,0,.20);
}

@media (max-width: 767px){
    .cta-strip{
        padding: 65px 0;
    }

    .cta-text{
        font-size: 15px;
        line-height: 1.75;
    }

    .cta-btn{
        min-height: 50px;
        padding: 0 22px;
        font-size: 14px;
    }
}



/* =========================================================
   13. INNER PAGE
========================================================= */
.inner-banner{
    padding:70px 0;
    background:linear-gradient(135deg,var(--primary-light),#f8fafc);
    text-align:center;
}

.inner-banner h1{
    font-size:42px;
    font-weight:800;
    margin-bottom:12px;
}

.inner-page-section{
    padding:30px 0 70px;
}

.page-featured-image img{
    width:100%;
    border-radius:22px;
}

/* CKEditor / rich content output */
.page-content-area{
    font-size:16px;
    line-height:1.9;
    color:#374151;
}

.ck-editor__editable_inline {
    min-height: 400px;
}

.page-content-area h1,
.page-content-area h2,
.page-content-area h3,
.page-content-area h4,
.page-content-area h5,
.page-content-area h6{
    color:#111827;
    font-weight:800;
    margin-top:22px;
    margin-bottom:14px;
    line-height:1.3;
}

.page-content-area h1{ font-size:38px; }
.page-content-area h2{ font-size:32px; }
.page-content-area h3{ font-size:26px; }
.page-content-area h4{ font-size:22px; }
.page-content-area h5{ font-size:18px; }
.page-content-area h6{ font-size:16px; }

.page-content-area p{
    margin-bottom:16px;
}

.page-content-area ul,
.page-content-area ol{
    margin-bottom:18px;
    padding-left:24px;
}

.page-content-area li{
    margin-bottom:8px;
}

.page-content-area a{
    color:var(--primary);
    font-weight:600;
}

.page-content-area a:hover{
    text-decoration:underline;
}

.page-content-area blockquote{
    border-left:4px solid var(--primary);
    background:rgba(var(--primary-rgb), 0.04);
    padding:16px;
    border-radius:10px;
    margin:20px 0;
    color:#374151;
}

.page-content-area table{
    width:100%;
    border-collapse:collapse;
    margin:20px 0;
}

/* =========================================================
   CKEDITOR / PAGE CONTENT TABLE BORDER FIX
========================================================= */

/* Frontend output */
.page-content-area table,
.page-content-area table tbody,
.page-content-area table tr,
.page-content-area table td,
.page-content-area table th {
    border: none !important;
    border-top: 0 !important;
    border-bottom: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    outline: none !important;
    box-shadow: none !important;
}

.page-content-area table {
    width: 100%;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    margin: 20px 0;
}

.page-content-area table td,
.page-content-area table th {
    padding: 10px 12px;
    text-align: left;
    background: transparent !important;
}

/* CKEditor editing area */
.ck-content table,
.ck-content table tbody,
.ck-content table tr,
.ck-content table td,
.ck-content table th {
    border: none !important;
    border-top: 0 !important;
    border-bottom: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    outline: none !important;
    box-shadow: none !important;
}

.ck-content table {
    border-collapse: collapse !important;
    border-spacing: 0 !important;
}


.page-content-area img{
    max-width:100%;
    height:auto;
    border-radius:16px;
    margin:18px 0;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
}

.page-content-area hr{
    border:none;
    border-top:1px solid #e5e7eb;
    margin:24px 0;
}

.page-content-area code{
    background:#f3f4f6;
    padding:2px 6px;
    border-radius:6px;
    color:#111827;
    font-size:14px;
}

.page-content-area pre{
    background:#111827;
    color:#f9fafb;
    padding:16px;
    border-radius:14px;
    overflow:auto;
    margin:20px 0;
}

.page-content-area pre code{
    background:transparent;
    padding:0;
    color:inherit;
}

.page-first-section .section-block{
    padding-top:20px !important;
}

.is-inner-page-duplicate-title-hide .section-title,
.is-inner-page-duplicate-title-hide .section-subtitle,
.is-inner-page-duplicate-title-hide .section-mini-badge{
    display:none !important;
}





/* =========================================================
   14. FOOTER
========================================================= */
.site-footer{
    background:#0f172a;
    color:#fff;
    padding:70px 0 20px;
}

.footer-title{
    font-size:28px;
    font-weight:800;
    margin-bottom:14px;
}

.footer-subtitle{
    font-size:18px;
    font-weight:700;
    margin-bottom:18px;
}

.footer-text{
    color:#cbd5e1;
    line-height:1.8;
}

.footer-links{
    list-style:none;
    padding:0;
    margin:0;
}

.footer-links li{
    margin-bottom:10px;
}

.footer-links a{
    color:#e2e8f0;
    text-decoration:none;
}

.footer-bottom{
    margin-top:40px;
    padding-top:20px;
    border-top:1px solid rgba(255,255,255,.12);
    text-align:center;
    color:#cbd5e1;
}


/* =========================================================
   ENROLL SECTION
========================================================= */
.enroll-section-soft{
    background:linear-gradient(135deg,var(--primary-light),#fff,var(--secondary-light));
}

.enroll-form-card{
    background:#fff;
    border-radius:26px;
    padding:32px;
    box-shadow:0 20px 50px rgba(0,0,0,.08);
}

.enroll-form-card label{
    font-weight:600;
    margin-bottom:6px;
    font-size:14px;
}

.enroll-form-card .form-control{
    height:44px;
    border-radius:10px;
}

.enroll-form-card .btn-premium{
    font-size:16px;
    font-weight:700;
}


/* =========================================================
   15. RESPONSIVE
========================================================= */
@media (max-width:991px){
    .hero-title{
        font-size:38px;
    }

    .section-title{
        font-size:30px;
    }

    .gallery-image-link img,
    .image-gallery-placeholder{
        height:220px;
    }
}

@media (max-width:767px){
    .hero-section{
        padding:70px 0;
    }

    .hero-title{
        font-size:30px;
    }

    .section-block{
        padding:65px 0;
    }

    .about-image-placeholder,
    .director-image,
    .director-image-placeholder{
        height:300px;
        min-height:300px;
    }

    .director-message-box,
    .contact-info-card,
    .contact-form-card{
        padding:24px;
    }

    .gallery-image-link img,
    .image-gallery-placeholder{
        height:210px;
    }

    .video-fallback-card{
        min-height:260px;
    }

    .image-gallery-section .gallery-block-title,
    .video-gallery-section .gallery-block-title{
        font-size:22px;
    }

    .inner-banner h1{
        font-size:32px;
    }
}