/* ==========================================================================
   TMATS — sections that belong to this site (loaded after site.css)
   logo bar · course-fee table · notices · testimonials · message pages ·
   "Get in touch" band · opening hours · responsive rules for all of them
   ========================================================================== */

.btn-light{background:#fff;color:var(--green-800);box-shadow:var(--shadow-sm);}
.btn-light:hover{background:var(--green-100);color:var(--green-900);box-shadow:var(--shadow-md);}

/* ------------------------------------------------- Logo bar (above the menu) */
.brandbar{position:relative;overflow:hidden;background:#fff;border-bottom:1px solid var(--line);}
.brandbar::after{
  content:"";position:absolute;top:0;right:0;bottom:0;width:min(44%,540px);
  background:var(--bar-img,none) center 38%/cover no-repeat;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 62%);mask-image:linear-gradient(90deg,transparent 0,#000 62%);
  opacity:.92;pointer-events:none;
}
.brandbar .container{position:relative;z-index:1;padding-top:14px;padding-bottom:14px;}
.bb-link{display:inline-flex;align-items:center;gap:18px;max-width:100%;}
.bb-logo{height:86px;width:auto;flex:0 0 auto;}
.bb-text{display:flex;flex-direction:column;min-width:0;}
.bb-text b{font-family:var(--font-head);font-size:clamp(1.15rem,2.5vw,2rem);line-height:1.2;color:var(--green-800);}
.bb-text small{font-size:clamp(.78rem,1.4vw,.98rem);font-weight:600;color:var(--ink-500);margin-top:4px;}
@media (max-width:768px){
  .bb-logo{height:62px;}
  .bb-link{gap:12px;}
  .brandbar::after{width:40%;opacity:.45;}
}
@media (max-width:480px){
  .bb-logo{height:50px;}
  .brandbar .container{padding-top:10px;padding-bottom:10px;}
  .brandbar::after{display:none;}
}

/* --------------------------------------- Single welcome message (principal) */
.msg-section{padding-bottom:40px;}
.msg-grid.msg-single{grid-template-columns:1fr;max-width:1000px;margin:0 auto;}
.msg-single .msg-card{flex-direction:row;align-items:stretch;}
.msg-single .msg-photo{flex:0 0 min(34%,320px);aspect-ratio:auto;min-height:300px;}
.msg-single .msg-body{padding:32px 34px;justify-content:center;}
.msg-single .msg-text{flex:none;margin-bottom:14px;text-align:justify;}
@media (max-width:760px){
  .msg-single .msg-card{flex-direction:column;}
  .msg-single .msg-photo{flex:none;aspect-ratio:4/3;min-height:0;}
  .msg-single .msg-body{padding:22px 20px 24px;}
}

/* ------------------------------------------------------- Course-fee table */
.fee-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden;}
.fee-table{width:100%;border-collapse:collapse;text-align:center;font-size:.95rem;}
.fee-table thead th{
  background:var(--brand-grad);color:#fff;padding:15px 12px;font-family:var(--font-head);font-weight:600;
  font-size:.84rem;line-height:1.35;border:0;
}
.fee-table tbody th,.fee-table tbody td{padding:14px 12px;border-bottom:1px solid var(--line);color:var(--ink-700);font-weight:500;}
.fee-table tbody th{width:56px;color:var(--ink-500);}
.fee-table .fee-name{text-align:left;font-weight:700;color:var(--ink-900);}
.fee-table tbody tr{transition:background .2s ease;}
.fee-table tbody tr:hover{background:rgba(var(--p-rgb),.06);}
.fee-table tbody tr:last-child th,.fee-table tbody tr:last-child td{border-bottom:0;}
.fee-table tr.is-total th,.fee-table tr.is-total td{background:rgba(var(--p-rgb),.16);color:var(--green-900);font-weight:800;}
@media (max-width:680px){
  .fee-wrap{background:transparent;border:0;box-shadow:none;border-radius:0;overflow:visible;}
  .fee-table,.fee-table tbody,.fee-table tr,.fee-table tbody th,.fee-table tbody td{display:block;width:100%;}
  .fee-table thead{display:none;}
  .fee-table tbody tr{margin:0 0 16px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden;}
  .fee-table tbody th{display:none;}
  .fee-table tbody td{display:flex;justify-content:space-between;align-items:center;gap:16px;text-align:right;padding:11px 16px;font-weight:700;color:var(--ink-900);}
  .fee-table tbody td::before{content:attr(data-label);text-align:left;font-weight:600;font-size:.82rem;color:var(--ink-500);}
  .fee-table tbody td.fee-name{display:block;text-align:left;background:var(--brand-grad);color:#fff;font-family:var(--font-head);padding:13px 16px;}
  .fee-table tbody td.fee-name::before{display:none;}
  .fee-table tr.is-total td{background:rgba(var(--p-rgb),.16);}
  .fee-table tr.is-total td.fee-name{background:var(--brand-grad);color:#fff;}
}

@media (max-width:900px){
  .fee-table{font-size:.88rem;}
  .fee-table thead th{padding:12px 8px;font-size:.76rem;}
  .fee-table tbody th,.fee-table tbody td{padding:12px 8px;}
}

/* ------------------------------------------------------------ Notice cards */
.notice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:24px;}
.notice-card{
  background:#fff;border:1px solid var(--line);border-top:4px solid var(--green-700);border-radius:var(--radius-md);
  box-shadow:var(--shadow-sm);padding:22px;display:flex;flex-direction:column;gap:14px;
  transition:transform .3s ease,box-shadow .3s ease;
}
.notice-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);}
.nt-head{display:flex;gap:16px;align-items:flex-start;}
.nt-date{flex:0 0 78px;background:var(--brand-grad);color:#fff;border-radius:12px;text-align:center;padding:9px 6px;line-height:1.15;box-shadow:var(--shadow-sm);}
.nt-date b{display:block;font-family:var(--font-head);font-size:1.7rem;font-weight:800;}
.nt-date small{display:block;font-size:.66rem;font-weight:600;letter-spacing:.02em;opacity:.95;}
.nt-title{min-width:0;}
.nt-title h3{font-size:1.04rem;line-height:1.45;margin:0 0 5px;overflow-wrap:anywhere;}
.nt-title h3 a:hover{color:var(--green-700);}
.nt-time{font-size:.8rem;color:var(--ink-500);font-weight:600;}
.nt-time i{color:var(--green-700);margin-right:4px;}
.nt-text{margin:0;color:var(--ink-700);font-size:.92rem;line-height:1.65;}
.nt-btn{align-self:flex-start;margin-top:auto;}
@media (max-width:480px){
  .notice-card{padding:18px;}
  .nt-date{flex-basis:68px;}
  .nt-date b{font-size:1.45rem;}
}

/* ------------------------------------------------------------ Testimonials */
.testi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:24px;}
.testi-card{
  position:relative;margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);
  padding:30px 24px 24px;display:flex;flex-direction:column;gap:14px;transition:transform .3s ease,box-shadow .3s ease;
}
.testi-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);}
.testi-q{position:absolute;top:-16px;left:22px;width:38px;height:38px;border-radius:50%;background:var(--brand-grad);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.9rem;box-shadow:var(--shadow-sm);}
.testi-card blockquote{margin:0;flex:1;font-size:.93rem;line-height:1.75;color:var(--ink-700);font-style:italic;}
.testi-stars{color:var(--gold-500);font-size:.85rem;letter-spacing:2px;}
.testi-card figcaption{display:flex;align-items:center;gap:12px;padding-top:14px;border-top:1px solid var(--line);}
.testi-avatar{flex:0 0 46px;width:46px;height:46px;border-radius:50%;overflow:hidden;background:var(--green-100);display:flex;align-items:center;justify-content:center;color:var(--green-700);}
.testi-avatar img{width:100%;height:100%;object-fit:cover;}
.testi-who{display:flex;flex-direction:column;line-height:1.3;min-width:0;}
.testi-who b{font-family:var(--font-head);font-size:.95rem;color:var(--ink-900);}
.testi-who small{font-size:.78rem;color:var(--ink-500);font-weight:600;}

