/* Chinese reading sizes shared by the catalogue and preview toolbar. */
body{font-family:"Microsoft YaHei","PingFang SC","Noto Sans CJK SC","Source Han Sans SC",Arial,sans-serif;font-size:16px;line-height:1.6;-webkit-text-size-adjust:100%;text-size-adjust:100%}
input,button{font-family:inherit}
.hero-copy p{font-size:16px;line-height:1.8;color:#746c64}
.hero-brand .brand-caption{font-size:14px;color:#786e65}
.search input,.search button,.button{font-size:16px}
.search input::placeholder{color:#82776d}
.sidebar h2{font-size:18px}
.sidebar h2 span{font-size:12px;color:#857a70}
.categories a{font-size:14px;line-height:1.7;color:#6f665e}
.sidebar-note{font-size:14px;color:#746b62}
.results{height:auto;min-height:60px;gap:16px}
.results p,.sort{font-size:14px}
.results p{color:#746c64}
.card-title{font-size:16px;line-height:1.6;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;min-height:3.2em;overflow:hidden;overflow-wrap:anywhere}
.card-meta{font-size:14px;color:#746b62}
.case-number>span,.preview-title .preview-number>span{font-size:14px;color:#6f665e}
.copy-id{font-size:14px;padding:5px 7px}
.card-bottom{font-size:14px;gap:8px;flex-wrap:wrap}
.card-bottom>span{font-size:14px;color:#746b62}
.preview-cta{font-size:16px}
.pagination a,.pagination>span{font-size:14px;min-height:42px;display:flex;align-items:center;justify-content:center}
footer{font-size:14px;color:#746b62;flex-wrap:wrap;gap:12px;line-height:1.8}
.back,.button.outline,.devices button{font-size:14px}
.back,.button.outline{color:#74675c}
.preview-toolbar{height:auto;min-height:84px;padding-top:12px;padding-bottom:12px}
.preview-title strong{font-size:16px;line-height:1.6}
.preview-number{flex-wrap:wrap}
.floating-button{font-size:13px;width:68px;min-height:70px}
.service-panel-heading{font-size:16px}
.service-panel p{font-size:14px;color:#746b62}
@media(max-width:700px){
body{font-size:15px}
.hero .hero-brand{font-size:20px;line-height:1.4}
.hero-brand .brand-caption{font-size:12px;line-height:1.6}
.hero-copy h1{font-size:20px;line-height:1.5}
.hero-copy p{font-size:14px;line-height:1.8}
.search input,.search button{font-size:14px}
.search input{height:40px}
.search{gap:6px}
.search svg{flex-shrink:0;width:18px;height:18px}
.search button{padding:11px 12px}
.categories a{font-size:14px;line-height:1.6;padding:10px 13px}
.results{min-height:58px;gap:10px}
.results h2{font-size:20px}
.results p{font-size:14px}
.sort{font-size:13px;padding:8px}
.card-title{font-size:15px;line-height:1.6}
.card-meta{margin:10px 0 12px}
.case-number{gap:4px}
.case-number>span{font-size:14px}
.copy-id{font-size:12px;padding:5px 4px}
.card-bottom,.card-bottom>span{font-size:13px;line-height:1.6}
.card-bottom{padding:12px 0;gap:6px}
.card-bottom>a span{margin-left:2px}
.status-dot{margin-right:3px}
.pagination a,.pagination>span{font-size:14px;padding:9px 11px}
footer{font-size:13px}
.preview-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;padding:12px}
.preview-toolbar .back,.preview-title{grid-column:1 / -1}
.preview-title strong{font-size:16px;white-space:normal;overflow-wrap:anywhere}
.preview-title .preview-number>span{font-size:14px}
.preview-number .copy-id{font-size:13px;padding:5px 7px}
.devices{margin-left:0;justify-self:start}
.devices button{font-size:14px;padding:8px 14px}
.preview-toolbar .button.outline{font-size:14px;padding:8px 10px;justify-self:end}
.floating-button{font-size:12px;width:56px;min-height:62px}
.service-panel{width:min(250px,calc(100vw - 92px))}
}
@media(max-width:360px){.card-title{min-height:0}.card-bottom,.card-bottom>span{font-size:14px}.copy-id{font-size:14px;padding:5px 7px}}

/* Reserve a clear lane beside the fixed action buttons. */
.layout{padding-right:112px}
footer{padding-right:max(112px,calc((100vw - 1336px)/2))}
@media(min-width:701px) and (max-width:900px){.cards{grid-template-columns:1fr}}
.category-toggle{display:none}
@media(max-width:700px){
.category-toggle{position:fixed;top:36px;right:12px;z-index:130;display:flex;flex-direction:column;justify-content:center;gap:3px;width:44px;height:44px;padding:11px 10px;border:1px solid #e9dfd5;border-radius:10px;background:#fff;box-shadow:0 4px 16px #35251a1a}
.category-toggle span{display:block;height:2px;border-radius:2px;background:var(--accent)}
.hero{padding-right:68px}
.sidebar{margin-bottom:0}
.categories{display:none}
body.category-open{overflow:hidden}
body.category-open .category-toggle{border-color:transparent;box-shadow:none;background:transparent}
body.category-open .category-toggle span{position:absolute;left:12px;right:12px;top:21px;margin:0}
body.category-open .category-toggle span:nth-child(1){transform:rotate(45deg)}
body.category-open .category-toggle span:nth-child(2),body.category-open .category-toggle span:nth-child(3){opacity:0}
body.category-open .category-toggle span:nth-child(4){transform:rotate(-45deg)}
body.category-open .categories{display:flex;flex-direction:column;position:fixed;top:88px;left:0;right:0;width:auto;z-index:120;height:calc(100dvh - 88px);max-height:none;overflow:auto;gap:0;margin:0;padding:8px 0 24px;border:0;border-top:1px solid #ededed;border-radius:0;background:#fff;box-shadow:none}
body.category-open .categories::before{content:none}
body.category-open .categories a{display:flex;align-items:center;justify-content:space-between;width:auto;margin:0;padding:8px 18px;border:0;border-bottom:1px solid #ededed;border-radius:0;background:transparent;color:#222;font-size:14px;font-weight:400;white-space:normal;line-height:1.35}
body.category-open .categories a::after{content:"";flex-shrink:0;width:8px;height:8px;margin-left:16px;border-top:1.5px solid #c4c4c4;border-right:1.5px solid #c4c4c4;transform:rotate(45deg)}
body.category-open .categories a.selected{border:0;border-bottom:1px solid #ededed;background:transparent;color:var(--accent);font-weight:600}
}
@media(max-width:700px){
.layout{padding-right:18px}
footer{padding-right:18px}
.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px}
.card-content{padding:10px 10px 0}
.card-title{min-height:0}
.card-meta{margin:6px 0 8px}
.case-number{flex-wrap:wrap;gap:4px}
.card-bottom{flex-wrap:wrap;row-gap:4px;padding:8px 0}
.card-bottom,.card-bottom>span{font-size:12px}
.copy-id{font-size:12px;padding:4px 6px}
.results{flex-wrap:wrap}
}

/* Matching title sizes and equal-height brand/introduction columns. */
.hero-intro{--hero-title-size:26px;--hero-detail-line:28.8px;align-items:stretch}
.hero .hero-brand{font-size:var(--hero-title-size)}
.hero-brand .brand-text{align-self:stretch;display:grid;grid-template-rows:1fr auto;row-gap:8px}
.hero-brand .brand-name{font-size:var(--hero-title-size);font-weight:700;line-height:1.4;align-self:center}
.hero-brand .brand-caption{font-size:16px;line-height:var(--hero-detail-line);margin:0}
.hero-copy{display:grid;grid-template-rows:1fr auto;row-gap:8px}
.hero-copy h1{font-size:var(--hero-title-size);font-weight:700;line-height:1.4;align-self:center;margin:0}
.hero-copy p{font-size:16px;line-height:var(--hero-detail-line);margin:0}
@media(max-width:700px){
.hero-intro{--hero-title-size:20px;--hero-detail-line:25.2px}
.hero-brand .brand-caption{font-size:13px}
.hero-copy p{font-size:14px}
}

/* Wider, slightly denser industry navigation on desktop only. */
@media(min-width:701px){
.layout{grid-template-columns:205px minmax(0,1fr)}
.categories a{padding-top:9px;padding-bottom:9px;line-height:1.6}
}
@media(min-width:1101px){.layout{grid-template-columns:235px minmax(0,1fr)}}

/* Remove reserved blank title space and tighten card metadata spacing. */
.card-title{min-height:0}
.card-meta{margin:6px 0 8px}
.card-bottom{padding:10px 0}

/* Symmetric desktop margins with a wider industry column. */
@media(min-width:701px){
.layout{padding-left:88px;padding-right:88px;grid-template-columns:225px minmax(0,1fr)}
.floating-tools{right:12px}
.floating-button{width:60px;min-height:66px;font-size:12px}
}
@media(min-width:1101px){.layout{grid-template-columns:260px minmax(0,1fr)}}

/* Fill the introduction's height with the logo's visible artwork. */
@media(min-width:701px){
.hero .hero-brand{position:relative;width:128px;flex:0 0 128px;align-self:stretch;overflow:hidden}
.hero .hero-brand .brand-logo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
}

/* Company label restored in the upper right of every case thumbnail. */
.case-brand-tag{position:absolute;top:12px;right:12px;z-index:2;padding:5px 9px;border-radius:5px;background:#fffffff2;color:var(--accent);font-size:14px;font-weight:500;line-height:1.5;box-shadow:0 2px 8px #35251a14;pointer-events:none}
@media(max-width:700px){.case-brand-tag{top:10px;right:10px;font-size:13px;padding:4px 8px}}

.case-brand-tag{font-size:10px;font-weight:400;color:#827b73;background:#ffffffe6;padding:3px 6px;box-shadow:none}

/* Compact, regular-weight case titles, with full names available on hover. */
.card-title{font-size:14px;font-weight:400;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.7;min-height:0;-webkit-line-clamp:unset}

/* Uniform text size for the case card number and action rows. */
.card .card-meta,.card .case-number>span,.card .copy-id,.card .card-bottom,.card .card-bottom>span,.card .card-bottom>a,.card .card-bottom>a span{font-size:12px}

/* Keep the contact panel inside narrow and short viewports. */
.service-panel{max-height:calc(100dvh - 210px);overscroll-behavior:contain}
@media(max-width:700px){.service-panel{width:min(250px,calc(100vw - 108px));max-height:calc(100dvh - 182px - env(safe-area-inset-bottom))}}

/* In landscape, use the screen height rather than the button's anchor. */
@media(max-height:500px){.service-panel{position:fixed;right:84px;bottom:16px;max-height:calc(100dvh - 32px)}}
@media(max-height:500px) and (max-width:700px){.service-panel{right:78px;max-height:calc(100dvh - 32px)}}

/* WeChat contact card below desktop industry navigation. */
.sidebar-contact{padding:16px 12px;background:#fff;text-align:center}
.sidebar-contact strong{display:block;color:var(--ink);font-size:16px;font-weight:600;margin-bottom:10px}
.sidebar-contact img{display:block;width:100%;height:auto}
.sidebar-contact p{font-size:13px;line-height:1.7;margin:10px 0 0;color:#746b62}

/* Accessible copy feedback shared by the catalogue and preview. */
.copy-status{position:fixed;left:50%;top:50%;z-index:1000;display:flex;align-items:center;justify-content:center;gap:12px;width:max-content;max-width:calc(100vw - 40px);height:auto;padding:18px 28px;margin:0;overflow:visible;clip-path:none;white-space:normal;border:1px solid #f0dece;border-radius:14px;background:#fffffff7;color:#3c332b;font-size:16px;font-weight:500;line-height:1.5;box-shadow:0 12px 40px #56341c26;opacity:0;transform:translate(-50%,-45%) scale(.96);pointer-events:none;transition:opacity .18s ease,transform .18s ease}
.copy-status::before{content:'✓';display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;border-radius:50%;background:#fff0e2;color:var(--accent);font-size:20px;font-weight:600}
.copy-status.is-visible{opacity:1;transform:translate(-50%,-50%) scale(1)}
.copy-status.is-error::before{content:'!';background:#fff0ed;color:#b8442a}
@media(prefers-reduced-motion:reduce){.copy-status{transition:none}}
