 
    :root{
      /* ====== 你可以按Logo微調這三組色 ====== */
      --brand-orange:#f28c1b;
      --brand-green:#b6d400;
      --brand-blue:#33b7e6; 
      --ink:#0f172a;
      --muted:#475569;
      --bg:#ffffff;
      --soft:#f6f8fb;
      --border:#e5e7eb;
      --radius:22px;
      --shadow: 0 10px 25px rgba(15, 23, 42, .08);
      --shadow2: 0 6px 18px rgba(15, 23, 42, .10);
      --max: 1120px;
      --anchor-offset: 110px;
      --card:#ffffff;
    }


    html{
      scroll-behavior: smooth;
      scroll-padding-top: var(--anchor-offset);
    }

    section[id]{
      scroll-margin-top: var(--anchor-offset);
    }

    *{box-sizing:border-box}
    html,body{height:100%}
    body{
      margin:0;
      font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Noto Sans TC", "PingFang HK", "Microsoft JhengHei", Arial, sans-serif;
      color:var(--ink);
      background:var(--bg);
      line-height:1.55;
    }
    a{color:inherit;text-decoration:none}
    img{max-width:100%;display:block}
    .container{max-width:var(--max);margin:0 auto;padding:0 20px}
    
    .btn{
      display:inline-flex;align-items:center;justify-content:center;
      gap:.55rem;
      padding:12px 16px;
      border-radius:999px;
      border:1px solid transparent;
      font-weight:700;
      cursor:pointer;
      transition: transform .08s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
      user-select:none;
      white-space:nowrap;
    }
    .btn:active{transform: translateY(1px)}
    .btn-primary{background:var(--brand-orange); color:#fff; box-shadow: var(--shadow2)}
    .btn-primary:hover{filter:brightness(.98)}
    .btn-ghost{background:#fff;border-color:var(--border);color:var(--ink)}
    .btn-ghost:hover{background:var(--soft)}
    .btn-green{background:#19c37d;color:#fff; box-shadow: var(--shadow2)} 
    .pill{
      display:inline-flex;align-items:center;gap:8px;
      padding:8px 12px;
      border-radius:999px;
      background:rgba(51,183,230,.12);
      color: #0369a1;
      font-weight:700;
      border: 1px solid rgba(51,183,230,.20);
    }

    /* Header */
    header{
      position: sticky;top:0;z-index:50;
      background:rgba(255,255,255,.78);
      backdrop-filter: blur(10px);
      border-bottom:1px solid rgba(229,231,235,.7);
    }
    .nav{
      display:flex;align-items:center;justify-content:space-between;
      padding:12px 0;
      gap:16px;
    }
    .brand{display:flex;align-items:center;gap:12px}
    .brand img{width:75px;height:75px;object-fit:contain}
    .brand .name{display:flex;flex-direction:column;line-height:1.5}
    .brand .name strong{font-size:1.5rem}
    .brand .name span{font-size:1.1rem;color:var(--brand-orange);font-style: italic;}
    /* .brand .name span{font-size:1.1rem;color:var(--muted) */
    
    .menu{display:flex;align-items:center;gap:16px}
    .menu a{
      padding:10px 10px;border-radius:999px;
      color:var(--muted);font-weight:700;
    }
    .menu a:hover{background:var(--soft);color:var(--ink)}
    .nav-cta{display:flex;align-items:center;gap:10px}

    .burger{
      display:none;
      width:44px;height:44px;
      border-radius:12px;border:1px solid var(--border);
      background:#fff;cursor:pointer;
      align-items:center;justify-content:center;
    }
    .burger span{display:block;width:18px;height:2px;background:var(--ink);position:relative}
    .burger span:before,.burger span:after{
      content:"";position:absolute;left:0;width:18px;height:2px;background:var(--ink)
    }
    .burger span:before{top:-6px}
    .burger span:after{top:6px}

    /* Mobile menu panel */
    .mobilePanel{
      display:none;
      border-top:1px solid rgba(229,231,235,.7);
      background:#fff;
    }
    .mobilePanel .inner{
      padding:12px 0 16px 0;
      display:flex;flex-direction:column;gap:8px
    }
    .mobilePanel a{
      padding:12px 12px;border-radius:14px;
      font-weight:800;color:var(--ink);
      background:var(--soft);
    }
    .mobilePanel a:hover{filter:brightness(.99)}
    .mobilePanel .row{display:flex;gap:10px;flex-wrap:wrap;padding:6px 0}

    /* Hero */
    .hero{
      position:relative;
      overflow:hidden;
      background:
        radial-gradient(1200px 600px at 20% -20%, rgba(242,140,27,.22), transparent 60%),
        radial-gradient(900px 500px at 95% 0%, rgba(51,183,230,.22), transparent 50%),
        radial-gradient(900px 600px at 40% 120%, rgba(182,212,0,.18), transparent 55%),
        linear-gradient(180deg, #ffffff 0%, #ffffff 60%, #f9fbff 100%);
    }
    .heroGrid{
      display:grid;
      grid-template-columns: 1.15fr .85fr;
      gap:28px;
      padding:34px 0 26px 0;
      align-items:center;
    }
    h1{font-size: clamp(2rem, 4vw, 3.1rem); margin: 10px 0 10px 0; letter-spacing:-.02em}
    .lead{font-size:1.07rem;color:var(--muted);margin:0 0 16px 0;max-width:52ch}
    .heroActions{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0 10px 0}

    /* Hero card (image collage) */
    .heroCard{
      background:rgba(255,255,255,.85);
      border:1px solid rgba(229,231,235,.85);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      overflow:hidden;
    }
    .heroCardTop{
      padding:14px 14px 10px 14px;
      display:flex;align-items:center;justify-content:space-between;gap:10px;
    }
    .badge{
      display:inline-flex;align-items:center;gap:8px;
      padding:8px 10px;border-radius:999px;
      background: rgba(242,140,27,.12);
      color:#9a4d00;
      border:1px solid rgba(242,140,27,.18);
      font-weight:900;
      font-size:.92rem;
    }
    .heroCardGrid{
      display:grid;
      grid-template-columns: 1fr 1fr;
      gap:10px;
      padding:0 14px 14px 14px;
    }
    .ph{
      border-radius:14px;
      overflow:hidden;
      border:1px solid rgba(229,231,235,.9);
      background:#fff;
      min-height: 140px;
    }
    .ph img{width:100%;height:100%;object-fit:cover}
    .ph.big{grid-column: span 2; min-height: 190px;} /* 190px */

    /* Sections */
    section{padding:54px 0}
    .sectionTitle{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px}
    h2{font-size: clamp(1.45rem, 2.4vw, 2rem); margin:0}
    .sub{color:var(--muted);font-weight:700;margin:0;max-width:62ch}
    .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
    .grid2{display:grid;grid-template-columns:repeat(auto-fit, minmax(320px, 1fr));gap:22px}

    .card{
      background:var(--card);
      border:2px solid var(--border);
      border-radius:var(--radius);
      box-shadow:0 8px 20px rgba(0,0,0,0.05);
      padding:20px;
      transition:transform .15s ease, box-shadow .2s ease;
    }

    .card:hover{
      transform:translateY(-4px);
      box-shadow:0 14px 30px rgba(0,0,0,0.08);
    }

    .card h3{margin:0 0 6px 0;font-size:1.15rem}
    .card p{margin:0;color:var(--muted);font-weight:650}
    .icon{
      width:100px;height:100px;border-radius:14px; /*42*/
      display:flex;align-items:center;justify-content:center;
      background: rgba(51,183,230,.12);
      border:1px solid rgba(51,183,230,.18);
      /* margin-bottom:10px; */
      margin: 0 auto 12px auto;
      font-size:20px;
    }
    .card .actions{
      margin-top:10px;
    }


    /* FAQ */
    .faq{display:grid;gap:10px}
    details{
      border:1px solid var(--border);
      border-radius:16px;
      background:#fff;
      box-shadow: 0 6px 18px rgba(15,23,42,.04);
      padding: 14px 14px;
    }
    summary{
      cursor:pointer;
      font-weight:900;
      list-style:none;
    }
    summary::-webkit-details-marker{display:none}
    details p{margin:10px 0 0 0;color:var(--muted);font-weight:650}
   
    .faq-answer p{
      margin: 10px 0;
      line-height: 1.7;
    }

    .faq-answer ul{
      margin: 10px 0 0 18px;
    }

    .faq-answer li{
      margin-bottom: 6px;
    }

    /* CTA band */
    .ctaBand{
      background:
        radial-gradient(1000px 380px at 10% 10%, rgba(242,140,27,.18), transparent 60%),
        radial-gradient(900px 320px at 95% 40%, rgba(51,183,230,.18), transparent 55%),
        linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
      border-top:1px solid rgba(229,231,235,.9);
      border-bottom:1px solid rgba(229,231,235,.9);
    }
    .ctaInner{
      display:flex;align-items:center;justify-content:space-between;gap:18px;
      padding: 22px 0;
      flex-wrap:wrap;
    }

    /* Footer */
    footer{padding:34px 0;color:var(--muted)}
    .footGrid{display:grid;grid-template-columns:1.4fr 1fr;gap:18px;align-items:start}
    .small{font-size:.95rem}
    .small1{font-size: .95rem; font-style: italic; color: var(--brand-orange);}

    /* ============================= */
    /* Floating Back To Top 2.0 */
    /* ============================= */

    .floatTop{
      position:fixed;
      right:16px;
      bottom:16px;
      z-index:60;

      width:54px;
      height:54px;

      border-radius:16px;
      border:none;

      display:flex;
      align-items:center;
      justify-content:center;

      background:linear-gradient(135deg,var(--brand-blue),var(--brand-green));
      color:#fff;
      font-size:22px;
      font-weight:900;

      box-shadow:0 10px 25px rgba(15,23,42,.18);
      cursor:pointer;

      opacity:0;
      transform:translateY(20px);
      pointer-events:none;

      transition:
        opacity .3s ease,
        transform .3s ease;
    }

    /* 顯示狀態 */
    .floatTop.show{
      opacity:1;
      transform:translateY(0);
      pointer-events:auto;
    }

    /* Hover 效果（桌面） */
    .floatTop:hover{
      transform:translateY(-3px);
      box-shadow:0 14px 30px rgba(15,23,42,.25);
    }

    /* 手機優化 */
    @media (max-width: 640px){
      .floatTop{
        width:48px;
        height:48px;
        font-size:20px;
        right:12px;
        bottom:12px;
      }
    }

    /* ===================== */
    /* Contact Section 2.0   */
    /* ===================== */

    .contact-grid{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:28px;
      align-items:start;
    }
  
    .contact-card{
      align-self:start;
      background:#fff;
      border:1px solid var(--border);
      border-radius:var(--radius);
      padding:20px;
      box-shadow: var(--shadow);
    }
    .contact-card:hover{
      transform:translateY(-4px);
      box-shadow:0 14px 30px rgba(0,0,0,0.08);
    }
    .contact-item{
      margin-bottom:18px;
    }

    .contact-item h4{
      margin:0 0 6px 0;
      font-size:1rem;
    }

    .contact-item p{
      margin:0;
      color:var(--muted);
      font-weight:650;
    }

    .map-wrap{
      align-self:start;
      position:relative;
      width:100%;
      height:100%;
      /*aspect-ratio: 4 / 3;  /* 比例控制 */
      border-radius:var(--radius);
      overflow:hidden;
      border:1px solid var(--border);
      box-shadow: var(--shadow);
    }

    .map-wrap:hover{
      transform:translateY(-4px);
      box-shadow:0 14px 30px rgba(0,0,0,0.08);
    }

    .map-wrap iframe{
      /* position:absolute;*/
      inset:0;
      width:100%;
      height:100%;
      border:0;
    }

   /* ===================== */
    /* Announcement Bar 3.2 */
    /* ===================== */

    .announceBar{
      position: sticky;
      top: 0;
      z-index: 999;
      background: linear-gradient(90deg, var(--brand-orange), var(--brand-green), var(--brand-blue));
      color: #fff;
      font-weight: 800;
      font-size: 1.2rem;
    }

    .announceInner{
      max-width: var(--max);
      margin: auto;
      padding: 10px 20px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 14px;
      flex-wrap: nowrap;
    }

    .announceText{
      flex: 1 1 auto;
      min-width: 0;
      overflow: hidden;
      position: relative;
    }

    .scroll-wrap{
      display: flex;
      align-items: center;
      gap: 0;
      width: max-content;
      min-width: max-content;
      white-space: nowrap;
      will-change: transform;
      transform: translate3d(0,0,0);
      -webkit-transform: translate3d(0,0,0);
      backface-visibility: hidden;
      -webkit-backface-visibility: hidden;
    }

    .scroll-wrap.is-ready{
      animation: scrollText 22s linear infinite;
      -webkit-animation: scrollText 22s linear infinite;
    }

    .scroll-content{
      display: inline-flex;
      align-items: center;
      gap: 12px;
      white-space: nowrap;
      padding-right: 60px;
      font-weight: 900;
      flex: 0 0 auto;
    }

    @media (hover: hover) and (pointer: fine){
      .announceBar:hover .scroll-wrap{
        animation-play-state: paused;
        -webkit-animation-play-state: paused;
      }
    }

    @keyframes scrollText{
      from { transform: translate3d(0,0,0); }
      to   { transform: translate3d(-50%,0,0); }
    }

    @-webkit-keyframes scrollText{
      from { -webkit-transform: translate3d(0,0,0); }
      to   { -webkit-transform: translate3d(-50%,0,0); }
    }

    .announceText span{
      font-weight: 900;
    }

    .announceActions{
      display: flex;
      gap: 10px;
      flex-wrap: nowrap;
      align-items: center;
      flex: 0 0 auto;
    }

    .announceBar .btn{
      background: #fff;
      color: var(--brand-orange);
      padding: 8px 14px;
      font-size: .9rem;
    }

    .announceClose{
      cursor: pointer;
      font-weight: 900;
      padding: 4px 8px;
      border-radius: 8px;
    }

    .announceClose:hover{
      background: rgba(255,255,255,.2);
    }

    .newTag{
      background: #fff;
      color: #ff6b00;
      font-size: 0.9rem;
      font-weight: 900;
      padding: 4px 8px;
      border-radius: 999px;
      animation: pulse 1.5s infinite;
      flex: 0 0 auto;
    }

    @keyframes pulse{
      0%{ transform: scale(1); }
      50%{ transform: scale(1.15); }
      100%{ transform: scale(1); }
    }

    @media (max-width: 768px){
      .announceBar{
        font-size: 1rem;
      }

      .announceInner{
        padding: 8px 12px;
        gap: 10px;
      }

      .scroll-wrap.is-ready{
        animation: scrollText 18s linear infinite;
        -webkit-animation: scrollText 18s linear infinite;
      }

      .scroll-content{
        padding-right: 42px;
        gap: 10px;
      }

      .announceBar .btn{
        padding: 6px 10px;
        font-size: .82rem;
      }
    }

    /* Mobile */
    @media (max-width:960px){
      .contact-grid{
        grid-template-columns:1fr;
      }
    }

    /* ============================= */
    /* Course Card 4.1 Clean Style */
    /* ============================= */

    .course{
      position:relative;
      padding:24px;
      display:flex;
      flex-direction:column;
      border:3px solid transparent;
      transition: all .25s ease;
    }

    /* 分類顏色 */
    .course.orange{
      border-color: var(--brand-orange);
    }

    .course.blue{
      border-color: var(--brand-blue);
    }

    .course.green{
      border-color: var(--brand-green);
    }

    /* Hover 效果 */
    /* .course.leadership:hover{
      background: rgba(242,140,27,.06);
    }

    .course.story:hover{
      background: rgba(51,183,230,.06);
    }

    .course.art:hover{
      background: rgba(182,212,0,.10);
    } */
    .course.orange:hover{
      background: rgba(242,140,27,.06);
    }

    .course.blue:hover{
      background: rgba(51,183,230,.06);
    }

    .course.green:hover{
      background: rgba(182,212,0,.10);
    }

    /* 內容排版 */
    .course-body{
      display:flex;
      flex-direction:column;
      flex:1;
    }

    .course-body p{
      margin-top:8px;
      flex-grow:1;
    }
    
    .course .actions{
      margin-top:16px;
    }

    /* ===================== */
    /* Storytelling Specific */
    /* ===================== */

    /* Page hero */

    .miniList{margin:14px 0 0 0;padding:0;list-style:none;display:grid;gap:10px}
    .miniList li{
      display:flex;gap:10px;align-items:flex-start;
      padding:12px 12px;border-radius:16px;
      border:1px solid rgba(229,231,235,.9);
      background:rgba(255,255,255,.75);
      box-shadow: 0 6px 18px rgba(15,23,42,.05);
      font-weight:800;color:var(--ink);
    }
    .miniList .tick{width:24px;height:24px;border-radius:10px;background:rgba(182,212,0,.18);display:flex;align-items:center;justify-content:center;border:1px solid rgba(182,212,0,.25)}
    .miniList span{color:var(--muted);font-weight:650;display:block;margin-top:2px}

    .sideCard{
      background:rgba(255,255,255,.85);
      border:1px solid rgba(229,231,235,.85);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      overflow:hidden;
    }
    .sideTop{
      padding:14px 14px 10px 14px;
      display:flex;align-items:center;justify-content:space-between;gap:10px;
    }
    .sideBody{padding:0 14px 14px 14px}
    .infoGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0 12px 0}
    .info{
      border:1px solid rgba(229,231,235,.9);
      background:#fff;
      border-radius:16px;
      padding:12px;
    }
    .info strong{display:block}
    .info span{display:block;color:var(--muted);font-weight:700;margin-top:4px}


    .currGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
    .currItem{
      background:#fff;
      border:1px solid var(--border);
      border-radius: var(--radius);
      box-shadow: 0 6px 18px rgba(15,23,42,.04);
      padding:16px;
      display:flex;gap:12px;align-items:flex-start;
    }
    .bubble{
      width:44px;height:44px;border-radius:18px;
      display:flex;align-items:center;justify-content:center;
      background: rgba(242,140,27,.14);
      border:1px solid rgba(242,140,27,.22);
      font-weight:950;
      flex:0 0 auto;
    }
    .currItem h3{margin:0 0 4px 0}
    .currItem p{margin:0;color:var(--muted);font-weight:650}


    /* Responsive */
    
    @media (max-width: 960px){
      .heroGrid{grid-template-columns:1fr; padding:26px 0 18px 0}
      .grid3{grid-template-columns:1fr}
      .grid2{grid-template-columns:1fr}
      .menu{display:none}
      .nav-cta{display:none}
      .burger{display:flex}
      .footGrid{grid-template-columns:1fr}
      .currGrid{grid-template-columns:1fr}
    }

    /* ============================= */
    /* Course Structure Diagram      */
    /* ============================= */

    .levelGrid{
      display:grid;
      grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
      gap:14px;
    }

    .levelCard{
      background: var(--card);
      border: 1px solid var(--border);
      border-radius: var(--radius);
      box-shadow: 0 6px 22px rgba(15,23,42,.05);
      padding: 16px;
      position: relative;
      overflow:hidden;
    }

    .levelCard:before{
      content:"";
      position:absolute;
      inset:0 0 auto 0;
      height:8px;
      background: linear-gradient(90deg, rgba(242,140,27,.75), rgba(51,183,230,.75));
    }

    .levelHead{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:12px;
      margin-top:4px;
    }

    .levelTitle{
      margin:0;
      font-size:1.12rem;
      font-weight:950;
    }

    .levelSub{
      margin:4px 0 0 0;
      color: var(--muted);
      font-weight:700;
      font-size:.95rem;
    }

    .levelBadge{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-width:46px;
      height:34px;
      padding:0 10px;
      border-radius:999px;
      font-weight:950;
      border:1px solid rgba(229,231,235,.9);
      background: rgba(255,255,255,.85);
    }

    .levelList{
      margin:12px 0 0 0;
      padding:0;
      list-style:none;
      display:grid;
      gap:8px;
    }

    .levelList li{
      display:flex;
      gap:10px;
      align-items:flex-start;
      color: var(--ink);
      font-weight:800;
    }

    .levelTick{
      width:22px;
      height:22px;
      border-radius:10px;
      display:flex;
      align-items:center;
      justify-content:center;
      background: rgba(126,217,87,.16);
      border:1px solid rgba(126,217,87,.25);
      flex:0 0 auto;
      margin-top:1px;
    }

    .levelNote{
      margin-top:12px;
      color: var(--muted);
      font-weight:700;
      font-size:.95rem;
    }

    .matrixWrap{
      margin-top:14px;
      overflow:auto;
      border:1px solid var(--border);
      border-radius: var(--radius);
      background:#fff;
    }

    .matrix{
      width:100%;
      border-collapse:collapse;
      min-width:720px;
    }

    .matrix th, .matrix td{
      padding:12px 12px;
      border-bottom:1px solid rgba(229,231,235,.9);
      text-align:left;
      font-weight:800;
    }

    .matrix th{
      background: rgba(246,248,251,1);
    }

    .matrix td.center{
      text-align:center;
      font-weight:950;
    }

    @media (max-width: 960px){
      .matrixWrap{ display:none; } /* 手機隱藏表格，只保留圖卡 */
    }

.section-soft{background:var(--soft);border-top:1px solid rgba(229,231,235,.9);border-bottom:1px solid rgba(229,231,235,.9)}
.centerTitle{justify-content:left;text-align:left} /*text-align:center*/
/* .narrow{max-width:900px} */
.eyebrow{
  display:inline-block;
  margin-bottom:14px;
  color:var(--brand-orange);
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:1.1rem; /*0.95*/
}
/* .heroContent h1{font-size:clamp(2.35rem, 5vw, 3.5rem);line-height:1.08;margin:0 0 14px 0} */
.heroContent h1{font-size:clamp(2.0rem, 5vw, 3.5rem);line-height:1.08;margin:0 0 14px 0}
.lead-strong{font-size:1.18rem;color:var(--ink);font-weight:800;max-width:40ch} /* 34ch */
.heroTrust{margin:0;color:var(--muted);font-weight:800}
.btn-lg{padding:14px 20px;font-size:1rem}
.pill-alt{background:rgba(182,212,0,.12);border-color:rgba(182,212,0,.2);color:#3f6212}
.featureCard{padding:24px;min-height:220px}
.featureCard h3{font-size:1.12rem;margin-bottom:8px}
.courseGridMain{align-items:stretch}
.featuredCourse{transform:translateY(-6px);box-shadow:0 16px 34px rgba(15,23,42,.10)}
.featuredCourse:hover{transform:translateY(-10px)}
.course-main{padding-top:20px}
.course-subline{margin:0 0 10px 0;color:var(--brand-orange)!important;font-weight:900!important}
.meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.tag{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:var(--soft);border:1px solid var(--border);font-size:.85rem;font-weight:800;color:var(--muted)}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.highlightBand{background:linear-gradient(135deg, rgba(242,140,27,.08), rgba(51,183,230,.08))}
.philosophyText{text-align:left;font-size:1.14rem;font-weight:800;color:var(--ink)}
.philosophyText p{margin:0 0 12px 0}
.faqNav{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}
.faqNav a{display:inline-flex;padding:9px 14px;border-radius:999px;background:var(--soft);border:1px solid var(--border);font-weight:800;color:var(--ink)}
.faqColumns{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:start}
.faqGroupTitle{margin:0 0 12px 0;font-size:1.05rem}
@media (max-width: 960px){
  .heroContent{text-align:center}
  .lead-strong,.heroTrust{margin-left:auto;margin-right:auto}
  .heroActions{justify-content:center}
  .heroCard{order:2}
  .faqColumns{grid-template-columns:1fr}
  .featuredCourse{transform:none}
  .featuredCourse:hover{transform:translateY(-4px)}
}

/* ===================== */
/* Social Links Upgrade */
/* ===================== */

.socialLinks{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:8px;
}

.socialLinks a,
.footerSocial a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid var(--border);
  background:#fff;
  color:var(--ink);
  font-weight:800;
  transition:all .2s ease;
}

.socialLinks a:hover,
.footerSocial a:hover{
  background:var(--soft);
  transform:translateY(-2px);
}

.footerSocial{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
  align-items:flex-start;
}

@media (max-width: 960px){
  .footerSocial{
    justify-content:flex-start;
    margin-top:12px;
  }
}

.full-badge{
  display:inline-block;
  background:#9ca3af;
  color:#fff;
  padding:4px 8px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  margin-right:6px;
  vertical-align:middle;
}

.btn-disabled{
  background:#e5e7eb;
  color:#9ca3af;
  border:1px solid #d1d5db;
  cursor:not-allowed;
  pointer-events:none;
  box-shadow:none;
}

/* ============================= */
/* Skeleton Loading */
/* ============================= */

.skeleton {
  background: linear-gradient(
    90deg,
    #f3f4f6 25%,
    #e5e7eb 37%,
    #f3f4f6 63%
  );
  background-size: 400% 100%;
  animation: skeleton-loading 1.2s ease infinite;
}

@keyframes skeleton-loading {
  0% { background-position: 100% 50%; }
  100% { background-position: 0 50%; }
}

.skeleton-card{
  border-radius: 18px;
  padding: 14px;
  background: #fff;
  border: 1px solid rgba(229,231,235,.9);
  box-shadow: 0 10px 24px rgba(15,23,42,.04);
}

.skeleton-img{
  width: 100%;
  height: 140px;
  border-radius: 12px;
  margin-bottom: 12px;
}

.skeleton-img.tall{
  height: 160px;
}

.skeleton-text{
  height: 12px;
  border-radius: 999px;
  margin-bottom: 10px;
}

.skeleton-text.short{ width: 45%; }
.skeleton-text.mid{ width: 68%; }
.skeleton-text.long{ width: 100%; }

.skeleton-actions{
  display:flex;
  gap:10px;
  margin-top:12px;
}

.skeleton-btn{
  height: 42px;
  border-radius: 14px;
  flex: 1;
}

.skeleton-announce{
  min-width: 220px;
  height: 14px;
  border-radius: 999px;
}

.skeleton-wrap-3{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:20px;
}

.skeleton-wrap-2{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap:20px;
}

@media (max-width: 900px){
  .skeleton-wrap-3,
  .skeleton-wrap-2{
    grid-template-columns: 1fr;
  }
}

/* optional image fade-in */
.img-fade{
  opacity: 0;
  filter: blur(8px);
  transition: opacity .35s ease, filter .35s ease;
}

.img-fade.is-loaded{
  opacity: 1;
  filter: blur(0);
}

.image-disclaimer{
  margin:6px 0 0 0;
  color:var(--muted);
  font-size:.82rem;
  font-weight:600;
  line-height:1.5;
  opacity:.75;
}

.limited-seats-badge{
  display:inline-flex;
  align-self:center;
  margin:4px auto 10px auto;
  padding:6px 12px;
  border-radius:999px;
  background:rgba(242,140,27,.12);
  color:var(--brand-orange);
  border:1px solid rgba(242,140,27,.25);
  font-weight:900;
  font-size:.9rem;
}

.limited-seats-badge::before{
  content:"🔥 ";
}

/* ============================= */
/* What's New Final UI */
/* ============================= */

/* .newsAutoGrid{
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:18px;
  align-items:start;
} */

.newsAutoGrid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:18px;
  align-items:start;
}

.news-card{
  position:relative;
  background:#fff;
  border:2px solid var(--border);
  border-radius:var(--radius);
  padding:22px;
  box-shadow:0 8px 20px rgba(0,0,0,.05);
  transition:transform .15s ease, box-shadow .2s ease;
}

.news-card:hover{
  transform:translateY(-4px);
  box-shadow:0 14px 30px rgba(0,0,0,.08);
}

.news-card.featured{
  border-left:6px solid var(--brand-orange);
}

/* .news-list{
  display:grid;
  gap:14px;
} */

.news-list{
  grid-column: 1 / -1;
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:14px;
}

.news-img{
  border-radius:16px;
  overflow:hidden;
  margin-bottom:16px;
  border:1px solid rgba(229,231,235,.9);
}

.news-img img{
  width:100%;
  height:240px;
  object-fit:cover;
}

.news-title{
  margin:0 0 8px 0;
  font-size:1.22rem;
  font-weight:950;
  color:var(--ink);
}

.news-status-row{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:14px;
  color:var(--muted);
  font-weight:800;
}

.news-badge{
  display:inline-flex;
  align-items:center;
  padding:5px 10px;
  border-radius:999px;
  font-size:.85rem;
  font-weight:950;
  border:1px solid rgba(242,140,27,.25);
  background:rgba(242,140,27,.10);
  color:var(--brand-orange);
}

.news-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:12px;
}

@media (max-width:960px){
  .newsAutoGrid{
    grid-template-columns:1fr;
  }

  .news-list{
    grid-template-columns:1fr;
  }

  .news-img img{
    height:240px;
  }
}

.testimonialHero{
  padding:80px 0 40px;
  background:
    radial-gradient(circle at top right, rgba(242,140,27,.12), transparent 260px),
    linear-gradient(to bottom,#fff,#fafafa);
}

.testimonialHeroInner{
  max-width:900px;
  margin:auto;
  text-align:center;
}

.testimonialHero h1{
  margin:0 0 14px;
  font-size:clamp(2rem,5vw,3.4rem);
  line-height:1.1;
  font-weight:950;
  color:var(--ink);
}

.testimonialHero p{
  margin:0;
  color:var(--muted);
  font-size:1.08rem;
  line-height:1.8;
}

.teacherSection{
  margin-top:56px;
}

.teacherHeader{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:22px;
}

.teacherBadge{
  display:inline-flex;
  align-items:center;
  padding:8px 16px;
  border-radius:999px;
  background:rgba(242,140,27,.12);
  color:var(--brand-orange);
  font-weight:900;
  font-size:1rem;
  border:1px solid rgba(242,140,27,.2);
}

.teacherLine{
  flex:1;
  height:2px;
  background:linear-gradient(to right,var(--brand-orange),transparent);
  border-radius:999px;
}

.testimonialGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}

.testimonialCard{
  position:relative;
  background:#fff;
  border:2px solid var(--border);
  border-radius:28px;
  overflow:hidden;
  box-shadow:0 10px 30px rgba(0,0,0,.05);
  transition:transform .15s ease, box-shadow .2s ease;
}

.testimonialCard:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 40px rgba(0,0,0,.08);
}