/* ---------------------------------------------------------------- Counters */
.counter-ic{height:54px;width:auto;margin:0 auto 10px;filter:brightness(0) invert(1);opacity:.92;}
.section-head-light{margin-bottom:34px;}
.section-head-light h2{color:#fff;}
.section-head-light h2::after{background:#fff;}
@media (max-width:640px){
  .counter-grid{grid-template-columns:repeat(2,1fr);gap:26px 14px;}
}

/* ---------------------------------------------- "Get in touch" band + footer */
.cta-band{padding:44px 0 84px;background:var(--bg-page);}
.cta-box{
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
  background:var(--brand-grad);color:#fff;border-radius:var(--radius-lg);padding:30px 36px;box-shadow:var(--shadow-lg);
}
.cta-copy{flex:1 1 320px;min-width:0;}
.cta-copy h3{color:#fff;font-size:clamp(1.3rem,2.4vw,1.8rem);margin:0 0 6px;}
.cta-copy p{margin:0;color:rgba(255,255,255,.88);}
@media (max-width:640px){
  .cta-band{padding:30px 0 76px;}
  .cta-box{padding:24px 20px;text-align:center;justify-content:center;}
  .cta-box .btn{width:100%;}
}
.f-hours{margin-top:16px;padding:12px 16px;border-radius:12px;background:rgba(255,255,255,.08);color:#ccffff;font-size:.88rem;line-height:1.5;}
.f-hours span{display:block;color:#fff;font-weight:700;margin-bottom:2px;}
.f-hours b{display:block;font-weight:600;}

/* --------------------------------------------- Content pages (page editor) */
.person-layout{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:36px;align-items:start;}
.person-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:18px;text-align:center;box-shadow:var(--shadow-sm);position:sticky;top:130px;}
.person-card img{width:100%;height:auto;border-radius:var(--radius-md);margin:0 0 14px;}
.person-card h4{color:var(--green-800);font-size:1.12rem;margin:0 0 4px;}
.person-card .deg{font-weight:700;color:var(--teal-700);font-size:.9rem;margin:0 0 6px;text-align:center;}
.person-card h5{font-size:.9rem;color:var(--ink-500);margin:0;line-height:1.45;}
.person-text h2{margin-top:0;}
@media (max-width:860px){
  .person-layout{grid-template-columns:1fr;gap:24px;}
  .person-card{max-width:340px;margin:0 auto;position:static;}
}
.about-split{display:grid;grid-template-columns:minmax(200px,300px) 1fr;gap:34px;align-items:start;}
.about-split .as-img img{width:100%;height:auto;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);}
@media (max-width:860px){.about-split{grid-template-columns:1fr;}.about-split .as-img{max-width:320px;margin:0 auto;}}
.vm-grid{display:grid;gap:22px;margin-top:34px;}
.vm-block{background:#fff;border:1px solid var(--line);border-left:5px solid var(--green-700);border-radius:var(--radius-md);padding:24px 28px;box-shadow:var(--shadow-sm);}
.vm-block h2{margin:0 0 10px;font-size:1.35rem;color:var(--green-800);}
.vm-block p:last-child{margin-bottom:0;}
.vm-block ul{margin:0;padding-left:1.2em;list-style:disc;}
.vm-block li{margin-bottom:.7em;text-align:justify;}
.soon-note{background:#fff;border:1px dashed var(--line);border-radius:var(--radius-md);padding:30px;text-align:center;color:var(--ink-500);}
@media (max-width:520px){
  .vm-block{padding:18px 18px;}
}

/* ------------------------------------------------------------- Hero tweaks */
.hero-actions [hidden]{display:none !important;}
@media (max-width:1100px){
  .hero-nav{width:42px;height:42px;}
  .hero-prev{left:10px;}
  .hero-next{right:10px;}
  .hero-content{padding-left:50px;padding-right:50px;}
}
@media (max-width:640px){
  .hero-nav{display:none;}
  .hero-content{padding-left:20px;padding-right:20px;}
}

/* Narrow screens: justified text makes ugly gaps, so keep it left-aligned */
@media (max-width:700px){
  .msg-single .msg-text,.site-prose p,.vm-block li,.f-about p,.footer-top p{text-align:left;}
}

/* Phone / tablet drawer: the green-bar rule "flex-wrap:wrap" made every row as wide as the widest label and pushed the
   arrows off the right edge. In the drawer the items must stack in one column. */
@media (max-width:992px), (hover:none), (pointer:coarse){
  .on-banner .main-menu{flex-wrap:nowrap;justify-content:flex-start;}
  .main-menu > li{width:100%;}
}

/* Drawer extras: close button, no leftover underline bars, sub menus never wider than the panel */
.main-menu > li.drawer-head{display:none;}
@media (max-width:992px), (hover:none), (pointer:coarse){
  .main-menu > li.drawer-head{
    display:flex;position:absolute;top:0;left:0;right:0;height:64px;padding:0 14px 0 24px;align-items:center;justify-content:space-between;
    font-family:var(--font-head);font-weight:700;color:var(--green-800);border-bottom:1px solid rgba(var(--p-rgb),.16);
  }
  .drawer-head > span{display:inline-flex;align-items:center;gap:10px;}
  .drawer-close{width:42px;height:42px;border:0;border-radius:12px;background:rgba(var(--p-rgb),.1);color:var(--green-800);font-size:1.05rem;cursor:pointer;}
  .drawer-close:hover{background:rgba(var(--p-rgb),.2);}
  .on-banner .main-menu > li > a::after{display:none;}
  .submenu{min-width:0;width:100%;}
}

/* People who ask their device for reduced motion get the content at once (no fade-in that could stay half-way) */
@media (prefers-reduced-motion:reduce){
  html.js-anim .reveal,html.js-anim .reveal-stagger > *{opacity:1 !important;animation:none !important;translate:none !important;}
}

/* ------------------------------------------------------- mobile fixes (2026-10-14) */
/* Top bar: Language and Login always sit side by side */
.tb-actions{display:flex;align-items:center;gap:8px 12px;flex-wrap:nowrap;}

/* Phone menu bar: no extra bars icon; the word "Menu" sits right beside the real menu button */
@media (max-width:992px){
  .site-header.on-banner .navbar{justify-content:flex-end;gap:10px;padding:0 4px;}
  .on-banner .nav-title{display:inline-flex;padding:0;cursor:pointer;font-size:1.02rem;letter-spacing:.02em;user-select:none;}
  .on-banner .nav-title:focus-visible{outline:2px solid #fff;outline-offset:3px;border-radius:6px;}
}

/* Phone home slider ("Text on phones: under the photo" or "hide"): the box takes the photo's own shape (set by tmats.js),
   so the whole picture shows; the caption and buttons move under the photo instead of covering it */
@media (max-width:768px){
  .site-hero:not(.m-text-over){height:auto;min-height:0;max-height:none;aspect-ratio:auto;display:flex;flex-direction:column;}
  .site-hero:not(.m-text-over)::before{content:"";display:block;width:100%;aspect-ratio:var(--hero-ratio,12 / 5);}
  .site-hero:not(.m-text-over)::after{display:none;}
  .site-hero:not(.m-text-over) .hero-slide{inset:0 0 auto 0;height:auto;aspect-ratio:var(--hero-ratio,12 / 5);background-size:contain;background-repeat:no-repeat;background-position:center;transform:none;}
  .site-hero:not(.m-text-over) .hero-content{position:relative;inset:auto;display:block;width:100%;max-width:none;margin:0;padding:14px 20px 36px;background:var(--brand-grad,var(--green-900));}
  .site-hero:not(.m-text-over) .hero-content .eyebrow{font-size:.8rem;margin-bottom:4px;}
  .site-hero:not(.m-text-over) .hero-content h1{font-size:1.15rem;line-height:1.35;margin:0 0 6px;}
  .site-hero:not(.m-text-over) .hero-content p{font-size:.88rem;margin-bottom:8px;}
  .site-hero:not(.m-text-over) .hero-actions{gap:10px;}
  .site-hero:not(.m-text-over) .hero-actions .btn{padding:8px 18px;font-size:.85rem;}
  .site-hero:not(.m-text-over) .hero-dots{bottom:12px;}
}

/* Footer link list scrolls inside a fixed-height box (like tmcrch) */
.f-links-scroll{max-height:330px;overflow-y:auto;padding-right:10px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#7fd39a transparent;}
.f-links-scroll::-webkit-scrollbar{width:6px;}
.f-links-scroll::-webkit-scrollbar-thumb{background:#7fd39a;border-radius:6px;}
.f-links-scroll::-webkit-scrollbar-track{background:rgba(255,255,255,.06);border-radius:6px;}
@media (max-width:640px){.f-links-scroll{max-height:300px;}}

/* ------------------------------------------- phone / tablet top bar order (2026-10-14 b)
   Row 1: phone number · Row 2: date & time · Row 3: Language + Login side by side (+ social icons) */
@media (max-width:768px){
  .topbar .container{flex-direction:column !important;align-items:center;justify-content:center;gap:6px;text-align:center;}
  .topbar .tb-phone{width:100%;justify-content:center;}
  .topbar .tb-right{display:grid !important;grid-template-columns:auto auto;justify-content:center;justify-items:center;align-items:center;gap:6px 10px;width:100%;}
  .topbar .tb-clock{grid-column:1 / -1;grid-row:1;}
  .topbar .tb-social{grid-row:2;}
  .topbar .tb-actions{grid-row:2;justify-content:center;gap:10px;}
  .topbar .tb-right > :only-child,.topbar .tb-social:empty{grid-column:1 / -1;}
  .tb-login span{display:inline !important;}
  .tb-login,.tb-lang-btn{font-size:.78rem;padding:3px 12px;}
}

/* ------------------------------------------------ Home slider options (Admin → Hero Slider) */
.hero-content .eyebrow:empty,.hero-content h1:empty,.hero-content p:empty{display:none;}
.site-hero.no-shade::after{display:none;}
.site-hero.no-shade .hero-content h1,.site-hero.no-shade .hero-content p{text-shadow:0 2px 12px rgba(0,0,0,.65);}
.hero-content{transition:none;}
.hero-text{min-width:0;}

/* Text position across (left / centre / right) — on every screen size */
.hero-content[data-h=center]{justify-content:center;text-align:center;}
.hero-content[data-h=center] .hero-text{margin-inline:auto;}
.hero-content[data-h=center] h1,.hero-content[data-h=center] p{margin-left:auto;margin-right:auto;}
.hero-content[data-h=center] .eyebrow{justify-content:center;}
.hero-content[data-h=right]{justify-content:flex-end;text-align:right;}
.hero-content[data-h=right] .hero-text{margin-left:auto;}
.hero-content[data-h=right] h1,.hero-content[data-h=right] p{margin-left:auto;}
.hero-content[data-h=right] .eyebrow{justify-content:flex-end;}
/* Button position */
.hero-content[data-btn=left] .hero-actions{justify-content:flex-start;}
.hero-content[data-btn=center] .hero-actions{justify-content:center;}
.hero-content[data-btn=right] .hero-actions{justify-content:flex-end;}

/* Text position up / down — computers & tablets in landscape (on phones the text sits under the photo) */
@media (min-width:769px){
  .site-hero .hero-content[data-v=top]{align-items:flex-start;padding-top:56px;padding-bottom:0;}
  .site-hero .hero-content[data-v=middle]{align-items:center;padding-top:0;padding-bottom:0;}
  .site-hero .hero-content[data-v=bottom]{align-items:flex-end;}
}

/* Phones: "Hide the text on phones" */
@media (max-width:768px){
  .site-hero.m-text-hide .hero-content{display:none;}
  .site-hero.m-text-hide .hero-dots{bottom:10px;}
}
/* Phones: "On top of the photo" — smaller text that always fits inside the picture */
@media (max-width:768px){
  .site-hero.m-text-over{height:auto;aspect-ratio:4 / 3;min-height:240px;max-height:none;}
  .site-hero.m-text-over .hero-content{align-items:center;padding:16px 18px 34px;}
  .site-hero.m-text-over .hero-content[data-v=top]{align-items:flex-start;}
  .site-hero.m-text-over .hero-content[data-v=bottom]{align-items:flex-end;}
  .site-hero.m-text-over .hero-content .eyebrow{font-size:.78rem;margin-bottom:4px;}
  .site-hero.m-text-over .hero-content h1{font-size:1.2rem;line-height:1.3;margin:0 0 6px;}
  .site-hero.m-text-over .hero-content p{font-size:.86rem;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
  .site-hero.m-text-over .hero-actions .btn{padding:7px 16px;font-size:.82rem;}
  .site-hero.m-text-over .hero-dots{bottom:10px;}
}

/* Footer: Quick Links and every extra link column scroll inside the same fixed-height box on all devices (like tmcrch) */
.site-footer .f-links ul{max-height:330px;overflow-y:auto;padding-right:10px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#7fd39a transparent;}
.site-footer .f-links ul::-webkit-scrollbar{width:6px;}
.site-footer .f-links ul::-webkit-scrollbar-thumb{background:#7fd39a;border-radius:6px;}
.site-footer .f-links ul::-webkit-scrollbar-track{background:rgba(255,255,255,.06);border-radius:6px;}
@media (max-width:640px){.f-links-scroll{max-height:330px;}}

/* ------------------------------------------------ Recent News position (2026-10-14) */
/* The ticker is printed in two places: under the menu bar on computers, above the menu bar on phones / tabs */
.ticker-slot .ticker{margin:0;}
.ticker-slot-top{display:none;}
@media (max-width:992px){
  .ticker-slot-top{display:block;}
  .ticker-slot-under{display:none;}
}
