/* JRE 備考堂 · 全站共用樣式 */


:root{
    --ink:#173B2E;
    --ink-soft:#2E6B52;
    --paper:#F5F0E1;
    --paper-2:#EDE6D2;
    --paper-3:#E4DBC1;
    --red:#B23A2E;
    --red-soft:#C85543;
    --charcoal:#141414;
    --muted:#6B6862;
    --rule:#1A1A1A;
    --grid:rgba(30,74,58,0.06);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
    font-family:'Noto Sans TC',-apple-system,BlinkMacSystemFont,sans-serif;
    background:var(--paper);
    color:var(--charcoal);
    line-height:1.65;
    font-weight:400;
    overflow-x:hidden;
    background-image:
        linear-gradient(var(--grid) 1px,transparent 1px),
        linear-gradient(90deg,var(--grid) 1px,transparent 1px);
    background-size:24px 24px;
}

/* Typography */
.serif{font-family:'Noto Serif TC',serif}
.mono{font-family:'JetBrains Mono',monospace}
.latin-serif{font-family:'Instrument Serif',serif;font-style:italic}

h1,h2,h3,h4{font-family:'Noto Serif TC',serif;font-weight:900;color:var(--ink);line-height:1.15;letter-spacing:-0.01em}
/* 內容區裸標題與段落的基本間距（section 內，非特定 class 的） */
section h2{font-size:clamp(26px,3vw,36px);margin:0 0 18px}
section h3{font-size:19px;margin:32px 0 10px}
section h2 + p,section h3 + p{margin-top:0}
section p{margin:0 0 16px;line-height:1.8}
section h2:not(:first-child){margin-top:8px}
section ul:not(.plan-features):not(.nav-links):not(.footer-links):not(.toc-list):not(.link-list){margin:0 0 18px;padding-left:22px;line-height:1.8}
section ul:not(.plan-features):not(.nav-links):not(.footer-links):not(.toc-list):not(.link-list) li{margin-bottom:8px}
section table{margin:20px 0 28px}
section table + p{margin-top:0}

/* Layout helpers */
.container{max-width:1240px;margin:0 auto;padding:0 32px}
section{padding:120px 0;position:relative}
.section-tag{
    font-family:'JetBrains Mono',monospace;
    font-size:11px;
    letter-spacing:0.18em;
    text-transform:uppercase;
    color:var(--red);
    margin-bottom:24px;
    display:flex;
    align-items:center;
    gap:12px;
}
.section-tag::before{content:'';width:32px;height:1px;background:var(--red)}

/* Navigation */
nav{
    position:fixed;
    top:0;left:0;right:0;
    z-index:100;
    background:rgba(245,240,225,0.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid rgba(30,74,58,0.08);
}
.nav-inner{
    max-width:1240px;
    margin:0 auto;
    padding:18px 28px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
}
.logo{
    font-family:'Noto Serif TC',serif;
    font-weight:900;
    font-size:15px;
    color:var(--ink);
    display:flex;
    align-items:center;
    gap:8px;
    line-height:1.15;
    white-space:nowrap;
    flex-shrink:0;
}
.logo-mark{
    width:30px;height:30px;
    background:var(--red);
    color:var(--paper);
    display:flex;align-items:center;justify-content:center;
    font-size:13px;
    border-radius:2px;
    transform:rotate(-3deg);
    box-shadow:2px 2px 0 var(--ink);
    flex-shrink:0;
}
.nav-links{display:flex;gap:20px;list-style:none;align-items:center;flex-wrap:nowrap}
.nav-links>li{white-space:nowrap}
.nav-links a{
    color:var(--ink);
    text-decoration:none;
    font-size:13.5px;
    font-weight:500;
    transition:color 0.2s;
    position:relative;
    white-space:nowrap;
}
.nav-links a:hover{color:var(--red)}
.nav-cta{
    background:var(--ink);
    color:var(--paper)!important;
    padding:10px 20px;
    border-radius:2px;
    font-size:13px;
}
.nav-cta:hover{background:var(--red)}
.mobile-toggle{display:none;background:none;border:none;font-size:24px;color:var(--ink);cursor:pointer}

/* HERO */
.hero{
    padding:180px 0 100px;
    position:relative;
    overflow:hidden;
}
.hero-grid{
    display:grid;
    grid-template-columns:1.4fr 1fr;
    gap:80px;
    align-items:end;
}
.hero-label{
    font-family:'JetBrains Mono',monospace;
    font-size:11px;
    letter-spacing:0.22em;
    text-transform:uppercase;
    color:var(--red);
    margin-bottom:32px;
    display:flex;align-items:center;gap:12px;
}
.hero-label::before{content:'';width:40px;height:1px;background:var(--red)}
.hero h1{
    font-size:clamp(48px,7vw,96px);
    line-height:0.98;
    margin-bottom:36px;
    letter-spacing:-0.03em;
}
.hero h1 span:not(.en){white-space:nowrap}
.hero h1 .en{
    font-family:'Instrument Serif',serif;
    font-style:italic;
    font-weight:400;
    color:var(--red);
    display:block;
    font-size:0.55em;
    letter-spacing:0.02em;
    margin-top:8px;
}
.hero-sub{
    font-size:18px;
    color:var(--ink-soft);
    max-width:560px;
    margin-bottom:44px;
    line-height:1.7;
}
.hero-ctas{display:flex;gap:16px;flex-wrap:wrap}
.btn{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:16px 28px;
    border-radius:2px;
    text-decoration:none;
    font-weight:500;
    font-size:14px;
    transition:all 0.2s;
    cursor:pointer;
    border:none;
    font-family:inherit;
}
.btn-primary{background:var(--ink);color:var(--paper)}
.btn-primary:hover{background:var(--red);transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--ink)}
.btn-secondary{background:transparent;color:var(--ink);border:1.5px solid var(--ink)}
.btn-secondary:hover{background:var(--ink);color:var(--paper)}

