:root{
    --primary:#3730d6;
    --primary-dark:#2a25a8;
    --ink:#1f2430;
    --muted:#5b6070;
    --bg:#f7f8fc;
    --line:#e3e6f0;
    --radius:14px;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{
    font-family:"Noto Sans TC",system-ui,sans-serif;
    color:var(--ink);background:#fff;line-height:1.7;
}
h1,h2,h3,h4{font-family:"Noto Serif TC",serif;line-height:1.3;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}

.container{width:100%;max-width:1140px;margin:0 auto;padding:0 20px;}
.narrow{max-width:860px;}
.text-center{text-align:center;}
.mt{margin-top:50px;}

/* Header / Nav */
.site-header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line);}
.nav-bar{display:flex;align-items:center;justify-content:space-between;height:74px;}
.brand{display:flex;align-items:center;gap:12px;}
.brand-logo{font-family:"Noto Serif TC",serif;font-weight:700;color:var(--primary);font-size:15px;line-height:1.1;}
.brand-text{font-weight:700;color:var(--ink);font-size:15px;}
.nav-menu{display:flex;align-items:center;gap:22px;}
.nav-menu a{color:var(--muted);font-weight:500;font-size:15px;transition:.2s;}
.nav-menu a:hover,.nav-menu a.is-active{color:var(--primary);}
.btn-nav{background:var(--primary);color:#fff !important;padding:9px 18px;border-radius:999px;}
.btn-nav:hover{background:var(--primary-dark);}
.nav-toggle{display:none;font-size:24px;background:none;border:none;cursor:pointer;color:var(--primary);}

/* Buttons */
.btn{display:inline-block;padding:13px 28px;border-radius:999px;font-weight:700;transition:.2s;cursor:pointer;border:none;font-size:16px;}
.btn-primary{background:var(--primary);color:#fff;}
.btn-primary:hover{background:var(--primary-dark);}
.btn-ghost{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.7);}
.btn-ghost:hover{background:rgba(255,255,255,.15);}
.btn-light{background:#fff;color:var(--primary);}

/* Hero */
.hero{
    background:linear-gradient(135deg,#3730d6 0%,#6a3fc0 60%,#8b2fb0 100%);
    color:#fff;padding:90px 0;
}
.hero-inner{max-width:760px;}
.badge{display:inline-block;background:rgba(255,255,255,.2);padding:6px 16px;border-radius:999px;font-size:14px;margin-bottom:20px;}
.hero h1{font-size:46px;margin-bottom:18px;}
.hero-sub{font-size:20px;opacity:.95;margin-bottom:30px;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:26px;}
.hero-org{opacity:.85;font-size:15px;}

/* Sections */
.section{padding:70px 0;}
.section-alt{background:var(--bg);}
.section-title{font-size:32px;color:var(--primary-dark);margin-bottom:18px;}
.section-lead{font-size:18px;color:var(--muted);margin-bottom:30px;}

.page-head{background:var(--bg);padding:56px 0;border-bottom:1px solid var(--line);}
.page-head h1{font-size:38px;color:var(--primary-dark);}
.page-head p{color:var(--muted);margin-top:10px;font-size:17px;}

/* Cards */
.cards-4,.cards-3,.cards-2{display:grid;gap:22px;}
.cards-4{grid-template-columns:repeat(4,1fr);}
.cards-3{grid-template-columns:repeat(3,1fr);}
.cards-2{grid-template-columns:repeat(2,1fr);}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px;transition:.2s;}
.card:hover{box-shadow:0 10px 30px rgba(55,48,214,.08);transform:translateY(-3px);}
.card-icon{font-size:34px;margin-bottom:12px;}
.card h3{font-size:19px;margin-bottom:10px;color:var(--primary-dark);}
.card p{color:var(--muted);font-size:15px;}

/* Steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.step{background:#fff;border-radius:var(--radius);padding:30px;border-left:5px solid var(--primary);}
.step-no{display:inline-flex;width:42px;height:42px;border-radius:50%;background:var(--primary);color:#fff;align-items:center;justify-content:center;font-weight:700;font-size:20px;margin-bottom:14px;}
.step h3{margin-bottom:8px;}
.step p{color:var(--muted);font-size:15px;}

/* CTA */
.cta{background:var(--primary-dark);color:#fff;padding:70px 0;text-align:center;}
.cta h2{font-size:32px;margin-bottom:14px;}
.cta p{font-size:18px;opacity:.92;margin-bottom:28px;max-width:640px;margin-inline:auto;}

/* Info list */
.info-list{display:grid;gap:14px;margin-bottom:20px;}
.info-item{background:var(--bg);border-radius:12px;padding:20px 24px;}
.info-item h3{color:var(--primary-dark);font-size:18px;margin-bottom:6px;}
.info-item p{color:var(--muted);}

/* Callout / panels */
.callout{background:#e8ecff;border-radius:12px;padding:18px 24px;margin-top:26px;color:var(--primary-dark);font-weight:500;}
.callout.success{background:#e3f6ea;color:#1a7a43;}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;}
.panel-dark{background:var(--primary);color:#fff;}
.panel-dark hr{border:none;border-top:1px solid rgba(255,255,255,.3);margin:18px 0;}
.panel h3{margin-bottom:10px;}

/* Lists */
.arrow-list,.check-list{list-style:none;display:grid;gap:12px;}
.arrow-list li::before{content:"➜ ";color:var(--primary);font-weight:700;}
.check-list li::before{content:"✓ ";color:#1a7a43;font-weight:700;}

/* Table */
.table{width:100%;border-collapse:collapse;margin-top:10px;background:#fff;border-radius:10px;overflow:hidden;border:1px solid var(--line);}
.table th,.table td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--line);font-size:15px;}
.table th{background:var(--primary);color:#fff;font-weight:600;}
.table tr:last-child td{border-bottom:none;}
.table tbody tr:nth-child(even){background:var(--bg);}

/* Timeline */
.timeline{list-style:none;border-left:3px solid var(--primary);padding-left:0;margin-left:10px;}
.timeline li{position:relative;padding:0 0 26px 30px;}
.timeline li::before{content:"";position:absolute;left:-9px;top:6px;width:15px;height:15px;border-radius:50%;background:var(--primary);border:3px solid #fff;}
.tl-date{display:inline-block;font-weight:700;color:var(--primary-dark);min-width:90px;}
.tl-text{color:var(--ink);}

/* Awards */
.award-row{display:flex;gap:18px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;margin-bottom:16px;}
.award-no{flex:0 0 auto;width:40px;height:40px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;}
.award-row h3{color:var(--primary-dark);margin-bottom:4px;}
.award-row p{color:var(--muted);}

/* Forms */
.form{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px;}
.form-group{margin-bottom:20px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.form label{display:block;font-weight:600;margin-bottom:7px;font-size:15px;}
.form input,.form select,.form textarea{
    width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:9px;font-size:15px;font-family:inherit;
}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--primary);}
.form-check{margin:18px 0;font-size:15px;}
.form-check input{margin-right:8px;}
.alert{padding:16px 20px;border-radius:10px;margin-bottom:24px;}
.alert-error{background:#fdecec;color:#b42318;border:1px solid #f5c2c0;}
.alert ul{margin:8px 0 0 18px;}

/* Contact */
.contact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
.contact-card{background:var(--bg);border-radius:12px;padding:24px;}
.contact-card h3{color:var(--primary-dark);margin-bottom:8px;font-size:18px;}

/* Footer */
.site-footer{background:#1f2430;color:#cfd2dd;padding:50px 0 0;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1.4fr;gap:30px;}
.footer-grid h4{color:#fff;margin-bottom:10px;font-size:16px;}
.footer-grid p{font-size:14px;margin-bottom:5px;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:36px;padding:18px 0;font-size:13px;color:#8b90a0;}

/* Responsive */
@media(max-width:900px){
    .cards-4{grid-template-columns:repeat(2,1fr);}
    .footer-grid{grid-template-columns:1fr;}
}
@media(max-width:760px){
    .nav-toggle{display:block;}
    .nav-menu{position:absolute;top:74px;left:0;right:0;background:#fff;flex-direction:column;align-items:flex-start;padding:18px 20px;gap:16px;border-bottom:1px solid var(--line);display:none;}
    .nav-menu.open{display:flex;}
    .hero h1{font-size:34px;}
    .cards-4,.cards-3,.cards-2,.steps,.two-col,.contact-grid,.form-row{grid-template-columns:1fr;}
    .section-title{font-size:26px;}
}