/* 证书制作公司 - PbootCMS 自适应主题 */
:root{
  --ink:#071522;--ink-2:#112737;--text:#2d414e;--muted:#687d89;
  --teal:#0bb8a6;--teal-dark:#07897d;--blue:#1374e8;
  --bg:#fff;--soft:#f4f8fa;--line:#dce7eb;
  --container:1200px;--radius:18px;--shadow:0 18px 55px rgba(7,21,34,.09);
  --ease:cubic-bezier(.2,.65,.25,1)
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;color:var(--text);background:var(--bg);font:16px/1.75 "Microsoft YaHei","PingFang SC","Noto Sans CJK SC",Arial,sans-serif;-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit}
button{cursor:pointer}
h1,h2,h3,h4,p,ul,ol,figure,blockquote{margin-top:0}
h1,h2,h3,h4{color:var(--ink);line-height:1.26;letter-spacing:-.02em}
h1{font-size:clamp(2.25rem,5vw,4.7rem);font-weight:800}
h2{font-size:clamp(1.75rem,3.2vw,2.8rem);font-weight:750}
h3{font-size:1.2rem}
:focus-visible{outline:3px solid rgba(19,116,232,.4);outline-offset:3px}
.container{width:min(calc(100% - 40px),var(--container));margin-inline:auto}
.skip-link{position:fixed;left:16px;top:-100px;z-index:9999;padding:10px 18px;background:var(--ink);color:#fff;border-radius:0 0 10px 10px}
.skip-link:focus{top:0}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* 顶部导航 */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.92);border-bottom:1px solid transparent;backdrop-filter:blur(16px);transition:box-shadow .25s,border-color .25s}
.site-header.is-scrolled{border-color:var(--line);box-shadow:0 8px 30px rgba(7,21,34,.07)}
.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:78px;gap:24px}
.brand{display:flex;align-items:center;gap:11px;flex:none}
.brand img{width:184px;height:46px;object-fit:contain}
.primary-nav ul{display:flex;align-items:center;gap:6px;margin:0;padding:0;list-style:none}
.primary-nav a{display:block;padding:12px 13px;font-size:15px;font-weight:650;color:var(--ink-2);border-radius:10px;transition:.2s}
.primary-nav a:hover,.primary-nav a.active{color:var(--teal-dark);background:#edf9f7}
.header-actions{display:flex;align-items:center;gap:12px;flex:none}
.menu-toggle{display:none;width:44px;height:44px;align-items:center;justify-content:center;flex-direction:column;gap:5px;border:1px solid var(--line);border-radius:12px;background:#fff}
.menu-toggle span{display:block;width:19px;height:2px;background:var(--ink);border-radius:2px;transition:.25s}
.menu-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:10px 24px;border:1px solid transparent;border-radius:999px;font-size:15px;font-weight:700;line-height:1.2;transition:transform .2s,background .2s,border-color .2s}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--teal);color:#fff;box-shadow:0 10px 24px rgba(11,184,166,.25)}
.btn-primary:hover{background:var(--teal-dark)}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:#163348}
.btn-ghost{border-color:rgba(255,255,255,.38);color:#fff;background:rgba(255,255,255,.08)}
.btn-outline{border-color:var(--line);color:var(--ink);background:#fff}
.btn-outline:hover{border-color:var(--teal);color:var(--teal-dark)}
.link-arrow{display:inline-flex;align-items:center;gap:8px;color:var(--teal-dark);font-weight:750}
.link-arrow::after{content:"→";transition:transform .2s}
.link-arrow:hover::after{transform:translateX(4px)}
.contact-links{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.contact-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;font:inherit;font-size:13px;font-weight:750;line-height:1.2;cursor:pointer;transition:transform .2s,background .2s,border-color .2s,color .2s}
.contact-link__icon{flex:0 0 auto;width:20px;height:20px;fill:currentColor;color:var(--contact-icon-color,currentColor)}
.contact-link__label{white-space:nowrap}
.contact-link--wechat{--contact-icon-color:#07897d;color:#08786c;background:#ebfaf7;border-color:#c8eee8}
.contact-link--qq{--contact-icon-color:#1677d2;color:#175eae;background:#edf4ff;border-color:#d1e1fb}
.contact-link--qq.is-copied{--contact-icon-color:#07897d}
.contact-link:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(7,21,34,.09)}
.contact-link.is-copied{color:#08786c;background:#dcf8f3;border-color:#a7e5dc}
.contact-copy-result{display:flex;flex:1 0 100%;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:8px 12px;border:1px solid #d1e1fb;border-radius:10px;background:#edf4ff;color:#175eae;font-size:12px;line-height:1.45;text-align:left}
.contact-copy-result__number{padding:0;border:0;background:none;color:inherit;font:inherit;font-weight:850;line-height:1.45;overflow-wrap:anywhere;cursor:pointer}
.contact-copy-result__number:hover{text-decoration:underline}
.contact-copy-result__status{color:#08766a;font-size:11px;font-weight:700}

/* 首页轮播 */
.hero{position:relative;min-height:680px;display:grid;align-items:center;overflow:hidden;background:var(--ink);color:#fff}
.hero-slides,.hero-slide{position:absolute;inset:0}
.hero-slide{opacity:0;visibility:hidden;transition:opacity .8s var(--ease),visibility .8s}
.hero-slide.is-active{opacity:1;visibility:visible}
.hero-slide img{width:100%;height:100%;object-fit:cover;transform:scale(1.03)}
.hero-slide.is-active img{animation:heroZoom 8s ease-out forwards}
.hero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(4,15,24,.92) 0%,rgba(4,15,24,.73) 47%,rgba(4,15,24,.12) 78%),linear-gradient(0deg,rgba(7,21,34,.7),transparent 45%);pointer-events:none}
.hero-content{position:relative;z-index:2;padding:120px 0 96px;max-width:800px}
.eyebrow{display:inline-flex;align-items:center;gap:9px;margin-bottom:22px;color:#83eadf;font-size:13px;font-weight:750;letter-spacing:.16em;text-transform:uppercase}
.eyebrow::before{content:"";width:30px;height:2px;background:currentColor}
.hero h1{color:#fff;margin-bottom:24px;max-width:800px;text-wrap:balance}
.hero-copy{font-size:clamp(1rem,1.7vw,1.2rem);max-width:670px;margin-bottom:34px;color:rgba(255,255,255,.78)}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:54px}
.hero-stats{display:flex;flex-wrap:wrap;gap:34px}
.hero-stat strong{display:block;font-size:1.75rem;color:#fff;line-height:1.2}
.hero-stat span{font-size:13px;color:rgba(255,255,255,.62)}
.hero-controls{position:absolute;z-index:3;right:max(20px,calc((100vw - var(--container))/2));bottom:52px;display:flex;align-items:center;gap:10px}
.hero-dot{width:34px;height:4px;padding:0;border:0;border-radius:4px;background:rgba(255,255,255,.32);transition:.25s}
.hero-dot.is-active{width:62px;background:var(--teal)}
@keyframes heroZoom{to{transform:scale(1)}}

/* 通用区块 */
.section{padding:112px 0}
.section-soft{background:var(--soft)}
.section-dark{background:var(--ink);color:rgba(255,255,255,.72)}
.section-dark h2,.section-dark h3{color:#fff}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:46px}
.section-head>div{max-width:740px}
.section-kicker{margin-bottom:12px;color:var(--teal-dark);font-size:13px;font-weight:800;letter-spacing:.15em;text-transform:uppercase}
.section-head h2{margin-bottom:14px}
.section-head p{margin-bottom:0;color:var(--muted);font-size:17px}
.section-dark .section-kicker{color:#68dfd2}
.section-dark .section-head p{color:rgba(255,255,255,.62)}
.section-actions{flex:none;padding-bottom:4px}
.grid{display:grid;gap:24px}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}

/* 卡片 */
.media-card{display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s,border-color .3s}
.media-card:hover{transform:translateY(-6px);border-color:#c7dcdf;box-shadow:var(--shadow)}
.media-card__image{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:#dfeaed}
.media-card__image img{width:100%;height:100%;object-fit:cover;transition:transform .55s var(--ease)}
.media-card:hover .media-card__image img{transform:scale(1.045)}
.media-card__tag{position:absolute;left:14px;top:14px;padding:5px 11px;border-radius:999px;background:rgba(7,21,34,.82);color:#fff;font-size:12px;backdrop-filter:blur(8px)}
.media-card__body{display:flex;flex:1;flex-direction:column;padding:25px 24px 24px}
.media-card__body h3{margin-bottom:10px;font-size:1.18rem}
.media-card__body h3 a:hover{color:var(--teal-dark)}
.media-card__body p{display:-webkit-box;margin-bottom:20px;overflow:hidden;color:var(--muted);font-size:14px;line-height:1.75;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.media-card__meta{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:auto;padding-top:17px;border-top:1px solid #edf2f4;color:#8798a1;font-size:13px}
.media-card__meta .link-arrow{font-size:13px}
.media-card__meta--end{justify-content:flex-end}
.news-card{display:grid;grid-template-columns:156px 1fr;gap:0;border:1px solid var(--line);border-radius:15px;overflow:hidden;background:#fff;transition:.25s}
.news-card:hover{border-color:#bdd7d7;box-shadow:0 12px 36px rgba(7,21,34,.07)}
.news-card__image{min-height:138px;background:#dfeaed;overflow:hidden}
.news-card__image img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.news-card:hover .news-card__image img{transform:scale(1.04)}
.news-card__body{padding:20px 22px;display:flex;flex-direction:column;justify-content:center}
.news-card__date{color:var(--teal-dark);font-size:12px;font-weight:750;letter-spacing:.06em}
.news-card h3{margin:7px 0 8px;font-size:1.05rem;line-height:1.5}
.news-card p{display:-webkit-box;margin:0;overflow:hidden;color:var(--muted);font-size:13px;-webkit-line-clamp:2;-webkit-box-orient:vertical}

/* 关于 */
.about-layout{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:72px;align-items:center}
.about-media{position:relative}
.about-media img{width:100%;border-radius:26px;box-shadow:var(--shadow)}
.about-badge{position:absolute;right:-22px;bottom:32px;width:150px;padding:22px;border-radius:18px;background:var(--teal);color:#fff;box-shadow:0 17px 35px rgba(11,184,166,.28)}
.about-badge strong{display:block;font-size:2.25rem;line-height:1}
.about-badge span{font-size:13px}
.about-copy h2{margin-bottom:22px}
.about-copy>p{color:var(--muted);font-size:16px}
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:30px 0 34px}
.stat{padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff}
.stat strong{display:block;color:var(--ink);font-size:1.55rem;line-height:1.2}
.stat span{font-size:12px;color:var(--muted)}
.feature-grid{margin-top:34px}
.feature{border-top:1px solid var(--line);padding-top:22px}
.feature-icon{display:grid;place-items:center;width:44px;height:44px;margin-bottom:16px;border-radius:12px;background:#e9f8f5;color:var(--teal-dark);font-size:20px;font-weight:800}
.feature h3{margin-bottom:8px;font-size:1.05rem}
.feature p{margin:0;color:var(--muted);font-size:14px}

/* 案例 */
.case-grid .media-card__image{aspect-ratio:16/11}
.case-grid .media-card:first-child{grid-column:span 2}
.case-grid .media-card:first-child .media-card__image{aspect-ratio:16/8.6}
.case-grid .media-card:first-child .media-card__body h3{font-size:1.55rem}
.case-card__type{color:var(--teal-dark);font-size:12px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}

/* 新闻 */
.news-home-grid{grid-template-columns:1.4fr .6fr}
.news-feature{position:relative;display:flex;min-height:420px;align-items:flex-end;padding:36px;color:#fff;border-radius:22px;overflow:hidden;background:var(--ink)}
.news-feature::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(4,15,24,.9),rgba(4,15,24,.06) 72%)}
.news-feature img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.news-feature__body{position:relative;z-index:1;max-width:680px}
.news-feature h3{color:#fff;font-size:clamp(1.5rem,2.8vw,2.2rem);margin:10px 0 12px}
.news-feature p{max-width:600px;margin:0;color:rgba(255,255,255,.72)}
.news-side{display:flex;flex-direction:column;gap:16px}
.news-side .news-card{grid-template-columns:120px 1fr;background:#fff}
.news-side .news-card__image{min-height:116px}
.news-side .news-card__body{padding:16px}
.news-side .news-card h3{font-size:.98rem}
.news-side .news-card p{display:none}

/* CTA */
.cta-band{position:relative;overflow:hidden;background:linear-gradient(115deg,#09202f 0%,#0a3140 58%,#0a5360 100%);color:#fff}
.cta-band::before,.cta-band::after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.1)}
.cta-band::before{width:520px;height:520px;right:8%;top:-310px}
.cta-band::after{width:300px;height:300px;right:22%;bottom:-230px;background:rgba(11,184,166,.12)}
.cta-inner{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:40px;padding:68px 0}
.cta-inner h2{color:#fff;margin-bottom:10px}
.cta-inner p{margin:0;color:rgba(255,255,255,.63)}
.cta-actions{display:flex;flex-wrap:wrap;gap:12px;flex:none}
.cta-actions .contact-link{min-height:46px;padding:10px 22px;font-size:15px;color:#fff;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.32)}
.cta-actions .contact-link:hover{background:rgba(255,255,255,.15)}

/* 内页头部与面包屑 */
.page-hero{position:relative;padding:88px 0 66px;background:radial-gradient(circle at 82% 0%,rgba(11,184,166,.16),transparent 35%),linear-gradient(120deg,#071522,#0c2a38);color:#fff;overflow:hidden}
.page-hero::after{content:"";position:absolute;right:-80px;bottom:-220px;width:480px;height:480px;border:1px solid rgba(255,255,255,.09);border-radius:50%}
.page-hero .container{position:relative;z-index:1}
.page-hero h1,.page-hero-title{margin:0 0 14px;color:#fff;font-size:clamp(2.1rem,5vw,4rem);font-weight:700;line-height:1.12}
.page-hero p{max-width:680px;margin:0;color:rgba(255,255,255,.65);font-size:17px}
.breadcrumbs{padding:18px 0;border-bottom:1px solid var(--line);background:#fff;color:#81929b;font-size:13px}
.breadcrumbs a:hover{color:var(--teal-dark)}
.breadcrumbs span[aria-hidden]{margin:0 8px;color:#b9c6cc}
.crumbs-inner{display:flex;align-items:center;flex-wrap:wrap;gap:2px}

/* 列表页 */
.listing{padding:70px 0 100px}
.listing-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:42px;align-items:start}
.listing-main{min-width:0}
.listing-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}
.listing-head h2{margin:0;font-size:1.5rem}
.listing-head span{color:var(--muted);font-size:13px}
.sidebar{display:flex;flex-direction:column;gap:22px;position:sticky;top:102px}
.panel{border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}
.panel__head{padding:19px 21px;border-bottom:1px solid var(--line);background:#f9fbfc}
.panel__head h2,.panel__head h3{margin:0;font-size:1.05rem}
.panel__body{padding:20px}
.side-nav{list-style:none;margin:0;padding:8px}
.side-nav a{display:flex;align-items:center;justify-content:space-between;min-height:46px;padding:10px 14px;border-radius:9px;font-size:14px;font-weight:650}
.side-nav a:hover,.side-nav a.active{background:#edf9f7;color:var(--teal-dark)}
.side-nav a::after{content:"›";font-size:20px;line-height:1}
.contact-panel{position:relative;padding:27px;border-radius:18px;background:var(--ink);color:rgba(255,255,255,.68)}
.contact-panel h3{color:#fff;margin-bottom:12px}
.contact-panel p{margin-bottom:18px;font-size:13px}
.contact-panel .contact-links{margin-bottom:18px}
.contact-panel .contact-link{color:#fff;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18)}
.contact-panel .contact-link--wechat{--contact-icon-color:#65e4d6}
.contact-panel .contact-link--qq{--contact-icon-color:#8dc8ff}
.contact-panel .contact-link:hover{background:rgba(255,255,255,.14)}
.contact-panel .btn{width:100%}
.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.product-grid .media-card__image{aspect-ratio:1/1}
.product-grid .media-card__body{padding:21px}
.product-grid .media-card__body p{-webkit-line-clamp:2}
.case-listing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.case-listing-grid .media-card__image{aspect-ratio:16/10}

/* 分页 */
.pagination-wrap{margin-top:40px}
.pagination{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:0;list-style:none}
.pagination a,.pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:42px;padding:8px 13px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--muted);font-size:14px}
.pagination a:hover,.pagination .active{background:var(--ink);border-color:var(--ink);color:#fff}
.empty-state{padding:80px 30px;border:1px dashed #c9d9de;border-radius:18px;text-align:center;color:var(--muted);background:#fbfdfd}

/* 详情页 */
.detail{padding:62px 0 100px}
.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:48px;align-items:start}
.article{min-width:0;background:#fff}
.article-header{padding-bottom:27px;margin-bottom:31px;border-bottom:1px solid var(--line)}
.article-header h1{font-size:clamp(2rem,4vw,3.35rem);margin-bottom:19px;letter-spacing:-.035em}
.article-meta{display:flex;flex-wrap:wrap;gap:10px 22px;color:var(--muted);font-size:13px}
.article-meta span{display:inline-flex;align-items:center;gap:7px}
.article-meta svg{width:15px;height:15px;stroke:currentColor;fill:none}
.article-body,.content{color:#304650;font-size:16px;line-height:1.95;overflow-wrap:anywhere}
.article-body>*:last-child,.content>*:last-child{margin-bottom:0}
.article-body h2,.content h2{margin:2.1em 0 .7em;font-size:1.65rem}
.article-body h3,.content h3{margin:1.8em 0 .6em;font-size:1.3rem}
.article-body p,.content p{margin:0 0 1.25em}
.article-body a,.content a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.article-body img,.content img{height:auto;margin:1.5em auto;border-radius:12px}
.article-body ul,.article-body ol,.content ul,.content ol{padding-left:1.5em;margin:0 0 1.4em}
.article-body li,.content li{margin-bottom:.45em}
.article-body blockquote,.content blockquote{margin:1.6em 0;padding:17px 22px;border-left:4px solid var(--teal);background:#f1faf8;border-radius:0 12px 12px 0;color:#45616a}
.article-body table,.content table{display:block;width:100%;border-collapse:collapse;overflow-x:auto}
.article-body th,.article-body td,.content th,.content td{padding:11px 13px;border:1px solid var(--line);text-align:left}
.article-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:36px;padding-top:24px;border-top:1px solid var(--line)}
.article-tags a{padding:5px 12px;border-radius:999px;background:var(--soft);color:var(--muted);font-size:12px}
.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:38px}
.post-nav a{padding:18px 20px;border:1px solid var(--line);border-radius:13px;font-size:13px;color:var(--muted);transition:.2s}
.post-nav a:hover{border-color:var(--teal);color:var(--teal-dark)}
.post-nav strong{display:block;margin-top:5px;color:var(--ink);font-size:14px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.post-nav a:last-child{text-align:right}
.product-detail{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:54px;align-items:start;margin-bottom:55px}
.product-gallery{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:22px;background:var(--soft)}
.product-gallery>img{width:100%;aspect-ratio:1/1;object-fit:cover}
.product-gallery__badge{position:absolute;left:18px;top:18px;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.9);font-size:12px;color:var(--teal-dark);font-weight:750;backdrop-filter:blur(8px)}
.product-info h1{font-size:clamp(2rem,3.6vw,3rem);margin-bottom:16px}
.product-lead{color:var(--muted);font-size:16px;margin-bottom:24px}
.spec-list{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0 0 28px;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.spec-list div{padding:13px 15px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.spec-list dt{color:var(--muted);font-size:12px}
.spec-list dd{margin:4px 0 0;color:var(--ink);font-weight:650;font-size:14px}
.product-actions{display:flex;flex-wrap:wrap;gap:10px}
.product-body{border-top:1px solid var(--line);padding-top:42px}
.product-body>h2{margin-bottom:28px;font-size:1.7rem}
.case-detail-header{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:52px;align-items:center;margin-bottom:42px}
.case-detail-header h1{font-size:clamp(2rem,4vw,3.6rem);margin-bottom:18px}
.case-detail-header p{color:var(--muted);font-size:16px}
.case-cover{overflow:hidden;border-radius:22px;background:var(--soft)}
.case-cover img{width:100%;aspect-ratio:16/11;object-fit:cover}

/* 关于、联系 */
.about-page{padding:78px 0 105px}
.about-page-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:52px;align-items:start}
.about-page .content{font-size:16px}
.about-aside{padding:30px;border-radius:20px;background:var(--soft);border:1px solid var(--line)}
.about-aside img{border-radius:14px;margin-bottom:24px}
.about-aside h2{font-size:1.35rem;margin-bottom:13px}
.about-aside p{color:var(--muted);font-size:14px}
.value-list{display:grid;gap:1px;margin:22px 0;background:var(--line)}
.value-list div{padding:16px;background:#fff}
.value-list strong{display:block;color:var(--ink);font-size:14px}
.value-list span{font-size:12px;color:var(--muted)}
.contact-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:48px;align-items:start;padding:76px 0 104px}
.contact-intro h2{font-size:clamp(1.8rem,3vw,2.6rem);margin-bottom:16px}
.contact-intro>p{color:var(--muted);margin-bottom:30px}
.contact-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.contact-card{padding:21px;border:1px solid var(--line);border-radius:14px;background:#fff}
.contact-card span{display:block;margin-bottom:6px;color:var(--muted);font-size:12px}
.contact-card strong,.contact-card a{display:block;color:var(--ink);font-size:15px;font-weight:700;line-height:1.6;overflow-wrap:anywhere}
.contact-card a:hover{color:var(--teal-dark)}
.contact-card small{display:block;margin-top:7px;color:var(--muted);font-size:11px;line-height:1.55}
.contact-card__action{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:40px;margin-top:10px;padding:8px 13px;border:1px solid #bcdedb;border-radius:10px;background:#effaf8;color:#08786c;font-size:12px;font-weight:750;line-height:1.35;text-align:center;transition:.2s}
.contact-card__action:hover{border-color:var(--teal);background:#e3f8f4;color:var(--teal-dark)}
.contact-card__action:disabled{cursor:wait;opacity:.72}
.contact-card__action.is-copied{border-color:#86d8cb;background:#d9f7f1;color:#08766a}
.contact-card--wechat{text-align:center}
.contact-card--wechat span{text-align:left}
.contact-card--wechat strong{font-size:14px}
.contact-card--qq{display:flex;flex-direction:column;justify-content:center;text-align:center}
.contact-card--qq>span{text-align:left}
.wechat-qr{width:220px;height:220px;max-width:100%;margin-inline:auto;padding:8px;border:1px solid var(--line);border-radius:12px;background:#fff;object-fit:contain}
.form-card{padding:34px;border-radius:22px;background:var(--soft);border:1px solid var(--line)}
.form-card h2{margin-bottom:8px;font-size:1.65rem}
.form-card>p{margin-bottom:26px;color:var(--muted);font-size:14px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:flex;flex-direction:column;gap:7px}
.field-full{grid-column:1/-1}
.field label{font-size:13px;font-weight:700;color:var(--ink)}
.field input,.field textarea{width:100%;border:1px solid #cfdee3;border-radius:11px;background:#fff;padding:12px 14px;color:var(--ink);outline:none;transition:.2s}
.field input{height:48px}
.field textarea{min-height:130px;resize:vertical}
.field input:focus,.field textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(11,184,166,.12)}
.form-row{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-top:20px;flex-wrap:wrap}
.form-note{font-size:12px;color:var(--muted)}
.form-status{display:none;margin-top:14px;padding:11px 14px;border-radius:9px;font-size:13px}
.form-status.is-success{display:block;background:#e8f8f3;color:#08705d}
.form-status.is-error{display:block;background:#fff0ef;color:#a33933}
.code-row{display:grid;grid-template-columns:1fr 120px;gap:10px}
.code-row img{width:120px;height:48px;border-radius:9px;object-fit:cover;cursor:pointer;background:#fff}
.map-card{grid-column:1/-1;margin-top:6px;padding:22px;border-radius:14px;background:var(--ink);color:rgba(255,255,255,.7)}
.map-card strong{display:block;color:#fff;margin-bottom:6px}
.contact-content{margin-top:50px}

/* 搜索 */
.search-page{padding:76px 0 100px}
.search-form{display:flex;gap:10px;max-width:700px;margin-bottom:42px}
.search-form input{flex:1;min-width:0;height:52px;padding:0 18px;border:1px solid #cfdee3;border-radius:12px;background:#fff}
.search-form button{flex:none}
.search-results{display:grid;gap:16px}
.search-result{display:grid;grid-template-columns:190px 1fr;gap:22px;padding:18px;border:1px solid var(--line);border-radius:15px;background:#fff;transition:.2s}
.search-result:hover{border-color:#bdd7d7;box-shadow:0 10px 30px rgba(7,21,34,.06)}
.search-result__image{aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:var(--soft)}
.search-result__image img{width:100%;height:100%;object-fit:cover}
.search-result h2{font-size:1.15rem;margin:5px 0 8px}
.search-result p{color:var(--muted);font-size:13px;margin-bottom:8px}
.search-result time{font-size:12px;color:#8a9ca5}
mark{background:#dff7f2;color:#08705d}

/* 页脚 */
.site-footer{background:#06121d;color:rgba(255,255,255,.57)}
.footer-main{display:grid;grid-template-columns:1.4fr .65fr .65fr 1fr;gap:48px;padding:70px 0 55px}
.footer-brand img{width:190px;height:48px;object-fit:contain;object-position:left;margin-bottom:19px}
.footer-brand p{max-width:330px;font-size:13px;line-height:1.85}
.footer-col h3{margin-bottom:19px;color:#fff;font-size:14px;letter-spacing:.06em}
.footer-links{display:grid;gap:11px;margin:0;padding:0;list-style:none}
.footer-links a{font-size:13px;transition:.2s}
.footer-links a:hover{color:#77e4d7}
.footer-contact{display:grid;gap:12px;font-size:13px}
.footer-contact a,.footer-contact span{overflow-wrap:anywhere}
.footer-contact strong{display:block;margin-bottom:1px;color:#fff;font-size:19px}
.footer-contact .contact-links{gap:7px}
.footer-contact .contact-link{color:#fff;background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.17)}
.footer-contact .contact-link:hover{background:rgba(255,255,255,.13)}
.footer-contact .contact-link--wechat{--contact-icon-color:#77e4d7;color:#77e4d7}
.footer-contact .contact-link--qq{--contact-icon-color:#b8d4ff;color:#b8d4ff}
.footer-contact .contact-copy-result{border-color:rgba(119,228,215,.24);background:rgba(255,255,255,.08);color:#d9f7f2}
.footer-contact .contact-copy-result__status{color:#77e4d7}
.footer-bottom{display:flex;justify-content:space-between;gap:24px;padding:21px 0 24px;border-top:1px solid rgba(255,255,255,.09);font-size:12px}
.footer-bottom a:hover{color:#77e4d7}
body.is-modal-open{overflow:hidden}
.contact-modal{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:20px}
.contact-modal[hidden]{display:none!important}
.contact-modal__backdrop{position:absolute;inset:0;background:rgba(4,15,24,.72);backdrop-filter:blur(5px)}
.contact-modal__dialog{position:relative;z-index:1;width:min(100%,390px);max-height:calc(100dvh - 40px);overflow:auto;padding:34px 32px 28px;border:1px solid rgba(255,255,255,.6);border-radius:24px;background:#fff;box-shadow:0 28px 90px rgba(4,15,24,.28);text-align:center;animation:modalIn .22s var(--ease)}
.contact-modal__dialog h2{margin-bottom:20px;font-size:1.65rem}
.contact-modal__close{position:absolute;top:13px;right:13px;display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:var(--soft);color:var(--ink);font-size:24px;line-height:1}
.contact-modal__close:hover{background:#e9f2f4}
.contact-modal__qr{display:grid;justify-items:center;gap:12px;min-height:220px;margin:0 auto 16px;color:var(--muted);font-size:13px}
.contact-modal__wechat-id-wrap{display:grid;justify-items:center;gap:5px;max-width:100%}
.contact-modal__wechat-id{display:inline-flex;align-items:center;justify-content:center;max-width:100%;padding:8px 14px;border:1px solid #b9e8e1;border-radius:999px;background:#effaf8;color:#08766a;font:inherit;font-size:13px;font-weight:800;line-height:1.4;overflow-wrap:anywhere;cursor:pointer}
.contact-modal__wechat-id:hover{background:#e1f8f3;border-color:#7ed8c9}
.contact-modal__wechat-id:disabled{cursor:default;color:var(--muted);background:var(--soft);border-color:var(--line)}
.contact-modal__wechat-id-status{color:#08766a;font-size:12px;font-weight:700;line-height:1.45;text-align:center}
.contact-modal__wechat-id-status.is-error{color:var(--danger,#b42318)}
.contact-modal__note{margin:0;color:var(--muted);font-size:13px}
.contact-modal__status{min-height:24px;margin:8px 0 0;color:var(--teal-dark);font-size:12px;line-height:1.6}
@keyframes modalIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
.back-to-top{position:fixed;right:22px;bottom:22px;z-index:80;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:var(--ink);color:#fff;box-shadow:0 8px 25px rgba(7,21,34,.24);opacity:0;visibility:hidden;transform:translateY(12px);transition:.25s}
.back-to-top.is-visible{opacity:1;visibility:visible;transform:none}

/* 动效 */
.js .reveal{opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js .reveal.is-visible{opacity:1;transform:none}
.js .reveal[data-delay="1"]{transition-delay:.08s}
.js .reveal[data-delay="2"]{transition-delay:.16s}
.js .reveal[data-delay="3"]{transition-delay:.24s}

@media(max-width:1080px){
  .primary-nav a{padding-inline:9px;font-size:14px}
  .grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-main{grid-template-columns:1.25fr .75fr .75fr;gap:34px}
  .footer-contact{grid-column:1/-1}
  .listing-layout,.detail-grid{grid-template-columns:minmax(0,1fr) 270px;gap:30px}
  .product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .about-layout{gap:46px}
  .about-badge{right:14px}
}
@media(max-width:860px){
  .header-inner{min-height:68px}
  .brand img{width:164px;height:41px}
  .menu-toggle{display:flex}
  .header-actions>.btn{display:none}
  .primary-nav{position:absolute;left:20px;right:20px;top:calc(100% + 7px);display:none;padding:12px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:0 20px 45px rgba(7,21,34,.13)}
  .primary-nav.is-open{display:block}
  .primary-nav ul{display:grid;gap:2px}
  .primary-nav a{padding:12px 14px;font-size:15px}
  .hero{min-height:620px}
  .hero-content{padding:94px 0 85px}
  .hero-stat strong{font-size:1.45rem}
  .section{padding:82px 0}
  .section-head{display:block;margin-bottom:34px}
  .section-actions{margin-top:20px}
  .about-layout,.about-page-grid,.contact-grid,.case-detail-header{grid-template-columns:1fr;gap:38px}
  .news-home-grid{grid-template-columns:1fr}
  .news-side{display:grid;grid-template-columns:1fr 1fr}
  .listing-layout,.detail-grid{grid-template-columns:1fr}
  .sidebar{position:static;display:grid;grid-template-columns:1fr 1fr}
  .contact-panel{grid-column:1/-1}
  .product-detail{grid-template-columns:1fr;gap:32px}
  .case-detail-header .case-cover{order:-1}
  .footer-main{grid-template-columns:1.5fr .8fr .8fr}
  .cta-inner{align-items:flex-start;flex-direction:column}
}
@media(max-width:620px){
  .container{width:min(calc(100% - 30px),var(--container))}
  h1{font-size:2.2rem}
  .hero{min-height:640px}
  .hero h1{font-size:2.3rem}
  .hero-copy{font-size:.96rem}
  .hero-stats{gap:21px}
  .hero-controls{left:15px;right:auto;bottom:28px}
  .section{padding:68px 0}
  .section-head p{font-size:15px}
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
  .case-grid .media-card:first-child{grid-column:auto}
  .case-grid .media-card:first-child .media-card__image{aspect-ratio:16/11}
  .news-side{grid-template-columns:1fr}
  .news-feature{min-height:390px;padding:25px}
  .cta-inner{padding:56px 0}
  .page-hero{padding:65px 0 48px}
  .page-hero p{font-size:15px}
  .listing,.detail,.search-page{padding:45px 0 72px}
  .sidebar{grid-template-columns:1fr}
  .product-grid,.case-listing-grid{grid-template-columns:1fr}
  .listing-head{align-items:flex-start;flex-direction:column;gap:5px}
  .article-header h1{font-size:2rem}
  .post-nav{grid-template-columns:1fr}
  .post-nav a:last-child{text-align:left}
  .product-gallery>img{aspect-ratio:4/3}
  .case-detail-header h1{font-size:2.2rem}
  .about-page{padding:55px 0 76px}
  .contact-grid{padding:55px 0 75px}
  .contact-cards,.form-grid{grid-template-columns:1fr}
  .wechat-qr{width:190px;height:190px}
  .contact-modal{padding:14px}
  .contact-modal__dialog{max-height:calc(100dvh - 28px);padding:31px 22px 24px}
  .contact-modal__qr{min-height:190px}
  .field-full{grid-column:auto}
  .form-card{padding:24px 19px}
  .search-form{flex-direction:column}
  .search-form button{width:100%}
  .search-result{grid-template-columns:110px 1fr;gap:15px;padding:13px}
  .footer-main{grid-template-columns:1fr 1fr;gap:32px 24px;padding:55px 0 40px}
  .footer-brand,.footer-contact{grid-column:1/-1}
  .footer-bottom{flex-direction:column;gap:9px}
  .back-to-top{right:14px;bottom:14px}
  .code-row{grid-template-columns:1fr 105px}
  .code-row img{width:105px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .js .reveal{opacity:1;transform:none}
}

/* Search and error pages */
.search-panel{margin-bottom:42px;padding:26px 30px;border:1px solid var(--line);background:#fff}
.search-panel label{display:block;margin-bottom:10px;color:var(--muted);font-size:.85rem;letter-spacing:.08em}
.search-row{display:flex;gap:12px}
.search-row input{flex:1;min-width:0;height:48px;padding:0 16px;border:1px solid #d8d3ca;background:#faf8f4;color:var(--ink)}
.search-row input:focus{outline:2px solid rgba(183,138,66,.25);border-color:var(--gold)}
.search-results .media-card__image{aspect-ratio:16/10}
.error-page{display:grid;min-height:70vh;place-items:center;padding:160px 0 100px;background:radial-gradient(circle at 50% 35%,#173043 0,#071522 60%)}
.error-inner{max-width:760px;text-align:center;color:#fff}
.error-code{font-family:Georgia,serif;color:var(--gold-light);font-size:clamp(6rem,18vw,12rem);font-weight:700;line-height:.8;opacity:.9}
.error-inner h1{font-size:clamp(2rem,4vw,3.4rem);margin:24px 0 16px}
.error-inner>p:not(.section-kicker){max-width:620px;margin:0 auto 30px;color:rgba(255,255,255,.72)}
.error-inner .hero-actions{justify-content:center}
@media(max-width:640px){.search-row{flex-direction:column}.search-panel{padding:20px}.search-results{grid-template-columns:1fr}}


/* 手机端快捷咨询 */
.mobile-contact-bar{display:none}
@media(max-width:767px){
  body{padding-bottom:calc(62px + env(safe-area-inset-bottom))!important}
  .mobile-contact-bar{position:fixed;right:0;bottom:0;left:0;z-index:90;display:grid;grid-template-columns:1fr 1fr;height:calc(62px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#fff;box-shadow:0 -8px 28px rgba(4,15,24,.18)}
  .mobile-contact-bar__item{display:flex;align-items:center;justify-content:center;gap:9px;min-width:0;min-height:62px;padding:7px 12px;border:0;color:#fff;font:700 15px/1.2 "Microsoft YaHei","PingFang SC",sans-serif;letter-spacing:.02em;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:filter .18s,transform .12s}
  .mobile-contact-bar__item:active{filter:brightness(.9);transform:translateY(1px)}
  .mobile-contact-bar__item:focus-visible{outline:3px solid #f0c16d;outline-offset:-4px}
  .mobile-contact-bar__item--wechat{background:linear-gradient(135deg,#0aa18f,#07766b)}
  .mobile-contact-bar__item--qq{border-left:1px solid rgba(255,255,255,.18);background:linear-gradient(135deg,#145d86,#0a3d5b)}
  .mobile-contact-bar__icon{flex:0 0 auto;width:25px;height:25px;fill:currentColor}
  .mobile-contact-toast{position:fixed;right:12px;bottom:calc(74px + env(safe-area-inset-bottom));left:12px;z-index:120;max-width:430px;margin:0 auto;padding:17px 48px 17px 18px;border:1px solid rgba(255,255,255,.14);border-radius:15px;background:rgba(7,21,34,.97);box-shadow:0 16px 44px rgba(0,0,0,.28);color:#fff;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(12px);transition:opacity .2s,visibility .2s,transform .2s}
  .mobile-contact-toast.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:none}
  .mobile-contact-toast__label{display:block;color:#aebbc7;font-size:12px;font-weight:700;letter-spacing:.12em}
  .mobile-contact-toast__number{display:block;min-width:0;margin-top:3px;padding:0;border:0;background:none;color:#fff;font:800 23px/1.4 "Microsoft YaHei","PingFang SC",sans-serif;text-align:left;overflow-wrap:anywhere;cursor:pointer}
  .mobile-contact-toast__number:hover,.mobile-contact-toast__number:focus-visible{color:#8ce8dc;text-decoration:underline}
  .mobile-contact-toast__status{display:block;margin-top:5px;color:#77e4d7;font-size:13px;font-weight:750}
  .mobile-contact-toast__status.is-error{color:#ffaaa2}
  .mobile-contact-toast__close{position:absolute;top:7px;right:7px;display:grid;place-items:center;width:34px;height:34px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:24px;line-height:1;cursor:pointer}
  .mobile-contact-toast__close:hover{background:rgba(255,255,255,.16)}
  .back-to-top{bottom:calc(76px + env(safe-area-inset-bottom))}
}
@media print{.mobile-contact-bar,.mobile-contact-toast{display:none!important}}