/* Countdown card - hero right */
.countdown-card{
    background:var(--paper-2);
    border:1.5px solid var(--ink);
    padding:32px;
    position:relative;
    box-shadow:8px 8px 0 var(--ink);
}
.countdown-card::before{
    content:'官方參考';
    position:absolute;
    top:-12px;right:24px;
    background:var(--red);
    color:var(--paper);
    padding:4px 12px;
    font-family:'JetBrains Mono',monospace;
    font-size:10px;
    letter-spacing:0.15em;
}
.countdown-label{
    font-family:'JetBrains Mono',monospace;
    font-size:10px;
    letter-spacing:0.18em;
    text-transform:uppercase;
    color:var(--muted);
    margin-bottom:12px;
}
.countdown-title{
    font-family:'Noto Serif TC',serif;
    font-weight:900;
    font-size:22px;
    color:var(--ink);
    margin-bottom:24px;
}
.countdown-numbers{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:8px;
    margin-bottom:24px;
}
.count-cell{
    background:var(--paper);
    border:1px dashed rgba(30,74,58,0.3);
    padding:14px 8px;
    text-align:center;
}
.count-num{
    font-family:'JetBrains Mono',monospace;
    font-size:32px;
    font-weight:700;
    color:var(--ink);
    line-height:1;
    margin-bottom:6px;
}
.count-lbl{
    font-size:11px;
    color:var(--muted);
    letter-spacing:0.1em;
}
.countdown-meta{
    padding-top:20px;
    border-top:1px solid rgba(30,74,58,0.2);
    font-size:13px;
    color:var(--muted);
    line-height:1.7;
}
.countdown-meta strong{color:var(--ink);font-weight:500}

/* Stats strip */
.stats-strip{
    background:var(--ink);
    color:var(--paper);
    padding:48px 0;
    margin-top:80px;
    position:relative;
}
.stats-strip::before,.stats-strip::after{
    content:'';
    position:absolute;
    left:0;right:0;
    height:1px;
    background:var(--red);
}
.stats-strip::before{top:8px}
.stats-strip::after{bottom:8px}
.stats-grid{
    max-width:1240px;
    margin:0 auto;
    padding:0 32px;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:32px;
}
.stat{border-left:2px solid var(--red);padding-left:20px}
.stat-num{
    font-family:'Noto Serif TC',serif;
    font-weight:900;
    font-size:48px;
    line-height:1;
    margin-bottom:8px;
}
.stat-num .u{
    font-family:'Instrument Serif',serif;
    font-style:italic;
    font-size:0.5em;
    color:var(--red-soft);
    margin-left:4px;
}
.stat-lbl{
    font-size:13px;
    opacity:0.75;
    letter-spacing:0.05em;
}

/* About JRE */
.about-grid{
    display:grid;
    grid-template-columns:1fr 1.3fr;
    gap:100px;
    align-items:start;
}
.about-heading h2{
    font-size:clamp(40px,5vw,64px);
    margin-bottom:32px;
}
.about-heading p{
    color:var(--ink-soft);
    font-size:16px;
    line-height:1.8;
}
.about-facts{
    display:flex;
    flex-direction:column;
}
.fact-row{
    display:grid;
    grid-template-columns:80px 1fr;
    gap:32px;
    padding:28px 0;
    border-bottom:1px solid rgba(30,74,58,0.15);
    align-items:start;
}
.fact-row:first-child{border-top:1px solid rgba(30,74,58,0.15)}
.fact-num{
    font-family:'JetBrains Mono',monospace;
    font-size:12px;
    color:var(--red);
    letter-spacing:0.15em;
    padding-top:4px;
}
.fact-label{
    font-family:'Noto Serif TC',serif;
    font-weight:700;
    font-size:20px;
    color:var(--ink);
    margin-bottom:8px;
}
.fact-desc{
    color:var(--muted);
    font-size:14px;
    line-height:1.7;
}

/* Guide steps */
.guide-section{background:var(--paper-2);position:relative}
.guide-section::before{
    content:'';
    position:absolute;
    top:0;left:0;right:0;
    height:1px;
    background:var(--ink);
}
.guide-header{
    text-align:center;
    max-width:720px;
    margin:0 auto 80px;
}
.guide-header h2{
    font-size:clamp(40px,5vw,64px);
    margin-bottom:24px;
}
.guide-header p{color:var(--ink-soft);font-size:16px;line-height:1.8}
.guide-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:var(--ink);
    border:1px solid var(--ink);
}
.guide-step{
    background:var(--paper);
    padding:40px 32px;
    position:relative;
    transition:background 0.3s;
    cursor:default;
}
.guide-step:hover{background:var(--paper-3)}
.step-num{
    font-family:'Instrument Serif',serif;
    font-style:italic;
    font-size:64px;
    color:var(--red);
    line-height:1;
    margin-bottom:24px;
    display:block;
}
.step-title{
    font-family:'Noto Serif TC',serif;
    font-weight:700;
    font-size:22px;
    color:var(--ink);
    margin-bottom:16px;
}
.step-desc{
    color:var(--muted);
    font-size:14px;
    line-height:1.75;
    margin-bottom:20px;
}
.step-meta{
    font-family:'JetBrains Mono',monospace;
    font-size:11px;
    color:var(--ink);
    letter-spacing:0.12em;
    padding-top:16px;
    border-top:1px dashed rgba(30,74,58,0.25);
}

/* Courses */
.courses-header{margin-bottom:80px;max-width:720px}
.courses-header h2{font-size:clamp(40px,5vw,64px);margin-bottom:24px}
.courses-header p{color:var(--ink-soft);font-size:16px;line-height:1.8}
.courses-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:24px;
}
.course-card{
    background:var(--paper);
    border:1.5px solid var(--ink);
    padding:40px;
    position:relative;
    transition:all 0.3s;
    cursor:pointer;
}
.course-card:hover{
    transform:translate(-4px,-4px);
    box-shadow:8px 8px 0 var(--ink);
}
.course-card::before{
    content:attr(data-num);
    position:absolute;
    top:20px;right:24px;
    font-family:'JetBrains Mono',monospace;
    font-size:11px;
    color:var(--muted);
    letter-spacing:0.15em;
}
.course-tag{
    display:inline-block;
    background:var(--ink);
    color:var(--paper);
    font-family:'JetBrains Mono',monospace;
    font-size:10px;
    padding:4px 10px;
    letter-spacing:0.15em;
    margin-bottom:20px;
}
.course-title{
    font-family:'Noto Serif TC',serif;
    font-weight:900;
    font-size:32px;
    color:var(--ink);
    margin-bottom:12px;
    line-height:1.2;
}
.course-en{
    font-family:'Instrument Serif',serif;
    font-style:italic;
    color:var(--red);
    font-size:16px;
    margin-bottom:20px;
}
.course-desc{
    color:var(--ink-soft);
    font-size:14px;
    line-height:1.75;
    margin-bottom:24px;
}
.course-modules{list-style:none;margin-bottom:28px}
.course-modules li{
    display:flex;
    gap:14px;
    padding:10px 0;
    font-size:14px;
    color:var(--charcoal);
    border-bottom:1px dashed rgba(30,74,58,0.15);
}
.course-modules li:last-child{border-bottom:none}
.course-modules li::before{
    content:'□';
    color:var(--red);
    font-family:monospace;
    font-weight:700;
}
.course-footer{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding-top:20px;
    border-top:1px solid var(--ink);
}
.course-time{
    font-family:'JetBrains Mono',monospace;
    font-size:12px;
    color:var(--muted);
    letter-spacing:0.1em;
}
.course-link{
    color:var(--ink);
    text-decoration:none;
    font-size:13px;
    font-weight:500;
    display:flex;
    align-items:center;
    gap:6px;
}
.course-link:hover{color:var(--red)}

