/* ===== CASE DETAIL LAYOUT ===== */
.detail-wrap{max-width:1200px;margin:0 auto;padding:0 48px}
.detail-sec{padding:80px 0}
.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,380px);gap:56px;align-items:start}
.detail-main{min-width:0}
.detail-main-img{border-radius:var(--r);overflow:hidden;box-shadow:var(--sh-l);margin-bottom:36px}
.detail-main-img img{width:100%;display:block;vertical-align:middle}
.detail-section-t{font-size:17px;font-weight:800;color:var(--dark);margin-bottom:18px;display:flex;align-items:center;gap:10px}
.detail-section-t::before{content:"";display:block;width:4px;height:18px;background:var(--blue);border-radius:2px;flex-shrink:0}
.detail-desc{font-size:14px;color:var(--text-2);line-height:2;margin-bottom:28px}
.detail-desc p+p{margin-top:12px}
.detail-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px}
.detail-tag{font-size:13px;padding:6px 16px;background:var(--blue-bg);color:var(--blue);border-radius:50px;font-weight:500;border:1px solid rgba(24,77,196,.12)}
.detail-sidebar{position:sticky;top:90px;min-width:0}
.sidebar-card{background:#fff;border-radius:var(--r);box-shadow:var(--sh-m);border:1px solid var(--border);padding:28px;margin-bottom:22px}
.sidebar-card-t{font-size:15px;font-weight:800;color:var(--dark);margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--cream-d)}
.sidebar-info-list{display:flex;flex-direction:column;gap:13px}
.sidebar-info-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;font-size:13px}
.sidebar-info-item .lbl{color:var(--text-3);flex-shrink:0;min-width:56px}
.sidebar-info-item .val{color:var(--text);font-weight:600;text-align:right;line-height:1.4;word-break:break-word}
.sidebar-services{display:flex;flex-wrap:wrap;gap:7px;margin-top:6px}
.srv-tag{font-size:12px;padding:5px 13px;background:var(--cream);color:var(--text-2);border-radius:50px;border:1px solid var(--border)}
/* 侧栏同一位置：有外链则「访问网站」按钮；否则展示小程序二维码 */
.sidebar-visit{margin-top:18px}
.sidebar-visit-btn{width:100%;justify-content:center;padding:12px 16px;font-size:14px;gap:8px;border-radius:50px}
.sidebar-visit-ico{font-size:16px;line-height:1}
.sidebar-visit--applet{text-align:center}
.sidebar-applet-lbl{font-size:12px;color:var(--text-3);font-weight:600;margin-bottom:12px;letter-spacing:.02em}
.sidebar-applet-imgwrap{display:inline-flex;padding:12px;background:#fafafa;border:1px solid var(--border);border-radius:var(--r-s);box-shadow:var(--sh)}
.sidebar-applet-img{display:block;width:140px;height:140px;max-width:100%;object-fit:contain;border-radius:8px}
.sidebar-cta{background:linear-gradient(135deg,var(--blue),var(--blue-l));border-radius:var(--r);padding:28px;text-align:center;margin-bottom:22px}
.sidebar-cta-t{font-size:16px;font-weight:800;color:#fff;margin-bottom:8px;line-height:1.4}
.sidebar-cta-sub{font-size:13px;color:rgba(255,255,255,.75);margin-bottom:20px;line-height:1.7}
.cta-btn-w{display:block;padding:13px 0;background:#fff;color:var(--blue);border-radius:50px;font-size:14px;font-weight:700;transition:var(--tr);cursor:pointer;border:none;width:100%;text-align:center}
.cta-btn-w:hover{background:rgba(255,255,255,.9);transform:translateY(-2px)}
.cta-tel{font-size:20px;font-weight:900;color:#fff;letter-spacing:2px;margin-top:14px}
/* 浏览更多案例：与参考稿一致，左箭头 + 右侧标签/标题两行，圆角卡片、浅灰分割线、悬停浅蓝底 */
.prev-next-card{
  background:#fff;
  border-radius:var(--r);
  box-shadow:var(--sh);
  border:1px solid var(--border);
  overflow:hidden;
  min-width:0;
  width:100%;
  box-sizing:border-box;
}
.prev-next-card-t{
  font-size:13px;
  font-weight:700;
  color:var(--text-2);
  padding:14px 18px;
  border-bottom:1px solid #eee;
  background:#fafafa;
}
.pn-item{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:16px 18px;
  transition:background-color .2s ease,color .2s ease;
  cursor:pointer;
  min-width:0;
  text-decoration:none;
  color:inherit;
  border-top:1px solid #eee;
}
.prev-next-card-t + .pn-item{border-top:none}
.pn-item:hover{background:#f0f7ff}
.pn-item:hover .pn-arrow{color:var(--blue)}
.pn-item--disabled{
  cursor:default;
  opacity:.55;
  pointer-events:none;
}
.pn-item--disabled:hover{background:transparent}
.pn-arrow{
  font-size:18px;
  line-height:1.4;
  color:#b0b4bc;
  flex-shrink:0;
  width:20px;
  margin-top:2px;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  transition:color .2s ease;
}
.pn-info{flex:1;min-width:0;text-align:left}
.pn-dir{
  font-size:11px;
  color:var(--text-3);
  margin-bottom:6px;
  line-height:1.3;
  letter-spacing:.02em;
}
.pn-title{
  font-size:14px;
  font-weight:700;
  color:var(--dark);
  line-height:1.45;
  word-break:break-word;
  overflow-wrap:break-word;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.pn-back{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:14px 18px;
  font-size:13px;
  font-weight:600;
  color:var(--blue);
  transition:var(--tr);
  width:100%;
  box-sizing:border-box;
  text-align:center;
  border-top:1px solid #eee;
  text-decoration:none;
}
.pn-back:hover{background:#f0f7ff}
.process-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-bottom:14px}
.process-step{text-align:center;position:relative}
.process-step+.process-step::before{content:"→";position:absolute;left:-12px;top:22px;font-size:18px;color:var(--blue-l);opacity:.5}
.ps-num{width:48px;height:48px;border-radius:50%;background:var(--blue-bg);border:2px solid rgba(24,77,196,.2);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:900;color:var(--blue);margin:0 auto 10px}
.ps-title{font-size:13px;font-weight:700;color:var(--dark);margin-bottom:4px}
.ps-desc{font-size:11px;color:var(--text-3);line-height:1.6}

/* 后台编辑器详情 */
.case-details-body{font-size:15px;line-height:2;color:var(--text-2);margin-bottom:28px}
.case-details-body h2,.case-details-body h3{color:var(--dark);margin:28px 0 12px;line-height:1.4}
.case-details-body h2{font-size:20px;font-weight:800;padding-left:12px;border-left:4px solid var(--blue)}
.case-details-body h3{font-size:17px;font-weight:700}
.case-details-body p{margin-bottom:16px}
/*.case-details-body img{max-width:100%;height:auto;border-radius:var(--r-s);margin:20px 0;box-shadow:var(--sh)}*/
.case-details-body img{display:block;max-width:100%;height:auto;border-radius:var(--r-s);margin:20px auto;box-shadow:var(--sh)}

.case-details-body ul,.case-details-body ol{padding-left:22px;margin-bottom:18px}
.case-details-body ul{list-style:disc}
.case-details-body ol{list-style:decimal}
.case-details-body li{margin-bottom:8px}

/* ===== QUOTE / CTA（与 news_details 一致，供 quotation_proposal 使用） ===== */
.quote-sec{background:linear-gradient(rgba(20,56,180,.88),rgba(14,40,136,.92)),url(/img/comp.png) center/cover no-repeat;padding:100px 0;position:relative;overflow:hidden}
.quote-sec::before{content:"";position:absolute;top:-180px;right:-180px;width:600px;height:600px;border-radius:50%;background:rgba(255,255,255,.07);filter:blur(80px);pointer-events:none}
.quote-sec::after{content:"";position:absolute;bottom:-120px;left:-60px;width:400px;height:400px;border-radius:50%;background:rgba(0,0,0,.12);filter:blur(70px);pointer-events:none}
.quote-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;position:relative;z-index:1}
.q-left h2{font-size:38px;font-weight:900;color:#fff;line-height:1.25;margin-bottom:18px}
.q-left p{font-size:15px;color:rgba(255,255,255,.82);line-height:2;margin-bottom:28px}
.q-tel-lbl{font-size:11px;color:rgba(255,255,255,.5);letter-spacing:2px;margin-bottom:6px}
.q-tel{font-size:32px;font-weight:900;color:#fff;letter-spacing:2px}
.q-card{background:rgba(255,255,255,.97);border-radius:var(--r);padding:36px}
.q-card-h{font-size:17px;font-weight:700;color:var(--dark);margin-bottom:22px;line-height:1.4}
.q-checks{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.q-chk{display:inline-flex;align-items:center;gap:7px;padding:7px 16px;border:1.5px solid var(--border);border-radius:50px;font-size:13px;font-weight:500;color:var(--text-2);cursor:pointer;transition:var(--tr)}
.q-chk:hover{border-color:var(--blue);color:var(--blue)}
.q-chk input{accent-color:var(--blue)}
.q-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.q-field label{display:block;font-size:12px;font-weight:600;color:var(--text-2);margin-bottom:7px}
.q-input{width:100%;padding:12px 15px;border:1.5px solid var(--border);border-radius:10px;font-size:14px;color:var(--text);background:#fff;transition:var(--tr)}
.q-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(24,77,196,.1)}
.q-captcha-row{display:flex;gap:10px;margin-bottom:18px;align-items:flex-end}
.q-captcha-row .q-field{flex:1;margin:0}
.q-captcha-box{display:flex;gap:8px;align-items:center;flex-shrink:0}
.captcha-img{height:44px;border-radius:10px;overflow:hidden;border:1.5px solid var(--border);display:flex;align-items:center;cursor:pointer;background:linear-gradient(135deg,#e8effc,#c7d7fb);min-width:110px;user-select:none}
.captcha-img canvas{display:block}
.captcha-refresh{font-size:12px;color:rgba(255,255,255,.75);cursor:pointer;white-space:nowrap;font-weight:500;transition:color .2s}
.captcha-refresh:hover{color:#fff}
.q-submit{width:100%;padding:14px;background:var(--dark);color:#fff;border:none;border-radius:50px;font-size:15px;font-weight:700;letter-spacing:2px;cursor:pointer;transition:var(--tr)}
.q-submit:hover{background:#222;transform:translateY(-2px)}

@media(max-width:1200px){
  .detail-wrap{padding:0 32px}
  .detail-grid{gap:36px}
  .process-grid{grid-template-columns:repeat(3,1fr);gap:20px}
  .process-step+.process-step::before{display:none}
}
@media(max-width:1024px){
  .detail-grid{grid-template-columns:1fr}
  .detail-sidebar{position:static}
  .quote-grid{gap:48px}
}
@media(max-width:768px){
  .detail-wrap{padding:0 18px}
  .detail-sec{padding:52px 0}
  .quote-grid{grid-template-columns:1fr;gap:36px}
  .q-fields{grid-template-columns:1fr}
  .process-grid{grid-template-columns:repeat(2,1fr);gap:16px}
}
@media(max-width:480px){
  .q-captcha-row{flex-direction:column;align-items:stretch}
  .q-captcha-box{justify-content:space-between}
}
