﻿
:root{
 --tb-ink:#28363d;--tb-muted:#6f7d82;--tb-teal:#719b98;--tb-teal-dark:#527e7a;
 --tb-cream:#f7f1e7;--tb-paper:#fffdf9;--tb-line:#e8e2d8;--tb-soft:#edf4f2;
 --tb-shadow:0 16px 45px rgba(42,62,65,.08);--tb-radius:22px;
}
.tb-section{padding:4.5rem 0}
.tb-page-hero{padding:2.4rem 0;background:linear-gradient(135deg,#f8f2e8 0%,#f2f7f5 100%);border-bottom:1px solid var(--tb-line)}
.tb-page-hero-inner{min-height:230px;display:flex;align-items:center;justify-content:space-between;gap:3rem;position:relative}
.tb-page-hero-inner>div:first-child{max-width:760px}
.tb-page-hero h1{font-size:clamp(2rem,4vw,3.3rem);font-weight:900;color:var(--tb-ink);margin:.55rem 0 .8rem;line-height:1.4}
.tb-page-hero p{font-size:1.05rem;color:var(--tb-muted);line-height:2;margin:0}
.tb-eyebrow{font-size:.82rem;color:var(--tb-teal-dark);font-weight:900;letter-spacing:.02em}
.tb-breadcrumb{display:flex;align-items:center;gap:.45rem;font-size:.8rem;margin-bottom:1.2rem;color:#7a8789}
.tb-breadcrumb a{color:#7a8789;text-decoration:none}.tb-breadcrumb strong{color:var(--tb-ink)}
.tb-breadcrumb i{font-size:.65rem}
.tb-page-hero-stat{width:145px;height:145px;border-radius:50%;background:#fff;border:1px solid var(--tb-line);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:var(--tb-shadow);flex:0 0 auto}
.tb-page-hero-stat strong{font-size:2.3rem;color:var(--tb-teal-dark);line-height:1}.tb-page-hero-stat span{font-size:.8rem;color:var(--tb-muted);margin-top:.5rem}
.tb-filter-chips{display:flex;gap:.55rem;align-items:center;overflow-x:auto;padding-bottom:.25rem;scrollbar-width:thin}
.tb-filter-chips a{white-space:nowrap;padding:.65rem 1rem;border:1px solid var(--tb-line);border-radius:999px;color:var(--tb-ink);text-decoration:none;background:#fff;font-weight:700;font-size:.86rem}
.tb-filter-chips a:hover,.tb-filter-chips a.active{background:var(--tb-teal-dark);border-color:var(--tb-teal-dark);color:#fff}
.tb-course-card,.tb-product-card,.tb-article-card{background:#fff;border:1px solid var(--tb-line);border-radius:var(--tb-radius);overflow:hidden;box-shadow:0 6px 24px rgba(42,62,65,.04);transition:.22s ease}
.tb-course-card:hover,.tb-product-card:hover,.tb-article-card:hover{transform:translateY(-5px);box-shadow:var(--tb-shadow)}
.tb-card-media{display:block;position:relative;background:#f2eee8;overflow:hidden}
.tb-course-card .tb-card-media{aspect-ratio:16/10}.tb-product-card .tb-card-media{aspect-ratio:1/1}.tb-article-card .tb-card-media{aspect-ratio:16/10}
.tb-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.tb-card-media:hover img{transform:scale(1.035)}
.tb-media-badges{position:absolute;top:12px;right:12px;left:12px;display:flex;gap:.4rem;flex-wrap:wrap}
.tb-badge-featured,.tb-badge-discount,.tb-badge-out{padding:.35rem .6rem;border-radius:999px;font-size:.72rem;font-weight:900;backdrop-filter:blur(6px)}
.tb-badge-featured{background:rgba(82,126,122,.94);color:#fff}.tb-badge-discount{background:#fff0d8;color:#946118}.tb-badge-out{background:rgba(54,61,63,.86);color:#fff}
.tb-card-body{padding:1.15rem 1.15rem 1.2rem;display:flex;flex-direction:column;height:calc(100% - 1px)}
.tb-card-meta{display:flex;justify-content:space-between;align-items:center;gap:.7rem;font-size:.73rem;color:#899397;margin-bottom:.65rem}
.tb-card-meta span{display:inline-flex;align-items:center;gap:.35rem}
.tb-card-body h2{font-size:1rem;font-weight:900;line-height:1.8;margin:0 0 .55rem}.tb-card-body h2 a{color:var(--tb-ink);text-decoration:none}
.tb-card-body>p{color:var(--tb-muted);font-size:.82rem;line-height:1.9;margin:0 0 .9rem}
.tb-card-specs{display:flex;gap:.65rem;flex-wrap:wrap;color:#7a8689;font-size:.75rem;margin-bottom:1rem}.tb-card-specs span{display:inline-flex;align-items:center;gap:.3rem}
.tb-card-footer{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-top:auto;padding-top:1rem;border-top:1px solid #f0ece5}
.tb-card-price{display:flex;flex-direction:column;gap:.15rem}.tb-card-price strong{color:var(--tb-ink);font-size:.95rem}.tb-card-price strong small{font-size:.68rem;font-weight:700}.tb-card-price del{font-size:.72rem;color:#9ba3a5}
.tb-card-arrow{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--tb-soft);color:var(--tb-teal-dark);text-decoration:none;flex:0 0 auto}.tb-card-arrow:hover{background:var(--tb-teal-dark);color:#fff}
.tb-primary-btn{border:0;border-radius:13px;background:var(--tb-teal-dark);color:#fff!important;text-decoration:none;font-weight:900;padding:.72rem 1.15rem;display:inline-flex;align-items:center;gap:.45rem}
.tb-primary-btn:hover{background:#416b68}
.tb-empty-state{text-align:center;background:#fff;border:1px dashed #d7d1c7;border-radius:24px;padding:4rem 1.5rem}.tb-empty-state>i{font-size:3rem;color:var(--tb-teal)}.tb-empty-state h2{font-size:1.2rem;font-weight:900;margin:1rem 0 .5rem}.tb-empty-state p{color:var(--tb-muted);margin-bottom:1.2rem}
.tb-featured-article{background:#fff;border:1px solid var(--tb-line);border-radius:26px;overflow:hidden;box-shadow:var(--tb-shadow)}
.tb-featured-article img{width:100%;height:100%;min-height:390px;object-fit:cover}.tb-featured-copy{height:100%;padding:clamp(2rem,5vw,4rem);display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.tb-featured-copy h2{font-size:clamp(1.45rem,3vw,2.2rem);line-height:1.7;font-weight:900;margin:.7rem 0}.tb-featured-copy h2 a{color:var(--tb-ink);text-decoration:none}.tb-featured-copy p{color:var(--tb-muted);line-height:2}
.tb-article-meta{display:flex;gap:1.2rem;flex-wrap:wrap;font-size:.78rem;color:#7d8a8d;margin:1rem 0 1.4rem}.tb-article-meta span{display:inline-flex;align-items:center;gap:.35rem}

/* Course detail: preserve functionality, normalize visual language */
.tb-course-detail-page .course-hero{background:linear-gradient(135deg,#f8f2e8,#edf4f2)!important;border-bottom:1px solid var(--tb-line)!important}
.tb-course-detail-page .course-cover{border-radius:24px!important;box-shadow:var(--tb-shadow)!important}
.tb-course-detail-page .course-section,.tb-course-detail-page .course-buy-card{border-color:var(--tb-line)!important;border-radius:22px!important;box-shadow:0 8px 28px rgba(42,62,65,.05)!important}
.tb-course-detail-page .course-buy-card{top:155px!important}
.tb-course-detail-page .btn-primary,.tb-product-detail-page .btn-primary,.tb-cart-page .btn-primary,.tb-checkout-page .btn-primary{background:var(--tb-teal-dark)!important;border-color:var(--tb-teal-dark)!important;border-radius:13px!important;font-weight:900}
.tb-course-detail-page .accordion-item{border-color:var(--tb-line)!important}.tb-course-detail-page .accordion-button:not(.collapsed){background:var(--tb-soft)!important;color:var(--tb-teal-dark)!important}

/* Product detail */
.tb-product-detail-page .product-hero{background:linear-gradient(135deg,#f8f2e8,#f4f8f6)!important}
.tb-product-detail-page .product-main-image{border-radius:24px!important}.tb-product-detail-page .product-section,.tb-product-detail-page .product-card{border-color:var(--tb-line)!important;border-radius:22px!important}
.tb-product-detail-page .product-thumb{border-radius:12px!important}.tb-product-detail-page .product-thumb.active{border-color:var(--tb-teal-dark)!important}
.tb-product-detail-page .position-sticky{top:155px!important}

/* Article detail: normalize legacy Eduport blocks */
.tb-article-detail-page{background:var(--tb-paper)}
.tb-article-detail-page>section:first-of-type{background:linear-gradient(135deg,#f8f2e8,#edf4f2);padding-top:3.2rem!important;padding-bottom:3.2rem!important}
.tb-article-detail-page img{border-radius:18px}.tb-article-detail-page .container>.row{--bs-gutter-x:2rem}
.tb-article-detail-page .card{border-radius:20px!important;border-color:var(--tb-line)!important}
.tb-article-detail-page p,.tb-article-detail-page .card-body{line-height:2}
.tb-article-detail-page h1,.tb-article-detail-page h2,.tb-article-detail-page h3{color:var(--tb-ink);font-weight:900}

/* Cart */
.tb-cart-page{background:linear-gradient(#fbf8f2 0, #fffdf9 210px)}
.cart-line{border:1px solid var(--tb-line)!important;border-radius:20px!important;background:#fff!important;box-shadow:0 6px 22px rgba(42,62,65,.04)}
.cart-thumb{width:112px;height:92px;object-fit:cover;border-radius:14px;background:#f2eee8}
.cart-summary{position:sticky;top:155px;border:1px solid var(--tb-line)!important;border-radius:22px!important;overflow:hidden;box-shadow:var(--tb-shadow)!important}
.cart-qty{width:92px}
.tb-cart-page .form-control{border-radius:11px}.tb-cart-page .btn-outline-primary{border-color:var(--tb-teal-dark);color:var(--tb-teal-dark);border-radius:11px}

/* Checkout */
.tb-checkout-page{background:linear-gradient(#fbf8f2 0, #fffdf9 240px)}
.checkout-card{border:1px solid var(--tb-line)!important;border-radius:22px!important;background:#fff!important;box-shadow:0 6px 24px rgba(42,62,65,.04)}
.checkout-summary{position:sticky;top:155px;border:1px solid var(--tb-line)!important;border-radius:22px!important;overflow:hidden;box-shadow:var(--tb-shadow)!important}
.checkout-item-thumb{width:66px;height:54px;object-fit:cover;border-radius:11px;background:#f2eee8}
.shipping-option{border:1px solid var(--tb-line)!important;border-radius:15px!important;padding:1rem;cursor:pointer;background:#fff}
.shipping-option:hover{border-color:#b7cbc8!important}.shipping-option:has(input:checked){border-color:var(--tb-teal-dark)!important;background:var(--tb-soft)!important}
.tb-checkout-page .form-control,.tb-checkout-page .form-select{border-radius:12px;border-color:#dfd9cf;min-height:46px}.tb-checkout-page textarea.form-control{min-height:auto}
.tb-checkout-page .form-control:focus,.tb-checkout-page .form-select:focus{border-color:var(--tb-teal);box-shadow:0 0 0 .2rem rgba(113,155,152,.13)}

/* Success */
.tb-checkout-success-page .card{border-radius:24px!important;border-color:var(--tb-line)!important;box-shadow:var(--tb-shadow)!important}

@media(max-width:991.98px){
 .tb-section{padding:3rem 0}.tb-page-hero-inner{min-height:190px}.tb-page-hero-stat{width:110px;height:110px}.tb-page-hero-stat strong{font-size:1.8rem}
 .tb-featured-article img{min-height:300px}
 .tb-course-detail-page .course-buy-card,.checkout-summary,.cart-summary{position:static!important}
 .tb-product-detail-page .position-sticky{position:static!important}
}
@media(max-width:767.98px){
 .tb-page-hero{padding:1.8rem 0}.tb-page-hero-inner{min-height:0;display:block}.tb-page-hero-stat{display:none}.tb-page-hero h1{font-size:2rem}
 .tb-featured-article img{min-height:230px;max-height:300px}.tb-featured-copy{padding:1.5rem}
 .tb-card-body{padding:1rem}.tb-product-card .tb-card-body h2{font-size:.9rem}.tb-product-card .tb-card-body>p{display:none}
 .cart-line .d-flex.gap-3.align-items-start{align-items:flex-start!important}.cart-thumb{width:86px;height:72px}
}
@media(max-width:575.98px){
 .tb-section{padding:2.4rem 0}.tb-filter-chips{margin-left:-12px;margin-right:-12px;padding-left:12px;padding-right:12px}
 .tb-course-card .tb-card-media{aspect-ratio:16/9}.tb-product-card .tb-card-media{aspect-ratio:1/1}
 .tb-card-meta{font-size:.68rem}.tb-card-specs{font-size:.7rem}
 .tb-course-detail-page .display-6,.tb-product-detail-page .h2{font-size:1.65rem!important}
 .tb-cart-page section,.tb-checkout-page section{padding-top:2rem!important;padding-bottom:2rem!important}
}


/* Responsive foundation and redesigned information/auth pages */
html,body{max-width:100%;overflow-x:hidden}
.tb-main-content,.tb-main-content>*{min-width:0}
img,svg,video,audio,iframe{max-width:100%}
iframe{display:block}
.row>*{min-width:0}
.tb-site-footer .container{padding-right:clamp(1.25rem,3vw,2.5rem);padding-left:clamp(1.25rem,3vw,2.5rem)}
.tb-footer-main{padding-inline:.5rem}
.tb-footer-contact strong,.tb-footer-contact span,.tb-footer-about{overflow-wrap:anywhere}

.tb-info-page{background:#fffdf9;color:var(--tb-ink)}
.tb-info-hero{padding:clamp(3rem,7vw,6.5rem) 0;background:linear-gradient(145deg,#f3f8f6 0%,#fff9f1 62%,#f8eee3 100%);overflow:hidden}
.tb-eyebrow{display:inline-flex;align-items:center;color:var(--tb-teal-dark);background:#e5f0ed;border-radius:999px;padding:.42rem .85rem;font-size:.82rem;font-weight:900;margin-bottom:1rem}
.tb-info-hero h1{font-size:clamp(2rem,4.4vw,4rem);line-height:1.35;font-weight:950;letter-spacing:-.04em;margin:0 0 1.25rem}
.tb-info-hero p,.tb-info-heading p{color:#647477;font-size:clamp(1rem,1.6vw,1.12rem);line-height:2;max-width:670px}
.tb-info-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.8rem}
.tb-info-primary,.tb-info-secondary{min-height:50px;border-radius:14px;padding:.75rem 1.25rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;text-decoration:none;font-weight:900}
.tb-info-primary{background:var(--tb-teal-dark);color:#fff}
.tb-info-primary:hover{background:#416b68;color:#fff}
.tb-info-secondary{background:#fff;color:var(--tb-ink);border:1px solid var(--tb-line)}
.tb-info-visual{position:relative;max-width:620px;margin-inline:auto;padding:0 0 2rem 2rem}
.tb-info-visual>img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:32px;box-shadow:0 22px 60px rgba(40,69,67,.16)}
.tb-info-badge{position:absolute;left:0;bottom:0;max-width:310px;background:#fff;border:1px solid var(--tb-line);border-radius:20px;padding:1rem;box-shadow:0 16px 40px rgba(40,69,67,.14);display:flex;gap:.8rem;align-items:center}
.tb-info-badge>i{width:44px;height:44px;border-radius:14px;background:#f4e2cc;color:#9b642a;display:grid;place-items:center;font-size:1.2rem;flex:none}
.tb-info-badge span{display:grid;line-height:1.65;font-size:.84rem;color:var(--tb-muted)}
.tb-info-badge strong{color:var(--tb-ink);font-size:.96rem}
.tb-info-section{padding:clamp(3.5rem,7vw,6rem) 0}
.tb-info-heading{max-width:720px;margin-bottom:2rem}
.tb-info-heading h2,.tb-about-panel h2{font-size:clamp(1.7rem,3vw,2.6rem);font-weight:950;line-height:1.45}
.tb-value-card{height:100%;background:#fff;border:1px solid var(--tb-line);border-radius:24px;padding:clamp(1.35rem,3vw,2rem);box-shadow:0 8px 30px rgba(40,69,67,.06)}
.tb-value-card>i{width:52px;height:52px;border-radius:16px;background:#edf4f2;color:var(--tb-teal-dark);display:grid;place-items:center;font-size:1.35rem;margin-bottom:1rem}
.tb-value-card h3{font-size:1.15rem;font-weight:900}.tb-value-card p{color:var(--tb-muted);line-height:1.9;margin:0}
.tb-about-panel{background:var(--tb-teal-dark);color:#fff;border-radius:30px;padding:clamp(1.5rem,5vw,3.5rem);display:flex;align-items:center;justify-content:space-between;gap:2rem}
.tb-about-panel .tb-eyebrow{background:rgba(255,255,255,.14);color:#fff}.tb-about-panel p{color:rgba(255,255,255,.75);line-height:1.9;margin:0}
.tb-about-panel>a{flex:none;background:#fff;color:var(--tb-teal-dark);padding:.85rem 1.15rem;border-radius:14px;text-decoration:none;font-weight:900}

.tb-contact-hero{padding-bottom:5rem}.tb-contact-hero .tb-info-heading{max-width:720px}
.tb-contact-card{height:100%;min-height:118px;background:rgba(255,255,255,.85);border:1px solid rgba(82,126,122,.16);border-radius:22px;padding:1.2rem;display:flex;align-items:center;gap:1rem;color:var(--tb-ink);text-decoration:none;box-shadow:0 10px 32px rgba(40,69,67,.06)}
.tb-contact-card>i{width:48px;height:48px;flex:none;border-radius:15px;background:#e6f0ed;color:var(--tb-teal-dark);display:grid;place-items:center;font-size:1.2rem}
.tb-contact-card span{display:grid;gap:.3rem;min-width:0}.tb-contact-card small{color:var(--tb-muted)}.tb-contact-card strong{font-size:.95rem;overflow-wrap:anywhere}
.tb-contact-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);border:1px solid var(--tb-line);border-radius:30px;overflow:hidden;background:#fff;box-shadow:var(--tb-shadow)}
.tb-contact-aside{background:#eef5f3;padding:clamp(1.5rem,4vw,3rem);display:flex;flex-direction:column;justify-content:center}
.tb-contact-aside img{width:min(100%,360px);max-height:260px;margin:0 auto 1.5rem}
.tb-contact-aside h2{font-size:1.55rem;font-weight:950}.tb-contact-aside p{color:var(--tb-muted);line-height:1.9}
.tb-contact-socials{display:flex;gap:.55rem}.tb-contact-socials a{width:42px;height:42px;border-radius:13px;background:#fff;color:var(--tb-teal-dark);display:grid;place-items:center}
.tb-contact-form-card{padding:clamp(1.5rem,4vw,3rem)}.tb-contact-form-card .form-control{min-height:50px;border-radius:13px;border-color:#dce5e2}.tb-contact-form-card textarea.form-control{min-height:140px}

.tb-auth-page{min-height:calc(100vh - 170px);padding:clamp(2rem,7vw,6rem) 0;background:linear-gradient(145deg,#edf5f2,#fffaf2 65%,#f3e6d7)}
.tb-auth-shell{max-width:980px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.82fr);border-radius:32px;overflow:hidden;background:#fff;box-shadow:0 24px 70px rgba(40,69,67,.16);border:1px solid rgba(82,126,122,.12)}
.tb-auth-intro{padding:clamp(2rem,5vw,4rem);background:var(--tb-teal-dark);color:#fff;display:flex;flex-direction:column;justify-content:center}
.tb-auth-logo{display:inline-flex;margin-bottom:2rem}.tb-auth-logo img{height:65px;max-width:190px;object-fit:contain;filter:brightness(0) invert(1)}
.tb-auth-intro .tb-eyebrow{align-self:flex-start;background:rgba(255,255,255,.14);color:#fff}
.tb-auth-intro h1{font-size:clamp(1.8rem,3vw,2.8rem);line-height:1.5;font-weight:950}.tb-auth-intro p{color:rgba(255,255,255,.75);line-height:2}
.tb-auth-intro ul{list-style:none;padding:0;margin:1.25rem 0 0;display:grid;gap:.8rem}.tb-auth-intro li{display:flex;align-items:center;gap:.6rem}.tb-auth-intro li i{color:#bfe3d8}
.tb-auth-change{color:#fff;text-decoration:none;font-weight:900;display:inline-flex;gap:.5rem;align-items:center}
.tb-auth-card{padding:clamp(1.6rem,5vw,3.5rem);display:flex;flex-direction:column;justify-content:center}
.tb-auth-icon{width:58px;height:58px;border-radius:18px;background:#e9f3f0;color:var(--tb-teal-dark);display:grid;place-items:center;font-size:1.55rem;margin-bottom:1.2rem}
.tb-auth-card h2{font-size:1.6rem;font-weight:950}.tb-auth-card>p{color:var(--tb-muted);line-height:1.8;margin-bottom:1.5rem}
.tb-auth-input{height:54px;border-radius:14px;border-color:#d6e1de;font-size:1rem}.tb-code-input{text-align:center;font-size:1.5rem;letter-spacing:.5rem}
.tb-auth-submit{width:100%;min-height:54px;border:0;border-radius:14px;background:var(--tb-teal-dark);color:#fff;font-weight:900;margin-top:1rem;padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between}
.tb-auth-note{display:flex;gap:.45rem;color:var(--tb-muted);line-height:1.7;margin-top:1.25rem}.tb-auth-note i{color:var(--tb-teal-dark);font-size:1rem}
.tb-resend-form{display:flex;align-items:center;justify-content:center;gap:.4rem;flex-wrap:wrap;margin-top:1.25rem;color:var(--tb-muted);font-size:.9rem}.tb-resend-form button{border:0;background:none;color:var(--tb-teal-dark);font-weight:900;padding:.25rem}

@media(max-width:991.98px){
  .tb-contact-layout{grid-template-columns:1fr}
  .tb-contact-aside{text-align:center;align-items:center}
  .tb-auth-shell{grid-template-columns:1fr;max-width:620px}
  .tb-auth-intro{display:none}
}
@media(max-width:767.98px){
  .tb-info-hero{padding:2.75rem 0}
  .tb-info-hero h1{letter-spacing:-.02em}
  .tb-info-visual{padding:0 0 1.4rem 1rem;margin-top:.5rem}
  .tb-info-visual>img{border-radius:22px}
  .tb-info-badge{max-width:88%;padding:.8rem;border-radius:16px}
  .tb-about-panel{align-items:flex-start;flex-direction:column;border-radius:22px}
  .tb-about-panel>a{width:100%;justify-content:center;display:flex}
  .tb-contact-hero{padding-bottom:3rem}
  .tb-contact-card{min-height:96px}
  .tb-auth-page{padding:1rem 0 2rem}
  .tb-auth-shell{border-radius:22px}
  .tb-auth-card{padding:1.4rem}
  .tb-site-footer .container{padding-right:1.25rem;padding-left:1.25rem}
}
@media(max-width:575.98px){
  .tb-info-actions>*{width:100%}
  .tb-info-section{padding:3rem 0}
  .tb-contact-form-card{padding:1.2rem}
  .tb-contact-card{padding:1rem}
  .tb-footer-main{padding-inline:0}
  .table-responsive{max-width:100%}
  .tb-filter-chips{margin-inline:0;max-width:100%}
}
