/* 全站公共样式：重置、CSS变量、顶部条、头部导航、移动端菜单、底部、返回顶部、滚动条 */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Noto Sans SC',sans-serif;color:var(--t1);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;background:#f0efea}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button{cursor:pointer;border:none;background:none;font-family:inherit}
.ehappyclasstech-container{max-width:1280px;margin:0 auto;padding:0 24px}
.ehappyclasstech-top-bar{background:linear-gradient(135deg,var(--yellow),#f7d94e,var(--yellow-deep));padding:10px 0;text-align:center;position:relative;overflow:hidden}
.ehappyclasstech-top-bar::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000' fill-opacity='.04'%3E%3Ccircle cx='20' cy='20' r='2'/%3E%3C/g%3E%3C/svg%3E")}
.ehappyclasstech-top-bar p{font-size:13px;color:rgba(0,0,0,.6);font-weight:500;position:relative;z-index:1}
.ehappyclasstech-top-bar em{font-style:normal;color:rgba(0,0,0,.9);font-weight:700}
header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.95);backdrop-filter:blur(24px);border-bottom:1px solid var(--bdr);box-shadow:0 1px 3px rgba(0,0,0,.03)}
.ehappyclasstech-nav-inner{display:flex;align-items:center;justify-content:space-between;height:62px;gap:24px}
.ehappyclasstech-logo{display:flex;align-items:center;gap:10px;flex-shrink:0}
.ehappyclasstech-logo-icon{width:34px;height:34px;background:var(--yellow);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:16px;box-shadow:0 2px 10px rgba(245,197,24,.35);position:relative;overflow:hidden}
.ehappyclasstech-logo-icon::after{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(45deg,transparent 40%,rgba(255,255,255,.4) 50%,transparent 60%);animation:shim 3s ease-in-out infinite}
@keyframes shim{0%,100%{transform:translateX(-100%)}50%{transform:translateX(100%)}}
.ehappyclasstech-logo-text{font-family:'Oswald',sans-serif;font-size:21px;font-weight:700;color:var(--t1)}
.ehappyclasstech-logo-text span{color:var(--yellow-dark)}
.ehappyclasstech-nav-main{display:flex;align-items:center;gap:14px}
.ehappyclasstech-nav-item{position:relative}
.ehappyclasstech-nav-right{display:flex;align-items:center;gap:10px;flex-shrink:0}
.ehappyclasstech-nav-search{width:180px;height:34px;background:#f5f5f0;border:1.5px solid var(--bdr);border-radius:20px;padding:0 14px;color:var(--t1);font-size:13px;outline:none;transition:all .3s;font-family:inherit}
.ehappyclasstech-nav-search::placeholder{color:var(--t3)}
.ehappyclasstech-nav-search:focus{border-color:var(--yellow);background:#fff;width:230px;box-shadow:0 0 0 3px rgba(245,197,24,.12)}
.ehappyclasstech-mobile-menu-btn{display:none;width:42px;height:42px;border-radius:10px;position:relative;z-index:110;transition:.2s;flex-shrink:0}
.ehappyclasstech-mobile-menu-btn:hover{background:var(--yellow-light)}
.ehappyclasstech-mobile-menu-btn span{display:block;width:20px;height:2px;background:var(--t1);border-radius:1px;transition:all .3s;position:absolute;left:11px}
.ehappyclasstech-mobile-menu-btn span:nth-child(1){top:12px}
.ehappyclasstech-mobile-menu-btn span:nth-child(2){top:19px}
.ehappyclasstech-mobile-menu-btn span:nth-child(3){top:26px}
.ehappyclasstech-mobile-menu-btn.ehappyclasstech-open span:nth-child(1){top:19px;transform:rotate(45deg)}
.ehappyclasstech-mobile-menu-btn.ehappyclasstech-open span:nth-child(2){opacity:0}
.ehappyclasstech-mobile-menu-btn.ehappyclasstech-open span:nth-child(3){top:19px;transform:rotate(-45deg)}
.ehappyclasstech-mobile-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:100;opacity:0;pointer-events:none;transition:opacity .3s}
.ehappyclasstech-mobile-overlay.ehappyclasstech-show{opacity:1;pointer-events:auto}
.ehappyclasstech-mobile-panel{display:none;position:fixed;top:0;right:0;width:300px;max-width:85vw;height:100vh;background:#fff;z-index:105;transform:translateX(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);overflow-y:auto;box-shadow:-4px 0 24px rgba(0,0,0,.1)}
.ehappyclasstech-mobile-panel.ehappyclasstech-open{transform:translateX(0)}
.ehappyclasstech-mobile-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--bdr)}
.ehappyclasstech-mobile-panel-close{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;transition:.2s;font-size:18px;color:var(--t2)}
.ehappyclasstech-mobile-panel-close:hover{background:var(--yellow-light);color:var(--t1)}
.ehappyclasstech-mobile-panel-search{margin:12px 16px;width:calc(100% - 32px);height:40px;background:#f5f5f0;border:1.5px solid var(--bdr);border-radius:12px;padding:0 14px;color:var(--t1);font-size:14px;outline:none;font-family:inherit;transition:.2s}
.ehappyclasstech-mobile-panel-search:focus{border-color:var(--yellow);box-shadow:0 0 0 3px rgba(245,197,24,.12)}
.ehappyclasstech-mobile-panel-search::placeholder{color:var(--t3)}
.ehappyclasstech-mobile-nav{padding:8px 16px 20px}
.ehappyclasstech-mobile-nav-item{margin-bottom:2px}
.ehappyclasstech-mobile-nav-link:hover,.ehappyclasstech-mobile-nav-link.ehappyclasstech-active{background:var(--yellow-light);color:var(--t1);border-color:rgba(245,197,24,.15)}
.ehappyclasstech-mobile-nav-link.ehappyclasstech-active{background:var(--yellow);color:var(--t1);font-weight:600;border-color:var(--yellow-dark)}
.ehappyclasstech-mobile-nav-link.ehappyclasstech-expanded .ehappyclasstech-m-arr{transform:rotate(180deg)}
.ehappyclasstech-mobile-sub{max-height:0;overflow:hidden;transition:max-height .3s ease;padding-left:8px}
.ehappyclasstech-mobile-sub.ehappyclasstech-open{max-height:200px}
.ehappyclasstech-mobile-sub a{display:block;padding:10px 16px;border-radius:8px;font-size:13px;color:var(--t2);transition:.2s;border:1px solid transparent}
.ehappyclasstech-mobile-sub a:hover{background:var(--yellow-light);color:var(--t1);border-color:rgba(245,197,24,.1)}
footer{background:#fff;border-top:1px solid var(--bdr);padding:30px 0 20px}
.ehappyclasstech-footer-inner{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.ehappyclasstech-footer-brand{font-family:'Oswald',sans-serif;font-size:18px;font-weight:700;color:var(--t1)}
.ehappyclasstech-footer-brand span{color:var(--yellow-dark)}
.ehappyclasstech-footer-filing{font-size:12px;color:var(--t3);line-height:1.9;text-align:right;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ehappyclasstech-footer-filing a{color:var(--t3);transition:.2s}
.ehappyclasstech-footer-filing a:hover{color:var(--yellow-dark)}
.ehappyclasstech-footer-filing .ehappyclasstech-sep{color:var(--t4)}
.ehappyclasstech-footer-filing .ehappyclasstech-sitemap-link{color:var(--yellow-dark);font-weight:500;background:var(--yellow-light);padding:2px 10px;border-radius:12px;font-size:11px}
.ehappyclasstech-btt{position:fixed;bottom:32px;right:32px;width:44px;height:44px;background:var(--yellow);border-radius:12px;display:flex;align-items:center;justify-content:center;color:var(--t1);z-index:99;opacity:0;transform:translateY(16px);transition:.3s;box-shadow:0 4px 20px rgba(245,197,24,.35)}
.ehappyclasstech-btt.ehappyclasstech-show{opacity:1;transform:translateY(0)}
.ehappyclasstech-btt:hover{transform:translateY(-2px);box-shadow:0 6px 28px rgba(245,197,24,.45)}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(0,0,0,.1);border-radius:3px}
.ehappyclasstech-league-bar-wrap {
    background: #fff;
    border-bottom: 1px solid var(--bdr);
    padding: 14px 0;
}
.ehappyclasstech-league-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.ehappyclasstech-league-tag span {
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
    color: var(--t2);
}
.ehappyclasstech-league-tag {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    background: rgba(255, 255, 255, .6);
    border: 1px solid var(--bdr);
    border-radius: 30px;
    cursor: pointer;
    transition: .25s;
    flex-shrink: 0;
}
.ehappyclasstech-league-tag:hover, .ehappyclasstech-league-tag.ehappyclasstech-active{
    border-color: var(--yellow);
    background: var(--yellow-light);
}