/* Past Papers */
.papers-section{background:var(--ink);color:var(--paper)}
.papers-section h2{color:var(--paper);font-size:clamp(40px,5vw,64px)}
.papers-header{margin-bottom:60px}
.papers-header p{color:rgba(245,240,225,0.7);font-size:16px;line-height:1.8;max-width:680px}
.papers-header .section-tag{color:var(--red-soft)}
.papers-header .section-tag::before{background:var(--red-soft)}

.filter-bar{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-bottom:40px;
    padding-bottom:24px;
    border-bottom:1px solid rgba(245,240,225,0.15);
}
.filter-btn{
    background:transparent;
    color:var(--paper);
    border:1px solid rgba(245,240,225,0.3);
    padding:8px 18px;
    font-family:'JetBrains Mono',monospace;
    font-size:12px;
    letter-spacing:0.1em;
    cursor:pointer;
    transition:all 0.2s;
    border-radius:2px;
}
.filter-btn:hover,.filter-btn.active{
    background:var(--red);
    border-color:var(--red);
}
.papers-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
}
.paper-card{
    background:var(--ink-soft);
    border:1px solid rgba(245,240,225,0.15);
    padding:28px 24px;
    text-decoration:none;
    color:var(--paper);
    transition:all 0.25s;
    position:relative;
    display:flex;
    flex-direction:column;
    min-height:200px;
}
.paper-card:hover{
    background:var(--red);
    border-color:var(--red);
    transform:translateY(-4px);
}
.paper-year{
    font-family:'Noto Serif TC',serif;
    font-weight:900;
    font-size:44px;
    line-height:1;
    margin-bottom:12px;
    letter-spacing:-0.02em;
}
.paper-code{
    font-family:'JetBrains Mono',monospace;
    font-size:11px;
    letter-spacing:0.15em;
    color:rgba(245,240,225,0.6);
    margin-bottom:20px;
}
.paper-card:hover .paper-code{color:rgba(245,240,225,0.9)}
.paper-meta{
    margin-top:auto;
    font-size:12px;
    opacity:0.75;
    display:flex;
    justify-content:space-between;
    padding-top:16px;
    border-top:1px dashed rgba(245,240,225,0.2);
}
.paper-notice{
    background:var(--paper);
    color:var(--ink);
    padding:24px 28px;
    margin-top:40px;
    border-left:4px solid var(--red);
    font-size:14px;
    line-height:1.75;
}
.paper-notice strong{color:var(--red)}

/* Sample Questions */
.samples-header{margin-bottom:60px;max-width:720px}
.samples-header h2{font-size:clamp(40px,5vw,64px);margin-bottom:24px}
.samples-header p{color:var(--ink-soft);font-size:16px;line-height:1.8}
.sample-paper{
    background:var(--paper);
    border:2px solid var(--ink);
    padding:56px 64px;
    position:relative;
    max-width:900px;
    margin:0 auto;
    box-shadow:12px 12px 0 var(--ink-soft);
}
.sample-header{
    display:flex;
    justify-content:space-between;
    align-items:start;
    padding-bottom:24px;
    border-bottom:2px solid var(--ink);
    margin-bottom:40px;
}
.sample-title{
    font-family:'Noto Serif TC',serif;
    font-weight:900;
    font-size:22px;
    color:var(--ink);
    letter-spacing:0.02em;
}
.sample-title small{
    display:block;
    font-family:'JetBrains Mono',monospace;
    font-size:11px;
    font-weight:400;
    color:var(--muted);
    letter-spacing:0.15em;
    margin-top:8px;
}
.stamp{
    width:90px;height:90px;
    border:3px solid var(--red);
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--red);
    font-family:'Noto Serif TC',serif;
    font-weight:900;
    font-size:14px;
    text-align:center;
    line-height:1.1;
    transform:rotate(-8deg);
    opacity:0.85;
    flex-shrink:0;
}
.question{
    padding:32px 0;
    border-bottom:1px dashed rgba(30,74,58,0.25);
}
.question:last-child{border-bottom:none}
.q-header{
    display:flex;
    gap:20px;
    margin-bottom:20px;
    align-items:baseline;
}
.q-num{
    font-family:'JetBrains Mono',monospace;
    font-weight:700;
    font-size:14px;
    color:var(--red);
    letter-spacing:0.1em;
    flex-shrink:0;
    padding:6px 12px;
    border:1px solid var(--red);
}
.q-type{
    font-family:'JetBrains Mono',monospace;
    font-size:11px;
    color:var(--muted);
    letter-spacing:0.15em;
    text-transform:uppercase;
}
.q-title{
    font-family:'Noto Serif TC',serif;
    font-weight:700;
    font-size:20px;
    color:var(--ink);
    margin-bottom:16px;
    line-height:1.4;
}
.q-body{
    color:var(--charcoal);
    font-size:15px;
    line-height:1.85;
    margin-bottom:16px;
}
.q-hint{
    background:var(--paper-2);
    padding:16px 20px;
    border-left:3px solid var(--red);
    font-size:13px;
    color:var(--ink-soft);
    line-height:1.7;
    font-family:'Noto Sans TC',sans-serif;
}
.q-hint strong{color:var(--red);font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.15em}

/* FAQ */
.faq-section{background:var(--paper-2)}
.faq-container{max-width:900px;margin:0 auto}
.faq-header{text-align:center;margin-bottom:60px}
.faq-header h2{font-size:clamp(40px,5vw,64px);margin-bottom:16px}
.faq-item{
    border-bottom:1px solid rgba(30,74,58,0.15);
    padding:0;
}
.faq-item:first-child{border-top:1px solid rgba(30,74,58,0.15)}
.faq-q{
    padding:28px 0;
    display:flex;
    justify-content:space-between;
    align-items:center;
    cursor:pointer;
    gap:24px;
    background:transparent;
    border:none;
    width:100%;
    text-align:left;
    font-family:inherit;
}
.faq-q-text{
    font-family:'Noto Serif TC',serif;
    font-weight:700;
    font-size:19px;
    color:var(--ink);
    display:flex;
    gap:20px;
    align-items:baseline;
}
.faq-q-num{
    font-family:'JetBrains Mono',monospace;
    font-size:12px;
    color:var(--red);
    letter-spacing:0.15em;
    flex-shrink:0;
    padding-top:2px;
}
.faq-toggle{
    font-family:'Instrument Serif',serif;
    font-size:32px;
    color:var(--ink);
    transition:transform 0.3s;
    line-height:1;
}
.faq-item.active .faq-toggle{transform:rotate(45deg);color:var(--red)}
.faq-a{
    max-height:0;
    overflow:hidden;
    transition:max-height 0.4s ease-in-out;
    color:var(--ink-soft);
    font-size:15px;
    line-height:1.85;
    padding-left:52px;
}
.faq-item.active .faq-a{
    max-height:400px;
    padding-bottom:28px;
}

