/* ==========================================================================
   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;}
}
