
:root{--bg:#F6F4EE;--card:#fff;--soft:#ECEFE8;--sand:#F2E7D7;--green:#21463B;--green2:#17352D;--mid:#3C685A;--orange:#C56B3D;--gold:#C6A15B;--title:#1F2D28;--text:#3E4A45;--muted:#66716C;--hint:#78817D;--border:#D9DED8;--footer:#183129;--ft:#F4F3ED;--shadow:0 8px 24px rgba(31,45,40,.06)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;font-size:16px;line-height:1.8;overflow-x:hidden}a{color:var(--green);text-decoration-thickness:1px;text-underline-offset:3px}a:hover{color:var(--orange)}img{display:block;max-width:100%;height:auto;object-fit:contain}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.skip-link{position:absolute;left:16px;top:-80px;background:#fff;padding:10px 14px;z-index:999}.skip-link:focus{top:8px}.site-header{background:rgba(246,244,238,.98);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50}.header-inner{height:70px;max-width:1180px;margin:auto;padding:0 32px;display:flex;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:0}.brand-logo{height:32px;width:auto;max-width:165px}.brand-icon{display:none;height:28px;width:auto;max-width:28px}.brand-text{display:flex;flex-direction:column;line-height:1.2;white-space:nowrap}.brand-text strong{font-size:16px;color:var(--title)}.brand-text small{font-size:11px;letter-spacing:.08em;color:var(--muted)}.desktop-nav{display:flex;gap:20px;margin-left:auto}.desktop-nav a,.header-actions a{font-size:15px;text-decoration:none;white-space:nowrap}.desktop-nav a[aria-current=page]{color:var(--orange);font-weight:700}.header-actions{display:flex;align-items:center;gap:10px}.menu-toggle,.menu-close,.button-link{min-height:44px;padding:9px 14px;border:1px solid var(--green);border-radius:9px;background:transparent;color:var(--green);font:inherit;cursor:pointer}.menu-toggle:hover,.menu-close:hover{background:var(--soft)}.button-link{display:inline-flex;align-items:center;text-decoration:none}.button-link.primary{background:var(--green);color:#fff;border-color:var(--green)}.mobile-actions{display:none;margin-left:auto;gap:8px;align-items:center}.mobile-actions a{min-height:44px;display:inline-flex;align-items:center}.reading-menu{background:#fff;border-bottom:1px solid var(--border)}.reading-menu[hidden]{display:none!important}.menu-inner{max-width:1180px;margin:auto;padding:24px 32px 28px}.desktop-menu{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}.desktop-menu section{min-width:0}.desktop-menu h2,.mobile-menu h2{font-size:15px;margin:0 0 10px;color:var(--green2)}.desktop-menu a{display:block;text-decoration:none;padding:5px 0;color:var(--title)}.desktop-menu a span{display:block;font-size:13px;color:var(--muted);line-height:1.5}.mobile-menu{display:none}.site-main{max-width:1180px;margin:auto;padding:0 32px}.page-head{max-width:880px;padding:42px 0 20px}.breadcrumb{font-size:14px;color:var(--muted);margin-bottom:10px}.breadcrumb a{color:var(--muted)}.eyebrow{display:inline-block;font-size:14px;color:var(--orange);font-weight:700;margin-bottom:7px}h1,h2,h3{color:var(--title);margin-top:0}h1{font-size:34px;line-height:1.25;margin-bottom:16px}h2{font-size:25px;line-height:1.35;margin-bottom:14px}h3{font-size:19px;line-height:1.45;margin-bottom:10px}.lead{font-size:17px;color:var(--muted);max-width:780px;margin:0}.section{padding:56px 0}.section+.section{border-top:1px solid rgba(217,222,216,.75)}.longread{max-width:760px}.wide{max-width:960px}.longread p,.wide p{margin:0 0 18px}.content-image{max-width:420px;max-height:260px;margin:24px 0;padding:8px;border:1px solid var(--border);background:#fff;border-radius:12px}.feature-image{max-width:430px;max-height:300px;padding:8px;border:1px solid var(--border);background:#fff;border-radius:12px}.mobile-visual{max-width:240px;max-height:380px;padding:8px;border:1px solid var(--border);background:#fff;border-radius:12px}.hero-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(280px,5fr);gap:52px;align-items:center;min-height:390px;padding:54px 0}.hero-copy p{max-width:650px;margin:0 0 22px}.actions{display:flex;gap:12px;flex-wrap:wrap}.reading-lines{display:grid;grid-template-columns:1.4fr .8fr .8fr;gap:22px;align-items:start}.line-main,.line-small{padding:24px;border-top:4px solid var(--green);background:#fff;min-width:0}.line-small{margin-top:36px;border-top-color:var(--gold)}.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.72fr);gap:42px;align-items:start}.soft-panel{background:var(--soft);padding:24px;border-radius:16px}.sand-panel{background:var(--sand);padding:24px;border-radius:16px}.purpose-list{list-style:none;padding:0;margin:0}.purpose-list li{padding:12px 0;border-bottom:1px solid var(--border)}.editorial-pair{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(230px,.7fr);gap:38px}.editorial-pair .secondary-note{padding-top:72px}.lab-grid{display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:42px;align-items:start}.step-line{max-width:860px;margin:0;padding:0 0 0 28px;border-left:2px solid var(--gold)}.step-line li{padding:0 0 26px 18px}.topic-mix{display:grid;grid-template-columns:1.4fr repeat(3,.72fr);gap:18px;align-items:start}.topic-main{background:#fff;padding:24px;border-top:4px solid var(--orange)}.topic-short{padding:18px;border-top:1px solid var(--green)}.letter-wrap{max-width:900px;display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,300px);gap:36px;align-items:end}.link-strip{display:flex;gap:18px;flex-wrap:wrap;padding:22px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.numbered{counter-reset:item;padding:0;margin:0;list-style:none;max-width:900px}.numbered>li{counter-increment:item;display:grid;grid-template-columns:64px minmax(0,1fr);gap:20px;padding:25px 0;border-bottom:1px solid var(--border)}.numbered>li::before{content:"0" counter(item);font-size:22px;color:var(--orange);font-weight:700}.side-index{position:sticky;top:98px;padding:20px;border-left:2px solid var(--gold)}.side-index a{display:block;padding:5px 0}.definition-list{display:grid;grid-template-columns:160px minmax(0,1fr);gap:0 22px}.definition-list dt,.definition-list dd{padding:13px 0;border-bottom:1px solid var(--border)}.definition-list dt{font-weight:700;color:var(--title)}.definition-list dd{margin:0}.note-block{padding:20px 22px;border-left:4px solid var(--orange);background:#fff;margin:24px 0}.archive-group{padding:24px 0;border-bottom:1px solid var(--border)}.archive-group h2{font-size:21px}.archive-group a{display:block;padding:7px 0}.faq-item{padding:0 0 24px;margin:0 0 24px;border-bottom:1px solid var(--border)}.faq-item h2{font-size:19px;margin-bottom:8px}.mobile-product{display:grid;grid-template-columns:240px minmax(0,1fr);gap:46px;align-items:center}.site-footer{background:var(--footer);color:var(--ft);margin-top:64px}.footer-grid{max-width:1180px;margin:auto;padding:48px 32px;display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:28px}.site-footer h2{font-size:16px;color:#fff}.site-footer p{font-size:14px;color:#dfe7e1}.site-footer a{display:block;color:#f4f3ed;text-decoration:none;padding:3px 0;font-size:14px}.site-footer a:hover{color:#f2c989}.footer-bottom{max-width:1180px;margin:auto;padding:18px 32px;border-top:1px solid rgba(255,255,255,.15);display:flex;justify-content:space-between;gap:18px;font-size:14px}.mobile-bottom-nav{display:none}
@media(max-width:1024px){.header-inner{padding:0 22px}.desktop-nav{gap:12px}.desktop-nav a:nth-child(5){display:none}.site-main,.menu-inner{padding-left:22px;padding-right:22px}.hero-grid{gap:30px}.reading-lines{grid-template-columns:1.25fr .9fr}.line-small:last-child{grid-column:2}.topic-mix{grid-template-columns:1.2fr 1fr 1fr}.topic-short:last-child{grid-column:2/4}.footer-grid{grid-template-columns:1.3fr repeat(2,1fr)}}
@media(max-width:768px){.site-header{position:relative}.header-inner{height:60px;padding:0 16px}.brand-logo{display:none}.brand-icon{display:block;height:27px;width:auto;max-width:27px}.brand-text small{display:none}.brand-text strong{font-size:15px}.desktop-nav,.header-actions{display:none}.mobile-actions{display:flex}.desktop-menu{display:none}.mobile-menu{display:block;padding:16px}.mobile-menu .menu-close{margin-bottom:16px}.mobile-menu section{padding:10px 0;border-top:1px solid var(--border)}.mobile-menu section div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 16px}.mobile-menu a{text-decoration:none;min-height:44px;display:flex;align-items:center}.site-main{padding:0 16px}.page-head{padding:30px 0 16px}h1{font-size:28px}h2{font-size:22px}h3{font-size:18px}.section{padding:40px 0}.hero-grid,.reading-lines,.split,.editorial-pair,.lab-grid,.topic-mix,.letter-wrap,.mobile-product{grid-template-columns:1fr}.hero-grid{min-height:0;padding:38px 0;gap:26px}.feature-image{max-height:220px}.line-small,.editorial-pair .secondary-note{margin-top:0;padding-top:20px}.topic-short:last-child{grid-column:auto}.content-image{max-height:200px;width:auto;max-width:100%}.numbered>li{grid-template-columns:44px minmax(0,1fr);gap:10px}.side-index{position:static;margin-top:22px;border-left:0;border-top:2px solid var(--gold)}.definition-list{grid-template-columns:1fr}.definition-list dt{padding-bottom:2px}.definition-list dd{padding-top:0}.mobile-visual{max-width:190px;max-height:290px}.footer-grid{padding:38px 16px 84px;grid-template-columns:1fr 1fr}.footer-grid section:first-child{grid-column:1/-1}.footer-bottom{padding:16px 16px 84px;display:block}.mobile-bottom-nav{position:fixed;z-index:60;left:0;right:0;bottom:0;min-height:56px;padding-bottom:env(safe-area-inset-bottom);background:#fff;border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(4,1fr)}.mobile-bottom-nav a{display:flex;align-items:center;justify-content:center;min-height:56px;text-decoration:none;color:var(--text);font-size:15px}.mobile-bottom-nav a[aria-current=page]{color:var(--orange);font-weight:700}body{padding-bottom:calc(56px + env(safe-area-inset-bottom))}}
@media(max-width:390px){.mobile-menu section div{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.footer-grid section:first-child{grid-column:auto}}

/* ===== 2026-11 responsive overflow hardening ===== */
html,body{width:100%;max-width:100%;overflow-x:clip}
body{overflow-wrap:break-word;word-break:normal}
img,svg,video,canvas,iframe{max-width:100%;height:auto}
main,header,footer,section,article,aside,nav,div{min-width:0}
p,li,dd,dt,h1,h2,h3,h4,h5,h6,a,span,strong,small{overflow-wrap:anywhere}
pre,code{max-width:100%;white-space:pre-wrap;overflow-wrap:anywhere}
table{max-width:100%;width:100%;table-layout:fixed}
input,select,textarea,button{max-width:100%}
.content-image,.feature-image,.hero-visual img,.article-image img,.mobile-visual,.mobile-visual img,.small-visual,.small-visual img{width:auto;max-width:100%;height:auto}
.hero-visual,.article-image,.small-visual,.mobile-visual{max-width:100%;min-width:0}
.header-inner,.footer-inner,.footer-grid,.site-main,.wrap,.page-shell,.home-section,.menu-inner,.catalog-inner,.directory-inner{width:100%;max-width:1180px}
.desktop-nav,.main-nav,.header-actions,.mobile-actions{min-width:0}
@media(max-width:1100px){
  .header-inner{gap:14px}
  .desktop-nav,.main-nav{gap:12px}
  .desktop-nav a,.main-nav a,.header-actions a{font-size:14px}
}
@media(max-width:768px){
  html,body{overflow-x:hidden}
  .header-inner,.site-main,.wrap,.page-shell,.home-section,.hero,.menu-inner,.catalog-inner,.directory-inner,.footer-inner,.footer-grid{max-width:100%}
  .brand{max-width:calc(100% - 126px)}
  .brand-text{min-width:0;max-width:100%}
  .brand-text strong{display:block;white-space:normal;line-height:1.25}
  .mobile-actions{flex:0 0 auto}
  .mobile-actions a,.mobile-actions button,.catalog-toggle,.menu-toggle{white-space:nowrap}
  .hero-visual img,.feature-image,.content-image,.article-image img{max-width:min(100%,420px);margin-left:auto;margin-right:auto}
}
@media(max-width:390px){
  .brand{max-width:calc(100% - 108px)}
  .mobile-actions{gap:3px}
  .mobile-actions a,.mobile-actions button,.catalog-toggle,.menu-toggle{padding-left:7px;padding-right:7px;font-size:14px}
}

/* ===== H5 typography normalization ===== */
body{font-size:16px;line-height:1.78;-webkit-text-size-adjust:100%;text-size-adjust:100%}
.site-main p,.site-main li,.site-main dt,.site-main dd,.site-main blockquote{font-size:16px;line-height:1.78}
.site-main p,.site-main ul,.site-main ol,.site-main dl{margin-top:0}
.site-main p{margin-bottom:16px}
.page-head .lead{font-size:17px;line-height:1.7}
.site-main h1{font-size:34px;line-height:1.28;letter-spacing:0}
.site-main h2{font-size:25px;line-height:1.38;letter-spacing:0}
.site-main h3{font-size:19px;line-height:1.48;letter-spacing:0}
.button-link,.menu-toggle,.menu-close,.mobile-actions a,.mobile-bottom-nav a{font-size:15px;line-height:1.4}
@media(max-width:768px){
  body{font-size:16px;line-height:1.75}
  .site-main p,.site-main li,.site-main dt,.site-main dd,.site-main blockquote{font-size:16px;line-height:1.75}
  .site-main h1{font-size:28px;line-height:1.3}
  .site-main h2{font-size:22px;line-height:1.4}
  .site-main h3{font-size:18px;line-height:1.5}
  .page-head .lead{font-size:16px;line-height:1.72}
  .eyebrow,.breadcrumb{font-size:14px;line-height:1.55}
  .line-main,.line-small,.soft-panel,.sand-panel,.topic-main,.topic-short,.note-block{font-size:16px}
}
@media(max-width:390px){
  .site-main h1{font-size:27px}
  .site-main h2{font-size:21px}
}

/* 2026-11-03: fix implicit second grid track on narrow screens.
   The tablet rule positioned the last reading card in column 2.
   That placement must be reset when the layout becomes single-column. */
@media (max-width:768px) {
  .reading-lines {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:16px;
    width:100%;
  }
  .reading-lines > * {
    grid-column:1 / -1;
    width:100%;
    min-width:0;
    max-width:100%;
  }
  .reading-lines > .line-small:last-child {
    grid-column:1 / -1;
  }
  .line-main,.line-small {
    padding:20px 18px;
    overflow-wrap:break-word;
    word-break:normal;
  }
  .line-main h2,.line-small h3,
  .line-main p,.line-small p {
    white-space:normal;
    word-break:normal;
    overflow-wrap:break-word;
  }
}