/* CTA final */
.cta-section{
    background:var(--ink);
    color:var(--paper);
    padding:120px 0;
    text-align:center;
    position:relative;
    overflow:hidden;
}
.cta-section::before{
    content:'JRE';
    position:absolute;
    font-family:'Noto Serif TC',serif;
    font-weight:900;
    font-size:400px;
    color:rgba(178,58,46,0.08);
    top:50%;left:50%;
    transform:translate(-50%,-50%);
    letter-spacing:-0.05em;
    z-index:0;
    pointer-events:none;
}
.cta-inner{position:relative;z-index:1;max-width:720px;margin:0 auto;padding:0 32px}
.cta-section h2{color:var(--paper);font-size:clamp(40px,5.5vw,72px);margin-bottom:24px}
.cta-section h2 .accent{color:var(--red-soft);font-family:'Instrument Serif',serif;font-style:italic;font-weight:400;display:block;font-size:0.5em;margin-top:10px;letter-spacing:0.02em}
.cta-section p{color:rgba(245,240,225,0.75);font-size:17px;line-height:1.75;margin-bottom:48px}

/* Footer */
footer{
    background:var(--paper-3);
    padding:60px 0 32px;
    border-top:1px solid var(--ink);
}
.footer-grid{
    display:grid;
    grid-template-columns:2fr 1fr 1fr 1fr;
    gap:60px;
    margin-bottom:48px;
}
/* CRE 頁 footer：品牌 + 連結兩欄，用較闊佈局 */
.footer-grid:has(.footer-links):not(:has(.footer-col)){
    grid-template-columns:1.4fr 1fr;
}
/* info.html footer：只有品牌一欄，佔滿寬度 */
.footer-grid:not(:has(.footer-col)):not(:has(.footer-links)){
    grid-template-columns:1fr;
}
.footer-brand h4{font-size:24px;margin-bottom:16px}
.footer-brand p{color:var(--muted);font-size:14px;line-height:1.85;max-width:680px}
.footer-col h5{
    font-family:'JetBrains Mono',monospace;
    font-size:11px;
    letter-spacing:0.2em;
    color:var(--red);
    text-transform:uppercase;
    margin-bottom:20px;
    font-weight:500;
}
.footer-col ul{list-style:none}
.footer-col li{margin-bottom:12px}
.footer-col a{
    color:var(--charcoal);
    text-decoration:none;
    font-size:14px;
    transition:color 0.2s;
}
.footer-col a:hover{color:var(--red)}
.footer-bottom{
    padding-top:32px;
    border-top:1px dashed rgba(30,74,58,0.2);
    display:flex;
    justify-content:space-between;
    align-items:center;
    font-size:12px;
    color:var(--muted);
    font-family:'JetBrains Mono',monospace;
    letter-spacing:0.05em;
}

/* Responsive */
/* 導覽收合：項目多，較早切換為漢堡選單以免逼爆 */
@media (max-width:1080px){
    .nav-links{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);flex-direction:column;padding:24px 32px;gap:20px;border-bottom:1px solid var(--ink);align-items:flex-start;z-index:100}
    .nav-links.open{display:flex}
    .mobile-toggle{display:block}
}
@media (max-width:900px){
    .hero-grid{grid-template-columns:1fr;gap:60px}
    .about-grid{grid-template-columns:1fr;gap:60px}
    .stats-grid{grid-template-columns:repeat(2,1fr);gap:32px}
    .guide-grid{grid-template-columns:1fr}
    .courses-grid{grid-template-columns:1fr}
    .papers-grid{grid-template-columns:repeat(2,1fr)}
    .sample-paper{padding:32px 24px}
    .footer-grid{grid-template-columns:1fr 1fr;gap:40px}
    .footer-bottom{flex-direction:column;gap:12px;text-align:center}
    section{padding:80px 0}
    .container{padding:0 24px}
    .cta-section::before{font-size:200px}
}
@media (max-width:520px){
    .papers-grid{grid-template-columns:1fr}
    .stats-grid{grid-template-columns:1fr}
    .footer-grid{grid-template-columns:1fr}
    .hero{padding-top:140px}
    .countdown-numbers{grid-template-columns:repeat(2,1fr)}
    .sample-header{flex-direction:column;gap:20px}
    .stamp{align-self:flex-start}
}

/* ===== Shared additions for sub-pages ===== */
.page-hero{padding:160px 0 60px;border-bottom:1px solid var(--ink)}
.page-hero h1{font-size:clamp(40px,6vw,72px);margin-bottom:20px;letter-spacing:-0.02em}
.page-hero p{color:var(--ink-soft);font-size:16px;max-width:720px;line-height:1.85}
.breadcrumb{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.15em;color:var(--muted);margin-bottom:28px}
.breadcrumb a{color:var(--red);text-decoration:none}

/* Course detail */
.course-detail{border:1.5px solid var(--ink);background:var(--paper);margin-bottom:48px;scroll-margin-top:100px}
.course-detail-head{padding:40px 48px;border-bottom:1.5px solid var(--ink);display:flex;justify-content:space-between;align-items:start;gap:24px;flex-wrap:wrap}
.course-detail-body{padding:40px 48px;display:grid;grid-template-columns:1.4fr 1fr;gap:48px}
.syllabus-item{display:grid;grid-template-columns:90px 1fr;gap:20px;padding:18px 0;border-bottom:1px dashed rgba(30,74,58,0.2);font-size:14px}
.syllabus-item:last-child{border-bottom:none}
.syllabus-code{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--red);letter-spacing:0.1em;padding-top:3px}
.syllabus-title{font-weight:700;color:var(--ink);margin-bottom:4px}
.syllabus-desc{color:var(--muted);line-height:1.7}
.course-side{background:var(--paper-2);border:1px solid rgba(30,74,58,0.2);padding:28px;height:fit-content}
.side-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px dashed rgba(30,74,58,0.2);font-size:13px}
.side-row:last-of-type{border-bottom:none}
.side-row .k{color:var(--muted)}
.side-row .v{font-weight:500;color:var(--ink);text-align:right}
@media(max-width:900px){.course-detail-body{grid-template-columns:1fr}.course-detail-head,.course-detail-body{padding:28px 24px}}

