/*
Theme Name: Tianxin Montessori Lab
Theme URI: https://wordpress.com/
Author: Tianxin Montessori Lab
Description: 田心蒙特梭利數位實驗室專用佈景主題。品牌、選單、首頁與內頁文字、Logo、Banner、聯絡資訊可由 WordPress 後台管理；教具與最新消息由 Tianxin Lab Core 外掛提供。
Version: 1.22.0
Requires at least: 6.5
Requires PHP: 8.0
Text Domain: tianxin-lab
*/

@font-face{font-family:"jf-openhuninn";src:url("https://cdn.jsdelivr.net/gh/justfont/open-huninn-font@master/font/jf-openhuninn-2.1.ttf") format("truetype");font-display:swap}
:root{--bg:#F8F9FB;--bg2:#F1F0F7;--card:#fff;--ink:#2F3640;--soft:#6B7682;--line:#E6E8EE;--deep:#5B6D89;--deep2:#4E607A;--blue:#81A1D4;--green:#75C9C9;--yellow:#FDDB88;--clay:#B8B9DD;--r:18px;--rs:12px;--sans:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;--display:"jf-openhuninn",var(--sans);--font-display:var(--display);--font-ui:var(--display);--font-body:var(--sans)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--tx-body,var(--ink));font-family:var(--font-body,var(--sans));line-height:1.75;-webkit-font-smoothing:antialiased}img{max-width:100%;height:auto}a{text-decoration:none;color:inherit}.wrap{max-width:1120px;margin:auto;padding:0 24px}.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site-header{position:sticky;top:0;z-index:100;background:rgba(248,249,251,.94);backdrop-filter:blur(10px);border-bottom:1px solid rgba(91,109,137,.12)}.nav{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand-logo .custom-logo{display:block;max-height:42px;width:auto}.mark{position:relative;width:34px;height:34px;flex:0 0 34px}.mark i{position:absolute;display:block}.mark .c{width:13px;height:13px;border-radius:50%;background:var(--blue);left:0;top:0}.mark .s{width:13px;height:13px;border-radius:2px;background:var(--clay);left:0;bottom:0}.mark .t1,.mark .t2{width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:13px solid var(--yellow)}.mark .t1{right:0;top:0}.mark .t2{right:0;bottom:0;border-bottom-color:var(--green)}.brand-copy{min-width:0}.brand-copy b{font-family:var(--font-display,var(--display));font-size:1.05rem;letter-spacing:.04em;display:block;color:var(--tx-header_title,var(--ink))}.brand-copy small{display:block;color:var(--tx-header_english,var(--soft));font-size:.67rem;letter-spacing:.02em}.links{display:flex;align-items:center;gap:24px;font-family:var(--font-ui,var(--display));font-size:var(--tx-size-nav,15px);white-space:nowrap;color:var(--tx-nav,var(--ink))}.links .menu a:hover{color:var(--tx-nav_hover,var(--deep))}.links .menu{display:flex;align-items:center;gap:24px;list-style:none;margin:0;padding:0}.links .menu li{margin:0;padding:0}.links .menu a{display:block}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1.5px solid transparent;padding:11px 20px;border-radius:12px;font-family:var(--font-ui,var(--display));font-size:var(--tx-size-button,15px);font-weight:700;transition:.2s;cursor:pointer}.btn.primary{background:var(--deep);color:var(--tx-btn_primary,#fff)}.btn.primary:hover{transform:translateY(-2px);background:var(--deep2)}.btn.ghost{border-color:var(--deep);color:var(--tx-btn_secondary,var(--deep));background:transparent}.btn.ghost:hover{background:rgba(91,109,137,.07)}
.hero{position:relative;overflow:hidden;padding:52px 0 56px}.hero-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:58px;align-items:center}.eyebrow{font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;font-weight:800;color:var(--blue);margin-bottom:13px}.hero h1{font-family:var(--font-display,var(--display));font-size:clamp(var(--hero-title-mobile-size,34px),4.2vw,var(--hero-title-desktop-size,48px));line-height:var(--hero-title-line-height,1.3);letter-spacing:.01em;margin:0 0 var(--hero-title-gap,18px);color:var(--tx-hero_title,var(--ink))}.hero h1 .hero-highlight{color:var(--tx-hero_highlight,var(--deep))}.tagline{font-family:var(--font-display,var(--display));font-size:var(--hero-subtitle-size,17px);color:var(--tx-hero_tagline,var(--deep));margin-bottom:var(--hero-subtitle-gap,12px)}.lead{color:var(--tx-hero_lead,var(--soft));max-width:36rem;font-size:var(--hero-lead-size,16px);line-height:var(--hero-lead-line-height,1.75)}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin:28px 0 32px}.principles{display:flex;gap:22px;flex-wrap:wrap;color:var(--tx-hero_principles,var(--soft));font-size:var(--tx-size-hero-principles,14px)}.principles span{display:flex;gap:7px;align-items:center}.dot{width:7px;height:7px;border-radius:50%;background:var(--blue)}
.lab-art{position:relative;min-height:var(--hero-art-height,440px)}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:var(--hero-image-fit,contain);object-position:center;border:0;border-radius:24px;box-shadow:none;background:transparent}.sheet{position:absolute;inset:0;border:0;border-radius:24px;background:transparent;overflow:hidden}.sheet:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(91,109,137,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(91,109,137,.05) 1px,transparent 1px);background-size:28px 28px}.art-label{position:absolute;top:28px;left:28px;font-size:.72rem;letter-spacing:.12em;color:var(--tx-hero_art_text,#567983)}.shape{position:absolute}.circle{width:84px;height:84px;border-radius:50%;background:var(--blue);right:48px;top:62px}.square{width:96px;height:96px;background:var(--clay);left:56px;top:144px;border-radius:8px;transform:rotate(-6deg)}.tri{width:0;height:0;border-left:54px solid transparent;border-right:54px solid transparent;border-bottom:94px solid var(--yellow);right:74px;bottom:76px;transform:rotate(10deg)}.semi{width:140px;height:70px;border-radius:140px 140px 0 0;background:var(--green);left:134px;bottom:42px}.guide{position:absolute;border-top:2px dashed rgba(91,109,137,.5);width:180px;left:126px;top:116px;transform:rotate(-11deg)}.guide-label{position:absolute;right:-12px;top:-18px;color:var(--tx-hero_art_text,var(--deep));font-family:serif;font-style:normal}.arc{position:absolute;width:210px;height:120px;border:2px solid var(--deep);border-color:var(--deep) transparent transparent transparent;border-radius:50%;left:86px;top:70px;transform:rotate(10deg);opacity:.85}.measure{position:absolute;left:55px;bottom:54px;width:120px;border-top:2px solid rgba(91,109,137,.65)}.measure:before,.measure:after{content:"";position:absolute;top:-5px;width:1px;height:10px;background:rgba(91,109,137,.65)}.measure:before{left:0}.measure:after{right:0}.measure span{position:absolute;top:4px;left:47px;font-size:.72rem;color:var(--tx-hero_art_text,var(--deep))}.wave{display:block;width:100%;height:126px;margin-bottom:-2px;background:var(--bg2);overflow:hidden}.wave-hero{fill:var(--bg)}.wave-layer-back{fill:var(--clay);opacity:.22}.wave-layer-front{fill:var(--blue);opacity:.09}
.library{background:var(--bg2);padding:30px 0 84px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:30px}.section-head h2,.news h2,.about h2{font-family:var(--font-display,var(--display));font-size:clamp(26px,3vw,var(--tx-size-home-section-title,36px));line-height:1.35;margin:0}.section-head p{color:var(--soft);max-width:480px}.filters{display:flex;gap:8px;flex-wrap:wrap}.filter{background:rgba(255,255,255,.65);border:1px solid var(--line);border-radius:999px;padding:7px 14px;font-size:.82rem;color:var(--tx-filter,var(--soft));font-family:var(--font-ui,var(--display));cursor:pointer}.filter.active{background:var(--deep);color:var(--tx-filter_active,#fff);border-color:var(--deep)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card{background:var(--card);border:1px solid rgba(91,109,137,.10);border-radius:var(--r);overflow:hidden;transition:.2s;display:flex;flex-direction:column}.card:hover{transform:translateY(-5px);box-shadow:0 15px 34px rgba(91,109,137,.13);border-color:rgba(184,185,221,.50)}.cover{aspect-ratio:16/10;position:relative;overflow:hidden;background:#F3F4F8}.cover img{width:100%;height:100%;display:block;object-fit:cover}.material-fallback{width:100%;height:100%;display:grid;place-items:center;background:#F3F4F8}.material-fallback svg{width:100%;height:100%}.status{position:absolute;right:14px;top:14px;background:rgba(255,255,255,.92);padding:5px 10px;border-radius:999px;font-size:.72rem;font-weight:800;z-index:2}.status.open{color:var(--tx-status_open,var(--green))}.status.wip{color:var(--tx-status_wip,var(--clay))}.status.plan{color:var(--tx-status_plan,#7f6818)}.card-body{padding:20px 20px 22px}.meta{font-size:.75rem;color:var(--tx-card_meta,var(--blue));font-weight:700;margin-bottom:8px}.card h3{font-family:var(--font-ui,var(--display));font-size:var(--tx-size-card-title,19px);margin:0 0 7px;color:var(--tx-card_title,var(--ink))}.card p{color:var(--tx-card_desc,var(--soft));font-size:var(--tx-size-card-desc,14px);margin:0 0 16px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card-link{font-family:var(--font-ui,var(--display));font-weight:800;color:var(--tx-card_link,var(--deep));font-size:.9rem}.card-link:hover{text-decoration:underline}.cards-empty{color:var(--tx-soft,var(--soft));grid-column:1/-1;padding:24px 0}.library-more{display:inline-flex;margin-top:24px;font-family:var(--font-ui,var(--display));font-weight:800;color:var(--tx-card_link,var(--deep));font-size:.92rem}.library-more:hover{text-decoration:underline}
.news{padding:78px 0 84px}.news-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:28px}.news-head>p{color:var(--tx-news_desc,var(--soft));max-width:430px}.news-list{border-top:1px solid var(--line)}.news-item{display:grid;grid-template-columns:105px 92px 1fr 28px;gap:18px;padding:18px 0;border-bottom:1px solid var(--line);align-items:center;transition:.18s}.news-item:hover{padding-left:8px;color:var(--deep)}.news-date{font-size:.82rem;color:var(--tx-news_date,var(--soft))}.news-tag{font-size:.72rem;font-weight:800;color:var(--tx-news_tag,var(--deep));letter-spacing:.04em}.news-item p{font-size:.93rem;margin:0;color:var(--tx-news_item_title,var(--ink))}.news-arrow{font-family:var(--font-ui,var(--display));font-size:1.1rem;color:var(--tx-news_action,var(--deep));transition:.18s}.news-item:hover .news-arrow{transform:translateX(4px)}.news-more{display:inline-flex;margin-top:20px;font-family:var(--font-ui,var(--display));font-weight:800;color:var(--tx-news_action,var(--deep));font-size:.9rem}
.about{background:var(--deep);color:var(--tx-about_title,#eff7f5);padding:86px 0;position:relative;overflow:hidden}.about:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:42px 42px;pointer-events:none}.about .wrap{position:relative;z-index:1}.about .eyebrow{color:var(--tx-about_eyebrow,var(--yellow))}.about-lead{color:var(--tx-about_lead,#BFCFCC);max-width:640px;margin:14px 0 48px}.about-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px}.about-item{border-top:1px solid rgba(255,255,255,.25);padding-top:20px}.about-num{font-family:var(--font-ui,var(--display));font-size:.78rem;letter-spacing:.12em;color:var(--tx-about_num,var(--yellow));margin-bottom:12px}.about-item h3{font-family:var(--font-display,var(--display));font-size:1.15rem;margin:0 0 7px;color:var(--tx-about_item_title,#eff7f5)}.about-item p{color:var(--tx-about_item_desc,#B8C9C5);font-size:.9rem;margin:0}
.cta{padding:78px 0}.cta-inner{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:54px;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:44px 0}.cta-copy h2{font-family:var(--font-display,var(--display));font-size:1.65rem;margin:0 0 9px;color:var(--tx-cta_title,var(--deep))}.cta-copy p{color:var(--tx-cta_text,var(--soft));margin:0;max-width:38rem}.cta-contact{background:rgba(255,255,255,.82);border:1px solid rgba(36,81,92,.10);border-radius:18px;padding:24px 26px 22px;box-shadow:0 12px 28px rgba(91,109,137,.07);display:grid;gap:12px}.cta-email-label{font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--blue)}.cta-email{font-weight:800;color:var(--deep);font-size:1.05rem;letter-spacing:.01em;overflow-wrap:anywhere}.cta-email:hover{text-decoration:underline}.cta-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:2px}.cta-actions button{font-family:var(--font-ui,var(--display))}.cta-copy-status{min-height:1.2em;font-size:.78rem;color:var(--green);text-align:left}.cta-back-row{grid-column:1/-1;display:flex;justify-content:flex-end;margin-top:-24px}.cta-back-link{font-size:.86rem;color:var(--deep);font-weight:700;padding:6px 2px}.cta-back-link:hover{text-decoration:underline;text-underline-offset:3px}
.site-footer{background:var(--deep2);color:var(--tx-footer_links,#e8f1ef);padding:42px 0 28px}.footer-top{display:flex;justify-content:space-between;gap:30px;align-items:flex-start}.footer-brand{display:flex;align-items:center;gap:12px}.footer-brand .custom-logo{display:block;max-height:42px;width:auto}.footer-copy{color:var(--tx-footer_desc,#A9BAB6);font-size:.84rem;margin-top:12px}.footer-links{display:flex;gap:18px;flex-wrap:wrap;font-size:.86rem;color:var(--tx-footer_links,#CBD8D5)}.footer-links .menu{display:flex;gap:18px;flex-wrap:wrap;list-style:none;margin:0;padding:0}.footer-links .menu li{margin:0;padding:0}.footline{border-top:1px solid rgba(255,255,255,.13);margin-top:28px;padding-top:18px;font-size:.76rem;color:var(--tx-footer_copyright,#91A6A1)}
.page-hero{padding:64px 0 48px}.page-hero h1,.entry-title{font-family:var(--font-display,var(--display));font-size:clamp(2rem,4.4vw,3.15rem);line-height:1.25;margin:0 0 14px;color:var(--tx-page_title,var(--ink))}.page-hero p,.entry-excerpt{color:var(--tx-page_excerpt,var(--soft));max-width:700px}.archive-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;padding-bottom:80px}.entry-content-wrap{background:#fff;padding:68px 0}.entry-layout{display:grid;grid-template-columns:minmax(0,760px);justify-content:center}.entry-content{font-size:1rem;color:var(--tx-entry_body,#40514d)}.entry-content>*:first-child{margin-top:0}.entry-content h2,.entry-content h3{font-family:var(--font-display,var(--display));line-height:1.4;margin-top:2em}.entry-content h2:not(.has-text-color),.entry-content h3:not(.has-text-color){color:var(--tx-entry_heading,var(--deep))}.entry-content img{border-radius:14px}.entry-content .wp-block-image,.entry-content .wp-block-gallery{margin-top:1.6em;margin-bottom:1.6em}.single-cover{width:100%;max-width:820px;margin:30px auto 0;border-radius:22px;overflow:hidden;background:#F3F4F8;border:1px solid rgba(91,109,137,.12)}.single-cover img{width:100%;height:auto;display:block}.tax-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.tax-tags a,.tax-tags span{border:1px solid var(--line);border-radius:999px;padding:5px 11px;font-size:.75rem;color:var(--tx-tax_tag,var(--soft));background:rgba(255,255,255,.55)}
.interactive{background:var(--deep);color:var(--tx-interactive_title,#eff7f5);padding:74px 0;overflow-x:clip}.interactive h2{font-family:var(--font-display,var(--display));font-size:1.8rem;margin:0 0 8px;color:var(--tx-interactive_title,#eff7f5)}.interactive p{color:var(--tx-interactive_desc,#B8C9C5);margin:0 0 24px}.interactive-device-note{max-width:820px;margin:18px 0 18px;padding:14px 16px;border:1px solid rgba(255,255,255,.22);border-radius:14px;background:rgba(255,255,255,.08)}.interactive-device-note strong{display:block;margin-bottom:3px;color:#fff;font-family:var(--font-ui,var(--display));font-size:.98rem}.interactive-device-note span{display:block;color:var(--tx-interactive_desc,#D8E1E6);font-size:.95rem;line-height:1.7}.frame-shell{background:#344255;border:1px solid rgba(255,255,255,.18);border-radius:18px;overflow:hidden;aspect-ratio:16/10;min-height:520px;max-width:100%;min-width:0}.frame-shell iframe{width:100%;max-width:100%;min-width:0;height:100%;border:0;background:#fff;display:block}.interactive-mobile-fallback{display:none}.frame-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.btn.light{background:#fff;color:var(--tx-interactive_light_btn,var(--deep))}.btn.outline-light{border:1px solid rgba(255,255,255,.45);color:var(--tx-interactive_outline_btn,#fff)}.related{padding:68px 0}.related h2{font-family:var(--font-display,var(--display));font-size:1.55rem;margin:0 0 22px;color:var(--tx-related_title,var(--ink))}.related-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.rel{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}.rel-thumb{aspect-ratio:16/9;background:#F3F4F8}.rel-thumb img{width:100%;height:100%;object-fit:cover}.rel-body{padding:20px}.rel small{color:var(--tx-related_meta,var(--blue));font-weight:700}.rel h3{font-family:var(--font-ui,var(--display));font-size:var(--tx-size-card-title,19px);margin:5px 0;color:var(--tx-related_item_title,var(--ink))}.rel p{font-size:var(--tx-size-card-desc,14px);color:var(--tx-related_desc,var(--soft));margin:0}.news-article-meta{font-size:.82rem;color:var(--tx-news_article_meta,var(--soft));margin-bottom:18px}.news-featured{width:100%;max-width:820px;margin:28px auto 0;border-radius:20px;overflow:hidden}.news-featured img{width:100%;height:auto;display:block}
@media(max-width:850px){.hero{padding-top:46px}.hero-grid{grid-template-columns:1fr}.lab-art{min-height:var(--hero-art-height-tablet,352px)}.cards,.archive-grid{grid-template-columns:1fr 1fr}.section-head,.news-head,.footer-top{align-items:flex-start;flex-direction:column}.about-grid{grid-template-columns:1fr}.cta-inner{grid-template-columns:1fr;gap:26px}.cta-contact{max-width:620px}.cta-back-row{justify-content:flex-start;margin-top:-8px}}@media(max-width:760px){.frame-shell{min-height:360px}.related-grid{grid-template-columns:1fr}}@media(max-width:560px){.wrap{padding:0 18px}.hero{padding-top:36px}.hero h1{font-size:var(--hero-title-mobile-size,34px)}.cards,.archive-grid{grid-template-columns:1fr}.news-item{grid-template-columns:74px 64px 1fr 20px;gap:8px}.lab-art{min-height:var(--hero-art-height-mobile,300px)}.sheet,.hero-image{inset:0}.hero-image{width:100%;height:100%}.links .btn{padding:9px 12px}.brand-copy small{display:none}}

.hero .eyebrow{color:var(--tx-hero_eyebrow,var(--blue))}
.library .eyebrow{color:var(--tx-library_eyebrow,var(--blue))}
.library .section-head h2{color:var(--tx-library_title,var(--ink))}
.news .eyebrow{color:var(--tx-news_eyebrow,var(--blue))}
.news h2{color:var(--tx-news_title,var(--ink))}
.page-hero .eyebrow{color:var(--tx-page_eyebrow,var(--blue))}
.site-footer .brand-copy b{color:var(--tx-footer_title,#fff)}
.site-footer .brand-copy small{color:var(--tx-footer_english,#B7C7C3)}
.entry-content a{color:var(--tx-entry_link,var(--deep));text-decoration:underline;text-underline-offset:2px}
.single-tx_news .entry-title{color:var(--tx-news_article_title,var(--tx-page_title,var(--ink)))}
.single-tx_news .entry-excerpt{color:var(--tx-news_article_excerpt,var(--tx-page_excerpt,var(--soft)))}


/* ===== V1.4：數位教具介紹頁資訊架構 ===== */
.material-intro-hero{padding:58px 0 54px;background:var(--bg)}
.material-intro-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr);gap:54px;align-items:center}
.material-intro-copy .entry-title{font-size:clamp(32px,4.4vw,var(--tx-size-material-title,50px));margin-bottom:16px}
.material-summary{max-width:40rem;margin:0;color:var(--tx-page_excerpt,var(--soft));font-size:1rem;line-height:1.8}
.material-intro-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:26px}
.material-details-link{font-family:var(--font-ui,var(--display));font-weight:800;font-size:.9rem;color:var(--tx-entry_link,var(--deep))}
.material-details-link:hover{text-decoration:underline;text-underline-offset:3px}
.material-intro-cover{width:100%;max-width:460px;justify-self:end;border-radius:20px;overflow:hidden;background:#F3F4F8;border:1px solid rgba(91,109,137,.12);box-shadow:0 12px 30px rgba(91,109,137,.06)}
.material-intro-cover img{display:block;width:100%;height:auto}
.material-single-page .interactive{scroll-margin-top:86px}
.interactive-head{max-width:720px}
.interactive .eyebrow{color:var(--yellow);margin-bottom:9px}
.material-tabs-section{background:#fff;padding:72px 0 82px;scroll-margin-top:86px}
.material-tabs-wrap{max-width:960px}
.material-details-head{margin-bottom:24px}
.material-details-head h2{font-family:var(--font-display,var(--display));font-size:clamp(1.55rem,3vw,2rem);margin:0;color:var(--tx-page_title,var(--ink))}
.material-tabs{border-top:1px solid var(--line)}
.material-tabs-nav{position:sticky;top:74px;z-index:20;display:flex;gap:0;overflow-x:auto;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);scrollbar-width:none}
.material-tabs-nav::-webkit-scrollbar{display:none}
body.admin-bar .material-tabs-nav{top:106px}
.material-tab-btn{appearance:none;border:0;border-bottom:3px solid transparent;background:transparent;padding:17px 28px;font-family:var(--font-ui,var(--display));font-weight:800;font-size:var(--tx-size-tab,15px);color:var(--tx-page_excerpt,var(--soft));cursor:pointer;white-space:nowrap;transition:.18s}
.material-tab-btn:hover{color:var(--deep);background:rgba(91,109,137,.055)}
.material-tab-btn.is-active{color:var(--deep);border-bottom-color:var(--deep);background:rgba(184,185,221,.20)}
.material-tab-btn:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}
.material-tab-panel{max-width:760px;margin:0 auto;padding:44px 0 0;animation:tianxinTabIn .2s ease}
.material-tab-panel[hidden]{display:none}
.material-tab-panel h2:first-child,.material-tab-panel h3:first-child{margin-top:0}
@keyframes tianxinTabIn{from{opacity:.55;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(max-width:850px){.material-intro-grid{grid-template-columns:1fr;gap:28px}.material-intro-cover{justify-self:start;max-width:520px}.material-intro-hero{padding-top:46px}.material-tabs-nav{top:74px}}
@media(max-width:782px){body.admin-bar .material-tabs-nav{top:120px}}
@media(max-width:560px){.material-intro-hero{padding:38px 0 42px}.material-intro-grid{gap:24px}.material-intro-cover{max-width:100%}.material-intro-actions{align-items:stretch}.material-intro-actions .btn{width:100%}.material-details-link{width:100%;text-align:center}.material-tabs-section{padding:54px 0 62px}.material-tabs-wrap{padding:0}.material-details-head{padding:0 18px}.material-tabs-nav{padding:0 8px}.material-tab-btn{padding:15px 18px}.material-tab-panel{padding:34px 18px 0}.frame-shell{min-height:330px}}

/* V1.5：行動版導覽、分頁與細節強化 */
.nav-toggle{display:none;width:44px;height:44px;border:1px solid rgba(91,109,137,.18);border-radius:12px;background:rgba(255,255,255,.56);color:var(--deep);font-size:1.3rem;align-items:center;justify-content:center;cursor:pointer}
.nav-toggle-lines,.nav-toggle-lines:before,.nav-toggle-lines:after{display:block;width:19px;height:2px;background:currentColor;border-radius:999px;position:relative;transition:.2s}
.nav-toggle-lines:before,.nav-toggle-lines:after{content:"";position:absolute;left:0}.nav-toggle-lines:before{top:-6px}.nav-toggle-lines:after{top:6px}
.nav-toggle[aria-expanded="true"] .nav-toggle-lines{background:transparent}.nav-toggle[aria-expanded="true"] .nav-toggle-lines:before{top:0;transform:rotate(45deg)}.nav-toggle[aria-expanded="true"] .nav-toggle-lines:after{top:0;transform:rotate(-45deg)}
.pagination-wrap{grid-column:1/-1;padding:22px 0 10px}.pagination-wrap .nav-links{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.pagination-wrap .page-numbers{min-width:40px;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.72);color:var(--deep);font-weight:700}.pagination-wrap .page-numbers.current{background:var(--deep);border-color:var(--deep);color:#fff}
.material-summary{max-width:39rem}

@media(max-width:850px){
  .nav{position:relative}.nav-toggle{display:inline-flex;flex:0 0 auto}.links{display:none;position:absolute;top:calc(100% + 1px);left:0;right:0;background:rgba(248,249,251,.985);backdrop-filter:blur(12px);border-bottom:1px solid rgba(91,109,137,.14);padding:18px 24px 22px;box-shadow:0 16px 30px rgba(91,109,137,.08);white-space:normal;flex-direction:column;align-items:stretch;gap:14px}.links.is-open{display:flex}.links .menu{display:flex;flex-direction:column;align-items:stretch;gap:0}.links .menu a{padding:11px 0;border-bottom:1px solid rgba(91,109,137,.10)}.links>.btn{width:100%;margin-top:4px}.brand-copy b{font-size:.98rem}.brand-copy small{font-size:.63rem}
  .wave{height:92px}
}
@media(max-width:600px){.wave{height:72px}.archive-grid{grid-template-columns:1fr}}


/* ===== V1.6：學科領域、關鍵標籤與相關教具 ===== */
.keyword-tags{display:flex;gap:8px;flex-wrap:wrap;margin:2px 0 16px}
.keyword-tag{display:inline-flex;align-items:center;justify-content:center;padding:5px 11px;border-radius:999px;font-size:.74rem;font-weight:800;line-height:1.35;border:1px solid transparent;white-space:nowrap}
.tag-role-blue{background:var(--tx-keyword_blue_bg,#E2F0F4);color:var(--tx-keyword_blue_text,#285F70)}
.tag-role-green{background:var(--tx-keyword_green_bg,#E4EEE7);color:var(--tx-keyword_green_text,#3E624C)}
.tag-role-yellow{background:var(--tx-keyword_yellow_bg,#FAEFC7);color:var(--tx-keyword_yellow_text,#755D0C)}
.tag-role-clay{background:var(--tx-keyword_clay_bg,#F3DFD8);color:var(--tx-keyword_clay_text,#8C402D)}
.tag-role-neutral{background:var(--tx-keyword_neutral_bg,#E8ECEB);color:var(--tx-keyword_neutral_text,#52605D)}
.keyword-tag:hover{filter:brightness(.97)}
.card-body{display:flex;flex-direction:column;flex:1}
.card-body>p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-body .keyword-tags{margin-top:auto;margin-bottom:14px}
.card-link{margin-top:0}
.material-intro-copy>.keyword-tags{margin-top:12px;margin-bottom:0}
.related-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:22px}
.related-head h2{margin:0}
.related-head>a{font-family:var(--font-ui,var(--display));font-weight:800;font-size:.9rem;color:var(--tx-card_link,var(--deep))}
.related-grid{grid-template-columns:repeat(3,1fr)}
.rel{display:flex;flex-direction:column;transition:.18s}
.rel:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(91,109,137,.09)}
.rel-body{display:flex;flex-direction:column;flex:1}
.rel p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:12px}
.rel .keyword-tags{margin-top:auto;margin-bottom:13px}
.rel-link{font-family:var(--font-ui,var(--display));font-weight:800;color:var(--tx-card_link,var(--deep));font-size:.86rem}
@media(max-width:850px){.related-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.related-head{align-items:flex-start;flex-direction:column}.related-grid{grid-template-columns:1fr}}



/* V1.8 — 教具內頁資訊層級：學科只留在 eyebrow，Hero pill 僅顯示狀態與關鍵標籤 */
.material-intro-copy .material-status-tags{margin-top:14px;margin-bottom:10px}
.material-intro-copy .material-status-tags + .keyword-tags{margin-top:0}

/* V1.9：聯絡區資訊分組 */
@media(max-width:560px){.cta{padding:58px 0}.cta-inner{padding:34px 0}.cta-contact{padding:20px}.cta-actions{display:grid;grid-template-columns:1fr}.cta-actions .btn{width:100%}.cta-back-row{margin-top:-4px}}


/* V1.10：聯絡區精簡版（設計 2） */
.cta{padding:60px 0}
.cta-inner{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:52px;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:38px 0}
.cta-copy h2{margin-bottom:9px}
.cta-contact-simple{min-height:104px;border-left:1px solid var(--line);padding:4px 0 4px 48px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.cta-contact-simple .cta-email-label{margin-bottom:7px}
.cta-contact-simple .cta-email{font-size:1.05rem;line-height:1.45}
.cta-contact-simple .cta-back-link{margin-top:16px;align-self:flex-end}
@media(max-width:850px){.cta{padding:52px 0}.cta-inner{grid-template-columns:1fr;gap:24px;padding:34px 0}.cta-contact-simple{min-height:0;border-left:0;border-top:1px solid var(--line);padding:22px 0 0}.cta-contact-simple .cta-back-link{align-self:flex-start;margin-top:14px}}
@media(max-width:560px){.cta{padding:44px 0}.cta-inner{padding:30px 0}.cta-copy h2{font-size:1.45rem}.cta-contact-simple .cta-email{font-size:1rem}}


/* ===== V1.11：新版品牌配色（紫／藍／青＋暖黃） ===== */
.hero{background:var(--bg)}
.site-header .btn.primary,.hero-actions .btn.primary{box-shadow:0 7px 18px rgba(91,109,137,.12)}
.principles span:nth-child(1) .dot{background:var(--blue)}.principles span:nth-child(2) .dot{background:var(--clay)}.principles span:nth-child(3) .dot{background:var(--green)}
.filter.active{box-shadow:0 5px 14px rgba(91,109,137,.10)}
.material-tab-btn:hover{color:var(--deep);background:rgba(223,217,227,.28)}
.material-tab-btn.is-active{color:var(--deep);border-bottom-color:var(--blue);background:rgba(184,185,221,.16)}
.cta-email-label{color:var(--deep)}.cta-copy-status{color:#4A8F8F}
.status.plan{color:var(--tx-status_plan,#7A6330)}


/* ===== V1.12：Header 主 CTA hover 可讀性修正 ===== */
.site-header .links>.btn.primary:hover,
.site-header .links>.btn.primary:focus-visible{
  color:var(--tx-btn_primary,#fff);
  background:var(--deep2);
}
.site-header .links>.btn.primary:focus-visible{
  outline:3px solid rgba(129,161,212,.48);
  outline-offset:3px;
}

/* ===== V1.12：學科識別與適用年級 ===== */
.material-card-meta-row,.related-meta-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.material-card-meta-row .meta{margin-bottom:0;min-width:0}
.subject-labels{display:inline-flex;align-items:center;flex-wrap:wrap;gap:3px;font-weight:700}
.subject-separator{color:var(--tx-soft,var(--soft));opacity:.58}
.subject-role-blue{color:var(--tx-keyword_blue_text,#5F7DA8)}
.subject-role-green{color:var(--tx-keyword_green_text,#4A8F8F)}
.subject-role-yellow{color:var(--tx-keyword_yellow_text,#7A6330)}
.subject-role-clay{color:var(--tx-keyword_clay_text,#706F99)}
.subject-role-neutral{color:var(--tx-keyword_neutral_text,#5F6772)}
.grade-badge{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:4px 9px;border-radius:999px;background:var(--tx-grade_bg,#FFF4D6);color:var(--tx-grade_text,#7A6330);border:1px solid rgba(253,219,136,.42);font-size:.7rem;font-weight:800;line-height:1.3;white-space:nowrap}
.material-identity-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:13px}
.material-identity-line .eyebrow{margin-bottom:0}
.material-identity-line .grade-badge{font-size:.72rem}
.related-meta-row{margin-bottom:7px}
.related-meta-row small{font-size:.74rem;font-weight:700;color:var(--tx-related_meta,var(--blue))}
.related-meta-row .grade-badge{font-size:.68rem}
@media(max-width:560px){.material-card-meta-row,.related-meta-row{align-items:flex-start}.material-identity-line{align-items:flex-start}.material-identity-line .grade-badge{margin-top:-2px}}


/* ===== V1.13：教具卡片資訊分層、文章閱讀版面、雙層波浪、字體角色 ===== */
/* Header 導覽採 UI 字體角色（預設 JF Open 粉圓） */
.site-header .links,.site-header .links a{font-family:var(--font-ui,var(--display))}

/* 教具卡：分類與年級移到封面右上，狀態移至左上避免衝突 */
.cover-badges,.rel-cover-badges{position:absolute;right:14px;top:14px;z-index:3;display:flex;flex-direction:column;align-items:flex-end;gap:7px;max-width:calc(100% - 28px)}
.subject-badge{display:inline-flex;align-items:center;justify-content:center;max-width:100%;padding:6px 12px;border-radius:999px;background:var(--tx-category_badge_bg,#FDDB88);color:var(--tx-category_badge_text,#2F3640);font-family:var(--font-ui,var(--display));font-size:.72rem;font-weight:800;line-height:1.35;white-space:nowrap;box-shadow:0 3px 10px rgba(91,109,137,.08)}
.grade-badge{background:var(--tx-grade_bg,#75C9C9);color:var(--tx-grade_text,#2F3640);border-color:transparent;font-family:var(--font-ui,var(--display))}
.cover-badges .grade-badge,.rel-cover-badges .grade-badge{padding:5px 10px;font-size:.69rem;box-shadow:0 3px 10px rgba(91,109,137,.07)}
.cover>.status{left:14px;right:auto;top:14px}
.card-body{padding-top:22px}
.card-footer{margin-top:auto;display:flex;flex-direction:column}.card-footer .keyword-tags{margin:0 0 12px}.card-link,.rel-link{align-self:flex-end;display:inline-flex;align-items:center;gap:7px;text-decoration:none;transition:color .18s ease}
.card-link:hover,.rel-link:hover{color:var(--deep2);text-decoration:none}
.card-link-arrow{display:inline-block;transition:transform .18s ease}
.card-link:hover .card-link-arrow,.rel-link:hover .card-link-arrow{transform:translateX(4px)}
.rel-thumb{position:relative;overflow:hidden}
.rel-thumb .material-fallback{height:100%}

/* 最新消息文章頁：標題改為文章層級、標題與正文共用左側基準線 */
.single-tx_news .page-hero{padding:52px 0 40px}
.single-tx_news .page-hero .wrap,.single-tx_news .entry-content-wrap .wrap{max-width:960px}
.single-tx_news .page-hero .entry-title{font-size:clamp(28px,3.3vw,var(--tx-size-news-title,44px));line-height:1.32;margin-bottom:12px}
.single-tx_news .news-article-meta{margin-bottom:15px}
.single-tx_news .entry-content-wrap{padding:54px 0 76px}
.single-tx_news .entry-layout{grid-template-columns:minmax(0,760px);justify-content:start}
.single-tx_news .news-featured{max-width:820px;margin:28px 0 0}

/* 教具內頁：摘要保持乾淨；年級使用品牌湖水青 */
.material-identity-line .grade-badge{background:var(--tx-grade_bg,#75C9C9);color:var(--tx-grade_text,#2F3640)}

@media(max-width:850px){
  .cover-badges,.rel-cover-badges{right:12px;top:12px;gap:6px}
  .subject-badge{font-size:.7rem;padding:5px 10px}
  .single-tx_news .page-hero{padding:46px 0 36px}
  .single-tx_news .entry-content-wrap{padding:48px 0 68px}
}
@media(max-width:560px){
  .cover-badges,.rel-cover-badges{right:10px;top:10px;max-width:calc(100% - 20px)}
  .subject-badge{font-size:.67rem;padding:5px 9px}
  .cover-badges .grade-badge,.rel-cover-badges .grade-badge{font-size:.65rem;padding:4px 8px}
  .single-tx_news .page-hero{padding:38px 0 30px}
  .single-tx_news .page-hero .entry-title{font-size:clamp(28px,8vw,min(var(--tx-size-news-title,44px),32px));line-height:1.36}
  .single-tx_news .entry-content-wrap{padding:40px 0 58px}
}


/* ===== V1.14：首頁 Banner 雙層大弧波浪精修 ===== */
/* 主區塊轉場由 wave-base 承接；兩道薄色帶刻意保持錯位與較大振幅，避免再次融成單一大色塊。 */

/* ===== V1.16：Gutenberg 文字顏色「所見即所得」 ===== */
/*
 * 規則：
 * 1. 未手動指定顏色時，仍使用田心 Theme 的預設標題／正文色。
 * 2. Gutenberg 區塊一旦帶有 has-text-color（含自訂 HEX 或品牌色票），Theme 不再把 H2/H3 改回預設色。
 * 3. 品牌色票同時提供前台文字色／背景色 class，確保編輯器與前台一致。
 */
.entry-content .has-text-color a{color:inherit}

.has-tianxin-heading-color{color:#2F3640}
.has-tianxin-body-color{color:#4A5560}
.has-tianxin-secondary-color{color:#6B7682}
.has-tianxin-deep-color{color:#5B6D89}
.has-tianxin-blue-color{color:#81A1D4}
.has-tianxin-lavender-color{color:#B8B9DD}
.has-tianxin-teal-color{color:#75C9C9}
.has-tianxin-yellow-color{color:#FDDB88}

.has-tianxin-heading-background-color{background-color:#2F3640}
.has-tianxin-body-background-color{background-color:#4A5560}
.has-tianxin-secondary-background-color{background-color:#6B7682}
.has-tianxin-deep-background-color{background-color:#5B6D89}
.has-tianxin-blue-background-color{background-color:#81A1D4}
.has-tianxin-lavender-background-color{background-color:#B8B9DD}
.has-tianxin-teal-background-color{background-color:#75C9C9}
.has-tianxin-yellow-background-color{background-color:#FDDB88}



/* ===== V1.18：字級系統可管理化 ===== */
/* Hero 主標／副標／說明仍由 Hero/Banner 區控制；這裡管理高頻介面字級。 */


/* ===== V1.19：最新消息正文左對齊＋可選段落內縮 ===== */
/*
 * 新規則：
 * 1. 最新消息 H1／摘要／正文共用相同左側基準線。
 * 2. 正文維持舒適閱讀寬度，不再以置中的 760px 欄位造成視覺內縮。
 * 3. 一般段落預設不做額外左縮排；需要縮排時，使用 Gutenberg「田心｜段落內縮」樣式。
 */
.single-tx_news .entry-layout{display:block}
.single-tx_news .entry-content{width:100%;max-width:760px;margin:0}
.single-tx_news .entry-content p:not(.is-style-tianxin-indent){margin-left:0!important;padding-left:0!important;text-indent:0!important}
.single-tx_news .entry-content p.is-style-tianxin-indent{margin-left:2rem!important;padding-left:0!important;text-indent:0!important}
@media(max-width:560px){.single-tx_news .entry-content p.is-style-tianxin-indent{margin-left:1.25rem!important}}

/* ===== V1.21：Hero 上方留白縮減＋Banner 柔和圓角 ===== */
/* Desktop Hero 上方留白由 84px 縮至 52px；Tablet 46px；Mobile 36px。Banner 圖與預設主視覺皆採 24px 圓角、無外框無陰影。 */

/* ===== V1.22：互動教具裝置提醒＋手機安全顯示 ===== */
/*
 * 桌機／筆電／平板維持嵌入教具；手機螢幕較小時不再硬塞 iframe，
 * 改顯示裝置提示卡與「另開教具」按鈕，避免固定桌面版教具造成整頁橫向溢出。
 */
@media(max-width:700px){
  .single-tx_material .frame-shell{display:none}
  .single-tx_material .interactive-mobile-fallback{display:block;margin-top:18px;padding:22px 20px;border-radius:18px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.22)}
  .single-tx_material .interactive-mobile-fallback h3{margin:0 0 8px;color:#fff;font-family:var(--font-display,var(--display));font-size:1.22rem;line-height:1.45}
  .single-tx_material .interactive-mobile-fallback p{margin:0 0 16px;color:var(--tx-interactive_desc,#D8E1E6);font-size:.95rem;line-height:1.75}
  .single-tx_material .interactive-mobile-fallback .btn{display:inline-flex}
  .single-tx_material .frame-actions .interactive-desktop-open{display:none}
  .single-tx_material .interactive{overflow-x:hidden}
}