.testimonialCard img{
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  display:block;
  cursor:pointer;
  background:#f5f5f5;
}

.testimonialCaption{
  padding:14px 16px 18px;
}

.testimonialCaption h3{
  margin:0 0 6px;
  font-size:1rem;
  font-weight:900;
  color:var(--ink);
}

.testimonialCaption p{
  margin:0;
  color:var(--muted);
  font-size:.95rem;
  line-height:1.7;
}

.testimonialNote{
  margin-top:60px;
  padding:18px 22px;
  border-radius:20px;
  background:#fff;
  border:1px solid var(--border);
  color:var(--muted);
  line-height:1.8;
  font-size:.95rem;
}

.lightbox{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.82);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:9999;
  padding:24px;
}

.lightbox.active{
  display:flex;
}

.lightbox img{
  max-width:min(100%,1000px);
  max-height:90vh;
  border-radius:20px;
  box-shadow:0 20px 60px rgba(0,0,0,.4);
  background:#fff;
}

.lightboxClose{
  position:absolute;
  top:20px;
  right:24px;
  width:46px;
  height:46px;
  border:none;
  border-radius:50%;
  background:#fff;
  color:#111;
  font-size:1.6rem;
  cursor:pointer;
  font-weight:900;
}

@media (max-width:960px){

  .testimonialGrid{
    grid-template-columns:1fr;
  }

  .testimonialHero{
    padding:60px 0 30px;
  }

  .testimonialCard img{
    aspect-ratio:auto;
  }

}