/* Papers detail page */
.year-block{border:1.5px solid var(--ink);background:var(--paper);margin-bottom:20px;scroll-margin-top:100px}
.year-head{display:flex;align-items:center;gap:24px;padding:24px 32px;cursor:pointer;background:transparent;border:none;width:100%;text-align:left;font-family:inherit;transition:background 0.2s}
.year-head:hover{background:var(--paper-2)}
.year-head .y{font-family:'Noto Serif TC',serif;font-weight:900;font-size:36px;color:var(--ink);letter-spacing:-0.02em;min-width:110px}
.year-head .t{flex:1}
.year-head .t .topic{font-weight:700;color:var(--ink);font-size:16px}
.year-head .t .tags{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--muted);letter-spacing:0.12em;margin-top:4px}
.year-head .arrow{font-family:'Instrument Serif',serif;font-size:28px;color:var(--red);transition:transform 0.3s}
.year-block.open .arrow{transform:rotate(90deg)}
.year-body{max-height:0;overflow:hidden;transition:max-height 0.4s ease}
.year-block.open .year-body{max-height:900px}
.year-body-inner{padding:0 32px 32px;border-top:1px dashed rgba(30,74,58,0.25);padding-top:24px;display:grid;grid-template-columns:1fr 1fr;gap:32px}
.yb-col h4{font-size:15px;margin-bottom:12px;color:var(--red)}
.yb-col p,.yb-col li{font-size:14px;color:var(--ink-soft);line-height:1.8}
.yb-col ul{padding-left:18px}
@media(max-width:800px){.year-body-inner{grid-template-columns:1fr}.year-head{flex-wrap:wrap;gap:12px}}

/* Practice page */
.practice-layout{display:grid;grid-template-columns:340px 1fr;gap:32px;align-items:start}
.q-bank{border:1.5px solid var(--ink);background:var(--paper);position:sticky;top:100px}
.q-bank-head{padding:20px 24px;border-bottom:1.5px solid var(--ink);font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.18em;color:var(--red)}
.q-bank-item{display:block;width:100%;text-align:left;padding:16px 24px;border:none;border-bottom:1px dashed rgba(30,74,58,0.2);background:transparent;cursor:pointer;font-family:inherit;transition:background 0.15s}
.q-bank-item:hover{background:var(--paper-2)}
.q-bank-item.sel{background:var(--ink);color:var(--paper)}
.q-bank-item.sel .qb-title{color:var(--paper)}
.qb-code{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.12em;color:var(--red);margin-bottom:4px}
.qb-title{font-size:13px;font-weight:500;color:var(--ink);line-height:1.5}
.workspace{border:1.5px solid var(--ink);background:var(--paper)}
.ws-head{padding:24px 32px;border-bottom:1.5px solid var(--ink);display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.timer-box{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:28px;color:var(--ink);display:flex;align-items:center;gap:14px}
.timer-box.warn{color:var(--red)}
.timer-controls{display:flex;gap:8px}
.tbtn{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.1em;padding:8px 14px;border:1px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;border-radius:2px;transition:all 0.15s}
.tbtn:hover{background:var(--ink);color:var(--paper)}
.tbtn.primary{background:var(--red);border-color:var(--red);color:var(--paper)}
.tbtn.primary:hover{background:var(--ink);border-color:var(--ink)}
.ws-question{padding:28px 32px;border-bottom:1px dashed rgba(30,74,58,0.25);background:var(--paper-2)}
.ws-question .q-title{font-size:18px}
.ws-answer{padding:24px 32px}
.answer-area{width:100%;min-height:420px;border:1px solid rgba(30,74,58,0.3);background:var(--paper);padding:20px;font-family:'Noto Sans TC',sans-serif;font-size:15px;line-height:1.9;color:var(--charcoal);resize:vertical;border-radius:2px}
.answer-area:focus{outline:2px solid var(--red);outline-offset:1px}
.ws-foot{display:flex;justify-content:space-between;align-items:center;padding:16px 32px;border-top:1px dashed rgba(30,74,58,0.25);flex-wrap:wrap;gap:12px}
.wordcount{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--muted);letter-spacing:0.08em}
.save-status{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--red);letter-spacing:0.1em}
@media(max-width:960px){.practice-layout{grid-template-columns:1fr}.q-bank{position:static}}

