/* WordPress 共享布局；不改变首页既有卡片、图片和轮播尺寸。 */
body { line-height: normal; }
.header-language { display:flex; align-items:center; margin:0; flex-shrink:0; }
.header-language { position:relative; }
.header-language [hidden] { display:none!important; }
.language-trigger { display:flex; align-items:center; gap:8px; height:42px; max-width:180px; padding:0 12px; border:1px solid #dbe4e0; border-radius:4px; background:#fff; color:#173b37; font:inherit; font-size:13px; cursor:pointer; }
.language-trigger span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.language-trigger::before { content:'◎'; font-size:20px; color:#2b7a51; }
.language-trigger::after { content:''; width:6px; height:6px; margin-left:4px; border-right:1.5px solid; border-bottom:1.5px solid; transform:rotate(45deg); }
.language-trigger:is(:hover,[aria-expanded="true"]) { background:#f5f8f5; border-color:#2b7a51; }
.language-menu { position:absolute; z-index:110; top:calc(100% + 8px); right:0; min-width:190px; max-width:calc(100vw - 32px); max-height:min(360px,65dvh); overflow:auto; padding:6px; border:1px solid #dfe8e3; border-radius:4px; background:#fff; box-shadow:0 16px 32px rgba(7,45,38,.13); }
.language-menu button { display:block; width:100%; padding:11px 30px 11px 12px; position:relative; border:0; border-radius:2px; background:none; color:#173b37; font:inherit; font-size:14px; text-align:left; white-space:normal; cursor:pointer; }
.language-menu button:is(:hover,:focus-visible,[aria-checked="true"]) { background:#e9f5ea; color:#176a35; }
.language-menu button[aria-checked="true"]::after { content:'✓'; position:absolute; right:10px; }
.brand-logo .custom-logo-link { display:flex; align-items:center; }
.brand-logo .custom-logo { display:block; width:auto; height:auto; max-width:180px; max-height:48px; object-fit:contain; }
@media(max-width:760px) {
 .language-trigger { max-width:110px; padding:0 8px; gap:5px; white-space:normal; }
 .language-trigger::before { display:none; }
 .brand-logo .custom-logo { max-width:130px; max-height:40px; }
}
.header-language .language { display:block; max-width:160px; font:inherit; font-size:13px; border-radius:0; }
.header-language .language:focus-visible { outline:2px solid #2b7a51; outline-offset:3px; }
@media (max-width:760px) { .header-language .language { max-width:106px; padding:0 4px; } }
@media (max-width:380px) {
 .site-header:has(.header-language) { gap:6px; padding-inline:12px; }
 .site-header:has(.header-language) .brand { font-size:18px; }
 .site-header:has(.header-language) .header-actions { gap:6px; }
 .header-language .language { max-width:82px; }
}
img { max-width: 100%; height: auto; }
:root { --ink:#092f2c; --muted:#526967; --line:#dfe8e3; --blue:#0b5b37; --wash:#f5f8f5; }
a:focus-visible, button:focus-visible { outline:2px solid #2b7a51; outline-offset:4px; }
.screen-reader-text { position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.skip-link:focus { clip-path:none; width:auto; height:auto; left:12px; top:12px; padding:12px; margin:0; background:white; z-index:1000; }
.admin-bar .site-header { top:32px; }
.site-header .primary-nav { margin-left:auto; align-self:stretch; }
.site-header .primary-nav ul { list-style:none; margin:0; padding:0; }
.site-header .primary-nav > .menu { display:flex; height:100%; gap:clamp(12px,1.35vw,24px); align-items:stretch; }
.site-header .primary-nav .menu-item { position:relative; display:flex; align-items:center; flex-wrap:wrap; }
.site-header .primary-nav .menu-item > a, .site-header .primary-nav .menu-item > span, .site-header .primary-nav .acrylic-navigation-action { color:#344c4a; font-size:12px; font-weight:700; padding:0; line-height:1.4; text-align:left; }
.site-header .primary-nav > .menu > .menu-item > a { display:flex; align-items:center; height:100%; white-space:nowrap; }
.site-header .primary-nav .current-menu-item > a { color:#23833e; }
/* 沿用静态原型：箭头保持方向，以绿色横线提示顶部交互状态。 */
.site-header .primary-nav > .menu > .menu-item::before { content:''; position:absolute; left:0; right:0; bottom:0; height:3px; background:#23833e; transform:scaleX(0); transition:transform .18s ease; pointer-events:none; z-index:101; }
.site-header .primary-nav > .menu > .menu-item:is(:hover,:focus-within,.is-open)::before { transform:scaleX(1); }
.site-header .primary-nav .sub-menu { display:flex; visibility:hidden; opacity:0; pointer-events:none; flex-direction:column; gap:0; position:absolute; left:-18px; top:calc(100% - 1px); width:304px; min-width:0; padding:10px; margin:0; background:#fff; border:1px solid #dfe8e3; box-shadow:0 18px 38px rgba(7,45,38,.14); z-index:100; transform:translateY(12px); transition:opacity .28s cubic-bezier(.22,1,.36,1),transform .28s cubic-bezier(.22,1,.36,1),visibility 0s linear .28s; }
.site-header .primary-nav .menu-item.is-open > .sub-menu { visibility:visible; opacity:1; pointer-events:auto; transform:translateY(0); transition-delay:0s; }
.site-header .primary-nav .sub-menu > .menu-item { display:flex; width:100%; min-height:50px; }
.site-header .primary-nav .sub-menu > .menu-item > a, .site-header .primary-nav .sub-menu > .menu-item > span, .site-header .primary-nav .sub-menu .acrylic-navigation-action { flex:1; min-width:0; width:auto; padding:12px 14px; font-size:15px; font-weight:650; color:#092f2c; overflow-wrap:anywhere; }
.site-header .primary-nav .sub-menu > .menu-item:hover, .site-header .primary-nav .sub-menu > .menu-item:focus-within { background:#e9f5ea; }
.site-header .primary-nav .sub-menu .sub-menu { left:calc(100% + 18px); top:-10px; width:300px; }
.site-header .primary-nav .sub-menu .sub-menu.opens-left { left:auto; right:calc(100% + 18px); }
.site-header .primary-nav > .menu > .menu-item > .sub-menu.align-right { left:auto; right:0; }
.site-header .primary-nav .sub-menu .menu-item-has-children::after { content:''; position:absolute; left:100%; top:0; bottom:0; width:18px; }
.site-header .primary-nav .sub-menu .menu-item-has-children:has(> .opens-left)::after { left:auto; right:100%; }
.site-header .acrylic-submenu-toggle { flex-shrink:0; width:24px; height:32px; padding:0; margin:0; border:0; background:none; color:#344c4a; cursor:pointer; position:relative; }
.site-header .acrylic-submenu-toggle::before { content:''; width:7px; height:7px; border:0; border-right:1.5px solid; border-bottom:1.5px solid; position:absolute; left:50%; top:45%; transform:translate(-50%,-50%) rotate(45deg); }
.site-header .primary-nav > .menu > .menu-item.is-open > .acrylic-submenu-toggle::before { transform:translate(-50%,-50%) rotate(45deg); }
.site-header .sub-menu .acrylic-submenu-toggle::before, .site-header .sub-menu .menu-item.is-open > .acrylic-submenu-toggle::before { transform:translate(-50%,-50%) rotate(-45deg); }
.wrap { width:min(1240px,calc(100% - 8.4vw)); margin-inline:auto; }
main.wrap { min-height:60vh; }
.entry-header { padding-block:clamp(40px,6vw,80px); border-bottom:1px solid var(--line); }
.entry-header h1 { line-height:1.1; overflow-wrap:anywhere; }
.hero-lede,.entry { line-height:1.7; }
.hero-media img { max-height:640px; object-fit:cover; }
.entry { padding-block:40px 72px; }
.entry a,.entry-header a { color:var(--blue); text-decoration:underline; }
.entry p,.entry li { overflow-wrap:anywhere; }
.ac-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.ac-card img { aspect-ratio:4/3; object-fit:cover; }
.ac-card h2 { font-size:26px; }
.case-details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; background:var(--wash); padding:24px; }
.case-details dd { margin:0; }
.case-gallery figure { margin:0; }
.page-numbers { display:inline-block; padding:8px 12px; }
input,textarea,select,button { font:inherit; }
input,textarea,select { max-width:100%; }
table { border-collapse:collapse; max-width:100%; }
th,td { border:1px solid var(--line); padding:10px; }
.wp-block-table { overflow:auto; }
.reveal-pending { opacity:0; transform:translateY(26px); }
[data-reveal] { transition:opacity .65s ease,transform .65s cubic-bezier(.22,1,.36,1); }
.hero:not(.is-enhanced) .hero-arrow,.hero:not(.is-enhanced) .hero-dots { display:none; }
@media(max-width:760px) {
 .site-header .primary-nav { display:none; position:absolute; top:100%; left:0; right:0; margin:0; padding:16px 4.2vw; max-height:calc(100dvh - 110px); overflow:auto; background:#fff; border-bottom:1px solid var(--line); }
 .site-header .primary-nav.is-open { display:block; }
 .site-header .primary-nav > .menu { display:block; }
 .site-header .primary-nav .menu-item { min-height:44px; }
 .site-header .primary-nav .menu-item > a,.site-header .primary-nav .menu-item > span { flex:1; padding:12px 0; white-space:normal; }
 .site-header .primary-nav .acrylic-submenu-toggle { width:44px; height:44px; }
 .site-header .primary-nav .sub-menu,.site-header .primary-nav .sub-menu .sub-menu { display:none; position:static; width:100%; flex-basis:100%; margin:0 0 0 12px; padding:0 8px; border:0; border-left:1px solid var(--line); box-shadow:none; transform:none; }
 .site-header .primary-nav .menu-item.is-open > .sub-menu { display:flex; }
 .site-header .primary-nav .sub-menu .menu-item-has-children::after { display:none; }
}
@media(max-width:1120px) { .ac-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:782px) { .admin-bar .site-header { top:46px; } }
@media(max-width:600px) { .admin-bar .site-header { top:0; } .ac-grid,.case-details { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) {
 [data-reveal],.site-header .primary-nav .sub-menu,.site-header .primary-nav > .menu > .menu-item::before { transition:none; }
 .reveal-pending { opacity:1; transform:none; }
}

.site-header .primary-nav .menu-item, .site-header .primary-nav .menu-item > :is(a,span,button), .site-header .menu-toggle { cursor:pointer; }

/* 顶部按内容宽度排列；溢出项目复用同一棵导航树。 */
.site-header .brand,.site-header .header-actions { flex-shrink:0; }
.site-header .header-actions { white-space:nowrap; }
.site-header .primary-nav.has-overflow-navigation { display:block; position:static; flex:1; min-width:0; margin-left:auto; padding:0; max-height:none; overflow:visible; background:none; border:0; }
.site-header .primary-nav.has-overflow-navigation > .menu { display:flex; height:100%; gap:clamp(12px,1.35vw,24px); align-items:stretch; }
.site-header .primary-nav.has-overflow-navigation > .menu > .menu-item { flex:0 0 auto; flex-wrap:nowrap; }
.site-header .primary-nav.has-overflow-navigation > .menu > .menu-item > :is(a,span,.acrylic-navigation-action) { flex:none; white-space:nowrap; padding:0; }
.site-header .primary-nav.has-overflow-navigation > .menu > .menu-item > .acrylic-submenu-toggle { width:24px; height:32px; }
.site-header .primary-nav .navigation-overflow { position:static; width:0; flex:0 0 0; margin-left:calc(-1 * clamp(12px,1.35vw,24px)); list-style:none; }
.site-header .primary-nav .navigation-panel { position:absolute; top:100%; right:4.2vw; width:max-content; min-width:min(220px,91.6vw); max-width:min(304px,91.6vw); max-height:calc(100dvh - 130px); overflow:auto; overscroll-behavior:contain; padding:12px 16px; background:#fff; border:1px solid var(--line); box-shadow:0 16px 32px rgba(7,45,38,.13); }
.site-header .primary-nav .navigation-panel { visibility:hidden; opacity:0; pointer-events:none; transform:translateY(12px); transition:opacity .28s cubic-bezier(.22,1,.36,1),transform .28s cubic-bezier(.22,1,.36,1),visibility 0s linear .28s; }
.site-header .primary-nav.is-open .navigation-panel { visibility:visible; opacity:1; pointer-events:auto; transform:translateY(0); transition-delay:0s; }
.site-header .primary-nav .navigation-panel .menu-item:is(:hover,:focus-within) { background:#e9f5ea; }
@media(prefers-reduced-motion:reduce) { .site-header .primary-nav .navigation-panel,.site-header .primary-nav .navigation-panel .sub-menu { transition:none; } }
.site-header .primary-nav .navigation-panel .menu-item { display:flex; flex-wrap:wrap; min-height:44px; width:100%; }
.site-header .primary-nav .navigation-panel .menu-item > :is(a,span,.acrylic-navigation-action) { display:block; flex:1; min-width:0; width:auto; height:auto; padding:12px 8px; font-size:15px; white-space:normal; overflow-wrap:anywhere; }
.site-header .primary-nav .navigation-panel .acrylic-submenu-toggle { flex:0 0 44px; width:44px; height:44px; }
.site-header .primary-nav .navigation-panel .sub-menu { display:flex; position:static; flex-basis:100%; width:100%; min-width:0; height:0; overflow:hidden; visibility:hidden; opacity:0; pointer-events:none; margin:0; padding:0 0 0 12px; border:0; border-left:1px solid var(--line); box-shadow:none; transform:translateY(-4px); transition:height .28s cubic-bezier(.22,1,.36,1),opacity .2s ease,transform .28s cubic-bezier(.22,1,.36,1),visibility 0s linear .28s; }
.site-header .primary-nav .navigation-panel .menu-item.is-open > .sub-menu { visibility:visible; opacity:1; pointer-events:auto; transform:translateY(0); transition-delay:0s; }
.site-header .primary-nav .navigation-panel .menu-item-has-children::after { display:none; }
.site-header .primary-nav .navigation-panel .acrylic-submenu-toggle::before { transform:translate(-50%,-50%) rotate(45deg); }
.site-header .primary-nav .navigation-panel .menu-item.is-open > .acrylic-submenu-toggle::before { transform:translate(-50%,-30%) rotate(225deg); }
@media(max-width:760px) {
 .site-header { gap:12px; }
 .site-header .header-actions { margin-left:0; }
 .site-header .primary-nav .navigation-panel { left:0; right:0; width:100%; min-width:0; max-width:none; max-height:calc(100dvh - 112px); }
}


/* 栏目列表页与通用内容页。 */
.content-banner { position:relative; padding:clamp(54px,7vw,96px) 0; color:#fff; background:linear-gradient(110deg,#073f34,#155f45 70%,#2e7b57); overflow:hidden; }
.content-banner::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(3,43,35,.2),rgba(255,255,255,.04)); pointer-events:none; }
.content-banner .wrap { position:relative; z-index:1; }
.content-banner .eyebrow { color:#b7e3b0; }
.content-banner h1 { max-width:880px; margin:0 0 14px; color:#fff; font-size:clamp(42px,5.2vw,74px); line-height:1; }
.content-banner p:last-child { max-width:720px; margin:0; color:#e0ede8; font-size:18px; line-height:1.55; }
.content-shell { display:grid; grid-template-columns:minmax(0,1fr) minmax(250px,320px); gap:clamp(34px,5vw,72px); align-items:start; padding-block:clamp(48px,6vw,82px); }
.archive-main,.content-entry { min-width:0; }
.archive-shell .ac-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.ac-card { border:1px solid var(--line); background:#fff; transition:transform .2s ease,box-shadow .2s ease; }
.ac-card:hover { transform:translateY(-3px); box-shadow:0 16px 34px rgba(7,45,38,.1); }
.ac-card a { display:block; color:inherit; text-decoration:none; }
.ac-card img { width:100%; aspect-ratio:4/3; object-fit:cover; background:#eef3ef; }
.ac-card-copy { padding:20px; }
.ac-card-copy h2 { margin:0 0 10px; font-size:25px; line-height:1.15; }
.ac-card-copy p { color:var(--muted); line-height:1.6; }
.content-entry { padding:0; font-size:17px; line-height:1.8; }
.content-entry > :first-child { margin-top:0; }
.content-entry h2 { margin-top:1.7em; font-size:clamp(28px,3vw,40px); line-height:1.15; }
.content-entry h3 { margin-top:1.5em; font-size:clamp(22px,2.3vw,30px); }
.content-entry figure,.content-entry .wp-block-image { margin-block:34px; }
.content-entry img { border-radius:2px; }
.content-sidebar { position:sticky; top:104px; display:grid; gap:22px; }
.sidebar-panel,.sidebar-quote { padding:24px; border:1px solid var(--line); background:#f8fbf8; }
.sidebar-panel h2,.sidebar-quote h2 { margin:0 0 14px; font-size:22px; }
.sidebar-panel ul { list-style:none; margin:0; padding:0; }
.sidebar-panel li + li { border-top:1px solid var(--line); }
.sidebar-panel a { display:block; padding:11px 0; color:#174d3c; font-weight:650; }
.sidebar-quote { background:#eaf5eb; }
.sidebar-quote p { color:#49645e; line-height:1.55; }
.sidebar-quote .button { width:100%; min-height:46px; padding-inline:16px; }
.navigation.pagination { margin-top:34px; }
@media(max-width:900px) {
 .content-shell { grid-template-columns:1fr; }
 .content-sidebar { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:620px) {
 .archive-shell .ac-grid,.content-sidebar { grid-template-columns:1fr; }
 .content-banner { padding:48px 0; }
 .content-banner h1 { font-size:clamp(38px,12vw,54px); }
 .content-entry { font-size:16px; }
}