/* ============================= */
/* Testimonials Teacher Filter */
/* ============================= */

.teacherFilterBar{
  position: sticky;
  top: var(--stickyOffset, 0px);
  z-index: 998;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--border);
}

.teacherFilterInner{
  display:flex;
  gap:10px;
  align-items:center;
  overflow-x:auto;
  padding:10px 20px;
  -webkit-overflow-scrolling: touch;
}

.teacherFilterBtn{
  flex:0 0 auto;
  border:1px solid rgba(15,23,42,.12);
  background:#fff;
  color:var(--ink);
  border-radius:999px;
  padding:8px 14px;
  font-weight:900;
  cursor:pointer;
  transition:all .2s ease;
}

.teacherFilterBtn:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(0,0,0,.08);
}

.teacherFilterBtn.active{
  background:var(--brand-orange);
  border-color:var(--brand-orange);
  color:#fff;
}

.testimonialPreviewGrid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}

.testimonialPreviewCard{
  background:#fff;
  border:2px solid var(--border);
  border-radius:var(--radius);
  padding:12px;
  box-shadow:var(--shadow);
}

.testimonialPreviewCard img{
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  border-radius:16px;
  display:block;
  background:#f5f5f5;
}

.testimonialPreviewCard h3{
  margin:12px 0 4px;
  font-size:1rem;
  font-weight:900;
  color:var(--ink);
}

.testimonialPreviewCard p{
  margin:0;
  color:var(--muted);
  font-size:.9rem;
  line-height:1.6;
}

.testimonialPreviewTeacher{
  display:inline-flex;
  margin-top:10px;
  padding:5px 10px;
  border-radius:999px;
  background:rgba(242,140,27,.12);
  color:var(--brand-orange);
  font-size:.82rem;
  font-weight:900;
}

@media(max-width:960px){
  .testimonialPreviewGrid{
    grid-template-columns:1fr;
  }
}