/* ===== Pricing plans ===== */
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:stretch}
.plan-card{background:var(--paper);border:1.5px solid var(--ink);padding:40px 36px;display:flex;flex-direction:column;position:relative;transition:all 0.3s}
.plan-card:hover{transform:translate(-4px,-4px);box-shadow:8px 8px 0 var(--ink)}
.plan-card.featured{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.plan-card.featured:hover{box-shadow:8px 8px 0 var(--red)}
.plan-badge{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:var(--red);color:var(--paper);font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.18em;padding:6px 16px;white-space:nowrap}
.plan-tier{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.2em;color:var(--red);margin-bottom:16px}
.plan-card.featured .plan-tier{color:var(--red-soft)}
.plan-name{font-family:'Noto Serif TC',serif;font-weight:900;font-size:28px;color:var(--ink);margin-bottom:6px}
.plan-card.featured .plan-name{color:var(--paper)}
.plan-en{font-family:'Instrument Serif',serif;font-style:italic;color:var(--red);font-size:15px;margin-bottom:24px}
.plan-card.featured .plan-en{color:var(--red-soft)}
.plan-price-row{display:flex;align-items:baseline;gap:12px;margin-bottom:6px;flex-wrap:wrap}
.plan-price{font-family:'Noto Serif TC',serif;font-weight:900;font-size:52px;color:var(--ink);letter-spacing:-0.02em;line-height:1}
.plan-card.featured .plan-price{color:var(--paper)}
.plan-price .cur{font-size:0.4em;font-weight:700;vertical-align:super}
.plan-original{font-family:'JetBrains Mono',monospace;font-size:14px;color:var(--muted);text-decoration:line-through}
.plan-card.featured .plan-original{color:rgba(245,240,225,0.55)}
.plan-save{display:inline-block;background:var(--red);color:var(--paper);font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.12em;padding:4px 10px;margin-bottom:20px}
.plan-per{font-size:12px;color:var(--muted);margin-bottom:24px;font-family:'JetBrains Mono',monospace;letter-spacing:0.08em}
.plan-card.featured .plan-per{color:rgba(245,240,225,0.6)}
.plan-features{list-style:none;margin-bottom:32px;flex:1}
.plan-features li{display:flex;gap:12px;padding:11px 0;font-size:14px;color:var(--charcoal);border-bottom:1px dashed rgba(30,74,58,0.15);line-height:1.6}
.plan-card.featured .plan-features li{color:rgba(245,240,225,0.9);border-bottom-color:rgba(245,240,225,0.15)}
.plan-features li::before{content:'✓';color:var(--red);font-weight:700;flex-shrink:0}
.plan-card.featured .plan-features li::before{color:var(--red-soft)}
.plan-features li.na{opacity:0.4}
.plan-features li.na::before{content:'—'}
.plan-cta{width:100%;justify-content:center}
.plan-card.featured .plan-cta{background:var(--red)}
.plan-card.featured .plan-cta:hover{background:var(--paper);color:var(--ink);box-shadow:4px 4px 0 var(--red)}
.pricing-note{text-align:center;margin-top:40px;font-size:13px;color:var(--muted);line-height:1.8}
.compare-table{width:100%;border-collapse:collapse;margin-top:60px;border:1.5px solid var(--ink);background:var(--paper)}
.compare-table th,.compare-table td{padding:16px 20px;text-align:center;border-bottom:1px solid rgba(30,74,58,0.15);font-size:14px}
.compare-table th{background:var(--ink);color:var(--paper);font-family:'Noto Serif TC',serif;font-weight:700;font-size:15px}
.compare-table td:first-child{text-align:left;font-weight:500;color:var(--ink)}
.compare-table .yes{color:var(--red);font-weight:700}
.compare-table .no{color:var(--muted)}
@media(max-width:960px){.pricing-grid{grid-template-columns:1fr;max-width:480px;margin:0 auto}.compare-table{font-size:12px}.compare-table th,.compare-table td{padding:12px 8px}}

/* ============================================
   THEME v2 · NAVY & GOLD 深藍金主題
   更專業、更搶眼的配色（覆蓋原有變數）
   ============================================ */
:root{
    --ink:#1E4A3A;            /* 深海軍藍 — 主色 */
    --ink-soft:#3C8A6C;       /* 中藍 */
    --paper:#FBF8F2;          /* 冷調近白 — 更清爽專業 */
    --paper-2:#F4EEE3;
    --paper-3:#E8DFD0;
    --red:#C08A4E;            /* 亮金 — 強調色 */
    --red-soft:#D9AC78;       /* 淺金 */
    --charcoal:#16281F;
    --muted:#6E6457;
    --grid:rgba(30,74,58,0.05);
    --gold:#D9AC78;            /* 淺金砂 — 深色底強調 */
}

/* 金色背景上的文字改用深藍，確保對比度 */
.logo-mark{color:var(--ink);font-weight:900;box-shadow:2px 2px 0 var(--ink)}
.plan-badge,.plan-save{color:var(--ink);font-weight:700}
.countdown-card::before{color:var(--ink);font-weight:700}
.btn-primary:hover{color:var(--ink);font-weight:700}
.tbtn.primary{color:var(--ink);font-weight:700}
.tbtn.primary:hover{background:var(--ink);color:var(--paper)}
.filter-btn:hover,.filter-btn.active{color:var(--ink);font-weight:700}
.paper-card:hover{color:var(--ink)}
.paper-card:hover .paper-year{color:var(--ink)}
.paper-card:hover .paper-code{color:rgba(30,74,58,0.75)}
.paper-card:hover .paper-meta{border-top-color:rgba(30,74,58,0.3);opacity:0.9}
.nav-cta:hover{color:var(--ink)!important;font-weight:700}
.plan-card.featured .plan-cta{color:var(--ink);font-weight:700}
a.btn-primary[style*="background:var(--red)"]{color:var(--ink)!important;font-weight:700}
.cta-section::before{color:rgba(201,147,15,0.10)}

/* 深藍區塊上的金色微調 */
.stats-strip{background:linear-gradient(180deg,#1E4A3A 0%,#1A4234 100%)}
.papers-section{background:linear-gradient(180deg,#1E4A3A 0%,#1B4536 100%)}
.cta-section{background:linear-gradient(180deg,#1E4A3A 0%,#1A4234 100%)}
.plan-card.featured{background:linear-gradient(160deg,#1E4A3A 0%,#245541 100%)}

/* 金色描邊按鈕的 hover 更亮眼 */
.btn-secondary:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}

/* 首頁 Hero 英文副題閃金 */
.hero h1 .en{color:var(--red)}

/* 陰影統一改深藍 */
.countdown-card{box-shadow:8px 8px 0 rgba(30,74,58,0.9)}
.sample-paper{box-shadow:12px 12px 0 rgba(60,138,108,0.55)}

/* ===== 兩計劃版面（移除計劃 C 後）===== */
.pricing-grid{grid-template-columns:repeat(2,1fr);max-width:820px;margin-left:auto;margin-right:auto}
@media(max-width:960px){.pricing-grid{grid-template-columns:1fr;max-width:480px}}

/* ===== FAQ 長答案支援 ===== */
.faq-item.active .faq-a{max-height:1200px}
.faq-a strong{color:var(--ink);font-weight:700}
.faq-a br + strong{display:inline-block;margin-top:4px}

/* ===== 語言切換器 ===== */
.lang-switch{display:flex;gap:2px;align-items:center;background:rgba(30,74,58,0.06);border:1px solid rgba(30,74,58,0.15);border-radius:3px;padding:2px;margin-left:8px}
.lang-btn{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.06em;padding:5px 9px;border:none;background:transparent;color:var(--ink-soft);cursor:pointer;border-radius:2px;transition:all 0.18s;white-space:nowrap;font-weight:500}
.lang-btn:hover{color:var(--red)}
.lang-btn.active{background:var(--ink);color:var(--paper)}
@media(max-width:900px){
  .lang-switch{margin:0 0 0 auto;order:-1}
  .nav-inner{gap:10px}
  .lang-btn{padding:6px 8px;font-size:10px}
}

/* ===== 文章頁樣式 ===== */
.art-hero{padding:150px 0 50px;border-bottom:1px solid var(--ink)}
.art-hero h1{font-size:clamp(30px,4.4vw,50px);line-height:1.2;margin-bottom:18px;letter-spacing:-0.02em}
.art-meta{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.14em;color:var(--muted);display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.art-meta .dot{color:var(--red)}
.art-lede{font-size:17px;line-height:1.85;color:var(--ink-soft);margin-top:22px;max-width:720px}
.art-wrap{max-width:760px;margin:0 auto;padding:54px 0 20px}
.art-wrap h2{font-size:clamp(23px,3vw,31px);margin:44px 0 16px;line-height:1.3}
.art-wrap h2:first-child{margin-top:0}
.art-wrap h3{font-size:19px;margin:30px 0 10px;color:var(--ink)}
.art-wrap p{font-size:16px;line-height:1.9;margin-bottom:17px;color:var(--charcoal)}
.art-wrap ul,.art-wrap ol{margin:0 0 18px 22px}
.art-wrap li{font-size:16px;line-height:1.85;margin-bottom:9px;color:var(--charcoal)}
.art-wrap strong{color:var(--ink);font-weight:700}
.art-wrap a{color:var(--red);text-decoration:none;border-bottom:1px solid rgba(201,147,15,0.4)}
.art-wrap a:hover{border-bottom-color:var(--red)}
.art-wrap table{width:100%;border-collapse:collapse;margin:24px 0;border:1.5px solid var(--ink);font-size:14.5px}
.art-wrap th{background:var(--ink);color:var(--paper);padding:12px 14px;text-align:left;font-family:'Noto Serif TC',serif;font-weight:700}
.art-wrap td{padding:12px 14px;border-bottom:1px solid rgba(30,74,58,0.12);vertical-align:top;line-height:1.7}
.art-wrap tr:nth-child(even) td{background:var(--paper-2)}
.callout{background:var(--paper-2);border-left:3px solid var(--red);padding:20px 24px;margin:26px 0}
.callout .tag{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.16em;color:var(--red);margin-bottom:9px}
.callout p:last-child{margin-bottom:0}
.callout p{font-size:15px}
.toc{background:var(--paper-2);border:1px solid rgba(30,74,58,0.15);padding:24px 28px;margin:0 0 40px}
.toc .tag{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.16em;color:var(--red);margin-bottom:12px}
.toc ol{margin:0 0 0 18px}
.toc li{font-size:14.5px;margin-bottom:7px}
.toc a{color:var(--ink);border:none}
.toc a:hover{color:var(--red)}
.art-cta{background:var(--ink);color:var(--paper);padding:38px 40px;margin:48px 0 10px;position:relative}
.art-cta h3{color:var(--paper);font-size:24px;margin:0 0 12px}
.art-cta p{color:rgba(250,251,253,0.78);font-size:15px;line-height:1.8;margin-bottom:22px}
.art-cta .btn-primary{background:var(--red);color:var(--ink)!important;font-weight:700}
.art-nav{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:44px 0 0}
.art-nav a{border:1.5px solid var(--ink);padding:20px 22px;text-decoration:none;transition:all .25s;display:block}
.art-nav a:hover{background:var(--paper-2);transform:translate(-3px,-3px);box-shadow:5px 5px 0 var(--ink)}
.art-nav .k{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.14em;color:var(--red);margin-bottom:7px}
.art-nav .t{font-family:'Noto Serif TC',serif;font-weight:700;font-size:16px;color:var(--ink);line-height:1.45}
.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px}
.blog-card{border:1.5px solid var(--ink);background:var(--paper);padding:30px 28px;text-decoration:none;display:flex;flex-direction:column;transition:all .25s}
.blog-card:hover{transform:translate(-4px,-4px);box-shadow:8px 8px 0 var(--ink)}
.blog-card .k{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:0.14em;color:var(--red);margin-bottom:12px}
.blog-card .t{font-family:'Noto Serif TC',serif;font-weight:900;font-size:21px;color:var(--ink);line-height:1.32;margin-bottom:12px}
.blog-card .d{font-size:14px;line-height:1.75;color:var(--muted);flex:1;margin-bottom:16px}
.blog-card .m{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--ink-soft);letter-spacing:0.1em;padding-top:14px;border-top:1px dashed rgba(30,74,58,0.22)}
@media(max-width:700px){.art-nav{grid-template-columns:1fr}.art-cta{padding:28px 24px}.art-hero{padding-top:130px}}

/* ===== 考試資訊中心 ===== */
.link-list{display:flex;flex-direction:column;gap:10px;margin:20px 0 32px}
.link-item{
    display:flex;justify-content:space-between;align-items:center;
    padding:14px 18px;border:1px solid rgba(30,74,58,0.15);border-radius:4px;
    text-decoration:none;transition:all 0.18s;background:var(--paper)
}
.link-item:hover{border-color:var(--red);transform:translateX(3px);box-shadow:2px 2px 0 rgba(201,147,15,0.25)}
.link-title{color:var(--ink);font-weight:500;font-size:15px}
.link-sub{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--ink-soft);letter-spacing:0.05em}
.info-card h3{font-size:18px}
@media(max-width:700px){
    .info-grid{grid-template-columns:1fr !important}
    .link-item{flex-direction:column;align-items:flex-start;gap:4px}
}

/* logo 全名在窄屏可換行縮小 */
@media(max-width:1080px){ .logo{font-size:15px} }
@media(max-width:420px){ .logo{font-size:13px} }

/* ===== 考試分流入口 ===== */
.exam-picker{background:var(--ink);color:var(--paper);padding:56px 0}
.picker-head{text-align:center;max-width:640px;margin:0 auto 40px}
.picker-kicker{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.25em;color:var(--gold);margin-bottom:14px}
.picker-head h2{font-size:30px;color:var(--paper);margin-bottom:12px}
.picker-head p{color:rgba(250,251,253,0.7);font-size:15px}
.picker-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:860px;margin:0 auto}
.picker-card{
    display:block;padding:32px 28px;border-radius:6px;text-decoration:none;
    background:var(--paper);border:2px solid transparent;transition:all 0.2s;position:relative
}
.picker-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px rgba(0,0,0,0.25)}
.picker-card.cre{border-color:var(--red)}
.picker-card.jre{border-color:var(--gold)}
.picker-code{font-family:'JetBrains Mono',monospace;font-size:13px;letter-spacing:0.2em;font-weight:700}
.picker-card.cre .picker-code{color:var(--red)}
.picker-card.jre .picker-code{color:var(--gold)}
.picker-card h3{color:var(--ink);font-size:22px;margin:8px 0 12px}
.picker-card p{color:var(--ink-soft);font-size:14px;line-height:1.7;margin-bottom:18px}
.picker-go{font-weight:700;font-size:14px;color:var(--ink)}
.picker-card.cre:hover .picker-go{color:var(--red)}
.picker-card.jre:hover .picker-go{color:var(--gold)}
.picker-foot{text-align:center;margin-top:28px;font-size:14px;color:rgba(250,251,253,0.7)}
.picker-foot a{color:var(--gold);text-decoration:underline}
@media(max-width:760px){ .picker-grid{grid-template-columns:1fr} .picker-head h2{font-size:24px} }

/* 切換考試連結 */
.nav-switch{
    color:var(--red) !important;font-weight:700 !important;
    border:1.5px solid var(--red);border-radius:3px;padding:5px 11px !important;
    transition:all 0.18s
}
.nav-switch:hover{background:var(--red);color:var(--paper) !important}

/* 切換考試連結 */
.nav-switch{color:var(--red) !important;font-weight:700;border:1px solid var(--red);padding:5px 12px !important;border-radius:4px;transition:all 0.18s}
.nav-switch:hover{background:var(--red);color:var(--paper) !important}
.footer-links{display:flex;flex-direction:column;gap:8px}
.footer-links a{color:rgba(250,251,253,0.75);text-decoration:none;font-size:14px}
.footer-links a:hover{color:var(--gold)}

/* ===== CRE 選擇題練習 ===== */
.cprac-subjects{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px}
.cprac-sub-btn{padding:10px 22px;border:1.5px solid var(--ink);background:var(--paper);color:var(--ink);border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:all 0.18s}
.cprac-sub-btn:hover{border-color:var(--red)}
.cprac-sub-btn.active{background:var(--ink);color:var(--paper)}
.cprac-bar{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;background:var(--paper-2);border-radius:4px;margin-bottom:16px;font-size:14px}
.cprac-timer{font-family:'JetBrains Mono',monospace;font-weight:700;color:var(--red)}
.cprac-progress,.cprac-score{font-family:'JetBrains Mono',monospace;color:var(--ink-soft)}
.cprac-card{border:1px solid rgba(30,74,58,0.15);border-radius:6px;padding:32px;background:var(--paper)}
.cprac-subname{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:0.12em;color:var(--gold);margin-bottom:14px}
.cprac-q{font-size:17px;line-height:1.7;color:var(--ink);margin-bottom:24px;font-weight:500}
.cprac-opts{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}
.cprac-opt{display:flex;align-items:center;gap:14px;padding:16px 18px;border:1.5px solid rgba(30,74,58,0.18);border-radius:5px;background:var(--paper);cursor:pointer;font-size:15px;text-align:left;transition:all 0.15s;color:var(--ink);line-height:1.5}
.cprac-opt:hover:not(.locked){border-color:var(--red);transform:translateX(3px)}
.cprac-opt.locked{cursor:default}
.cprac-opt.correct{border-color:#2E7D46;background:rgba(46,125,70,0.08)}
.cprac-opt.wrong{border-color:var(--red);background:rgba(201,42,42,0.06)}
.opt-letter{display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;background:var(--ink);color:var(--paper);border-radius:50%;font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:700}
.cprac-opt.correct .opt-letter{background:#2E7D46}
.cprac-opt.wrong .opt-letter{background:var(--red)}
.cprac-exp{padding:16px 18px;background:var(--paper-2);border-left:3px solid var(--gold);border-radius:3px;font-size:14px;line-height:1.75;color:var(--ink-soft);margin-bottom:20px}
.cprac-actions{display:flex;justify-content:space-between;gap:12px}
.cprac-actions .btn:disabled{opacity:0.35;cursor:not-allowed}
@media(max-width:600px){ .cprac-card{padding:22px} .cprac-q{font-size:16px} }

/* ===== 導覽列防換行修正（v22 後）===== */
.nav-cta{white-space:nowrap;flex-shrink:0}
.nav-switch{white-space:nowrap;flex-shrink:0}
.lang-switch{flex-shrink:0}
.lang-btn{flex-shrink:0}
/* 桌面版導覽項目間距再收緊少少，容納 CRE 的 8 項 */
@media(min-width:1081px){
    .nav-links{gap:16px}
    .nav-cta{padding:9px 16px}
    .nav-switch{padding:5px 10px !important}
}

/* ===== CRE 頁面元件（section-label / feature cards / guide steps）===== */
.section-label{
    font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:0.2em;
    text-transform:uppercase;color:var(--red);margin-bottom:14px;
    display:flex;align-items:center;gap:10px;
}
.section-label::before{content:'';width:32px;height:1px;background:var(--red)}

.feature-grid{
    display:grid;grid-template-columns:repeat(2,1fr);gap:24px;
}
.feature-card{
    border:1px solid rgba(30,74,58,0.14);border-radius:6px;padding:28px 26px;
    background:var(--paper);transition:all 0.2s;
}
.feature-card:hover{border-color:var(--red);transform:translateY(-3px);box-shadow:0 8px 22px rgba(0,0,0,0.06)}
.feature-num{
    font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:700;
    color:var(--gold);letter-spacing:0.1em;margin-bottom:12px;
}
.feature-card h3{font-size:18px;margin:0 0 10px;color:var(--ink)}
.feature-card p{font-size:14px;line-height:1.75;color:var(--ink-soft);margin:0}

.guide-steps{display:flex;flex-direction:column;gap:22px}
.guide-step{
    display:flex;gap:20px;align-items:flex-start;
    padding:22px 24px;border:1px solid rgba(30,74,58,0.12);border-radius:6px;
    background:var(--paper);
}
.step-num{
    flex-shrink:0;width:38px;height:38px;border-radius:50%;
    background:var(--ink);color:var(--paper);
    display:flex;align-items:center;justify-content:center;
    font-family:'JetBrains Mono',monospace;font-weight:700;font-size:16px;
}
.step-title{font-weight:700;font-size:16px;color:var(--ink);margin-bottom:6px;font-family:'Noto Serif TC',serif}
.guide-step p{margin:0;font-size:14.5px;line-height:1.75;color:var(--ink-soft)}

@media(max-width:700px){
    .feature-grid{grid-template-columns:1fr}
}

/* ===== CJK 換行優化：長說明句斷行更自然 ===== */
/* 說明性段落：容許在標點斷行，但避免標點跑到行首 */
.art-lede,.page-hero p,.art-hero p,.footer-brand p,.blog-header p,.guide-header p,.courses-header p{
    line-break:strict;
    overflow-wrap:break-word;
    text-wrap:pretty;
}
/* 全形括號組合（CRE）（JRE）等視作整體，不被拆散 */
.nowrap-unit{white-space:nowrap}


/* courses 專用：付款格在窄螢幕單欄 */
@media(max-width:640px){.pay-grid{grid-template-columns:1fr !important}}
