/*!
 * mindu theme override / Bootstrap 3 -> Bootstrap 5 compatibility layer
 * Makes legacy CMS/CMS-course markup render acceptably on top of Bootstrap 5.
 */
html, body { overflow-x: hidden; }

body {
    font-family: var(--tp-ff-body, 'Inter', sans-serif) !important;
    font-size: 16px;
    color: var(--tp-common-black, #1f242e);
}

:root {
    --tp-theme-1: var(--bs-primary, #2563eb);
}

/* ---------- Preloader (site logo + loading message) ---------- */
.preloader { background: var(--tp-common-white, #ffffff); }
.tp-preloader-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 18px;
    text-align: center;
}
.tp-preloader-logo {
    max-width: 180px;
    max-height: 90px;
    width: auto;
    height: auto;
    object-fit: contain;
    animation: tpPreloaderPulse 1.6s ease-in-out infinite;
}
.tp-preloader-text {
    font-family: var(--tp-ff-heading, 'Plus Jakarta Sans', sans-serif);
    font-size: 17px;
    font-weight: 600;
    letter-spacing: .02em;
    color: var(--tp-common-black, #1f242e);
    margin: 0;
}
.tp-preloader-spinner {
    position: relative;
    width: 42px;
    height: 42px;
}
.tp-preloader-spinner span {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 3px solid rgba(37, 99, 235, .15);
    border-top-color: var(--tp-theme-1, #2563eb);
    animation: tpPreloaderSpin 0.9s linear infinite;
}
@keyframes tpPreloaderSpin {
    to { transform: rotate(360deg); }
}
@keyframes tpPreloaderPulse {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.05); opacity: .85; }
}
.book { display: block; }

/* ---------- Preloader (default book animation, now blue via --tp-theme-1) ---------- */

/* ---------- Top header bar (dark) ---------- */
.tp-header-top-spacing {
    background-color: #1f242e;
}
.tp-header-top-spacing .container .row {
    align-items: center;
}
.tp-header-top-spacing .tp-header-top-info span {
    color: #d1d5db;
    font-size: 12.5px;
}
.tp-header-top-spacing .tp-header-top-info span svg {
    color: #9ca3af;
}
.tp-header-top-spacing .tp-header-top-info span a {
    color: #e5e7eb;
}
.tp-header-top-spacing .tp-header-top-info span a:hover {
    color: #ffffff;
}
@media only screen and (min-width: 768px) and (max-width: 1199px) {
    .tp-header-top-spacing .tp-header-top-info span { font-size: 11px; }
}

/* ---------- Bootstrap 3 utility compatibility ---------- */
.pull-right { float: right !important; }
.pull-left { float: left !important; }
.float-right { float: right !important; }
.float-left { float: left !important; }
.text-left { text-align: left !important; }
.text-right { text-align: right !important; }
.img-responsive { max-width: 100%; height: auto; display: block; }
.img-rounded { border-radius: .375rem; }
.img-circle { border-radius: 50%; }
.hide { display: none !important; }
.hidden { display: none !important; }
.displaynone { display: none !important; }
.width-auto { width: auto !important; }
.mt0 { margin-top: 0 !important; }
.mb10 { margin-bottom: 10px; }
.mt10 { margin-top: 10px; }
.pt10 { padding-top: 10px; }
.pt20 { padding-top: 20px; }
.pb10 { padding-bottom: 10px; }
.pb20 { padding-bottom: 20px; }
.spaceb10 { padding-bottom: 10px; }
.spaceb40 { padding-bottom: 40px; }
.spaceb50 { padding-bottom: 50px; }
.spaceb60 { padding-bottom: 60px; }
.spacet40 { padding-top: 40px; }
.mb20 { margin-bottom: 20px; }
.mb25 { margin-bottom: 25px; }
.mb40 { margin-bottom: 40px; }
.mb12 { margin-bottom: 12px; }
.mt-24 { margin-top: 24px; }
.fontbold { font-weight: bold; }
.fontmedium { font-weight: 500; }
.font20 { font-size: 20px; }
.req { color: #dc3545; }
.relative { position: relative; }
.blur { opacity: .6; }
.overflowhidden { overflow: hidden; }
.fullwidth { width: 100%; }
.vh-center {
    display: flex;
    align-items: center;
    justify-content: center;
}
.entered { font-weight: bold; margin-bottom: 0; margin-top: 10px; }

/* ---------- Bootstrap 3 typography / components ---------- */
.label {
    display: inline-block;
    padding: .35em .65em;
    font-size: .75em;
    font-weight: 700;
    line-height: 1;
    color: #fff;
    text-align: center;
    white-space: nowrap;
    vertical-align: baseline;
    border-radius: .375rem;
}
.label-danger { background-color: #dc3545; }
.label-success { background-color: #198754; }
.label-warning { background-color: #ffc107; color: #000; }
.label-info { background-color: #0dcaf0; color: #000; }
.label-primary { background-color: #0d6efd; }

.well {
    min-height: 20px;
    padding: 19px;
    margin-bottom: 20px;
    background-color: #f8f9fa;
    border: 1px solid #e9ecef;
    border-radius: 4px;
}

.caret {
    display: inline-block;
    width: 0;
    height: 0;
    margin-left: 6px;
    vertical-align: middle;
    border-top: 4px dashed;
    border-right: 4px solid transparent;
    border-left: 4px solid transparent;
}

.btn-xs {
    padding: .25rem .5rem;
    font-size: .75rem;
    line-height: 1.5;
    border-radius: .25rem;
}
.btn-default {
    color: #212529;
    background-color: #e9ecef;
    background-image: none;
    border: 1px solid #ced4da;
}
.btn-sm, .btn-group-sm > .btn { border-radius: .375rem; }

.collapse.in { display: block; }
.modal.in { display: block; }
.modal.in .modal-dialog { transform: none; }

.close {
    float: right;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
    color: #000;
    text-shadow: 0 1px 0 #fff;
    opacity: .6;
    background: transparent;
    border: 0;
}

.panel {
    margin-bottom: 1rem;
    background-color: #fff;
    border: 1px solid rgba(0, 0, 0, .12);
    border-radius: .375rem;
    box-shadow: 0 1px 1px rgba(0, 0, 0, .04);
}
.panel-default { border-color: rgba(0, 0, 0, .12); }
.panel-info { border-color: #9ec5fe; }
.panel-heading {
    padding: .75rem 1rem;
    border-bottom: 1px solid rgba(0, 0, 0, .12);
    border-top-left-radius: calc(.375rem - 1px);
    border-top-right-radius: calc(.375rem - 1px);
    background-color: #f8f9fa;
}
.panel-heading > .panel-title a { color: inherit; text-decoration: none; font-weight: 600; }
.panel-title { margin: 0; font-size: 1rem; }
.panel-body { padding: 1rem; }
.panel-footer {
    padding: .75rem 1rem;
    background-color: #f8f9fa;
    border-top: 1px solid rgba(0, 0, 0, .12);
    border-bottom-right-radius: calc(.375rem - 1px);
    border-bottom-left-radius: calc(.375rem - 1px);
}
.panel-group .panel { margin-bottom: .5rem; }
.panel-group .panel-heading { border-bottom: 0; }
.panel-collapse .panel-body { border-top: 1px solid rgba(0, 0, 0, .12); }

.media { display: flex; align-items: flex-start; }
.media-body { flex: 1; margin-left: 1rem; }
.media-left { margin-right: 1rem; flex-shrink: 0; }
.media-middle { align-self: center; }

.list-inline { padding-left: 0; list-style: none; }
.list-inline > li { display: inline-block; padding-right: 5px; padding-left: 5px; }

.form-inline .form-control { display: inline-block; width: auto; vertical-align: middle; }
.checkbox, .radio {
    position: relative;
    display: flex;
    align-items: center;
    gap: .4rem;
    margin-bottom: .5rem;
}
.radio-inline, .checkbox-inline {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin-right: .9rem;
    margin-bottom: .5rem;
}
.radio-inline input, .checkbox-inline input { margin: 0; }

.progress { display: flex; height: 1rem; overflow: hidden; font-size: .75rem; background-color: #e9ecef; border-radius: .375rem; }
.progress-bar { display: flex; flex-direction: column; justify-content: center; overflow: hidden; color: #fff; text-align: center; white-space: nowrap; background-color: #0d6efd; }
.progress-bar-warning { background-color: #ffc107; color: #000; }
.progress-bar-success { background-color: #198754; }
.progress-bar-info { background-color: #0dcaf0; color: #000; }

.table > tbody > tr > td, .table > thead > tr > th { vertical-align: middle; }

.nav-tabs .nav-link { color: #495057; }
.nav-tabs .nav-link.active { color: #212529; }

/* ---------- legacy CMS pages (material_pink style.css port) ---------- */
.onlineform .form-control { border-radius: 30px; }
.onlineformbtn {
    border-radius: 30px !important;
    padding: 7px 20px;
    border: 0;
    display: inline-block;
    font-size: 14px;
    background: var(--tp-theme-1);
    text-decoration: none !important;
    color: #fff;
}
.onlineformbtn:hover { background: #000; color: #fff; }
.pagetitleh2 {
    background: #f3f3f3;
    margin: 0;
    font-size: 16px;
    padding: 8px 15px;
    color: #000;
    margin-bottom: 10px;
    font-weight: bold;
    border-bottom: 1px solid #ddd;
}
.printbtndrakgray { color: #fff; background-color: #727272; border-color: #525252; }
.printbtndrakgray:focus, .printbtndrakgray:hover { color: #fff !important; background-color: #070707; border-color: #525252; }
.printcontent {
    border-radius: 3px;
    border: 1px solid #ddd;
    padding: 0 15px;
    width: 100%;
    margin-bottom: 10px;
}
.printcontent p { margin-bottom: 0; }
.reflist { margin: 0; padding: 0; list-style: none; }
.reflist li {
    display: inline-block;
    text-align: center;
    font-weight: bold;
    border: 1px solid #ddd;
    padding: 10px 3px;
    border-radius: 4px;
    background: #f9f9f9;
    font-size: 13px;
    margin-top: .5rem;
}
.reflist li span { display: block; }
.statusimg { padding: 0; margin: 0; list-style: none; float: right; }
.statusimg li { display: inline-block; text-align: center; }
.statusimg li + li { padding-left: 20px; }
.statusimg li img { border-radius: 4px; width: 40px; height: 40px; margin-bottom: 5px; }
.statusright { float: right; }
.statusright, .formstatus { margin-top: 10px; }
.search-top-space { margin-top: 23px; height: 34px; }
.capture-icon { cursor: pointer; padding-left: 10px; padding-right: 10px; }
.mdbtn { width: 100px; margin-top: 2px; }
.bggray { background: #f8f8f8; }

/* ---------- legacy course commerce accent re-skin ---------- */
.btn-buygreen { background: var(--tp-theme-1); border: 1px solid var(--tp-theme-1); color: #fff; }
.btn-buygreen:hover, .btn-buygreen:focus { color: #fff; opacity: .88; }
.ptaddtocart { background: var(--tp-theme-1); color: #fff; }
.ptaddtocart:hover { color: #fff; opacity: .88; }
.gotocartbtn { background: var(--tp-theme-1); border-color: var(--tp-theme-1); color: #fff; }
.gotocartbtn:hover { color: #fff; opacity: .88; }
.searchfilterbtn { background: var(--tp-theme-1); border-color: var(--tp-theme-1); color: #fff; }
.searchfilterbtn:hover { color: #fff; opacity: .88; }

/* ---------- mindu course grid / filter ---------- */
.refineheader { display: flex; align-items: center; justify-content: space-between; }
.refineheader .refinetext { font-size: 16px; font-weight: 700; }
.resettext { font-size: 13px; color: #666; }
.resettext:hover { color: var(--tp-theme-1); }
.sidebarlists .filter-list { margin-bottom: 12px; }
.sidecourse-title a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 15px;
    font-weight: 600;
    padding: 10px 0;
    border-bottom: 1px solid #e8e8e8;
    color: #212529;
}
.sidecourse-title a:hover { color: var(--tp-theme-1); }
.catefilterscroll { padding-top: 12px; }
.catefilterscroll .form-check {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin-bottom: 8px;
    font-size: 14px;
    cursor: pointer;
}
.catefilterscroll .form-check label {
    display: flex;
    align-items: center;
    gap: 6px;
    flex: 1;
    cursor: pointer;
}
.catefilterscroll .form-check input { margin: 0; cursor: pointer; flex-shrink: 0; margin-top: 3px; }
.catefilterscroll .label-text { color: #495057; font-weight: 500; }
.catefilterscroll .fa-star { color: #f8bc18; margin-right: 1px; }
.catefilterscroll .fa-star.disable { color: #cfd4da; }
.catefilterscroll .rating { margin: 0; padding: 0; }
.priceblock { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.priceblock .relative { display: inline-flex; align-items: center; position: relative; }
.priceblock .pricesign { position: absolute; left: 8px; color: #999; font-size: 13px; }
.priceblock .priceinput {
    width: 90px;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    height: 38px;
    padding: 0 10px 0 24px;
    font-size: 14px;
}
.priceblock .prianglebtn {
    border: 1px solid #e0e0e0;
    background: #fff;
    border-radius: 4px;
    width: 38px;
    height: 38px;
    color: var(--tp-theme-1);
    cursor: pointer;
}
.priceblock .prianglebtn:hover { background: var(--tp-theme-1); color: #fff; border-color: var(--tp-theme-1); }
.pridash { color: #999; }

.courselist-tabs { border-bottom: 0 !important; margin: 0; }
.courselist-tabs > li { list-style: none; }
.courselist-tabs > li > a {
    display: inline-block;
    padding: 8px 16px;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
    margin-right: 6px;
    color: #495057;
    font-size: 14px;
    background: #fff;
}
.courselist-tabs > li > a:hover { color: var(--tp-theme-1); border-color: var(--tp-theme-1); }
.searchfilterbtn .btn-default {
    background: #fff;
    border: 1px solid #e0e0e0;
    color: #495057;
    font-size: 13px;
    padding: 6px 12px;
}
.searchfilterbtn .sortvalue.active,
.searchfilterbtn .btn-default:hover { background: var(--tp-theme-1); color: #fff; border-color: var(--tp-theme-1); }

.tp-course-thumb .tp-course-rating {
    position: absolute;
    top: 15px;
    left: 15px;
    z-index: 2;
}
.tp-course-thumb .tp-course-tag {
    display: inline-block;
    background: var(--tp-theme-1);
    color: #fff;
    padding: 5px 14px;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
}
.tp-course-thumb img { width: 100%; height: 100%; object-fit: cover; }

#products .item { transition: all .3s ease; }
#products .item.list-group-item { flex: 0 0 100%; max-width: 100%; }
@media (min-width: 768px) {
    #products .item.list-group-item .tp-course-item { display: flex; }
    #products .item.list-group-item .tp-course-thumb { width: 38%; flex-shrink: 0; }
    #products .item.list-group-item .tp-course-content { width: 62%; }
}

/* ---------- theme helper ---------- */
.text-theme { color: var(--tp-theme-1) !important; }

/* ---------- home hero (Abuhuraira) ---------- */
.tp-hero-spacing { min-height: 88vh; display: flex; align-items: center; padding: 180px 0 60px; }
.tp-hero-spacing::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(10,12,22,.82) 0%, rgba(10,12,22,.55) 55%, rgba(10,12,22,.25) 100%); }
.tp-hero-tag {
    display: inline-flex; align-items: center;
    background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.28);
    padding: 8px 18px; border-radius: 30px;
    font-size: 14px; font-weight: 600; letter-spacing: .04em;
    text-transform: uppercase; color: #fff; backdrop-filter: blur(4px);
}
.tp-hero-tag i { color: var(--tp-theme-2); }
.tp-hero-title { font-size: 62px; line-height: 1.12; font-weight: 700; letter-spacing: -.015em; color: #fff; }
.tp-hero-dec { font-size: 18px; line-height: 1.7; color: rgba(255,255,255,.88); font-weight: 500; }
.tp-hero-swiper-pagination.swiper-pagination-bullets { position: static; margin-top: 28px; }
.tp-hero-swiper-pagination .swiper-pagination-bullet {
    width: 34px; height: 5px; border-radius: 30px; background: rgba(255,255,255,.4); opacity: 1; transition: all .3s ease; margin: 0 5px;
}
.tp-hero-swiper-pagination .swiper-pagination-bullet-active { background: var(--tp-theme-1); width: 46px; }
@media only screen and (max-width: 991px) {
    .tp-hero-spacing { min-height: 78vh; padding: 150px 0 120px; }
    .tp-hero-title { font-size: 44px; }
}
@media only screen and (max-width: 574px) {
    .tp-hero-spacing { min-height: 72vh; padding: 130px 0 100px; }
    .tp-hero-title { font-size: 34px; }
    .tp-hero-dec { font-size: 16px; }
}

/* ---------- home services ---------- */
.tp-service-area { padding-top: 40px; }
.tp-service-item {
    padding: 40px 30px; border-radius: 18px; border: 1px solid #ece9e3;
    background: #fff; transition: all .35s ease; height: calc(100% - 30px);
}
.tp-service-item:hover { background: #fff; transform: translateY(-6px); box-shadow: 0 22px 50px rgba(31,36,46,.08); border-color: transparent; }
.tp-service-icon {
    width: 86px; height: 86px; display: inline-flex; align-items: center; justify-content: center;
    background: var(--tp-grey-3); border-radius: 22px; transition: all .35s ease;
}
.tp-service-icon img { width: 46px; height: 46px; object-fit: contain; }
.tp-service-item:hover .tp-service-icon { background: var(--tp-theme-1); transform: rotate(4deg); }
.tp-service-item:hover .tp-service-icon img { filter: brightness(0) invert(1); }
.tp-service-title { font-size: 21px; }
.tp-service-dec { color: var(--tp-grey-1); line-height: 1.7; font-size: 15px; }
.tp-service-btn { color: var(--tp-common-black); font-size: 15px; display: inline-flex; align-items: center; gap: 8px; }
.tp-service-btn i { color: var(--tp-theme-1); transition: transform .3s ease; }
.tp-service-item:hover .tp-service-btn { color: var(--tp-theme-1); }
.tp-service-item:hover .tp-service-btn i { transform: translateX(4px); }

/* ---------- home about ---------- */
.tp-about-thumb img { width: 100%; border-radius: 24px; }
.tp-about-awards {
    right: -26px; bottom: -20px; padding: 24px 30px; background: var(--tp-theme-1);
    border-radius: 18px; color: #fff; z-index: 2;
}
.tp-about-awards-icon { font-size: 34px; }
.tp-about-awards-total { font-size: 34px; }
.tp-about-awards-title { font-size: 14px; opacity: .9; }
.tp-about-feature-list { list-style: none; margin: 0; padding: 0; }
.tp-about-feature-list li {
    font-weight: 600; font-size: 16px; color: var(--tp-common-black);
    padding: 10px 0; border-bottom: 1px dashed #e4e1da;
}
.tp-about-feature-list li:last-child { border-bottom: 0; }
.tp-about-feature-list li i { color: var(--tp-theme-1); }
.tp-about-contact i { width: 52px; height: 52px; display: flex; align-items: center; justify-content: center; background: var(--tp-grey-3); border-radius: 50%; color: var(--tp-theme-1); font-size: 20px; }
.tp-about-contact span { font-size: 13px; font-weight: 500; color: var(--tp-grey-1); display: block; }
.tp-about-contact h4 a { font-size: 19px; color: var(--tp-common-black); }
@media only screen and (max-width: 574px) {
    .tp-about-awards { right: 8px; bottom: -18px; padding: 16px 20px; }
}

/* ---------- home departments ---------- */
.tp-department-item { border-radius: 18px; overflow: hidden; background: #fff; box-shadow: 0 8px 28px rgba(31,36,46,.06); }
.tp-department-thumb img { width: 100%; height: 230px; object-fit: cover; transition: transform .5s ease; }
.tp-department-item:hover .tp-department-thumb img { transform: scale(1.08); }
.tp-department-content { position: relative; left: auto; right: auto; bottom: auto; z-index: auto; padding: 22px 24px; }
.tp-department-title a { font-size: 20px; font-weight: 700; color: var(--tp-common-black); }
.tp-department-content > a {
    flex-shrink: 0; width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center;
    border-radius: 50%; background: var(--tp-grey-3); color: var(--tp-common-black); transition: all .3s ease;
}
.tp-department-item:hover .tp-department-content > a { background: var(--tp-theme-1); color: #fff; }

/* ---------- home showcase ---------- */
.tp-showcase-item {
    position: relative; border-radius: 20px; overflow: hidden;
    box-shadow: 0 10px 30px rgba(31,36,46,.08);
}
.tp-showcase-item img { height: 100%; object-fit: cover; transition: transform .6s ease; min-height: 140px; }
.tp-showcase-item:hover img { transform: scale(1.07); }
.tp-showcase-large img { min-height: 380px; }
.tp-showcase-caption {
    position: absolute; left: 0; right: 0; bottom: 0; padding: 20px 22px; z-index: 2;
    background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.72) 100%);
}
.tp-showcase-tag {
    display: inline-block; background: var(--tp-theme-1); color: #fff;
    font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
    padding: 4px 12px; border-radius: 30px; margin-bottom: 8px;
}
.tp-showcase-title { color: #fff; font-size: 18px; font-weight: 700; }
.tp-showcase-large .tp-showcase-title { font-size: 24px; }

/* ---------- home counters ---------- */
.tp-counter-item:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(31,36,46,.08); }
.tp-counter-icon { width: 66px; height: 66px; object-fit: contain; }
.tp-counter-number { font-size: 52px; font-weight: 800; line-height: 1; color: var(--tp-theme-1); font-family: var(--tp-ff-heading); }
.tp-counter-title { font-size: 16px; font-weight: 600; color: var(--tp-grey-1); margin: 0; }

/* ---------- home messages ---------- */
.tp-message-item { padding: 42px 30px; border-radius: 20px; background: #fff; box-shadow: 0 8px 28px rgba(31,36,46,.05); height: calc(100% - 30px); }
.tp-message-thumb img { width: 130px; height: 130px; object-fit: cover; border-radius: 50%; border: 6px solid var(--tp-grey-2); }
.tp-message-title a { color: var(--tp-common-black); font-size: 22px; }
.tp-message-title a:hover { color: var(--tp-theme-1); }
.tp-message-subtitle { color: var(--tp-theme-1); font-weight: 600; font-size: 14px; }

/* ---------- home testimonials ---------- */
.tp-testimonial-2-slide { padding: 20px 4px 30px; }
.tp-testimonial-card {
    padding: 38px 32px; border-radius: 20px; background: #fff; border: 1px solid #ece9e3;
    box-shadow: 0 10px 30px rgba(31,36,46,.05); height: 100%;
}
.tp-testimonial-card-top i { font-size: 30px; color: var(--tp-theme-1); }
.tp-testimonial-card-dec { color: var(--tp-grey-1); font-size: 16px; line-height: 1.75; }
.tp-testimonial-card-avatar img { width: 58px; height: 58px; object-fit: cover; border-radius: 50%; border: 3px solid var(--tp-grey-2); }
.tp-testimonial-card-name { font-size: 17px; }
.tp-testimonial-card-designation { font-size: 13px; font-weight: 500; color: var(--tp-theme-1); }
.tp-testimonial-2-pagination .swiper-pagination-bullet {
    width: 9px; height: 9px; background: #cfcbc2; opacity: 1; border-radius: 30px; transition: all .3s ease; margin: 0 4px !important;
}
.tp-testimonial-2-pagination .swiper-pagination-bullet-active { background: var(--tp-theme-1); width: 30px; }

/* ---------- home FAQ ---------- */
.tp-faq-item { border: 1px solid #ece9e3; border-radius: 14px; margin-bottom: 18px; background: #fff; overflow: hidden; }
.tp-faq-button {
    width: 100%; text-align: left; background: #fff; border: 0; padding: 20px 24px;
    font-size: 17px; font-weight: 700; font-family: var(--tp-ff-heading); color: var(--tp-common-black);
    display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer;
    position: relative; padding-right: 64px; transition: all .3s ease;
}
.tp-faq-button::after {
    content: "\2b"; font-family: "Font Awesome 6 Pro"; position: absolute; right: 20px; top: 50%;
    transform: translateY(-50%); width: 30px; height: 30px; display: flex; align-items: center; justify-content: center;
    border-radius: 50%; background: var(--tp-grey-3); color: var(--tp-common-black); font-weight: 400; transition: all .3s ease;
}
.tp-faq-item.active .tp-faq-button::after, .tp-faq-button[aria-expanded="true"]::after {
    content: "\f068"; background: var(--tp-theme-1); color: #fff;
}
.tp-faq-item.active .tp-faq-button, .tp-faq-button[aria-expanded="true"] { color: var(--tp-theme-1); }
.tp-faq-collapse .tp-faq-body { padding: 0 24px 22px; color: var(--tp-grey-1); line-height: 1.75; font-size: 15px; }
.tp-faq-collapse .tp-faq-body p { margin: 0; }

/* ---------- home CTA ---------- */
.tp-cta-area { background-position: center; background-size: cover; background-attachment: fixed; }
.tp-cta-overlay { position: absolute; inset: 0; background: rgba(10,12,22,.78); z-index: -1; }
.tp-cta-subtitle { color: #fff !important; }
.tp-cta-subtitle span { color: var(--tp-theme-2) !important; }
.tp-cta-dec { color: rgba(255,255,255,.85); font-size: 17px; line-height: 1.75; }

/* ---------- home blog / news ---------- */
.tp-blog-item { padding: 0 0 26px; background: #fff; border-radius: 18px; overflow: hidden; box-shadow: 0 8px 28px rgba(31,36,46,.06); height: calc(100% - 30px); }
.tp-blog-thumb img { width: 100%; height: 240px; object-fit: cover; transition: transform .5s ease; }
.tp-blog-item:hover .tp-blog-thumb img { transform: scale(1.08); }
.tp-blog-content { padding: 22px 24px 0; }
.tp-blog-title a { color: var(--tp-common-black); font-size: 20px; line-height: 1.4; font-weight: 700; }
.tp-blog-title a:hover { color: var(--tp-theme-1); }
.tp-blog-meta { color: var(--tp-grey-1); font-size: 13px; padding-right: 14px; margin-right: 12px; border-right: 1px solid #e2dfd7; }
.tp-blog-meta:last-child { border-right: 0; margin-right: 0; padding-right: 0; }
.tp-blog-meta span { color: var(--tp-theme-1); margin-right: 6px; }

/* ---------- inner CMS pages: elegant article content ---------- */
.tp-cms-content { position: relative; z-index: 1; }
.tp-cms-content > * { max-width: 100%; }
.tp-cms-content h2, .tp-cms-content h3, .tp-cms-content h4 {
    font-family: var(--tp-ff-heading); color: var(--tp-common-black); letter-spacing: -.01em; font-weight: 700;
}
.tp-cms-content h2 { font-size: 34px; margin-bottom: 18px; position: relative; padding-bottom: 14px; }
.tp-cms-content h2::after { content: ""; position: absolute; left: 0; bottom: 0; width: 60px; height: 4px; border-radius: 4px; background: var(--tp-theme-1); }
.tp-cms-content h3 { font-size: 24px; margin: 26px 0 12px; }
.tp-cms-content h4 { font-size: 19px; }
.tp-cms-content p { color: var(--tp-grey-1); font-size: 16px; line-height: 1.9; margin-bottom: 16px; }
.tp-cms-content img { max-width: 100%; height: auto; border-radius: 14px; }
.tp-cms-content ul, .tp-cms-content ol { padding-left: 20px; margin-bottom: 16px; }
.tp-cms-content li { color: var(--tp-grey-1); font-size: 16px; line-height: 1.9; }
.tp-cms-content table { width: 100%; border-collapse: collapse; margin: 20px 0; font-size: 15px; }
.tp-cms-content table th, .tp-cms-content table td { border: 1px solid #e6e2da; padding: 12px 14px; text-align: left; }
.tp-cms-content table thead th { background: var(--tp-common-black); color: #fff; font-weight: 600; border-color: var(--tp-common-black); }
.tp-cms-content table tbody tr:nth-child(even) { background: var(--tp-grey-3); }
.tp-cms-content blockquote {
    border-left: 4px solid var(--tp-theme-1); background: var(--tp-grey-3); padding: 18px 22px;
    border-radius: 0 14px 14px 0; font-style: italic; margin: 22px 0; color: var(--tp-common-black);
}
.tp-cms-content a { color: var(--tp-theme-1); }
.tp-cms-content a:hover { color: var(--tp-common-black); }
.tp-cms-content iframe { max-width: 100%; border-radius: 14px; }
.tp-cms-content .blue-box1, .tp-cms-content .around40 { background: transparent; }
.tp-cms-content .contact-item {
    padding: 30px; border-radius: 16px; background: #fff; border: 1px solid #ece9e3; text-align: center; height: 100%;
    transition: all .35s ease;
}
.tp-cms-content .contact-item:hover { box-shadow: 0 16px 40px rgba(31,36,46,.08); transform: translateY(-4px); }
.tp-cms-content .contact-item img { width: 56px; height: 56px; object-fit: contain; margin-bottom: 14px; }
.tp-cms-content .contact-item h3 { font-size: 20px; }
.tp-cms-content .contact-item p { margin: 0; font-size: 15px; }
.tp-cms-content .tp-contact-icon {
    width: 60px; height: 60px; display: inline-flex; align-items: center; justify-content: center;
    background: var(--tp-grey-3); color: var(--tp-theme-1); border-radius: 50%; font-size: 22px; margin-bottom: 14px;
}
.tp-cms-content .contact-item a { color: var(--tp-common-black); font-weight: 600; }
.tp-cms-content .mapWrapper iframe { width: 100%; height: 440px; border: 0; border-radius: 18px; box-shadow: 0 18px 44px rgba(31,36,46,.12); }

/* legacy form + builder controls */
.tp-cms-content .form-horizontal .form-group { margin-bottom: 18px; }
.tp-cms-content .form-control, .theme-form .form-control {
    border: 1px solid #e0dcd2; border-radius: 10px; padding: 11px 16px; font-size: 15px; height: auto; box-shadow: none;
}
.tp-cms-content .form-control:focus, .theme-form .form-control:focus { border-color: var(--tp-theme-1); box-shadow: 0 0 0 3px rgba(37,99,235,.12); }
.tp-cms-content .btn, .theme-form .btn {
    background: var(--tp-theme-1); border: 0; color: #fff; border-radius: 10px; padding: 12px 28px; font-weight: 600; font-size: 15px;
}
.tp-cms-content .btn:hover, .theme-form .btn:hover { background: var(--tp-common-black); color: #fff; }

/* legacy event/news/gallery listing from pages.php */
.tp-cms-content .post-list { margin-top: 30px; }
.tp-cms-content .post-list .row + .row { margin-top: 20px; }
.tp-cms-content .list-group-item {
    background: #fff; border: 1px solid #ece9e3; border-radius: 14px !important; margin-bottom: 14px;
    padding: 20px; box-shadow: 0 6px 20px rgba(31,36,46,.04);
}
.tp-cms-content .list-group-item h4 a { color: var(--tp-common-black); font-weight: 700; }
.tp-cms-content .list-group-item h4 a:hover { color: var(--tp-theme-1); }
.tp-cms-content .list-inline li { margin-right: 14px; font-size: 13px; color: var(--tp-grey-1); }
.tp-cms-content .post-list .img-responsive { border-radius: 14px; }

/* mindu page hero band for inner pages */
.tp-page-hero-area {
    position: relative; padding: 130px 0 90px; background-position: center; background-size: cover; background-color: #0a0c16;
}
.tp-page-hero-area::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,12,22,.82), rgba(10,12,22,.55)); }
.tp-page-hero-area .container { position: relative; z-index: 1; }
.tp-page-hero-list a, .tp-page-hero-list span { color: rgba(255,255,255,.85); font-weight: 500; font-size: 14px; text-transform: uppercase; letter-spacing: .05em; }
.tp-page-hero-list a { color: var(--tp-theme-2); }
.tp-page-hero-list .tp-page-hero-sep { margin: 0 8px; }

/* counter / responsive tweaks for small screens */
@media only screen and (max-width: 574px) {
    .tp-counter-number { font-size: 38px; }
    .tp-section-title { font-size: 32px; }
    .tp-cms-content h2 { font-size: 26px; }
}

/* =========================================================
   Phase 4 - dynamic component layer
   subject: special views + legacy hooks (results, admission,
   calendar, news/gallery/event cards, pagination, lightbox)
   ========================================================= */

/* ---------- generic card shell ---------- */
.tp-cardshell {
    background: #fff; border: 1px solid #ece9e3; border-radius: 18px;
    box-shadow: 0 8px 28px rgba(31,36,46,.06); padding: 28px;
}

/* ---------- news / blog detail (read.php) ---------- */
.tp-article-item { background: #fff; border-radius: 18px; overflow: hidden; box-shadow: 0 14px 40px rgba(31,36,46,.08); margin-bottom: 34px; }
.tp-article-header { padding: 42px 42px 26px; }
.tp-article-kicker { display: inline-flex; align-items: center; gap: 8px; color: var(--tp-theme-1); font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 14px; }
.tp-article-title { font-family: var(--tp-ff-heading); font-size: clamp(28px, 4vw, 40px); line-height: 1.2; color: var(--tp-common-black); font-weight: 700; letter-spacing: -.01em; }
.tp-article-meta { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 18px; }
.tp-article-meta span { color: var(--tp-grey-1); font-size: 14px; font-weight: 500; }
.tp-article-meta i { color: var(--tp-theme-1); margin-right: 7px; }
.tp-article-body { padding: 0 42px 42px; }
.tp-article-body p { color: var(--tp-grey-1); font-size: 17px; line-height: 1.9; }

/* ---------- media / photo grid (read.php + gallery) ---------- */
.tp-photo-grid { margin-top: 6px; }
.cms-gallery-item { position: relative; border-radius: 16px; overflow: hidden; margin-bottom: 24px; box-shadow: 0 10px 30px rgba(31,36,46,.1); }
.cms-gallery-item img { width: 100%; height: 250px; object-fit: cover; display: block; transition: transform .55s ease; }
.cms-gallery-item:hover img { transform: scale(1.1); }
.cms-gallery-overlay { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: linear-gradient(180deg, rgba(10,12,22,0) 40%, rgba(10,12,22,.55)); opacity: 0; transition: opacity .35s ease; }
.cms-gallery-item:hover .cms-gallery-overlay { opacity: 1; }
.cms-gallery-overlay i { width: 56px; height: 56px; border-radius: 50%; background: var(--tp-theme-1); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 19px; }
.cms-gallery-video { position: absolute; top: 14px; right: 14px; width: 42px; height: 42px; border-radius: 50%; background: var(--tp-theme-2); color: var(--tp-common-black); display: flex; align-items: center; justify-content: center; }

/* ---------- dynamic event cards (page.php + ajax-pagination-data.php) ---------- */
.tp-event-card { position: relative; background: #fff; border-radius: 16px; overflow: hidden; box-shadow: 0 8px 26px rgba(31,36,46,.07); height: calc(100% - 24px); margin-bottom: 24px; transition: transform .35s ease, box-shadow .35s ease; }
.tp-event-card:hover { transform: translateY(-6px); box-shadow: 0 18px 44px rgba(31,36,46,.14); }
.tp-event-card img { width: 100%; height: 210px; object-fit: cover; display: block; }
.tp-event-body { padding: 20px 22px 24px; }
.tp-event-body h3 { font-family: var(--tp-ff-heading); font-size: 19px; font-weight: 700; color: var(--tp-common-black); line-height: 1.4; margin-bottom: 10px; }
.tp-event-body h3 a { color: inherit; }
.tp-event-body h3 a:hover { color: var(--tp-theme-1); }
.tp-event-body p { color: var(--tp-grey-1); font-size: 14px; line-height: 1.7; margin: 0 0 6px; }
.tp-event-body p:first-of-type { color: var(--tp-theme-1); font-weight: 600; font-size: 13px; }
.tp-event-body p strong { color: var(--tp-common-black); }
.tp-event-date-badge { position: absolute; top: 16px; left: 16px; background: var(--tp-theme-1); color: #fff; min-width: 58px; text-align: center; border-radius: 12px; padding: 8px 10px; line-height: 1.1; box-shadow: 0 8px 20px rgba(37,99,235,.35); }
.tp-event-date-badge .d { display: block; font-size: 22px; font-weight: 800; }
.tp-event-date-badge .m { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; opacity: .9; }

/* ---------- news / notice list ---------- */
.tp-notice-list { display: grid; gap: 16px; }
.tp-notice-item { display: flex; gap: 18px; align-items: flex-start; background: #fff; border: 1px solid #ece9e3; border-radius: 16px; padding: 20px 22px; box-shadow: 0 6px 20px rgba(31,36,46,.04); transition: all .3s ease; }
.tp-notice-item:hover { border-color: rgba(37,99,235,.3); box-shadow: 0 12px 32px rgba(31,36,46,.09); }
.tp-notice-item i.tp-notice-ico { flex: 0 0 46px; width: 46px; height: 46px; border-radius: 12px; background: var(--tp-grey-3); color: var(--tp-theme-1); display: inline-flex; align-items: center; justify-content: center; font-size: 20px; }
.tp-notice-item h4 { font-family: var(--tp-ff-heading); font-size: 17px; font-weight: 700; margin: 0 0 4px; }
.tp-notice-item h4 a { color: var(--tp-common-black); }
.tp-notice-item h4 a:hover { color: var(--tp-theme-1); }
.tp-notice-item p { color: var(--tp-grey-1); font-size: 14px; margin: 0; line-height: 1.6; }
.tp-notice-item .tp-notice-date { font-size: 12px; color: var(--tp-theme-1); font-weight: 600; margin-bottom: 2px; }

/* ---------- annual calendar ---------- */
.tp-calendar-card { background: #fff; border: 1px solid #ece9e3; border-radius: 16px; padding: 24px 26px; box-shadow: 0 8px 26px rgba(31,36,46,.05); height: 100%; }
.tp-calendar-card > h4 { font-family: var(--tp-ff-heading); font-size: 21px; font-weight: 700; color: var(--tp-common-black); display: flex; align-items: center; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid #efece6; margin-bottom: 16px; }
.tp-calendar-card > h4 i { color: var(--tp-theme-1); }
.tp-calendar-row { display: flex; align-items: flex-start; gap: 12px; padding: 12px 0; border-bottom: 1px dashed #e9e5dd; }
.tp-calendar-row:last-child { border-bottom: 0; }
.tp-calendar-row .tp-cal-dot { flex: 0 0 10px; width: 10px; height: 10px; border-radius: 50%; background: var(--tp-theme-1); margin-top: 8px; }
.tp-calendar-row p { margin: 0; color: var(--tp-grey-1); font-size: 14px; line-height: 1.7; }
.tp-calendar-row p strong { color: var(--tp-theme-1); font-weight: 600; display: block; font-size: 13px; }

/* ---------- functional forms (exam result, cbse, admission) ---------- */
.onlineform .form-group label { font-weight: 600; color: var(--tp-common-black); font-size: 14px; }
.onlineform .form-group .req { color: var(--tp-theme-1); }
.onlineform .form-control {
    border: 1px solid #e0dcd2; border-radius: 10px; padding: 11px 16px; font-size: 15px; height: auto; box-shadow: none;
}
.onlineform .form-control:focus { border-color: var(--tp-theme-1); box-shadow: 0 0 0 3px rgba(37,99,235,.12); }
.onlineformbtn, .modalclosebtn.mdbtn {
    background: var(--tp-theme-1); border: 0; color: #fff !important; border-radius: 10px; padding: 12px 26px;
    font-weight: 600; font-size: 15px; display: inline-block; transition: all .3s ease;
}
.onlineformbtn:hover, .modalclosebtn.mdbtn:hover { background: var(--tp-common-black); color: #fff !important; }
.modalclosebtn {
    background: var(--tp-grey-3); color: var(--tp-common-black) !important; border-radius: 10px;
    padding: 11px 20px; font-weight: 600; font-size: 14px; display: inline-block;
}
.modalclosebtn:hover { background: var(--tp-common-black); color: #fff !important; }
.pagetitleh2, .pagetitleh {
    font-family: var(--tp-ff-heading); font-weight: 700; color: var(--tp-common-black);
    font-size: 22px; display: flex; align-items: center; gap: 12px; margin: 20px 0 16px;
}
.pagetitleh2::before, .pagetitleh::before { content: ""; width: 6px; height: 24px; border-radius: 6px; background: var(--tp-theme-1); }
h3.entered { font-family: var(--tp-ff-heading); font-weight: 700; color: var(--tp-common-black); font-size: 26px; }
.printcontent { background: #fff; border: 1px solid #ece9e3; border-radius: 18px; padding: 8px 26px 22px; margin-bottom: 22px; box-shadow: 0 8px 28px rgba(31,36,46,.05); }

/* ---------- result summary tiles ---------- */
.tshadow { background: #fff; border: 1px solid #ece9e3; border-radius: 18px; padding: 24px; box-shadow: 0 10px 32px rgba(31,36,46,.07); }
.bgtgray { display: flex; flex-wrap: wrap; gap: 10px; background: var(--tp-grey-3); border-radius: 14px; padding: 16px; margin-top: 14px; }
.bgtgray .col-sm-2, .bgtgray .col-sm-3, .bgtgray .col-sm-4 { flex: 1 1 auto; min-width: 170px; }
.description-block { background: #fff; border: 1px solid #ece9e3; border-radius: 14px; padding: 16px 18px; margin: 0; box-shadow: 0 6px 18px rgba(31,36,46,.05); text-align: center; height: 100%; }
.description-header { font-size: 13px; color: var(--tp-grey-1); font-weight: 600; margin: 0; text-transform: uppercase; letter-spacing: .03em; }
.description-text { font-size: 20px; color: var(--tp-common-black); font-weight: 800; display: block; margin-top: 6px; letter-spacing: 0; }
.reflist { list-style: none; margin: 0; padding: 0; background: #fff; border: 1px solid #ece9e3; border-radius: 14px; overflow: hidden; }
.reflist li { padding: 12px 18px; border-bottom: 1px solid #f0ede7; display: flex; justify-content: space-between; gap: 16px; font-weight: 600; color: var(--tp-common-black); font-size: 14px; }
.reflist li:last-child { border-bottom: 0; }
.reflist li .text-success { font-weight: 800; color: var(--tp-theme-1); }
.printbtndrakgray { background: var(--tp-common-black); border: 0; color: #fff !important; border-radius: 10px; padding: 10px 16px; }
.printbtndrakgray:hover { background: var(--tp-theme-1); color: #fff !important; }

/* ---------- result tables ---------- */
.tp-cms-content .table, .spaceb60 .table, .table-responsive .table { margin: 14px 0 22px; }
.tp-cms-content .table thead th, .spaceb60 .table thead th, .table-responsive .table thead th {
    background: var(--tp-common-black); color: #fff; font-weight: 600; font-size: 14px; border: 0;
    padding: 14px 16px; white-space: nowrap;
}
.tp-cms-content .table tbody td, .spaceb60 .table tbody td, .table-responsive .table tbody td {
    padding: 12px 16px; font-size: 14px; vertical-align: middle; border-bottom: 1px solid #efece6; color: var(--tp-grey-1);
}
.tp-cms-content .table tbody tr:nth-child(even), .spaceb60 .table tbody tr:nth-child(even) { background: var(--tp-grey-3); }
.table-responsive { border: 1px solid #ece9e3; border-radius: 16px; overflow: hidden; box-shadow: 0 8px 26px rgba(31,36,46,.05); }

/* ---------- badges / labels ---------- */
.label { font-size: 12px; padding: 6px 12px; border-radius: 999px; font-weight: 700; display: inline-block; }
.label-danger, .bg-red { background: rgba(220,53,69,.12); color: #dc3545; }
.label-success, .bg-green { background: rgba(25,135,84,.12); color: #198754; }
.text-success { color: var(--tp-theme-1) !important; }
.text-danger { color: #dc3545; }
.border-right { border-right: 1px solid #ece9e3; }

/* ---------- pagination ---------- */
.pagination { justify-content: center; margin-top: 30px; gap: 6px; }
.pagination > li > a, .pagination > li > span {
    border: 0 !important; border-radius: 10px !important; background: #fff; color: var(--tp-common-black);
    font-weight: 600; min-width: 42px; text-align: center; box-shadow: 0 4px 14px rgba(31,36,46,.06); margin: 0;
}
.pagination > li > a:hover { background: var(--tp-theme-1); color: #fff; }
.pagination > .active > a, .pagination > .active > span { background: var(--tp-theme-1); color: #fff; }

/* ---------- calendar list/table toggles ---------- */
#list, #table { background: #fff; border: 1px solid #ece9e3 !important; color: var(--tp-common-black); border-radius: 10px; font-weight: 600; box-shadow: 0 4px 14px rgba(31,36,46,.05); }
#list:hover, #table:hover { background: var(--tp-theme-1); border-color: var(--tp-theme-1) !important; color: #fff; }
.calender-wrap h4 { font-weight: 700; color: var(--tp-common-black); }

/* ---------- header Apply Now / Login buttons smaller ---------- */
.tp-header-2-option .tp-btn {
    padding: 4px 15px;
    font-size: 13px;
    line-height: 1.4;
    font-weight: 600;
}
.tp-header-2-option .tp-btn-square {
    padding: 4px 15px;
    border-radius: 50px;
}
.tp-header-2-option .tp-btn svg {
    width: 8px;
    height: 8px;
}
.tp-header-2-option .tp-btn .ml-8 {
    margin-left: 6px;
}
.tp-header-2-option .tp-header-search {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    font-size: 14px;
}

/* keep text readable over the dark footer brand bar */

/* ---------- header main menu – restored from template with auto one-row fit ---------- */
.tp-header-logo { flex-shrink: 0; }
@media (min-width: 1400px) {
    .tp-header-logo { margin-right: 40px; }
    .tp-main-menu > nav > ul { display: flex; align-items: center; gap: 26px; }
    .tp-main-menu > nav > ul > li { margin-right: 0 !important; }
    .tp-main-menu-2 > nav > ul > li > a { font-family: var(--tp-ff-body, 'Inter', sans-serif); font-size: 16px; padding: 31px 0; }
    .tp-menu-dropdown > nav > ul > li.has-dropdown > a::after { right: -15px; }
}
@media (min-width: 1200px) and (max-width: 1399.98px) {
    .tp-header-logo { margin-right: 0; }
    .tp-header-logo img { height: 40px !important; width: auto !important; }
    .tp-main-menu > nav > ul { display: flex; align-items: center; gap: 12px; }
    .tp-main-menu > nav > ul > li { margin-right: 0 !important; }
    .tp-main-menu-2 > nav > ul > li > a { font-family: var(--tp-ff-body, 'Inter', sans-serif); font-size: 16px; padding: 31px 0; }
    .tp-menu-dropdown > nav > ul > li.has-dropdown > a::after { right: -15px; }
}

/* ---------- footer spacing ---------- */
.tp-footer-area { padding-top: 60px; }

/* ==========================================================================
   INFOGRAPHIC PAGES  (fees-structure, operational-hours)
   ========================================================================== */
.tp-info-wrap { padding: 10px 0 20px; }

.tp-info-intro {
    background: linear-gradient(135deg, #eef3ff 0%, #f7f9ff 100%);
    border: 1px solid #dfe7fb; border-radius: 22px; padding: 44px 44px;
    position: relative; overflow: hidden;
}
.tp-info-intro::after {
    content: ""; position: absolute; right: -80px; top: -80px; width: 260px; height: 260px;
    border-radius: 50%; background: radial-gradient(circle, rgba(37,99,235,.12) 0%, transparent 70%);
}
.tp-info-intro h3 { font-size: 26px; font-weight: 700; color: var(--tp-common-black); }
.tp-info-intro p { font-size: 16px; line-height: 1.7; color: #4b5563; margin: 0; max-width: 680px; }

/* stat chips row */
.tp-info-stats { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 26px; }
.tp-info-stat {
    flex: 1 1 150px; background: #fff; border: 1px solid #e8edf9; border-radius: 16px;
    padding: 16px 18px; display: flex; align-items: center; gap: 12px; box-shadow: 0 6px 18px rgba(31,36,46,.04);
}
.tp-info-stat .stat-icon {
    width: 44px; height: 44px; flex-shrink: 0; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center;
    background: rgba(37,99,235,.1); color: var(--tp-theme-1); font-size: 20px;
}
.tp-info-stat strong { display: block; font-size: 20px; font-weight: 800; color: var(--tp-common-black); line-height: 1.1; font-family: var(--tp-ff-heading); }
.tp-info-stat span { font-size: 13px; color: #6b7280; font-weight: 500; }

/* section heading inside info page */
.tp-info-sechead { display: flex; align-items: center; gap: 14px; margin: 0 0 26px; }
.tp-info-sechead .sech-icon {
    width: 52px; height: 52px; flex-shrink: 0; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, var(--tp-theme-1) 0%, var(--tp-theme-2) 100%); color: #fff; font-size: 22px;
    box-shadow: 0 10px 22px rgba(37,99,235,.28);
}
.tp-info-sechead h3 { margin: 0; font-size: 24px; font-weight: 700; color: var(--tp-common-black); }
.tp-info-sechead p { margin: 2px 0 0; font-size: 14px; color: #6b7280; }

/* fee tier cards */
.tp-fee-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
.tp-fee-card {
    background: #fff; border: 1px solid #e8edf9; border-radius: 20px; padding: 26px 24px;
    position: relative; overflow: hidden; transition: all .35s ease; box-shadow: 0 8px 26px rgba(31,36,46,.05);
}
.tp-fee-card:hover { transform: translateY(-6px); box-shadow: 0 22px 44px rgba(37,99,235,.14); border-color: rgba(37,99,235,.25); }
.tp-fee-card .fee-ribbon {
    position: absolute; top: 18px; right: -34px; transform: rotate(45deg); background: var(--tp-theme-1); color: #fff;
    font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; padding: 5px 38px;
}
.tp-fee-card .fee-icon {
    width: 52px; height: 52px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center;
    background: rgba(37,99,235,.1); color: var(--tp-theme-1); font-size: 22px; margin-bottom: 16px;
}
.tp-fee-card h4 { font-size: 18px; font-weight: 700; color: var(--tp-common-black); margin-bottom: 12px; }
.tp-fee-card .fee-price { font-size: 26px; font-weight: 800; color: var(--tp-theme-1); font-family: var(--tp-ff-heading); line-height: 1; }
.tp-fee-card .fee-price small { font-size: 14px; font-weight: 500; color: #9ca3af; }
.tp-fee-card .fee-note { margin-top: 10px; font-size: 13px; color: #6b7280; }
.tp-fee-card .fee-type { font-size: 12px; font-weight: 600; color: #9ca3af; text-transform: uppercase; letter-spacing: .05em; margin-bottom: 4px; }

/* comparison table upgrade */
.tp-info-table { width: 100%; border-collapse: separate; border-spacing: 0 8px; }
.tp-info-table th {
    background: #f0f4ff; color: var(--tp-common-black); font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em;
    padding: 14px 18px; border: 0;
}
.tp-info-table th:first-child { border-radius: 12px 0 0 12px; }
.tp-info-table th:last-child { border-radius: 0 12px 12px 0; }
.tp-info-table td {
    background: #fff; border: 1px solid #eef1f7; padding: 16px 18px; font-size: 15px; color: #374151; vertical-align: middle;
}
.tp-info-table td:first-child { border-radius: 12px 0 0 12px; }
.tp-info-table td:last-child { border-radius: 0 12px 12px 0; text-align: center; }
.tp-info-table tr:hover td { background: #fafbff; }
.tp-info-table .table-section { font-weight: 700; color: var(--tp-common-black); }
.tp-info-table .table-amount { font-weight: 800; color: var(--tp-theme-1); font-family: var(--tp-ff-heading); font-size: 16px; }

/* timeline for hours */
.tp-hours-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(310px, 1fr)); gap: 20px; }
.tp-hours-card {
    background: #fff; border: 1px solid #e8edf9; border-radius: 20px; padding: 26px 26px;
    display: flex; gap: 18px; align-items: flex-start; transition: all .35s ease; box-shadow: 0 8px 26px rgba(31,36,46,.05);
}
.tp-hours-card:hover { transform: translateY(-6px); box-shadow: 0 20px 44px rgba(37,99,235,.14); border-color: rgba(37,99,235,.25); }
.tp-hours-card .hour-icon {
    width: 56px; height: 56px; flex-shrink: 0; border-radius: 16px; display: inline-flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, var(--tp-theme-1) 0%, var(--tp-theme-2) 100%); color: #fff; font-size: 24px;
    box-shadow: 0 10px 22px rgba(37,99,235,.26);
}
.tp-hours-card h4 { font-size: 17px; font-weight: 700; color: var(--tp-common-black); margin: 0 0 8px; }
.tp-hours-card .hour-when {
    font-size: 19px; font-weight: 800; color: var(--tp-theme-1); font-family: var(--tp-ff-heading); line-height: 1.2;
}
.tp-hours-card .hour-days { margin-top: 6px; font-size: 13px; color: #6b7280; font-weight: 500; }
.tp-hours-card .hour-days i { color: var(--tp-theme-1); margin-right: 6px; }

/* info notice pill list */
.tp-info-notice {
    background: #fff; border-radius: 18px; border: 1px solid #e8edf9; padding: 22px 26px;
    display: flex; align-items: center; gap: 14px; box-shadow: 0 8px 26px rgba(31,36,46,.05);
}
.tp-info-notice .notice-icon {
    width: 46px; height: 46px; flex-shrink: 0; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
    background: #fff3e0; color: #f59e0b; font-size: 20px;
}
.tp-info-notice p { margin: 0; font-size: 15px; color: #4b5563; }

@media (max-width: 767px) {
    .tp-info-intro { padding: 30px 22px; }
    .tp-info-intro h3 { font-size: 21px; }
    .tp-fee-grid, .tp-hours-grid { grid-template-columns: 1fr; }
}

/* gallery album section */
.tp-gallery-album { padding: 34px 30px; background: #f6f8fc; border: 1px solid #e8edf9; border-radius: 24px; }
.tp-gallery-album-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.tp-gallery-album-title { font-size: 24px; font-weight: 700; color: var(--tp-heading-1, #111827); margin-bottom: 6px; }
.tp-gallery-album-desc { color: #6b7280; font-size: 14px; max-width: 760px; }
.tp-gallery-album + .tp-gallery-album { margin-top: 34px; }
@media (max-width: 767px) {
    .tp-gallery-album { padding: 24px 16px; }
    .tp-gallery-album-title { font-size: 20px; }
}

/* home news cards (infographic style) */
.tp-news-card { position: relative; }
.tp-news-card .tp-blog-thumb { position: relative; }
.tp-news-card .tp-blog-thumb::after {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(180deg, rgba(37,99,235,0) 40%, rgba(15,23,42,.65) 100%);
}
.tp-news-date-badge {
    position: absolute; z-index: 1; top: 18px; left: 18px; min-width: 58px; padding: 9px 12px;
    background: var(--tp-theme-1, #2563eb); color: #fff; border-radius: 14px; text-align: center; box-shadow: 0 10px 24px rgba(37,99,235,.35);
}
.tp-news-date-badge strong { display: block; font-size: 22px; line-height: 1; font-weight: 800; }
.tp-news-date-badge span { display: block; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; margin-top: 3px; opacity: .9; }
.tp-news-arrow {
    position: absolute; z-index: 1; right: 18px; bottom: 18px; width: 46px; height: 46px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center; background: #fff; color: var(--tp-theme-1, #2563eb);
    font-size: 18px; box-shadow: 0 12px 28px rgba(15,23,42,.22); transition: all .3s ease;
}
.tp-news-card:hover .tp-news-arrow { background: var(--tp-theme-1, #2563eb); color: #fff; transform: rotate(45deg); }
.tp-news-tag {
    display: inline-flex; align-items: center; gap: 7px; color: var(--tp-theme-1, #2563eb);
    font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
}
.tp-news-excerpt { color: #7c8798; font-size: 14px; line-height: 1.7; }
.tp-news-more {
    font-size: 13px; font-weight: 700; color: var(--tp-theme-1, #2563eb); display: inline-flex; align-items: center; gap: 8px;
}
.tp-news-more:hover { color: var(--tp-black, #1f242e); }

/* news listing grid cards */
.tp-news-grid-card {
    background: #fff; border-radius: 20px; overflow: hidden; box-shadow: 0 10px 34px rgba(31,36,46,.08); height: calc(100% - 30px);
    border: 1px solid #eef1f7; transition: transform .35s ease, box-shadow .35s ease;
}
.tp-news-grid-card:hover { transform: translateY(-7px); box-shadow: 0 24px 56px rgba(37,99,235,.16); }
.tp-news-grid-thumb { position: relative; overflow: hidden; }
.tp-news-grid-thumb::after {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(180deg, rgba(37,99,235,0) 45%, rgba(15,23,42,.6) 100%);
}
.tp-news-grid-thumb img { height: 230px; object-fit: cover; transition: transform .5s ease; }
.tp-news-grid-card:hover .tp-news-grid-thumb img { transform: scale(1.08); }
.tp-news-grid-content { padding: 0 24px 24px; }

/* read / article detail page */
.tp-read-item .tp-article-header { padding-top: 38px; }
.tp-read-hero { position: relative; height: 380px; overflow: hidden; }
.tp-read-hero img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tp-read-hero-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(15,23,42,.15) 0%, rgba(15,23,42,.18) 35%, rgba(15,23,42,.85) 100%);
}
.tp-read-hero-content { position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; padding: 30px 42px; }
.tp-read-hero-chip {
    display: inline-flex; align-items: center; gap: 8px; color: #fff; background: var(--tp-theme-1, #2563eb);
    font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; padding: 8px 16px; border-radius: 30px; margin-bottom: 14px;
    box-shadow: 0 12px 30px rgba(37,99,235,.35);
}
.tp-read-hero-title { color: #fff; font-size: clamp(28px, 4vw, 44px); line-height: 1.15; font-weight: 800; letter-spacing: -.01em; max-width: 900px; }
.tp-read-share {
    display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
    border-top: 1px solid #eef1f7; padding: 22px 42px 30px; margin-top: 6px;
}
.tp-read-share-label { font-weight: 700; color: var(--tp-common-black, #111827); font-size: 15px; }
.tp-read-share-links { display: flex; gap: 10px; }
.tp-read-share-btn {
    width: 42px; height: 42px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center;
    color: #fff; font-size: 17px; transition: all .28s ease;
}
.tp-read-share-btn:hover { transform: translateY(-3px); color: #fff; }
.tp-read-share-facebook { background: #1877f2; }
.tp-read-share-twitter { background: #0f1419; }
.tp-read-share-whatsapp { background: #25d366; }
.tp-read-share-print { background: var(--tp-theme-1, #2563eb); }
@media (max-width: 767px) {
    .tp-read-hero { height: 260px; }
    .tp-read-hero-content { padding: 20px 24px; }
    .tp-read-share { padding: 20px 24px 24px; }
}

/* read page hero meta */
.tp-read-hero-meta { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 16px; }
.tp-read-hero-meta span { color: rgba(255,255,255,.9); font-size: 14px; font-weight: 500; }
.tp-read-hero-meta i { color: #fff; margin-right: 7px; opacity: .85; }

/* infographic facts panel */
.tp-read-facts {
    position: relative; margin: 10px 42px 36px; padding: 34px 32px; border-radius: 24px; overflow: hidden;
    background: linear-gradient(135deg, #0f172a 0%, #1e3a8a 55%, #2563eb 100%); color: #fff;
    box-shadow: 0 24px 60px rgba(37,99,235,.28);
}
.tp-read-facts::before {
    content: ""; position: absolute; top: -60px; right: -60px; width: 240px; height: 240px; border-radius: 50%;
    background: radial-gradient(circle, rgba(96,165,250,.45), transparent 65%);
}
.tp-read-facts::after {
    content: ""; position: absolute; bottom: -70px; left: -50px; width: 220px; height: 220px; border-radius: 50%;
    background: radial-gradient(circle, rgba(59,130,246,.35), transparent 65%);
}
.tp-facts-title { position: relative; z-index: 1; display: flex; align-items: center; gap: 16px; margin-bottom: 26px; }
.tp-facts-ico {
    width: 54px; height: 54px; flex-shrink: 0; border-radius: 16px; display: inline-flex; align-items: center; justify-content: center;
    background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.22); font-size: 22px;
}
.tp-facts-kicker { display: block; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #bfdbfe; margin-bottom: 4px; }
.tp-facts-title h3 { color: #fff; font-size: 24px; font-weight: 700; margin: 0; }
.tp-facts-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.tp-fact-card {
    background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.18); border-radius: 18px; padding: 20px 18px;
    display: flex; align-items: center; gap: 14px; backdrop-filter: blur(6px); transition: transform .3s ease, background .3s ease;
}
.tp-fact-card:hover { transform: translateY(-5px); background: rgba(255,255,255,.17); }
.tp-fact-icon {
    width: 48px; height: 48px; flex-shrink: 0; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; font-size: 20px;
}
.tp-fact-card strong { display: block; font-size: 26px; font-weight: 800; line-height: 1.1; color: #fff; }
.tp-fact-card span { display: block; font-size: 13px; color: rgba(255,255,255,.78); margin-top: 3px; }
.tp-facts-cta { position: relative; z-index: 1; margin-top: 26px; }

/* related news */
.tp-related-wrap { margin-top: 10px; }
.tp-related-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.tp-related-title { font-size: 26px; font-weight: 700; color: var(--tp-common-black, #111827); margin: 6px 0 0; }

@media (max-width: 991px) {
    .tp-facts-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
    .tp-read-facts { margin: 10px 22px 28px; padding: 26px 20px; }
    .tp-facts-title h3 { font-size: 20px; }
    .tp-facts-grid { grid-template-columns: 1fr; }
    .tp-read-hero-meta { gap: 8px 16px; }
}

/* ---------- CMS page infographic toolkit (used inside .tp-cms-content) ---------- */
.tp-cms-hero { position: relative; height: 340px; border-radius: 24px; overflow: hidden; margin-bottom: 34px; box-shadow: 0 20px 50px rgba(31,36,46,.16); }
.tp-cms-hero img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tp-cms-hero-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,18,42,.05) 30%, rgba(10,18,42,.85)); display: flex; align-items: flex-end; padding: 30px 34px; }
.tp-cms-hero-content .tp-cms-hero-chip {
    display: inline-flex; align-items: center; gap: 8px; background: var(--tp-theme-1, #2563eb); color: #fff;
    font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: 7px 16px; border-radius: 999px; margin-bottom: 14px;
}
.tp-cms-hero-title { color: #fff; font-size: clamp(26px, 3.6vw, 40px); font-weight: 800; line-height: 1.15; max-width: 800px; }
@media (max-width: 767px) { .tp-cms-hero { height: 250px; } .tp-cms-hero-overlay { padding: 20px 22px; } }

.tp-cms-statband {
    position: relative; margin: 8px 0 34px; padding: 30px 30px; border-radius: 22px; overflow: hidden;
    background: linear-gradient(135deg, #0f172a 0%, #1e3a8a 55%, #2563eb 100%); color: #fff;
    box-shadow: 0 20px 50px rgba(37,99,235,.22);
}
.tp-cms-statband .tp-facts-title { margin-bottom: 22px; }
.tp-cms-statband .tp-facts-grid { gap: 14px; }

.tp-cms-stats2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 16px; margin: 8px 0 30px; }
.tp-cms-stat2 {
    background: #fff; border: 1px solid #e7e3da; border-radius: 18px; padding: 22px 18px; text-align: center;
    box-shadow: 0 8px 24px rgba(31,36,46,.06); transition: transform .3s ease, box-shadow .3s ease;
}
.tp-cms-stat2:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(31,36,46,.12); }
.tp-cms-stat2 .tp-cms-stat2-ico {
    width: 46px; height: 46px; border-radius: 14px; background: rgba(37,99,235,.1); color: var(--tp-theme-1);
    display: inline-flex; align-items: center; justify-content: center; font-size: 19px; margin-bottom: 10px;
}
.tp-cms-stat2 strong { display: block; font-size: 28px; font-weight: 800; color: var(--tp-common-black); line-height: 1.1; }
.tp-cms-stat2 span { display: block; font-size: 13px; color: var(--tp-grey-1); margin-top: 4px; }

.tp-imgcard-shell { margin-bottom: 24px; }
.tp-imgcard { position: relative; border-radius: 18px; overflow: hidden; box-shadow: 0 12px 34px rgba(31,36,46,.12); height: 100%; }
.tp-imgcard > img { width: 100%; height: 260px; object-fit: cover; display: block; }
.tp-imgcard-caption { position: absolute; left: 0; right: 0; bottom: 0; padding: 40px 22px 18px; background: linear-gradient(180deg, rgba(10,18,42,0) 0%, rgba(10,18,42,.78)); }
.tp-imgcard-caption h4 { color: #fff; font-size: 18px; font-weight: 700; margin: 0; }
.tp-imgcard-caption span { color: rgba(255,255,255,.85); font-size: 13px; }

.tp-cms-panel { background: #fff; border: 1px solid #ece9e3; border-radius: 18px; padding: 28px; box-shadow: 0 8px 26px rgba(31,36,46,.06); height: calc(100% - 24px); margin-bottom: 24px; }
.tp-cms-panel-head { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.tp-cms-panel-head i { width: 46px; height: 46px; border-radius: 14px; background: var(--tp-theme-1); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 19px; flex-shrink: 0; }
.tp-cms-panel-head h3 { font-family: var(--tp-ff-heading); font-size: 20px; font-weight: 700; color: var(--tp-common-black); margin: 0; }
.tp-cms-panel ul { list-style: none; padding: 0; margin: 0; }
.tp-cms-panel li { display: flex; gap: 12px; align-items: flex-start; color: var(--tp-grey-1); font-size: 15px; line-height: 1.7; padding: 9px 0; border-bottom: 1px dashed #efece6; }
.tp-cms-panel li:last-child { border-bottom: 0; }
.tp-cms-panel li i.tp-pane-tick { color: var(--tp-theme-1); margin-top: 4px; flex-shrink: 0; }

.tp-rule-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 16px; margin: 8px 0 30px; }
.tp-rule-card {
    background: #fff; border: 1px solid #ece9e3; border-radius: 18px; padding: 22px 20px; text-align: center;
    box-shadow: 0 8px 26px rgba(31,36,46,.06); transition: transform .3s ease, box-shadow .3s ease;
}
.tp-rule-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(31,36,46,.12); }
.tp-rule-num {
    width: 44px; height: 44px; border-radius: 50%; background: var(--tp-theme-1); color: #fff; font-weight: 800; font-size: 18px;
    display: inline-flex; align-items: center; justify-content: center; margin-bottom: 12px;
}
.tp-rule-card h4 { font-size: 16px; font-weight: 700; color: var(--tp-common-black); margin: 0 0 6px; }
.tp-rule-card p { font-size: 13px; color: var(--tp-grey-1); margin: 0; line-height: 1.6; }

.tp-sport-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 16px; margin: 8px 0 30px; }
.tp-sport-card {
    background: #fff; border: 1px solid #ece9e3; border-radius: 18px; padding: 24px 20px; text-align: center;
    box-shadow: 0 8px 26px rgba(31,36,46,.06); transition: all .3s ease;
}
.tp-sport-card:hover { background: var(--tp-theme-1); transform: translateY(-4px); box-shadow: 0 18px 40px rgba(37,99,235,.24); }
.tp-sport-card i { font-size: 30px; color: var(--tp-theme-1); display: block; margin-bottom: 12px; transition: color .3s ease; }
.tp-sport-card:hover i { color: #fff; }
.tp-sport-card h4 { font-size: 16px; font-weight: 700; color: var(--tp-common-black); margin: 0; transition: color .3s ease; }
.tp-sport-card:hover h4 { color: #fff; }

.tp-timeline { position: relative; margin: 8px 0 30px; padding-left: 30px; }
.tp-timeline::before { content: ""; position: absolute; left: 9px; top: 8px; bottom: 8px; width: 2px; background: rgba(37,99,235,.25); }
.tp-timeline-item { position: relative; padding: 0 0 22px 10px; }
.tp-timeline-item:last-child { padding-bottom: 0; }
.tp-timeline-item::before { content: ""; position: absolute; left: -28px; top: 6px; width: 12px; height: 12px; border-radius: 50%; background: var(--tp-theme-1); box-shadow: 0 0 0 4px rgba(37,99,235,.18); }
.tp-timeline-item h4 { font-size: 17px; font-weight: 700; color: var(--tp-common-black); margin: 0 0 4px; }
.tp-timeline-item p { font-size: 15px; color: var(--tp-grey-1); margin: 0; line-height: 1.7; }

.tp-do-dont { display: grid; gap: 16px; margin: 8px 0 30px; }
.tp-do-dont h4 { font-size: 18px; font-weight: 700; margin: 0 0 14px; display: flex; align-items: center; gap: 10px; }
.tp-do-dont li { display: flex; align-items: flex-start; gap: 10px; padding: 8px 0; border-bottom: 1px dashed #efece6; }
.tp-do-dont li:last-child { border-bottom: 0; }
.tp-do-dont ul { list-style: none; margin: 0; padding: 0; }
.tp-do-list { background: #fff; border: 1px solid #e5efec; border-radius: 16px; padding: 20px 22px; }
.tp-do-list h4 { color: #198754; }
.tp-do-list li { color: var(--tp-grey-1); font-size: 15px; }
.tp-do-list i { color: #198754; margin-top: 4px; }
.tp-dont-list { background: #fff; border: 1px solid #f3e3e5; border-radius: 16px; padding: 20px 22px; }
.tp-dont-list h4 { color: #dc3545; }
.tp-dont-list li { color: var(--tp-grey-1); font-size: 15px; }
.tp-dont-list i { color: #dc3545; margin-top: 4px; }
@media (max-width: 991px) {
    .tp-do-dont { grid-template-columns: 1fr; }
}
@media (min-width: 992px) {
    .tp-do-dont { grid-template-columns: 1fr 1fr; }
}

/* ---------- event page three-way infographic: Nigeria / College / Website ---------- */
.tp-event-infos { position: relative; margin: 10px 42px 36px; }
.tp-event-info-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; position: relative; z-index: 1; }
.tp-event-info {
    border-radius: 20px; padding: 26px 24px; color: #fff; overflow: hidden; position: relative;
    border: 1px solid rgba(255,255,255,.16); transition: transform .3s ease, box-shadow .3s ease;
}
.tp-event-info::before {
    content: ""; position: absolute; top: -45px; right: -45px; width: 170px; height: 170px; border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,255,.22), transparent 65%);
}
.tp-event-info:hover { transform: translateY(-6px); }
.tp-event-info-nigeria { background: linear-gradient(150deg, #064e3b 0%, #065f46 55%, #047857 100%); box-shadow: 0 18px 44px rgba(5,150,105,.28); }
.tp-event-info-nigeria:hover { box-shadow: 0 24px 52px rgba(5,150,105,.40); }
.tp-event-info-school { background: linear-gradient(150deg, #0f172a 0%, #1e3a8a 55%, #2563eb 100%); box-shadow: 0 18px 44px rgba(37,99,235,.28); }
.tp-event-info-school:hover { box-shadow: 0 24px 52px rgba(37,99,235,.40); }
.tp-event-info-web { background: linear-gradient(150deg, #4a1d96 0%, #6d28d9 55%, #7c3aed 100%); box-shadow: 0 18px 44px rgba(109,40,217,.28); }
.tp-event-info-web:hover { box-shadow: 0 24px 52px rgba(109,40,217,.40); }
.tp-event-info-head { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; position: relative; z-index: 1; }
.tp-event-info-head .tp-event-info-ico {
    width: 46px; height: 46px; flex-shrink: 0; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center;
    background: rgba(255,255,255,.15); border: 1px solid rgba(255,255,255,.22); font-size: 20px;
}
.tp-event-info-head strong.tp-event-info-tag { display: block; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; opacity: .9; }
.tp-event-info-head h4 { margin: 2px 0 0; font-size: 18px; font-weight: 700; color: #fff; }
.tp-event-info ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; position: relative; z-index: 1; }
.tp-event-info ul li { display: flex; align-items: flex-start; gap: 9px; font-size: 14px; line-height: 1.45; color: rgba(255,255,255,.9); }
.tp-event-info ul li i { margin-top: 3px; font-size: 13px; opacity: .9; }
.tp-event-info ul li strong { font-size: 17px; color: #fff; margin-right: 2px; }
.tp-event-info-cta { margin-top: 18px; position: relative; z-index: 1; }
.tp-event-info-cta a { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; color: #fff; }
.tp-event-info-cta a i { transition: transform .3s ease; }
.tp-event-info-cta a:hover i { transform: translateX(4px); }
@media (max-width: 991px) {
    .tp-event-infos { margin: 10px 22px 28px; }
    .tp-event-info-grid { grid-template-columns: 1fr; }
}

/* ---------- GLOBAL: every blue-background button shows white text, white stays on hover ---------- */
.tp-btn, .tp-btn:hover, .tp-btn:focus, .tp-btn:active, .tp-btn:focus-visible, .tp-btn:disabled,
.tp-course-btn a, .tp-course-btn a:hover, .tp-course-btn a:focus, .tp-course-btn a:active,
.tp-department-btn, .tp-department-btn:hover, .tp-department-btn:focus, .tp-department-btn:active,
.tp-department-item:hover .tp-department-content > a,
.onlineformbtn, .onlineformbtn:hover, .onlineformbtn:focus, .onlineformbtn:active,
.modalclosebtn.mdbtn, .modalclosebtn.mdbtn:hover, .modalclosebtn.mdbtn:focus, .modalclosebtn.mdbtn:active,
.btn-buygreen, .btn-buygreen:hover, .btn-buygreen:focus, .btn-buygreen:active,
.ptaddtocart, .ptaddtocart:hover, .ptaddtocart:focus, .ptaddtocart:active,
.gotocartbtn, .gotocartbtn:hover, .gotocartbtn:focus, .gotocartbtn:active,
.searchfilterbtn, .searchfilterbtn:hover, .searchfilterbtn:focus, .searchfilterbtn:active {
    color: #fff !important;
}
.searchfilterbtn .sortvalue.active, .searchfilterbtn .sortvalue.active:hover,
.searchfilterbtn .btn-default:hover, .searchfilterbtn .btn-default:focus, .searchfilterbtn .btn-default:active,
#list:hover, #list:focus, #list:active, #table:hover, #table:focus, #table:active {
    color: #fff !important;
}
.tp-header-search:hover, .tp-header-search:focus, .tp-header-search:active { color: #fff !important; }
.tp-read-share-print, .tp-read-share-print:hover, .tp-read-share-print:focus, .tp-read-share-print:active,
.tp-event-date-badge, .tp-news-date-badge, .tp-rule-num, .tp-cms-panel-head i, .cms-gallery-overlay i,
.tp-cms-hero-chip, .tp-read-hero-chip {
    color: #fff !important;
}

/* ============================================================
   ABOUT PAGE : infographic showcase
   ============================================================ */
.tp-ai-block { margin-top: 64px; }
.tp-ai-sechead { text-align: center; max-width: 740px; margin: 0 auto 44px; overflow: hidden; }
.tp-ai-sechead .tp-ai-kicker {
    display: inline-flex; align-items: center; gap: 10px; color: var(--tp-theme-1); font-weight: 700; font-size: 13px;
    letter-spacing: .12em; text-transform: uppercase; margin-bottom: 14px; background: rgba(37, 99, 235, .08);
    padding: 8px 18px; border-radius: 999px;
}
.tp-ai-sechead h2 { font-size: 38px; line-height: 1.2; margin-bottom: 12px; }
.tp-ai-sechead h2::after { display: none; }
.tp-ai-sechead p { font-size: 16px !important; color: var(--tp-grey-1); max-width: 620px; margin: 0 auto; }
.tp-ai-sechead p::after { display: none; }

/* ---- session selector dropdown ---- */
.tp-ai-sel { display: inline-flex; align-items: center; gap: 10px; margin: 18px auto 4px; background: #fff; border: 1px solid #e6e9f0; border-radius: 999px; padding: 8px 8px 8px 18px; box-shadow: 0 8px 20px rgba(31, 36, 46, .07); }
.tp-ai-sel-label { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; color: var(--tp-grey-1); white-space: nowrap; }
.tp-ai-sel-label i { color: var(--tp-theme-1); }
.tp-ai-select { appearance: none; -webkit-appearance: none; background: #f4f7ff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M1 1l4 4 4-4' stroke='%232563eb' stroke-width='1.8' fill='none' stroke-linecap='round'/></svg>") no-repeat right 14px center; border: 1px solid rgba(37, 99, 235, .25); border-radius: 999px; padding: 8px 34px 8px 14px; font-size: 13.5px; font-weight: 700; color: #1f242e; cursor: pointer; }
.tp-ai-select:focus { outline: none; border-color: var(--tp-theme-1); box-shadow: 0 0 0 3px rgba(37, 99, 235, .15); }
.tp-ai-sessnote { display: block; margin: 12px auto 0; max-width: 640px; font-size: 13px; font-weight: 600; color: #2563eb; background: rgba(37, 99, 235, .08); border: 1px dashed rgba(37, 99, 235, .35); border-radius: 999px; padding: 7px 16px; }

/* ---- numbers band ---- */
.tp-ai-numbs {
    position: relative; overflow: hidden; border-radius: 28px; padding: 52px 44px; color: #fff;
    background: linear-gradient(135deg, #1d4ed8 0%, #2563eb 45%, #60a5fa 100%);
    box-shadow: 0 26px 60px rgba(37, 99, 235, .28);
}
.tp-ai-numbs::before { content: ""; position: absolute; width: 440px; height: 440px; border-radius: 50%; background: rgba(255, 255, 255, .09); top: -190px; right: -130px; }
.tp-ai-numbs::after { content: ""; position: absolute; width: 330px; height: 330px; border-radius: 50%; background: rgba(255, 255, 255, .07); bottom: -150px; left: -90px; }
.tp-ai-nums { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(6, 1fr); gap: 18px; }
.tp-ai-num {
    text-align: center; padding: 24px 12px; border-radius: 18px; background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .18); backdrop-filter: blur(6px); transition: transform .25s ease, background .25s ease;
}
.tp-ai-num:hover { transform: translateY(-7px); background: rgba(255, 255, 255, .2); }
.tp-ai-num i { font-size: 30px; color: #dbeafe; margin-bottom: 12px; }
.tp-ai-num-val { font-size: 44px; font-weight: 800; line-height: 1; letter-spacing: .01em; }
.tp-ai-num-val .tp-ai-suffix { font-weight: 800; }
.tp-ai-num-lbl { margin-top: 10px; font-size: 13px; letter-spacing: .04em; color: rgba(255, 255, 255, .92); }

/* ---- sections cards ---- */
.tp-ai-section-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 22px; }
.tp-ai-section-card { position: relative; border-radius: 20px; overflow: hidden; min-height: 270px; display: flex; align-items: flex-end; box-shadow: 0 18px 40px rgba(31, 36, 46, .14); }
.tp-ai-section-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.tp-ai-section-card:hover img { transform: scale(1.07); }
.tp-ai-section-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15, 23, 42, .05) 30%, rgba(15, 23, 42, .88) 100%); }
.tp-ai-section-body { position: relative; z-index: 2; padding: 22px 18px; color: #fff; width: 100%; }
.tp-ai-section-body h4 { color: #fff; font-size: 18px; margin: 0 0 8px; }
.tp-ai-section-body span { font-size: 12.5px; color: rgba(255, 255, 255, .85); display: block; margin-bottom: 12px; }
.tp-ai-section-body a { display: inline-flex; align-items: center; gap: 8px; color: #fff; font-size: 13.5px; font-weight: 700; text-decoration: none; }
.tp-ai-section-body a i { transition: transform .25s ease; }
.tp-ai-section-body a:hover i { transform: translateX(5px); }

/* ---- learning pathway ---- */
.tp-ai-path { display: grid; grid-template-columns: repeat(5, 1fr); gap: 22px; }
.tp-ai-path-step {
    position: relative; text-align: center; padding: 30px 18px 26px; border-radius: 20px; background: #fff;
    border: 1px solid #eef1f6; box-shadow: 0 12px 32px rgba(31, 36, 46, .07); transition: transform .3s ease;
}
.tp-ai-path-step:hover { transform: translateY(-7px); }
.tp-ai-path-step:not(:last-child)::after {
    content: "\f054"; font-family: "Font Awesome 6 Pro", "Font Awesome 6 Free", "Font Awesome 5 Free"; font-weight: 900;
    position: absolute; right: -19px; top: 50%; transform: translateY(-50%); z-index: 2; color: var(--tp-theme-1);
    background: #fff; width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
    font-size: 12px; box-shadow: 0 4px 12px rgba(31, 36, 46, .14);
}
.tp-ai-path-ic {
    width: 66px; height: 66px; border-radius: 50%; margin: 0 auto 16px; display: flex; align-items: center; justify-content: center;
    font-size: 26px; color: #fff; background: linear-gradient(135deg, #1d4ed8, #60a5fa); box-shadow: 0 10px 22px rgba(37, 99, 235, .3);
}
.tp-ai-path-step h4 { font-size: 16.5px; margin: 0 0 6px; }
.tp-ai-path-step span { font-size: 13px; color: var(--tp-grey-1); }
.tp-ai-path-step small { display: block; margin-top: 10px; font-size: 12px; font-weight: 700; color: var(--tp-theme-1); letter-spacing: .05em; text-transform: uppercase; }

/* ---- why choose us ---- */
.tp-ai-feat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.tp-ai-feat {
    background: #fff; border: 1px solid #eef1f6; border-radius: 20px; padding: 28px 24px;
    box-shadow: 0 10px 30px rgba(31, 36, 46, .06); transition: all .3s ease;
}
.tp-ai-feat:hover { transform: translateY(-7px); box-shadow: 0 22px 46px rgba(37, 99, 235, .16); border-color: rgba(37, 99, 235, .28); }
.tp-ai-feat-ic { width: 58px; height: 58px; border-radius: 16px; display: flex; align-items: center; justify-content: center; font-size: 24px; color: #fff; background: linear-gradient(135deg, var(--tp-theme-1), var(--tp-theme-2)); margin-bottom: 18px; }
.tp-ai-feat h4 { font-size: 17px; margin: 0 0 8px; }
.tp-ai-feat p { font-size: 14px; color: var(--tp-grey-1); line-height: 1.7; margin: 0; }

/* ---- programmes ---- */
.tp-ai-prog { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.tp-ai-prog-card { border-radius: 22px; padding: 32px 28px; color: #fff; position: relative; overflow: hidden; }
.tp-ai-prog-card::before { content: ""; position: absolute; width: 210px; height: 210px; border-radius: 50%; background: rgba(255, 255, 255, .13); top: -80px; right: -70px; }
.tp-ai-prog-card h4 { color: #fff; font-size: 20px; margin: 0 0 16px; position: relative; }
.tp-ai-prog-card ul { list-style: none; margin: 0; padding: 0; position: relative; }
.tp-ai-prog-card li { position: relative; padding: 8px 0 8px 28px; font-size: 14.5px; color: rgba(255, 255, 255, .95); }
.tp-ai-prog-card li::before { content: "\f00c"; font-family: "Font Awesome 6 Pro", "Font Awesome 6 Free", "Font Awesome 5 Free"; font-weight: 900; position: absolute; left: 0; top: 8px; font-size: 12px; color: rgba(255, 255, 255, .8); }
.tp-ai-prog-card.c1 { background: linear-gradient(135deg, #1e3a8a, #2563eb); }
.tp-ai-prog-card.c2 { background: linear-gradient(135deg, #14532d, #22c55e); }
.tp-ai-prog-card.c3 { background: linear-gradient(135deg, #78350f, #f59e0b); }

/* ---- mission / vision / promise ---- */
.tp-ai-mvp { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.tp-cms-content .tp-ai-mvp .contact-item { text-align: left; padding: 30px 28px; }
.tp-ai-mvp .contact-item h3 { display: flex; align-items: center; gap: 10px; margin-top: 0; }
.tp-ai-mvp .contact-item h3 i { color: var(--tp-theme-1); font-size: 20px; }

/* ---- CTA band ---- */
.tp-ai-cta {
    position: relative; overflow: hidden; border-radius: 28px; color: #fff; padding: 58px 48px; text-align: center;
    background: linear-gradient(135deg, #1f242e 0%, #2563eb 100%); box-shadow: 0 26px 60px rgba(31, 36, 46, .25);
}
.tp-ai-cta::before { content: ""; position: absolute; width: 360px; height: 360px; border-radius: 50%; background: rgba(255, 255, 255, .08); top: -140px; left: -100px; }
.tp-ai-cta::after { content: ""; position: absolute; width: 260px; height: 260px; border-radius: 50%; background: rgba(255, 255, 255, .06); bottom: -120px; right: -80px; }
.tp-ai-cta h2 { color: #fff; font-size: 34px; margin: 0 0 12px; position: relative; }
.tp-ai-cta h2::after { display: none; }
.tp-ai-cta p { color: rgba(255, 255, 255, .86); font-size: 16px; max-width: 660px; margin: 0 auto 30px; position: relative; }
.tp-ai-cta-btns { position: relative; display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; }
.tp-ai-cta-btns a { text-decoration: none; display: inline-flex; align-items: center; gap: 10px; }
.tp-ai-cta-btn {
    background: #fff; color: var(--tp-theme-1) !important; font-weight: 700; font-size: 15px; padding: 15px 30px; border-radius: 999px;
    transition: all .3s ease;
}
.tp-ai-cta-btn:hover { background: #dbeafe; transform: translateY(-3px); color: var(--tp-theme-1) !important; }
.tp-ai-cta-ghost { border: 2px solid rgba(255, 255, 255, .5); color: #fff !important; font-weight: 700; font-size: 15px; padding: 13px 30px; border-radius: 999px; transition: all .3s ease; }
.tp-ai-cta-ghost:hover { background: rgba(255, 255, 255, .14); color: #fff !important; }

/* ---- about hero chips ---- */
.tp-ai-hero-strip { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.tp-ai-hero-chip { display: inline-flex; align-items: center; gap: 8px; background: #fff; border: 1px solid #e6e9f0; border-radius: 999px; padding: 9px 16px; font-size: 13.5px; font-weight: 600; color: #1f242e; box-shadow: 0 6px 16px rgba(31, 36, 46, .06); }
.tp-ai-hero-chip i { color: var(--tp-theme-1); }

/* ---- responsive ---- */
@media (max-width: 1199px) {
    .tp-ai-nums { grid-template-columns: repeat(3, 1fr); }
    .tp-ai-path { grid-template-columns: repeat(3, 1fr); }
    .tp-ai-section-grid { grid-template-columns: repeat(3, 1fr); }
    .tp-ai-feat-grid { grid-template-columns: repeat(2, 1fr); }
    .tp-ai-stats-grid { grid-template-columns: repeat(3, 1fr); }
    .tp-ai-prog { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 991px) {
    .tp-ai-path { grid-template-columns: repeat(2, 1fr); }
    .tp-ai-numbs { padding: 40px 24px; }
}
@media (max-width: 767px) {
    .tp-ai-nums { grid-template-columns: repeat(2, 1fr); }
    .tp-ai-path { grid-template-columns: 1fr; gap: 14px; }
    .tp-ai-path-step:not(:last-child)::after { display: none; }
    .tp-ai-section-grid { grid-template-columns: repeat(2, 1fr); }
    .tp-ai-section-card { min-height: 230px; }
    .tp-ai-prog { grid-template-columns: 1fr; }
    .tp-ai-mvp { grid-template-columns: 1fr; }
    .tp-ai-feat-grid { grid-template-columns: 1fr; }
    .tp-ai-stats-grid { grid-template-columns: repeat(2, 1fr); }
    .tp-ai-cta { padding: 44px 24px; }
}

/* ---- live student statistics ---- */
.tp-ai-stats-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 22px; }
.tp-ai-stat-card {
    background: #fff; border: 1px solid #eef1f6; border-radius: 20px; padding: 28px 20px; text-align: center;
    box-shadow: 0 10px 30px rgba(31, 36, 46, .06); transition: transform .3s ease, box-shadow .3s ease;
}
.tp-ai-stat-card:hover { transform: translateY(-7px); box-shadow: 0 22px 46px rgba(31, 36, 46, .14); }
a.tp-ai-stat-card { display: block; text-decoration: none; color: inherit; }
a.tp-ai-stat-card:hover h4 { color: var(--tp-theme-1); }
.tp-ai-stat-ic { width: 58px; height: 58px; border-radius: 16px; margin: 0 auto 14px; display: flex; align-items: center; justify-content: center; font-size: 24px; color: #fff; }
.tp-ai-stat-num { font-size: 38px; font-weight: 800; color: #1f242e; line-height: 1; }
.tp-ai-stat-card h4 { font-size: 15.5px; margin: 10px 0 4px; }
.tp-ai-stat-card p { font-size: 12.5px; color: var(--tp-grey-1); margin: 0; }
@media (max-width: 1199px) { .tp-ai-stats-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 767px) { .tp-ai-stats-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575px) { .tp-ai-stats-grid { gap: 14px; } .tp-ai-stat-card { padding: 22px 12px; } }

/* ---- whole-school snapshot: panels ---- */
.tp-ai-duo { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-top: 24px; }
.tp-ai-panel { background: #fff; border: 1px solid #eef1f6; border-radius: 20px; padding: 30px 28px; box-shadow: 0 10px 30px rgba(31, 36, 46, .06); }
.tp-ai-panel-title { display: flex; align-items: center; gap: 10px; font-size: 17px; margin: 0 0 22px; color: #1f242e; }
.tp-ai-panel-title i { color: var(--tp-theme-1); font-size: 18px; }
.tp-ai-staff-count { display: flex; align-items: baseline; gap: 14px; margin-bottom: 18px; }
.tp-ai-staff-num { font-size: 52px; font-weight: 800; line-height: 1; color: #1f242e; }
.tp-ai-staff-lbl { font-size: 14.5px; color: var(--tp-grey-1); }
.tp-ai-staff-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.tp-ai-staff-grid div { background: #f6f8fc; border-radius: 14px; padding: 16px; text-align: center; }
.tp-ai-staff-grid strong { display: block; font-size: 26px; font-weight: 800; color: #1f242e; line-height: 1.1; }
.tp-ai-staff-grid span { font-size: 13px; color: var(--tp-grey-1); }
.tp-ai-subj-title { margin: 22px 0 12px; font-size: 14.5px; font-weight: 700; }
.tp-ai-subj-list { display: grid; gap: 8px; }
.tp-ai-subj-item { display: flex; justify-content: space-between; align-items: center; background: #f6f8fc; border-radius: 10px; padding: 9px 14px; font-size: 13.5px; }
.tp-ai-subj-item strong { color: #1f242e; }
.tp-ai-subj-item span { color: var(--tp-grey-1); font-weight: 500; }
.tp-ai-subj-note { margin: 18px 0 0; font-size: 13.5px; color: var(--tp-grey-1); background: #fffbeb; border: 1px solid #fde68a; border-radius: 12px; padding: 12px 14px; }

/* ---- trend bar chart (shared) ---- */
.tp-trend { display: flex; align-items: stretch; justify-content: space-between; gap: 12px; height: 210px; padding: 0 4px; }
.tp-trend-col { flex: 1; min-width: 0; display: flex; flex-direction: column; height: 100%; }
.tp-trend-bar-area { flex: 1; display: flex; align-items: flex-end; justify-content: center; width: 100%; }
.tp-trend-bar { width: 100%; max-width: 64px; border-radius: 8px 8px 4px 4px; background: linear-gradient(180deg, #dbe7fd, #b7cdf7); }
.tp-trend-bar-cur { background: linear-gradient(180deg, var(--tp-theme-1), #1d4ed8); }
.tp-trend-ft { display: flex; flex-direction: column; align-items: center; padding-top: 8px; }
.tp-trend-num { font-size: 14px; font-weight: 800; color: #1f242e; white-space: nowrap; line-height: 1.2; }
.tp-trend-year { font-size: 12.5px; color: var(--tp-grey-1); font-weight: 600; white-space: nowrap; }
.tp-sss-trend-delta { display: inline-flex; align-items: center; gap: 7px; margin: 16px 0 0; font-size: 14px; font-weight: 700; }
.tp-sss-trend-delta.up { color: #16a34a; }
.tp-sss-trend-delta.down { color: #dc2626; }

/* ---- section page trend wrapper ---- */
.tp-sss-trend { margin-top: 24px; background: #fff; border: 1px solid #eef1f6; border-radius: 20px; padding: 26px 24px 22px; box-shadow: 0 10px 30px rgba(31, 36, 46, .06); }
.tp-sss-trend-head .tp-sss-col-title { border-bottom: 1px solid #eef1f6; padding-bottom: 14px; margin-bottom: 12px; }

/* ---- stream counts / note ---- */
.tp-sss-stream-cnt { display: inline-block; margin-left: 8px; padding: 3px 10px; border-radius: 999px; background: rgba(15, 23, 42, .06); font-size: 12px; font-weight: 700; color: #334155; vertical-align: middle; }
.tp-sss-stream-note { margin-top: 14px; font-size: 13px; color: #92400e; background: #fffbeb; border: 1px solid #fde68a; border-radius: 12px; padding: 11px 14px; }

@media (max-width: 1199px) {
    .tp-ai-duo { grid-template-columns: 1fr; }
}
@media (max-width: 575px) {
    .tp-trend { height: 180px; gap: 6px; }
    .tp-trend-num { font-size: 12.5px; }
    .tp-trend-year { font-size: 11px; }
    .tp-ai-panel { padding: 22px 16px; }
}

/* ---- senior secondary live stats (Secondary page) ---- */
.tp-sss-wrap { }
.tp-sss-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.tp-sss-stat-card {
    background: #fff; border: 1px solid #eef1f6; border-radius: 20px; padding: 26px 18px; text-align: center;
    box-shadow: 0 10px 30px rgba(31, 36, 46, .06); transition: transform .3s ease, box-shadow .3s ease;
}
.tp-sss-stat-card:hover { transform: translateY(-6px); box-shadow: 0 22px 46px rgba(31, 36, 46, .14); }
.tp-sss-highlight { background: linear-gradient(135deg, #1f242e 0%, #334155 100%); border: none; }
.tp-sss-highlight h4, .tp-sss-highlight p { color: rgba(255, 255, 255, .92); }
.tp-sss-highlight p { color: rgba(255, 255, 255, .7); }
.tp-sss-stat-ic { width: 58px; height: 58px; border-radius: 16px; margin: 0 auto 14px; display: flex; align-items: center; justify-content: center; font-size: 24px; color: #fff; }
.tp-sss-stat-num { font-size: 38px; font-weight: 800; color: #1f242e; line-height: 1; }
.tp-sss-highlight .tp-sss-stat-num { color: #fff; }
.tp-sss-stat-card h4 { font-size: 15.5px; margin: 10px 0 4px; }
.tp-sss-stat-card p { font-size: 12.5px; color: var(--tp-grey-1); margin: 0; }

.tp-sss-split { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 34px; }
.tp-sss-col {
    background: #fff; border: 1px solid #eef1f6; border-radius: 22px; padding: 28px 26px;
    box-shadow: 0 10px 30px rgba(31, 36, 46, .06);
}
.tp-sss-col-title { display: flex; align-items: center; gap: 10px; font-size: 18px; margin: 0 0 18px; }
.tp-sss-col-title i { color: var(--tp-theme-1); font-size: 17px; }
.tp-sss-table { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0; border: 1px solid #eef1f6; border-radius: 14px; overflow: hidden; }
.tp-sss-table th, .tp-sss-table td { padding: 13px 18px; font-size: 14.5px; vertical-align: middle; }
.tp-sss-table th { font-weight: 700; }
.tp-sss-table thead .tp-sss-tr { background: #f4f7ff; font-size: 13.5px; color: var(--tp-grey-1); letter-spacing: .02em; }
.tp-sss-table thead th { border-bottom: 1px solid #e6e9f0; }
.tp-sss-table tbody .tp-sss-tr:nth-child(odd) th, .tp-sss-table tbody .tp-sss-tr:nth-child(odd) td { background: #fafbfd; }
.tp-sss-table tbody .tp-sss-tr th { text-align: left; }
.tp-sss-table tbody .tp-sss-tr td { text-align: center; }
.tp-sss-table tfoot .tp-sss-tr { background: #f8faff; font-weight: 700; border-top: 2px solid #e6e9f0; }
.tp-sss-table tfoot .tp-sss-tr th { text-align: left; }
.tp-sss-table tfoot .tp-sss-tr td { text-align: center; }
.tp-sss-table tbody .tp-sss-tr strong { color: var(--tp-theme-1); font-weight: 800; }
.tp-sss-table tfoot .tp-sss-tr strong { color: #1f242e !important; }
.tp-sss-table tbody .tp-sss-tr { transition: background .2s ease; }
.tp-sss-table tbody .tp-sss-tr:hover th, .tp-sss-table tbody .tp-sss-tr:hover td { background: #eaf1ff !important; }

/* clickable class names inside table row headers */
.tp-sss-row-link { color: #1f242e; font-weight: 700; text-decoration: none; display: inline-flex; align-items: center; }
.tp-sss-row-link:hover { color: var(--tp-theme-1); }
.tp-sss-row-arrow { margin-left: 8px; font-size: 12px; color: var(--tp-theme-1); opacity: 0; transform: translateX(-4px); transition: opacity .2s ease, transform .2s ease; }
.tp-sss-row-link:hover .tp-sss-row-arrow { opacity: 1; transform: translateX(0); }
.tp-sss-table-hint { margin-top: 12px; font-size: 12.5px; color: var(--tp-grey-1); font-weight: 600; }
.tp-sss-table-hint i { color: var(--tp-theme-1); margin-right: 5px; }

/* visually hidden accessible caption */
.tp-ai-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.tp-sss-streams { display: flex; flex-direction: column; gap: 16px; }
.tp-sss-stream { border: 1px solid #eef1f6; border-radius: 14px; padding: 16px 18px; background: #fafbfd; }
.tp-sss-stream-head { display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: 15px; margin-bottom: 12px; }
.tp-sss-stream-head i { font-size: 16px; }
.tp-sss-stream-subj { display: flex; flex-wrap: wrap; gap: 8px; }
.tp-sss-stream-subj span {
    background: #fff; border: 1px solid #e6e9f0; border-radius: 999px; padding: 6px 14px;
    font-size: 12.5px; font-weight: 600; color: #1f242e; box-shadow: 0 4px 10px rgba(31, 36, 46, .05);
}

.tp-sss-subjects { margin-top: 34px; background: #fff; border: 1px solid #eef1f6; border-radius: 22px; padding: 28px 26px; box-shadow: 0 10px 30px rgba(31, 36, 46, .06); }
.tp-sss-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.tp-sss-chip {
    display: inline-flex; align-items: center; gap: 8px; background: #f4f7ff; border: 1px solid rgba(37, 99, 235, .22);
    border-radius: 999px; padding: 8px 16px; font-size: 13.5px; font-weight: 600; color: #1f242e; transition: transform .25s ease, box-shadow .25s ease;
}
.tp-sss-chip:hover { transform: translateY(-3px); box-shadow: 0 10px 20px rgba(37, 99, 235, .14); }
.tp-sss-chip i { color: var(--tp-theme-1); font-size: 12px; }

@media (max-width: 1199px) {
    .tp-sss-cards { grid-template-columns: repeat(2, 1fr); }
    .tp-sss-split { grid-template-columns: 1fr; }
}
@media (max-width: 575px) {
    .tp-sss-cards { grid-template-columns: 1fr; }
    .tp-sss-col, .tp-sss-subjects { padding: 20px 16px; }
    .tp-sss-table th, .tp-sss-table td { padding: 11px 10px; font-size: 13px; }
    .tp-sss-chips { gap: 8px; }
    .tp-sss-chip { padding: 7px 12px; font-size: 12.5px; }
}

/* ---- border buttons : always-visible blue text ---- */
.tp-btn-border {
    color: var(--tp-theme-1) !important;
    border-color: rgba(37, 99, 235, .55);
    background: rgba(37, 99, 235, .07);
}
.tp-btn-border i { color: var(--tp-theme-1) !important; }
.tp-btn-border:hover {
    color: #fff !important;
    background: var(--tp-theme-1);
    border-color: var(--tp-theme-1);
}
.tp-btn-border:hover i { color: #fff !important; }

/* ============ Skyweb Developers - Contact the Developer page ============ */
.tp-ai-devpage { overflow: hidden; }
.tp-ai-devpage .tp-ai-dev-hero { text-align: center; }
.tp-ai-dev-hero-inner { padding: 34px 20px 30px; }
.tp-ai-dev-hero h1 {
    font-size: 42px; font-weight: 800; color: #1f242e; line-height: 1.15; margin: 12px 0 10px;
    background: linear-gradient(120deg, #1f242e 30%, #2563eb 70%, #7c3aed 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.tp-ai-dev-hero p { font-size: 17px; color: var(--tp-grey-1); max-width: 680px; margin: 0 auto; }

.tp-ai-dev-intro {} 
.tp-ai-dev-intro-inner {
    display: grid; grid-template-columns: 330px 1fr; gap: 46px; align-items: center;
    background: #fff; border: 1px solid #eef1f6; border-radius: 28px; padding: 42px 46px 38px;
    box-shadow: 0 24px 60px rgba(31, 36, 46, .08);
}
.tp-ai-dev-photo-frame {
    position: relative; border-radius: 24px; overflow: hidden; border: 6px solid #f4f7ff; background: #eef2ff;
}
.tp-ai-dev-photo-frame::after { content: ""; position: absolute; inset: auto 0 0 0; height: 46px; background: linear-gradient(to top, rgba(31,36,46,.25), transparent); }
.tp-ai-dev-photo-frame img { width: 100%; height: 360px; object-fit: cover; display: block; }
.tp-ai-dev-info-col h2 { font-size: 33px; font-weight: 800; color: #1f242e; margin: 8px 0 2px; }
.tp-ai-dev-info-col h2::after { display: none; }
.tp-ai-dev-role { font-size: 15px; font-weight: 700; color: var(--tp-theme-1); letter-spacing: .4px; text-transform: uppercase; margin-bottom: 16px; }
.tp-ai-dev-bio { font-size: 15.5px; color: #59606c; line-height: 1.75; margin-bottom: 24px; }
.tp-ai-dev-contact-row { display: flex; flex-wrap: wrap; gap: 14px; }
.tp-ai-dev-chip {
    display: inline-flex; align-items: center; gap: 10px; text-decoration: none; font-weight: 700; font-size: 14.5px;
    padding: 13px 24px; border-radius: 999px; transition: transform .3s ease, box-shadow .3s ease, background .3s ease;
}
.tp-ai-dev-chip i { font-size: 18px; }
.tp-ai-dev-chip:hover { transform: translateY(-3px); }
.tp-ai-dev-chip--green { background: #dcfce7; color: #15803d !important; }
.tp-ai-dev-chip--green:hover { background: #bbf7d0; }
.tp-ai-dev-chip--blue { background: #dbeafe; color: #1d4ed8 !important; }
.tp-ai-dev-chip--blue:hover { background: #bfdbfe; }

.tp-ai-dev-services { margin-top: 70px; }
.tp-ai-dev-svc-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; margin-top: 6px; }
.tp-ai-dev-svc-card {
    background: #fff; border: 1px solid #eef1f6; border-radius: 22px; padding: 30px 26px; text-align: center;
    box-shadow: 0 12px 34px rgba(31, 36, 46, .06); transition: transform .3s ease, box-shadow .3s ease;
}
.tp-ai-dev-svc-card:hover { transform: translateY(-7px); box-shadow: 0 24px 50px rgba(31, 36, 46, .14); }
.tp-ai-dev-svc-ic {
    width: 62px; height: 62px; border-radius: 18px; color: #fff; margin: 0 auto 18px;
    display: flex; align-items: center; justify-content: center; font-size: 25px;
}
.tp-ai-dev-svc-ic.s1 { background: linear-gradient(135deg, #2563eb, #60a5fa); }
.tp-ai-dev-svc-ic.s2 { background: linear-gradient(135deg, #7c3aed, #a78bfa); }
.tp-ai-dev-svc-ic.s3 { background: linear-gradient(135deg, #0d9488, #2dd4bf); }
.tp-ai-dev-svc-ic.s4 { background: linear-gradient(135deg, #ea580c, #fb923c); }
.tp-ai-dev-svc-card h4 { font-size: 17px; font-weight: 700; color: #1f242e; margin-bottom: 8px; }
.tp-ai-dev-svc-card p { font-size: 13.5px; color: var(--tp-grey-1); margin: 0; line-height: 1.6; }

.tp-ai-dev-contact { margin-top: 70px; }
.tp-ai-dev-contact-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.tp-ai-dev-info-card {
    background: #fff; border: 1px solid #eef1f6; border-radius: 22px; padding: 32px 24px; text-align: center;
    box-shadow: 0 12px 34px rgba(31, 36, 46, .06); transition: transform .3s ease, box-shadow .3s ease;
}
.tp-ai-dev-info-card:hover { transform: translateY(-7px); box-shadow: 0 24px 50px rgba(31, 36, 46, .14); }
.tp-ai-dev-info-ic {
    width: 60px; height: 60px; border-radius: 18px; color: #fff; margin: 0 auto 16px;
    display: flex; align-items: center; justify-content: center; font-size: 24px;
}
.tp-ai-dev-info-ic.i1 { background: linear-gradient(135deg, #16a34a, #4ade80); }
.tp-ai-dev-info-ic.i2 { background: linear-gradient(135deg, #2563eb, #60a5fa); }
.tp-ai-dev-info-ic.i3 { background: linear-gradient(135deg, #dc2626, #f87171); }
.tp-ai-dev-info-ic.i4 { background: linear-gradient(135deg, #7c3aed, #a78bfa); }
.tp-ai-dev-info-card h4 { font-size: 16.5px; font-weight: 700; color: #1f242e; margin-bottom: 8px; }
.tp-ai-dev-info-card a, .tp-ai-dev-info-card span { display: block; font-size: 14.5px; color: var(--tp-grey-1); text-decoration: none; }
.tp-ai-dev-info-card a:hover { color: var(--tp-theme-1); }

.tp-ai-dev-map { margin-top: 70px; }
.tp-ai-dev-map-wrap {
    border-radius: 26px; overflow: hidden; border: 1px solid #eef1f6; box-shadow: 0 24px 60px rgba(31, 36, 46, .1);
    position: relative; padding-top: 46%;
}
.tp-ai-dev-map-wrap iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

@media (max-width: 991px) {
    .tp-ai-dev-intro-inner { grid-template-columns: 240px 1fr; text-align: left; gap: 32px; padding: 32px 30px; }
    .tp-ai-dev-photo-frame img { height: 320px; }
    .tp-ai-dev-contact-row { justify-content: flex-start; }
    .tp-ai-dev-svc-grid, .tp-ai-dev-contact-grid { grid-template-columns: repeat(2, 1fr); }
    .tp-ai-dev-hero h1 { font-size: 34px; }
    .tp-ai-dev-project-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
    .tp-ai-dev-intro-inner { grid-template-columns: 180px 1fr; gap: 26px; padding: 28px 24px; }
    .tp-ai-dev-photo-frame img { height: 260px; }
    .tp-ai-dev-info-col h2 { font-size: 26px; }
}
@media (max-width: 575px) {
    .tp-ai-dev-intro-inner { grid-template-columns: 130px 1fr; gap: 18px; padding: 22px 16px; }
    .tp-ai-dev-photo-frame img { height: 210px; }
    .tp-ai-dev-info-col h2 { font-size: 22px; }
    .tp-ai-dev-bio { font-size: 14px; line-height: 1.6; }
    .tp-ai-dev-chip { padding: 10px 16px; font-size: 13px; }
    .tp-ai-dev-svc-grid, .tp-ai-dev-contact-grid, .tp-ai-dev-project-grid { grid-template-columns: 1fr; }
    .tp-ai-dev-stack-grid { grid-template-columns: repeat(3, 1fr); }
}

/* ============ Skyweb Developers - Projects section ============ */
.tp-ai-dev-projects { margin-top: 84px; }
.tp-ai-dev-project-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; margin-top: 6px; }
.tp-ai-dev-project-card {
    background: #fff; border: 1px solid #eef1f6; border-radius: 22px; padding: 28px 24px;
    display: flex; flex-direction: column; box-shadow: 0 12px 34px rgba(31, 36, 46, .06);
    transition: transform .3s ease, box-shadow .3s ease;
}
.tp-ai-dev-project-card:hover { transform: translateY(-7px); box-shadow: 0 24px 50px rgba(31, 36, 46, .14); }
.tp-ai-dev-project-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.tp-ai-dev-project-num {
    font-size: 13px; font-weight: 800; color: #2563eb; letter-spacing: 1px;
    background: #eff6ff; border-radius: 999px; padding: 5px 14px;
}
.tp-ai-dev-project-year {
    font-size: 12.5px; font-weight: 700; color: #6b7280; background: #f3f4f6;
    border-radius: 999px; padding: 5px 12px; white-space: nowrap;
}
.tp-ai-dev-project-card h4 { font-size: 17.5px; font-weight: 800; color: #1f242e; margin-bottom: 4px; }
.tp-ai-dev-project-card h4::after { display: none; }
.tp-ai-dev-project-sub { font-size: 13px; font-weight: 700; color: var(--tp-theme-1); margin-bottom: 12px; }
.tp-ai-dev-project-feats { list-style: none; margin: 0 0 20px; padding: 0; flex: 1; }
.tp-ai-dev-project-feats li {
    position: relative; padding-left: 22px; margin-bottom: 8px;
    font-size: 13.5px; color: var(--tp-grey-1); line-height: 1.55;
}
.tp-ai-dev-project-feats li::before {
    content: "\f00c"; font-family: "Font Awesome 6 Pro"; font-weight: 900;
    position: absolute; left: 0; top: 1px; font-size: 12px; color: #16a34a;
}
.tp-ai-dev-project-link {
    display: inline-flex; align-items: center; gap: 8px; font-weight: 800; font-size: 14px;
    color: #1f242e; text-decoration: none; transition: color .25s ease, gap .25s ease;
}
.tp-ai-dev-project-link i { font-size: 13px; }
.tp-ai-dev-project-link:hover { color: var(--tp-theme-1); gap: 12px; }

/* ============ Skyweb Developers - Stack section ============ */
.tp-ai-dev-stack { margin-top: 84px; }
.tp-ai-dev-stack-grid {
    display: flex; flex-wrap: wrap; justify-content: center; gap: 12px;
    margin: 0 auto; max-width: 900px;
}
.tp-ai-dev-stack-chip {
    display: inline-flex; align-items: center; gap: 9px; font-size: 14px; font-weight: 600;
    color: #1f242e; background: #fff; border: 1px solid #e5e9f1; border-radius: 999px;
    padding: 11px 20px; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.tp-ai-dev-stack-chip i { color: var(--tp-theme-1); font-size: 16px; }
.tp-ai-dev-stack-chip:hover {
    transform: translateY(-3px); box-shadow: 0 14px 30px rgba(31, 36, 46, .1);
    border-color: #c7d2fe;
}

/* =========================================================
    Search result page
    ========================================================= */

/* Result type badges */
.tp-search-badge {
    display: inline-flex; align-items: center; gap: 6px; width: max-content;
    padding: 5px 12px; border-radius: 30px; font-size: 12px; font-weight: 700;
    letter-spacing: .03em; text-transform: uppercase;
}
.tp-search-badge--page { background: #eef2ff; color: #4338ca; }
.tp-search-badge--news { background: #eff6ff; color: #1d4ed8; }
.tp-search-badge--event { background: #f5f3ff; color: #6d28d9; }

/* Page header */
.tp-search-head {
    display: flex; flex-direction: column; gap: 2px;
    padding-bottom: 24px; margin-bottom: 34px;
    border-bottom: 1px solid #e7e3db;
}
.tp-search-head-title {
    font-family: var(--tp-ff-heading, 'Plus Jakarta Sans', sans-serif);
    font-size: clamp(26px, 3vw, 38px); font-weight: 800; line-height: 1.2;
    letter-spacing: -0.01em; color: var(--tp-common-black, #111827);
}
.tp-search-head-icon {
    width: 52px; height: 52px; flex: 0 0 52px; border-radius: 16px;
    background: var(--tp-grey-3, #f1efe9); color: var(--tp-theme-1, #2563eb);
    display: inline-flex; align-items: center; justify-content: center; font-size: 22px;
}
.tp-search-count-pill {
    display: inline-flex; align-items: center; padding: 6px 14px; border-radius: 30px;
    background: var(--tp-theme-1, #2563eb); color: #fff;
    font-size: 13px; font-weight: 700; letter-spacing: .02em;
    box-shadow: 0 8px 20px rgba(37, 99, 235, .3);
}
.tp-search-head-sub { color: var(--tp-grey-1, #747a86); font-size: 15px; }
.tp-search-head-sub strong { font-weight: 700; }

/* Section group heads */
.tp-search-section-head {
    display: flex; align-items: center; gap: 12px;
    padding-bottom: 14px; margin-bottom: 10px; border-bottom: 1px solid #efece6;
}
.tp-search-section-head i {
    width: 38px; height: 38px; flex: 0 0 38px; border-radius: 11px;
    background: var(--tp-grey-3, #f1efe9); color: var(--tp-theme-1, #2563eb);
    display: inline-flex; align-items: center; justify-content: center; font-size: 17px;
}
.tp-search-section-head h4 {
    font-family: var(--tp-ff-heading, 'Plus Jakarta Sans', sans-serif);
    font-size: 20px; font-weight: 700; color: var(--tp-common-black, #111827);
}
.tp-search-section-count {
    margin-left: auto; min-width: 28px; text-align: center; padding: 3px 10px;
    border-radius: 30px; background: #f4f1ea; color: var(--tp-common-black, #111827);
    font-size: 13px; font-weight: 700;
}

/* Page result cards */
.tp-search-page-card {
    display: flex; flex-direction: column; gap: 10px;
    background: #fff; border: 1px solid #ece9e3; border-radius: 18px;
    padding: 22px 24px; height: calc(100% - 20px); margin-bottom: 20px;
    box-shadow: 0 6px 22px rgba(31, 36, 46, .05);
    transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
    text-decoration: none;
}
.tp-search-page-card:hover {
    transform: translateY(-6px); border-color: rgba(37, 99, 235, .35);
    box-shadow: 0 20px 44px rgba(37, 99, 235, .16);
    text-decoration: none;
}
.tp-search-page-card-top {
    display: flex; align-items: center; justify-content: space-between;
}
.tp-search-page-arrow {
    color: var(--tp-grey-1, #a3a8b3); font-size: 17px;
    transition: transform .35s ease, color .35s ease;
}
.tp-search-page-card:hover .tp-search-page-arrow {
    transform: translateX(4px); color: var(--tp-theme-1, #2563eb);
}
.tp-search-page-title {
    font-family: var(--tp-ff-heading, 'Plus Jakarta Sans', sans-serif);
    font-size: 18px; font-weight: 700; line-height: 1.4; color: var(--tp-common-black, #111827);
}
.tp-search-page-card:hover .tp-search-page-title { color: var(--tp-theme-1, #2563eb); }
.tp-search-page-title,
.tp-search-excerpt {
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
}
.tp-search-excerpt {
    -webkit-line-clamp: 3; color: var(--tp-grey-1, #747a86); font-size: 14px; line-height: 1.7;
}

/* Search news/excerpt clamp */
.tp-search-news-thumb { height: 230px; }
.tp-search-excerpt { color: var(--tp-grey-1, #747a86); font-size: 14px; line-height: 1.7; }

/* Empty state */
.tp-search-empty {
    max-width: 560px; margin: 0 auto; padding: 60px 24px;
    background: #fff; border: 1px solid #ece9e3; border-radius: 22px;
    box-shadow: 0 10px 34px rgba(31, 36, 46, .07);
}
.tp-search-empty-icon {
    width: 84px; height: 84px; margin: 0 auto 24px; border-radius: 50%;
    background: var(--tp-grey-3, #f1efe9); color: var(--tp-theme-1, #2563eb);
    display: flex; align-items: center; justify-content: center; font-size: 34px;
}
.tp-search-empty-text { color: var(--tp-grey-1, #747a86); font-size: 15px; line-height: 1.8; }

@media (max-width: 767.98px) {
    .tp-search-head-title { font-size: 26px; }
    .tp-search-page-card { padding: 20px; }
}

/* keep CMS-authored content on the theme font face */
.tp-cms-content span[style*="comic"],
.tp-cms-content span[style*="Comic"],
.tp-cms-content span[style*="cursive"],
.onlineform .form-group span[style*="comic"],
.onlineform .form-group span[style*="Comic"],
.onlineform .form-group span[style*="cursive"] { font-family: inherit !important; }

/* ---- per-class detail page ---- */
.tp-cls-wrap { margin-top: 64px; }
.tp-cls-bread { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 13.5px; font-weight: 600; color: var(--tp-grey-1); margin-bottom: 26px; }
.tp-cls-bread a { color: var(--tp-grey-1); text-decoration: none; transition: color .2s ease; }
.tp-cls-bread a:hover { color: var(--tp-theme-1); }
.tp-cls-bread a i { margin-right: 6px; }
.tp-cls-bread-sep { color: #c3c9d4; font-size: 12px; }
.tp-cls-bread-cur { color: var(--tp-theme-1); }
.tp-cls-back { display: inline-block; margin-bottom: 24px; font-size: 13.5px; font-weight: 700; color: var(--tp-theme-1); text-decoration: none; background: rgba(37, 99, 235, .08); border: 1px solid rgba(37, 99, 235, .25); border-radius: 999px; padding: 9px 18px; transition: background .2s ease, color .2s ease; }
.tp-cls-back:hover { background: var(--tp-theme-1); color: #fff; }
.tp-cls-back i { margin-right: 7px; }
.tp-cls-body { display: grid; grid-template-columns: 1fr 360px; gap: 22px; margin-top: 34px; align-items: start; }
.tp-cls-panel { background: #fff; border: 1px solid #eef1f6; border-radius: 20px; padding: 26px 26px; box-shadow: 0 10px 30px rgba(31, 36, 46, .06); }
.tp-cls-panel .tp-sss-chips { margin-top: 6px; }
.tp-cls-panel .tp-sss-stream-note, .tp-cls-panel .tp-sss-chip { margin-top: 6px; }
.tp-cls-teacher-sec + .tp-cls-teacher-sec { margin-top: 20px; }
.tp-cls-teacher-sec h4 { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--tp-grey-1); margin: 0 0 10px; }
.tp-cls-teacher { display: flex; align-items: center; gap: 14px; padding: 11px 0; border-top: 1px solid #f0f2f6; }
.tp-cls-teacher:first-of-type { border-top: 0; }
.tp-cls-teacher-ic { width: 44px; height: 44px; border-radius: 50%; background: #f4f7ff; color: var(--tp-theme-1); display: flex; align-items: center; justify-content: center; font-size: 17px; flex-shrink: 0; }
.tp-cls-teacher strong { display: block; font-size: 15px; color: #1f242e; }
.tp-cls-teacher span { display: block; font-size: 12.5px; color: var(--tp-grey-1); margin-top: 2px; }
@media (max-width: 1199px) {
    .tp-cls-body { grid-template-columns: 1fr; }
}
@media (max-width: 575px) {
    .tp-cls-wrap { margin-top: 44px; }
    .tp-cls-panel { padding: 20px 16px; }
    .tp-ai-sel { flex-wrap: wrap; justify-content: center; border-radius: 30px; }
}