/* ============ TEXTBOOK v58 — 米黄纸 医学教科书 衬线 ============ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Noto Serif SC','Crimson Pro','Songti SC',serif;color:#2a241c;background:#f6efe0;line-height:1.75}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
ul,ol{list-style:none}
button{cursor:pointer;border:none;background:none;font-family:inherit}
h1,h2,h3,h4{font-family:'Noto Serif SC',serif;font-weight:900;line-height:1.3;color:#1a2838}
.tb-wrap{max-width:1180px;margin:0 auto;padding:0 28px}

/* header */
.tb-topbar{background:#1a2838;color:#f6efe0;font-size:12px;padding:8px 0;border-bottom:1px solid #000;font-family:'Noto Sans SC',sans-serif}
.tb-topbar .tb-wrap{display:flex;justify-content:space-between;align-items:center}
.tb-tb-phone a{color:#e8c88c}
.tb-h-in{display:flex;align-items:center;justify-content:space-between;height:84px;border-bottom:2px double #1a2838}
.tb-logo{display:flex;align-items:center;gap:14px}
.tb-logo-ch{width:48px;height:48px;background:#1a2838;color:#e8c88c;display:grid;place-items:center;font-size:22px;border:2px solid #1a2838;font-style:italic;font-weight:900;box-shadow:3px 3px 0 #8a1a2a}
.tb-logo b{font-size:20px;font-weight:900;letter-spacing:1px;display:block}
.tb-logo small{font-size:11px;color:#6a5d4b;letter-spacing:1px;font-style:italic;display:block;font-family:'Crimson Pro',serif}
.tb-nav{display:flex;gap:26px;font-size:14px;font-family:'Noto Sans SC',sans-serif;font-weight:700}
.tb-nav a{color:#1a2838;position:relative}
.tb-nav a:hover{color:#8a1a2a}
.tb-nav a:hover::after{content:'';position:absolute;left:0;right:0;bottom:-3px;height:2px;background:#8a1a2a}
.tb-menu{display:none;font-size:32px;color:#1a2838;width:44px;height:44px;border:2px solid #1a2838;background:#fff}
.tb-mmenu{display:none;border-top:1px solid #1a2838;padding:10px 28px;font-family:'Noto Sans SC',sans-serif;font-weight:700}
.tb-mmenu.open{display:flex;flex-direction:column}
.tb-mmenu a{padding:10px 0;border-bottom:1px dashed #b3a78f}

/* hero */
.tb-hero{padding:70px 0 80px;background:#f6efe0;border-bottom:3px double #1a2838;position:relative}
.tb-hero::before{content:'§';position:absolute;left:40px;top:30px;font-family:'Crimson Pro',serif;font-size:120px;color:#8a1a2a;opacity:.08}
.tb-hero::after{content:'§';position:absolute;right:40px;bottom:30px;font-family:'Crimson Pro',serif;font-size:120px;color:#8a1a2a;opacity:.08}
.tb-hero-in{display:grid;grid-template-columns:1fr 340px;gap:44px;align-items:flex-start}
.tb-h-vol{grid-column:1/-1;display:flex;gap:14px;align-items:baseline;font-family:'Crimson Pro',serif;margin-bottom:10px;border-bottom:1px solid #b3a78f;padding-bottom:10px}
.tb-h-vol span{font-size:24px;font-weight:700;letter-spacing:4px;color:#8a1a2a}
.tb-h-vol em{font-style:italic;color:#6a5d4b}
.tb-h-main{position:relative}
.tb-h-sub{display:inline-block;font-family:'Crimson Pro',serif;font-style:italic;font-size:14px;color:#8a1a2a;margin-bottom:14px;letter-spacing:2px;border-bottom:1px solid #8a1a2a;padding-bottom:2px}
.tb-h-main h1{font-size:84px;line-height:1;margin-bottom:10px;font-weight:900;letter-spacing:2px}
.tb-h-main h1 em{color:#8a1a2a;font-style:italic;font-family:'Crimson Pro',serif;font-weight:700}
.tb-lede{font-size:17px;line-height:2;margin:22px 0 22px;padding-left:18px;border-left:4px double #8a1a2a;color:#3a3328;max-width:640px}
.tb-h-meta{display:flex;gap:22px;flex-wrap:wrap;font-family:'Crimson Pro',serif;font-style:italic;color:#6a5d4b;font-size:13px;margin-bottom:26px}
.tb-h-cta{display:flex;gap:14px;flex-wrap:wrap}
.tb-btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;font-family:'Noto Sans SC',sans-serif;font-weight:700;font-size:14px;border:2px solid #1a2838;transition:all .2s}
.tb-btn-dark{background:#1a2838;color:#f6efe0}
.tb-btn-dark:hover{background:#8a1a2a;border-color:#8a1a2a}
.tb-btn-light{background:#fff;color:#1a2838}
.tb-btn-light:hover{background:#e8c88c}
.tb-h-fig figure{border:1px solid #1a2838;background:#fff;padding:10px;box-shadow:4px 4px 0 #1a2838;transform:rotate(1deg)}
.tb-h-fig img{width:100%;height:280px;object-fit:cover;display:block;border:1px solid #b3a78f}
.tb-h-fig figcaption{font-family:'Crimson Pro',serif;font-style:italic;font-size:12px;text-align:center;margin-top:8px;color:#6a5d4b}

/* section heads */
.tb-sec-h{display:flex;align-items:baseline;gap:24px;margin-bottom:40px;padding-bottom:10px;border-bottom:2px double #1a2838}
.tb-sec-num{font-family:'Crimson Pro',serif;font-size:56px;font-style:italic;color:#8a1a2a;font-weight:700;line-height:1}
.tb-sec-h h2{font-size:38px;letter-spacing:8px}
.tb-sec-h em{display:block;font-family:'Crimson Pro',serif;font-style:italic;color:#6a5d4b;font-size:14px;letter-spacing:3px;margin-top:4px}

/* contents */
.tb-contents{padding:70px 0;background:#f6efe0}
.tb-toc{display:grid;grid-template-columns:1.3fr 320px;gap:40px;align-items:start}
.tb-toc ol{border-left:3px double #1a2838;padding-left:0}
.tb-toc ol li{border-bottom:1px dotted #8a7d68;padding:14px 0}
.tb-toc ol li a{display:flex;align-items:baseline;gap:16px;transition:padding .2s}
.tb-toc ol li a:hover{padding-left:10px}
.tb-toc ol li a span{font-family:'Crimson Pro',serif;font-size:20px;color:#8a1a2a;font-style:italic;min-width:50px;font-weight:700}
.tb-toc ol li a b{font-size:18px;font-weight:900;flex:1}
.tb-toc ol li a em{font-family:'Crimson Pro',serif;font-style:italic;color:#6a5d4b;font-size:13px}
.tb-margin-note{background:#fbf6ea;border:1px solid #b3a78f;padding:22px;font-family:'Crimson Pro',serif;font-style:italic;position:relative}
.tb-margin-note::before{content:'注';position:absolute;top:-12px;left:16px;background:#8a1a2a;color:#f6efe0;padding:2px 10px;font-size:12px;font-style:normal}
.tb-margin-note b{display:block;margin-bottom:8px;color:#8a1a2a;font-size:14px;font-style:normal}

/* chapters */
.tb-chap{padding:70px 0;background:#f6efe0}
.tb-chap-alt{background:#f1e8d3}
.tb-chap-h{margin-bottom:44px;text-align:center;position:relative;padding-bottom:16px}
.tb-chap-h::after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:160px;height:2px;background:#8a1a2a}
.tb-chap-h::before{content:'※ ※ ※';position:absolute;bottom:-12px;left:50%;transform:translateX(-50%);background:#f6efe0;padding:0 16px;color:#8a1a2a;font-size:12px;letter-spacing:6px}
.tb-chap-alt .tb-chap-h::before{background:#f1e8d3}
.tb-chap-num{display:block;font-family:'Crimson Pro',serif;font-size:14px;letter-spacing:6px;color:#8a1a2a;font-weight:700;margin-bottom:10px}
.tb-chap-h h2{font-size:36px;letter-spacing:4px}
.tb-chap-en{display:block;font-family:'Crimson Pro',serif;font-style:italic;color:#6a5d4b;font-size:15px;margin-top:8px;letter-spacing:2px}

/* chapter body with margin notes */
.tb-chap-body{display:grid;grid-template-columns:260px 1fr;gap:40px;align-items:start}
.tb-margin{background:#fbf6ea;border:1px solid #b3a78f;padding:20px;position:relative}
.tb-margin b{display:block;font-family:'Noto Sans SC',sans-serif;font-size:12px;color:#8a1a2a;margin-bottom:8px;letter-spacing:2px}
.tb-margin p{font-size:13px;font-family:'Crimson Pro',serif;font-style:italic;line-height:1.7;color:#3a3328}
.tb-maincol .tb-dropcap::first-letter{float:left;font-family:'Crimson Pro',serif;font-size:70px;line-height:.85;padding:6px 10px 0 0;color:#8a1a2a;font-weight:700}
.tb-maincol>p{font-size:17px;line-height:2;margin-bottom:24px;color:#2a241c}
.tb-tech-grid{display:grid;grid-template-columns:1fr;gap:18px;margin-top:26px}
.tb-tech{border:1px solid #1a2838;background:#fff;padding:24px;position:relative;box-shadow:3px 3px 0 #1a2838}
.tb-tech-invert{background:#1a2838;color:#f6efe0;box-shadow:3px 3px 0 #8a1a2a}
.tb-tech-invert h3,.tb-tech-invert ul{color:#f6efe0}
.tb-tech-h{display:flex;align-items:baseline;gap:14px;margin-bottom:12px;border-bottom:1px dashed #b3a78f;padding-bottom:10px}
.tb-tech-invert .tb-tech-h{border-color:#6a5d4b}
.tb-tech-h span{font-family:'Crimson Pro',serif;font-size:32px;font-style:italic;color:#8a1a2a;font-weight:700}
.tb-tech-invert .tb-tech-h span{color:#e8c88c}
.tb-tech-h h3{font-size:22px;flex:1}
.tb-tech-h em{font-family:'Crimson Pro',serif;font-style:italic;color:#6a5d4b;font-size:12px}
.tb-tech-invert .tb-tech-h em{color:#b3a78f}
.tb-tech p{font-size:15px;line-height:1.9;margin-bottom:12px}
.tb-tech ul li{padding:4px 0;font-size:13px;font-family:'Noto Sans SC',sans-serif;color:#555}
.tb-quote{margin:30px 0;padding:20px 24px;background:#fbf6ea;border-left:4px double #8a1a2a;font-family:'Crimson Pro',serif;font-style:italic;font-size:16px}
.tb-quote p{margin-bottom:6px}
.tb-quote cite{font-size:12px;font-style:normal;color:#8a1a2a;letter-spacing:2px}

/* ch2 two cols */
.tb-ch2cols{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.tb-sub{background:#fff;border:1px solid #1a2838;padding:26px;position:relative;box-shadow:3px 3px 0 #1a2838}
.tb-sub-i{background:#1a2838;color:#f6efe0;box-shadow:3px 3px 0 #8a1a2a}
.tb-sub-i h3{color:#e8c88c}
.tb-sub h3{font-size:20px;margin-bottom:12px;letter-spacing:2px;padding-bottom:10px;border-bottom:1px solid #b3a78f;font-family:'Noto Serif SC'}
.tb-sub-i h3{border-color:#6a5d4b}
.tb-sub p{font-size:14px;line-height:1.9;margin-bottom:12px}
.tb-sub ul li{padding:5px 0;font-size:13px;border-bottom:1px dotted #b3a78f;font-family:'Noto Sans SC',sans-serif}
.tb-sub-i ul li{border-color:#6a5d4b;color:#d1c6b0}

/* pathway */
.tb-path{display:grid;grid-template-columns:90px 1fr;gap:0;border:1px solid #1a2838;background:#fff;box-shadow:4px 4px 0 #1a2838}
.tb-pnum{background:#1a2838;color:#e8c88c;font-family:'Crimson Pro',serif;font-style:italic;font-size:18px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid #6a5d4b;padding:22px 10px;font-weight:700}
.tb-pbody{padding:22px 28px;border-bottom:1px dashed #b3a78f;border-left:2px solid #8a1a2a}
.tb-pbody:last-child{border-bottom:none}
.tb-pnum:nth-last-child(2){border-bottom:none}
.tb-pbody h4{font-size:18px;margin-bottom:8px;letter-spacing:1px}
.tb-pbody p{font-size:14px;line-height:1.8;color:#555}

/* embryo */
.tb-emb-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.tb-embc{background:#fff;border-top:4px solid #8a1a2a;padding:28px;border:1px solid #1a2838;border-top:4px double #8a1a2a}
.tb-embc h3{font-size:18px;margin-bottom:12px;color:#8a1a2a;letter-spacing:2px}
.tb-embc p{font-size:14px;line-height:1.9}

/* news */
ul.article-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:22px;list-style:none;margin:0;padding:0;width:100%;box-sizing:border-box}
ul.article-cards>li.article-card{min-width:0;width:auto;max-width:none;margin:0;float:none;box-sizing:border-box;background:#fff;border:1px solid #1a2838;padding:0;box-shadow:3px 3px 0 #8a1a2a;transition:transform .2s;display:flex;flex-direction:column}
ul.article-cards>li.article-card:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 #8a1a2a}
.article-card .card-thumb{width:100%;overflow:hidden;border-bottom:1px solid #b3a78f}
.article-card .card-thumb img{display:block;width:100%;max-width:100%;height:170px;object-fit:cover}
.article-card .card-body{padding:16px;flex:1;display:flex;flex-direction:column}
.article-card .card-title{overflow-wrap:anywhere;font-weight:700;font-size:15px;margin-bottom:8px;line-height:1.5}
.article-card .card-title a{color:#1a2838;border-bottom:1px solid transparent}
.article-card .card-title a:hover{border-color:#8a1a2a;color:#8a1a2a}
.article-card .card-date{display:block;font-family:'Crimson Pro',serif;font-style:italic;font-size:12px;color:#8a1a2a;margin-bottom:8px}
.article-card .card-summary{overflow-wrap:anywhere;font-size:13px;color:#6a5d4b;line-height:1.7}

/* faq */
.tb-faqs{max-width:860px;margin:0 auto}
.tb-fq{background:#fff;border:1px solid #1a2838;margin-bottom:12px}
.tb-fq summary{list-style:none;padding:18px 24px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-family:'Noto Sans SC',sans-serif;font-weight:700;font-size:15px}
.tb-fq summary::marker{display:none}
.tb-fq summary::-webkit-details-marker{display:none}
.tb-fq summary i{width:10px;height:10px;border-right:2px solid #8a1a2a;border-bottom:2px solid #8a1a2a;transform:rotate(45deg);transition:transform .2s}
.tb-fq[open] summary i{transform:rotate(-135deg)}
.tb-fq>div{padding:0 24px 20px;font-size:14px;line-height:1.9;color:#3a3328;border-top:1px dashed #b3a78f;padding-top:16px}

/* contact */
.tb-contact{padding:70px 0;background:#1a2838;color:#f6efe0}
.tb-ct-in{display:grid;grid-template-columns:1.1fr 1fr;gap:50px;align-items:start}
.tb-ct-l .tb-chap-num{color:#e8c88c}
.tb-ct-l h2{color:#f6efe0;font-size:36px;letter-spacing:8px;margin:10px 0 20px}
.tb-ct-l p{font-size:15px;line-height:1.9;color:#d1c6b0;margin-bottom:26px;max-width:500px}
.tb-phoneblock{background:#f6efe0;color:#1a2838;padding:22px;margin-bottom:22px;display:inline-block;border:2px solid #e8c88c}
.tb-phone-label{display:block;font-family:'Crimson Pro',serif;font-style:italic;font-size:13px;color:#8a1a2a;letter-spacing:3px;margin-bottom:6px}
.tb-phonenr{font-family:'Crimson Pro',serif;font-size:34px;font-weight:700;color:#1a2838}
.tb-disc-note{font-size:12px;color:#b3a78f;font-style:italic;max-width:500px;line-height:1.7}
.tb-form{background:#f6efe0;color:#2a241c;padding:30px;border:2px solid #e8c88c}
.tb-form h3{font-size:22px;margin-bottom:20px;letter-spacing:4px;padding-bottom:10px;border-bottom:2px double #1a2838}
.tb-form label{display:block;font-family:'Noto Sans SC',sans-serif;font-weight:700;font-size:13px;margin-bottom:14px;letter-spacing:1px}
.tb-form input,.tb-form select,.tb-form textarea{width:100%;padding:11px;border:1px solid #1a2838;background:#fff;font-family:'Noto Serif SC',serif;font-size:14px;margin-top:6px;color:#2a241c}
.tb-form textarea{resize:vertical}

/* DETAIL */
.tb-bread{padding:24px 0 0;font-family:'Noto Sans SC',sans-serif;font-size:13px;color:#6a5d4b}
.tb-bread a{color:#8a1a2a}
.tb-detail{padding:20px 0 70px;background:#f6efe0}
.tb-art{max-width:800px;margin:0 auto;background:#fff;border:1px solid #b3a78f;padding:48px;box-shadow:4px 4px 0 #1a2838;position:relative}
.tb-art::before{content:'§';position:absolute;left:20px;top:20px;font-family:'Crimson Pro',serif;font-size:80px;color:#8a1a2a;opacity:.1}
.tb-art-h{border-bottom:2px double #1a2838;padding-bottom:20px;margin-bottom:24px;text-align:center}
.tb-art-h .tb-chap-num{color:#8a1a2a}
.tb-art h1{font-size:32px;margin:14px 0 14px;line-height:1.3;letter-spacing:2px}
.tb-art-meta{display:flex;gap:20px;justify-content:center;font-family:'Crimson Pro',serif;font-style:italic;font-size:13px;color:#6a5d4b}
.tb-art-sum{background:#fbf6ea;border-left:4px double #8a1a2a;padding:18px 22px;font-size:15px;line-height:1.9;margin-bottom:24px;font-style:italic}
.tb-art-fig{margin-bottom:28px}
.tb-art-fig img{width:100%;height:auto;border:1px solid #b3a78f}
.tb-art-fig figcaption{font-family:'Crimson Pro',serif;font-style:italic;font-size:12px;color:#6a5d4b;text-align:center;margin-top:8px}
.tb-art-body{font-size:16px;line-height:2;color:#2a241c}
.tb-art-body p{margin-bottom:18px;text-indent:2em}
.tb-art-body h2,.tb-art-body h3,.tb-art-body h4{margin:28px 0 14px;text-indent:0;letter-spacing:1px}
.tb-art-body h2{font-size:24px}
.tb-art-body h3{font-size:20px}
.tb-art-body h4{font-size:17px}
.tb-art-body img{width:100%;max-width:100%;height:auto;margin:18px 0;border:1px solid #b3a78f}
.tb-art-body ul,.tb-art-body ol{padding-left:24px;margin-bottom:16px;text-indent:0}
.tb-art-body li{margin-bottom:6px}
.tb-art-note{background:#fbf6ea;border:1px dashed #8a1a2a;padding:22px;margin-top:30px;font-size:13px;line-height:1.8}
.tb-art-note h4{color:#8a1a2a;margin-bottom:6px;font-size:15px}
.tb-art-nav{margin:24px 0;padding:18px 0;border-top:1px dashed #b3a78f;border-bottom:1px dashed #b3a78f}
.tb-art-nav h4{margin-bottom:12px;letter-spacing:4px;font-size:14px;color:#8a1a2a}
.tb-an-links{display:flex;gap:10px;flex-wrap:wrap}
.tb-an-links a{padding:8px 14px;border:1px solid #1a2838;font-family:'Noto Sans SC',sans-serif;font-size:12px;font-weight:700;background:#fff}
.tb-an-links a:hover{background:#e8c88c}
.tb-art-cta{display:flex;gap:14px;flex-wrap:wrap}

/* FOOTER */
.tb-foot{background:#131e2b;color:#d1c6b0;padding:56px 0 0;border-top:4px double #e8c88c}
.tb-ft-in{display:grid;grid-template-columns:1.6fr 1fr 1.4fr;gap:40px;padding-bottom:40px}
.tb-ft-logo{margin-bottom:18px}
.tb-ft-logo b{color:#f6efe0}
.tb-ft-logo small{color:#b3a78f}
.tb-ft-l p{font-size:14px;margin-bottom:22px;max-width:380px;line-height:1.8}
.tb-ft-c h4,.tb-ft-r h4{color:#e8c88c;margin-bottom:16px;letter-spacing:3px;font-size:15px}
.tb-ft-c a{display:block;padding:5px 0;font-size:13px}
.tb-ft-c a:hover{color:#e8c88c}
.tb-ft-r a{display:inline-block;margin:3px 8px 3px 0;font-size:12px;opacity:.75}
.tb-ft-r a:hover{opacity:1;color:#e8c88c}
.tb-ft-b{background:#0c1420;padding:16px 0;font-size:12px;font-family:'Noto Sans SC',sans-serif}
.tb-ftb-in{display:flex;gap:24px;flex-wrap:wrap;justify-content:center}
.tb-ftb-in a{color:#e8c88c}

/* responsive */
@media (max-width:1024px){
  .tb-hero-in{grid-template-columns:1fr;gap:30px}
  .tb-h-fig{max-width:400px}
  .tb-toc,.tb-chap-body,.tb-ct-in{grid-template-columns:1fr;gap:30px}
  .tb-ch2cols,.tb-emb-grid{grid-template-columns:1fr}
  .tb-ft-in{grid-template-columns:1fr 1fr}
}
@media (max-width:768px){
  .tb-nav{display:none}
  .tb-menu{display:grid;place-items:center}
  .tb-hero{padding:40px 0 50px}
  .tb-h-main h1{font-size:52px}
  .tb-lede{font-size:15px}
  .tb-sec-h{flex-direction:column;align-items:flex-start}
  .tb-sec-h h2{font-size:28px;letter-spacing:4px}
  .tb-sec-num{font-size:42px}
  .tb-chap-h h2{font-size:26px;letter-spacing:2px}
  .tb-contents,.tb-chap,.tb-contact{padding:50px 0}
  .tb-path{grid-template-columns:70px 1fr}
  .tb-pnum{font-size:14px;padding:14px 6px}
  .tb-pbody{padding:18px}
  .tb-art{padding:24px}
  .tb-art h1{font-size:24px}
  .tb-phonenr{font-size:26px}
  .tb-ft-in{grid-template-columns:1fr}
  .tb-ftb-in{flex-direction:column;align-items:center;text-align:center}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}
