/* =============================================================================
   Sunvale Refined — 组件层
   ========================================================================== */

/* ---------- Header ---------- */
/* 头部原用 backdrop-filter:blur(10px) 做毛玻璃。
 * 2026-09-17 移除：该属性的合成开销随**视口面积**增长 —— 全宽 sticky 头部
 * 在 1690px 桌面端每帧都要重算背景模糊，在 390px 手机上几乎无成本。
 * 这正是「手机流畅、电脑卡」的典型特征。
 * 现在用接近不透明的白底（.97）达到同样的视觉分层，零合成成本。 */
.sv-header{position:sticky;top:0;z-index:9990;background:rgba(255,255,255,.97);
  border-bottom:1px solid var(--sv-line)}
.sv-header__row{display:flex;align-items:center;justify-content:space-between;gap:32px;min-height:var(--sv-header-h)}
.sv-brand{display:flex;align-items:center;gap:10px;font-family:var(--sv-font-display);
  font-weight:700;font-size:1.25rem;letter-spacing:-.02em;color:var(--sv-forest-900)}
.sv-brand svg{width:26px;height:26px;flex:none}
.sv-brand small{display:block;font-family:var(--sv-font-body);font-size:.6875rem;
  font-weight:400;color:var(--sv-ink-400);letter-spacing:0;line-height:1.2}
.sv-nav{display:flex;align-items:center;gap:26px}
.sv-nav a{font-size:.9375rem;font-weight:500;color:var(--sv-ink-600);padding:6px 0;
  border-bottom:2px solid transparent;white-space:nowrap}
.sv-nav a:hover,.sv-nav a[aria-current="page"]{color:var(--sv-forest-700);border-bottom-color:var(--sv-clay-500)}
.sv-header__actions{display:flex;align-items:center;gap:12px}
.sv-lang{display:inline-flex;align-items:center;gap:6px;background:none;border:0;
  font-size:.875rem;color:var(--sv-ink-600);cursor:pointer}
.sv-burger{display:none;width:42px;height:42px;border:1px solid var(--sv-line);border-radius:8px;
  background:var(--sv-white);color:var(--sv-forest-900);cursor:pointer;
  align-items:center;justify-content:center}
@media(max-width:1024px){.sv-nav{display:none}.sv-burger{display:inline-flex}}
@media(max-width:520px){.sv-header__actions .sv-btn--primary{display:none}}

/* 移动端抽屉 */
.sv-drawer{position:fixed;inset:0;z-index:99999;background:var(--sv-forest-900);
  color:var(--sv-white);padding:28px 24px;display:none;flex-direction:column;overflow-y:auto}
.sv-drawer.is-open{display:flex}
.sv-drawer a{color:var(--sv-white);font-family:var(--sv-font-display);font-size:1.5rem;
  padding:14px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.sv-drawer__close{align-self:flex-end;width:44px;height:44px;border-radius:8px;
  border:1px solid rgba(255,255,255,.4);background:none;color:var(--sv-white);
  font-size:1.25rem;cursor:pointer;margin-bottom:16px}

/* ---------- Hero ---------- */
.sv-hero{position:relative;min-height:620px;display:flex;align-items:center;
  background:var(--sv-forest-900);color:var(--sv-white);overflow:hidden}
.sv-hero__bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.55}
.sv-hero__scrim{position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(20,38,30,.94) 0%,rgba(20,38,30,.74) 46%,rgba(20,38,30,.30) 100%)}
.sv-hero__inner{position:relative;z-index:1;max-width:720px;padding:96px 0}
.sv-hero h1{margin:20px 0 24px;color:var(--sv-white)}
.sv-hero p{color:rgba(255,255,255,.8);font-size:1.0625rem;max-width:54ch}
.sv-hero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.sv-trustbar{border-top:1px solid rgba(255,255,255,.18);margin-top:52px;padding-top:22px;
  display:flex;flex-wrap:wrap;gap:14px 34px}
.sv-trustbar span{font-size:.8125rem;color:rgba(255,255,255,.72)}
.sv-trustbar b{color:var(--sv-white);font-family:var(--sv-font-mono)}
@media(max-width:768px){.sv-hero{min-height:auto}.sv-hero__inner{padding:64px 0}}

/* ---------- 卡片：分类 / 产品 / 文章 ---------- */
.sv-cat__media{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:var(--sv-r-card) var(--sv-r-card) 0 0;background:var(--sv-sand-200)}
.sv-cat__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--sv-ease)}
.sv-cat:hover .sv-cat__media img{transform:scale(1.04)}
.sv-cat__body{padding:22px 24px 26px}
.sv-cat__body p{font-size:.9375rem;margin:8px 0 0}
.sv-cat__meta{display:flex;justify-content:space-between;align-items:center;margin-top:18px;
  font-size:.8125rem;color:var(--sv-ink-400)}
.sv-cat__meta a{color:var(--sv-forest-700);font-weight:600}

.sv-prod__media{display:block;aspect-ratio:1/1;overflow:hidden;background:var(--sv-sand-100);
  border-radius:var(--sv-r-card) var(--sv-r-card) 0 0}
.sv-prod__media img{width:100%;height:100%;object-fit:cover;transition:transform .45s var(--sv-ease)}
.sv-prod:hover .sv-prod__media img{transform:scale(1.05)}
.sv-prod__body{padding:20px 22px 24px}
.sv-prod__body h3{margin:10px 0 6px;font-size:1.0625rem}
.sv-prod__sku{font-family:var(--sv-font-mono);font-size:.8125rem;color:var(--sv-ink-400)}
.sv-prod__mat{margin-top:12px;font-size:.875rem}
.sv-prod__row{display:flex;justify-content:space-between;align-items:center;gap:12px;
  margin-top:16px;padding-top:16px;border-top:1px solid var(--sv-line)}
.sv-prod__row .sv-mono{font-size:.8125rem}
.sv-prod__acts{display:flex;align-items:center;gap:8px}

.sv-post__media{display:block;aspect-ratio:16/9;overflow:hidden;border-radius:var(--sv-r-card) var(--sv-r-card) 0 0;background:var(--sv-sand-200)}
.sv-post__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--sv-ease)}
.sv-post:hover .sv-post__media img{transform:scale(1.04)}
.sv-post__body{padding:20px 22px 24px}
.sv-post__body h3{margin:12px 0 10px;font-size:1.0625rem}
.sv-post__meta{display:flex;gap:10px;align-items:center;margin-top:16px;
  font-size:.8125rem;color:var(--sv-ink-400)}

/* ---------- 时间线 / 能力条 ---------- */
.sv-timeline{display:grid;grid-template-columns:repeat(5,1fr)}
.sv-timeline__step{position:relative;padding-right:20px}
.sv-timeline__step::before{content:"";position:absolute;top:11px;left:0;right:0;height:1px;background:var(--sv-line)}
.sv-timeline__dot{position:relative;z-index:1;width:22px;height:22px;border-radius:50%;
  background:var(--sv-white);border:1px solid var(--sv-clay-500);display:grid;place-items:center;
  font-family:var(--sv-font-mono);font-size:.625rem;color:var(--sv-clay-500)}
.sv-timeline__step h3{margin:16px 0 8px;font-size:1.0625rem}
.sv-timeline__step p{font-size:.875rem}
@media(max-width:900px){.sv-timeline{grid-template-columns:1fr;gap:24px}.sv-timeline__step::before{display:none}}

.sv-cap{border-top:1px solid rgba(255,255,255,.16);padding-top:32px}
.sv-cap__num{font-family:var(--sv-font-mono);font-size:.8125rem;color:var(--sv-moss-300)}
.sv-cap h3{color:var(--sv-white);margin:12px 0 10px;font-size:1.125rem}
.sv-cap p{font-size:.9375rem}

/* ---------- CTA 带 ---------- */
.sv-cta{background:var(--sv-sand-200);border-radius:var(--sv-r-img);padding:56px 48px;text-align:center}
.sv-cta h2{max-width:26ch;margin:16px auto 24px}
.sv-cta__actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
@media(max-width:640px){.sv-cta{padding:36px 22px}}

/* ---------- 表单 ---------- */
.sv-field{display:grid;gap:8px;margin-bottom:18px}
.sv-field label{font-size:.8125rem;font-weight:600;color:var(--sv-ink-900)}
.sv-field .req{color:var(--sv-clay-500)}
.sv-input,select.sv-input,textarea.sv-input{width:100%;min-height:46px;padding:11px 14px;
  border:1px solid var(--sv-line);border-radius:var(--sv-r-btn);background:var(--sv-white);
  transition:border-color .2s var(--sv-ease),box-shadow .2s var(--sv-ease)}
.sv-input:focus{border-color:var(--sv-clay-500);box-shadow:0 0 0 3px rgba(180,103,74,.16);outline:none}
.sv-input[aria-invalid="true"]{border-color:#BA1A1A}
textarea.sv-input{min-height:150px;resize:vertical}
.sv-form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:640px){.sv-form-row{grid-template-columns:1fr}}
.sv-chips{display:flex;flex-wrap:wrap;gap:10px}
.sv-chip{padding:9px 16px;border-radius:var(--sv-r-pill);border:1px solid var(--sv-line);
  background:var(--sv-white);font-size:.875rem;cursor:pointer;transition:all .2s var(--sv-ease)}
.sv-chip:hover{border-color:var(--sv-forest-500)}
.sv-chip[aria-pressed="true"]{background:var(--sv-forest-700);border-color:var(--sv-forest-700);color:var(--sv-white)}

/* ---------- 规范表 / 徽章 ---------- */
.sv-specrow{display:flex;justify-content:space-between;gap:16px;padding:12px 0;
  border-bottom:1px solid var(--sv-line);font-size:.9375rem}
.sv-specrow dt{color:var(--sv-ink-600);margin:0}
.sv-specrow dd{margin:0;font-family:var(--sv-font-mono);font-weight:500}
.sv-badge-tile{border:1px solid var(--sv-line);border-radius:var(--sv-r-card);
  background:var(--sv-white);padding:20px;display:grid;gap:8px}
.sv-badge-tile b{font-family:var(--sv-font-mono);font-size:.9375rem;color:var(--sv-forest-700)}
.sv-badge-tile span{font-size:.8125rem;color:var(--sv-ink-600)}

/* ---------- 面包屑 ---------- */
.sv-crumb{display:flex;flex-wrap:wrap;gap:8px;font-size:.8125rem;color:var(--sv-ink-400);
  padding:24px 0 0}
.sv-crumb a:hover{color:var(--sv-forest-700)}

/* ---------- 页脚 ---------- */
.sv-footer{background:var(--sv-forest-900);color:rgba(255,255,255,.7);padding:72px 0 32px;margin-top:auto}
.sv-footer__grid{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:40px}
.sv-footer h4{color:var(--sv-white);font-family:var(--sv-font-body);font-size:.8125rem;
  letter-spacing:.12em;text-transform:uppercase;margin:0 0 18px}
.sv-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:10px;font-size:.9375rem}
.sv-footer a:hover{color:var(--sv-white)}
.sv-footer .sv-brand{color:var(--sv-white);margin-bottom:14px}
.sv-footer__desc{color:rgba(255,255,255,.66);font-size:.9375rem;max-width:34ch}
.sv-footer__bottom{margin-top:56px;padding-top:24px;border-top:1px solid rgba(255,255,255,.14);
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:.8125rem}
@media(max-width:1024px){.sv-footer__grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.sv-footer__grid{grid-template-columns:1fr}}

/* ---------- 与既有 mu-plugin 的整合 ---------- */
/* 询盘按钮：mu-plugin 输出的 .trade-inquiry-btn 需要融入精修按钮体系 */
.trade-inquiry-btn,.button.alt.trade-inquiry-btn{
  display:inline-flex!important;align-items:center;justify-content:center;
  min-height:44px;padding:0 22px!important;border:0!important;border-radius:var(--sv-r-btn)!important;
  background:var(--sv-clay-500)!important;color:var(--sv-white)!important;
  font-family:var(--sv-font-body)!important;font-weight:600!important;font-size:.9375rem!important;
  cursor:pointer;transition:background-color .2s var(--sv-ease)}
.trade-inquiry-btn:hover{background:var(--sv-clay-600)!important;color:var(--sv-white)!important}

/* WhatsApp 悬浮按钮：精修配色（保持 mu-plugin 输出的功能不变） */
#trade-wa{background:var(--sv-forest-700)!important}
#trade-wa:hover{background:var(--sv-forest-900)!important}

/* ---------- 首页补充：能力卡 / 数据块 / 占位图 ---------- */
.sv-feature{padding:32px 28px}
.sv-feature__icon{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;
  background:var(--sv-sand-200);color:var(--sv-forest-700);margin-bottom:20px}
.sv-feature h3{margin-bottom:10px}
.sv-feature p{font-size:.9375rem;margin:0}

.sv-stat{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);
  border-radius:var(--sv-r-card);padding:22px 24px}
.sv-stat b{display:block;font-size:1.75rem;color:var(--sv-white);line-height:1.2}
.sv-stat span{font-size:.8125rem;color:rgba(255,255,255,.7)}

.sv-prod__ph{display:block;width:100%;height:100%;min-height:180px;
  background:linear-gradient(135deg,var(--sv-sand-200),var(--sv-moss-300))}
.sv-prod__details{font-size:.875rem;font-weight:600;color:var(--sv-forest-700);white-space:nowrap}
.sv-prod__acts .trade-inquiry-btn{min-height:36px!important;padding:0 14px!important;font-size:.8125rem!important}

/* ---------- 归档 / 产品详情补充 ---------- */
.sv-pagehead{padding:40px 0 32px}
.sv-pagehead h1{font-size:clamp(2rem,4vw,3.1rem);margin:12px 0 16px}
.sv-filterbar{position:sticky;top:var(--sv-header-h);z-index:9000;background:var(--sv-sand-100);
  padding:16px 0;border-bottom:1px solid var(--sv-line)}
.sv-filterbar__row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.sv-filterbar .sv-chips{flex:1 1 auto}
.sv-meta-row{display:flex;justify-content:space-between;align-items:center;gap:16px;
  margin-bottom:24px;flex-wrap:wrap;font-size:.8125rem;color:var(--sv-ink-600)}
.sv-pager{display:flex;justify-content:center;gap:8px;margin-top:48px;flex-wrap:wrap}
.sv-pager .page-numbers{display:inline-flex;align-items:center;justify-content:center;
  min-width:42px;height:42px;padding:0 12px;border:1px solid var(--sv-line);border-radius:var(--sv-r-btn);
  background:var(--sv-white);font-size:.9375rem;font-weight:600;color:var(--sv-forest-700)}
.sv-pager .page-numbers.current{background:var(--sv-clay-500);border-color:var(--sv-clay-500);color:var(--sv-white)}
.sv-pager .page-numbers:hover{border-color:var(--sv-forest-700)}
.sv-empty{padding:64px 0;text-align:center;color:var(--sv-ink-600)}

/* 产品详情 */
.sv-gallery__main{position:relative;border-radius:var(--sv-r-img);overflow:hidden;background:var(--sv-white);border:1px solid var(--sv-line)}
.sv-gallery__main img{width:100%;aspect-ratio:1/1;object-fit:contain;display:block;cursor:zoom-in}
.sv-gallery__thumbs{display:flex;gap:12px;margin-top:12px;overflow-x:auto;padding-bottom:4px}
.sv-gallery__thumbs button{flex:0 0 92px;padding:0;border:2px solid transparent;border-radius:10px;
  overflow:hidden;background:none;cursor:pointer}
.sv-gallery__thumbs button[aria-pressed="true"]{border-color:var(--sv-clay-500)}
.sv-gallery__thumbs img{width:92px;height:92px;object-fit:contain;background:var(--sv-white)}
.sv-buybox{position:sticky;top:calc(var(--sv-header-h) + 22px)}
.sv-buybox h1{font-size:clamp(1.8rem,3vw,2.5rem);margin:12px 0 8px}
.sv-buybox__actions{display:grid;gap:12px;margin-top:26px}
.sv-trust-inline{display:flex;flex-wrap:wrap;gap:10px 20px;margin-top:24px;padding-top:20px;
  border-top:1px solid var(--sv-line);font-size:.8125rem;color:var(--sv-ink-600)}
.sv-trust-inline span{display:inline-flex;align-items:center;gap:7px}
.sv-dot{width:6px;height:6px;border-radius:50%;background:var(--sv-forest-500);flex:none}
.sv-note{background:var(--sv-white);border:1px solid var(--sv-line);border-left:3px solid var(--sv-clay-500);
  border-radius:var(--sv-r-card);padding:22px 24px;margin:28px 0}
.sv-note strong{display:block;margin-bottom:8px;color:var(--sv-ink-900)}
@media(max-width:900px){.sv-buybox{position:static}}

/* Elementor 页面（/faq/ /quality/ 等）保持原样，仅统一最大宽度与竖向节奏 */
.sv-elementor-wrap{padding:48px 0 72px}
.sv-elementor-wrap .elementor{--sv-keep:1}
.sv-cms-content{max-width:820px;margin-inline:auto;padding:40px 0 64px}

/* ---------- 产品详情：详情两栏 ---------- */
.sv-detail-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:56px;align-items:start}
.sv-detail-grid > *{min-width:0}
.sv-specs h3{font-size:1.0625rem;margin:0}
.sv-short p{font-size:.9375rem}
.sv-content :is(h2,h3){margin:1.4em 0 .6em}
.sv-content :is(ul,ol){padding-left:1.2em;color:var(--sv-ink-600)}
.sv-content img{border-radius:var(--sv-r-img);height:auto}
/* 单产品页里隐藏 WooCommerce 默认包裹可能产生的重复标题 */
.sv-main .product_title{display:none}
@media(max-width:900px){.sv-detail-grid{grid-template-columns:1fr;gap:32px}}

/* ---------- 联系页清单 ---------- */
.sv-checklist{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.sv-checklist li{position:relative;padding-left:26px;color:var(--sv-ink-600);font-size:.9375rem}
.sv-checklist li::before{content:"✓";position:absolute;left:0;color:var(--sv-clay-500);font-weight:700}

/* ---------- 商店页搜索 ---------- */
.sv-shopsearch{flex:0 1 280px}
.sv-shopsearch .sv-input{min-height:42px}
@media(max-width:768px){.sv-shopsearch{flex:1 1 100%}}

/* ---------- 抑制 Elementor 页面里与本主题页头重复的标题（suppress-duplicate-heading） ---------- */
/* Elementor 页面正文的第一屏若自己带 h1/h2 标题，会和我们模板的 h1 撞车。
   只针对「模板外层已经输出 h1」的页面做抑制，且只压第一组，保留其正文。 */
.sv-contact-cms > .elementor > .elementor-section:first-child .elementor-heading-title:first-child,
.sv-contact-cms .elementor-widget-heading:first-child .elementor-heading-title {
  display:none;
}
/* Elementor 页面自带的大段空白 spacer 在精修布局里显得很空 */
.sv-contact-cms .elementor-widget-spacer:first-child{display:none}

/* =============================================================================
   修复批次：hero 空板 / 巨型空色块 / 文字溢出 / 单篇博客孤块
   背景：初版假设「站上有充足的图与内容」，实测本站只有 2 个分类（均无缩略图）
   和 1 篇文章，导致整页全是空色块。以下规则让「素材少」时也成立。
   ========================================================================== */

/* ---------- Hero：有图时必须可见 ---------- */
.sv-hero__bg{opacity:.62}
.sv-hero{min-height:560px}
@media(max-width:768px){.sv-hero{min-height:auto}}

/* ---------- 分类：紧凑磁贴（无缩略图时使用） ---------- */
.sv-catgrid{align-items:stretch}
.sv-cat-tile{
  position:relative;
  display:flex;align-items:center;gap:18px;
  padding:26px 28px;text-decoration:none;
  background:var(--sv-white);border:1px solid var(--sv-line);
  border-radius:var(--sv-r-card);box-shadow:none;
  /* 只过渡 transform（合成器线程），不过渡 box-shadow ——
   * 阴影插值属于绘制操作，鼠标划过会让整块瓷砖反复重绘。 */
  transition:transform .25s var(--sv-ease),border-color .25s var(--sv-ease);
}
/* 悬停阴影预渲染成一层伪元素，靠 opacity 淡入（同样只在合成器上做）。 */
.sv-cat-tile::after{
  content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;
  box-shadow:var(--sv-shadow-md);opacity:0;transition:opacity .25s var(--sv-ease);
}
.sv-cat-tile:hover{transform:translateY(-3px);border-color:var(--sv-forest-500)}
.sv-cat-tile:hover::after{opacity:1}
.sv-cat-tile__icon{
  flex:0 0 52px;width:52px;height:52px;border-radius:13px;
  display:grid;place-items:center;background:var(--sv-sand-200);color:var(--sv-forest-700);
}
.sv-cat-tile__text{display:grid;gap:4px;min-width:0;flex:1 1 auto}
.sv-cat-tile__text strong{font-family:var(--sv-font-display);font-size:1.125rem;color:var(--sv-ink-900);line-height:1.25}
.sv-cat-tile__text span{font-size:.875rem;color:var(--sv-ink-600);line-height:1.5}
.sv-cat-tile__meta{display:flex;align-items:center;gap:10px;color:var(--sv-ink-400);flex:0 0 auto}
.sv-cat-tile__meta .sv-mono{font-size:.8125rem}
.sv-cat-tile:hover .sv-cat-tile__meta{color:var(--sv-clay-500)}

/* ---------- 防止分类/产品卡内容溢出到下一个区块 ---------- */
.sv-cat,.sv-cat-tile,.sv-prod,.sv-post{overflow:hidden}
.sv-cat__body{min-width:0}
.sv-cat__body p{overflow-wrap:anywhere}
.sv-section{position:relative;overflow:hidden}
.sv-container{position:relative;z-index:1}

/* ---------- 单篇博客：横排大卡，不再孤零零一个方块 ---------- */
.sv-post--wide{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:stretch}
.sv-post--wide .sv-post__media{border-radius:var(--sv-r-card) 0 0 var(--sv-r-card);aspect-ratio:auto;min-height:280px}
.sv-post--wide .sv-post__media img{height:100%}
.sv-post--wide .sv-post__body{display:flex;flex-direction:column;justify-content:center;padding:36px 40px}
.sv-post--wide h3{font-size:clamp(1.25rem,2vw,1.6rem)}
@media(max-width:800px){
  .sv-post--wide{grid-template-columns:1fr}
  .sv-post--wide .sv-post__media{border-radius:var(--sv-r-card) var(--sv-r-card) 0 0;aspect-ratio:16/9;min-height:0}
  .sv-post--wide .sv-post__body{padding:24px}
}

/* ---------- 网格列数兜底（模板按数量选类，这里给 1/2/3 列定义） ---------- */
.sv-grid--1{grid-template-columns:1fr}
@media(max-width:640px){
  .sv-grid--1,.sv-grid--2,.sv-grid--3,.sv-grid--4{grid-template-columns:1fr}
}

/* ---------- 收紧纵向节奏：素材少时避免「大留白显得空」 ---------- */
.sv-section.sv-section--compact{padding:64px 0}
.sv-section-head{margin-bottom:36px}

/* ---------- 商店页：钩子输出的计数与排序并排成一行 ---------- */

/* ---------- 商店页：结果计数与排序框（唯一来源 = woocommerce_before_shop_loop 钩子） ----------
   两者由钩子输出为相邻兄弟节点：<p class="woocommerce-result-count"> + <form class="woocommerce-ordering">。
   采用 WooCommerce 传统的左右浮动布局并手动清除浮动，
   保证同一行基线对齐（此前用 inline-flex + auto margin 会出现错位重叠，截图实测）。 */
.sv-main .woocommerce-result-count{
  float:left;margin:0;padding:0;line-height:42px;
  font-family:var(--sv-font-mono);font-size:.8125rem;color:var(--sv-ink-600);
}
.sv-main form.woocommerce-ordering{
  float:right;margin:0 0 28px;
}
.sv-main form.woocommerce-ordering select{
  min-height:42px;border-radius:var(--sv-r-btn);border:1px solid var(--sv-line);
  background:var(--sv-white);padding:0 12px;color:var(--sv-ink-900);
}
/* 清除浮动：计数/排序之后的所有兄弟节点都另起一行 */
.sv-main .sv-section > .sv-container::after{content:"";display:table;clear:both}
.sv-main .woocommerce-notices-wrapper{clear:both;width:100%}
.sv-main .woocommerce-notices-wrapper:empty{display:none;margin:0}
.sv-main #sv-archive-grid{clear:both}
@media(max-width:640px){
  .sv-main .woocommerce-result-count{float:none;line-height:1.6;margin-bottom:8px}
  .sv-main form.woocommerce-ordering{float:none;width:100%}
  .sv-main form.woocommerce-ordering select{width:100%}
}

/* ---------- 联系页信息表 ---------- */
.sv-specrow-wrap{margin:12px 0 0}
.sv-specrow-wrap .sv-specrow{font-size:.9375rem}
.sv-specrow-wrap .sv-specrow dt{font-weight:500}
.sv-specrow-wrap .sv-specrow dd{text-align:right}
@media(max-width:520px){
  .sv-specrow-wrap .sv-specrow{flex-direction:column;gap:2px}
  .sv-specrow-wrap .sv-specrow dd{text-align:left}
}


/* ---------- 修正：TranslatePress 浮动语言切换器遮挡正文 ----------
 * 实测：页面上有 3 个 switcher 实例 ——
 *   1) .trp-floating-switcher        （position:fixed，右下角，会压住内容）
 *   2) .trp-shortcode-switcher       （我放在站头里的静态实例）
 *   3) .trp-shortcode-overlay        （插件的 overlay 变体）
 * 只移动第 1 个；后面两个必须保持原位（站头那个是导航的一部分）。
 * 之前用 .trp-language-switcher 泛选会误伤站头切换器。
 */
.trp-floating-switcher{
  right:auto!important;left:18px!important;bottom:18px!important;top:auto!important;
}
@media(max-width:600px){
  /* 窄屏时与右下角的 WhatsApp 悬浮按钮错开，避免堆叠 */
  .trp-floating-switcher{left:12px!important;bottom:78px!important}
}

/* =============================================================================
   第二批精修页面：FAQ / Quality / Factory / Events / Shipping
   ========================================================================== */

/* ---------- FAQ / Shipping：折叠问答 ---------- */
.sv-faq-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:56px;align-items:start}
.sv-faq-layout > *{min-width:0}
.sv-faq-main{display:grid;gap:12px}
.sv-faq{
  background:var(--sv-white);border:1px solid var(--sv-line);border-radius:var(--sv-r-card);
  box-shadow:var(--sv-shadow-sm);overflow:hidden;transition:box-shadow .2s var(--sv-ease),border-color .2s var(--sv-ease);
}
.sv-faq[open]{border-color:var(--sv-moss-300);box-shadow:var(--sv-shadow-md)}
.sv-faq summary{
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:20px 24px;cursor:pointer;list-style:none;
  font-family:var(--sv-font-body);font-weight:600;font-size:1rem;color:var(--sv-ink-900);
}
.sv-faq summary::-webkit-details-marker{display:none}
.sv-faq summary:hover{color:var(--sv-forest-700)}
.sv-faq__sign{position:relative;flex:0 0 18px;width:18px;height:18px}
.sv-faq__sign::before,.sv-faq__sign::after{
  content:"";position:absolute;left:50%;top:50%;background:var(--sv-clay-500);border-radius:1px;
  transform:translate(-50%,-50%);transition:transform .2s var(--sv-ease),opacity .2s var(--sv-ease);
}
.sv-faq__sign::before{width:14px;height:2px}
.sv-faq__sign::after{width:2px;height:14px}
.sv-faq[open] .sv-faq__sign::after{transform:translate(-50%,-50%) scaleY(0);opacity:0}
.sv-faq__body{padding:0 24px 22px}
.sv-faq__body p{margin:0;font-size:.9375rem;color:var(--sv-ink-600)}
.sv-faq-side{display:grid;gap:20px;position:sticky;top:calc(var(--sv-header-h) + 22px)}
.sv-linklist{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:10px;font-size:.9375rem}
.sv-linklist a{color:var(--sv-forest-700);font-weight:500}
.sv-linklist a:hover{color:var(--sv-clay-500)}
@media(max-width:900px){
  .sv-faq-layout{grid-template-columns:1fr;gap:32px}
  .sv-faq-side{position:static;order:-1}
}

/* ---------- Quality：三道检验门 ---------- */
.sv-gate{padding:30px 28px;position:relative}
.sv-gate__num{display:block;font-size:.8125rem;color:var(--sv-clay-500);margin-bottom:14px}
.sv-gate h3{margin-bottom:10px}
.sv-gate p{font-size:.9375rem;margin:0}

/* ---------- Factory：数据卡 / 实拍 ---------- */
.sv-factory-hero{overflow:hidden;border-radius:var(--sv-r-img)}
.sv-statcard{padding:22px 24px;text-align:left}
.sv-statcard b{display:block;font-size:1.5rem;color:var(--sv-forest-700);line-height:1.2}
.sv-statcard span{font-size:.8125rem;color:var(--sv-ink-600)}

/* ---------- Events：展会卡 ---------- */
.sv-event h3{margin:14px 0 10px}

/* ---------- 按钮块级显示 ---------- */
.sv-btn--block{width:100%;display:inline-flex}

/* ---------- 询价清单页（YITH Request a Quote） ---------- */
.sv-rfq-shell{
  background:var(--sv-white);border:1px solid var(--sv-line);
  border-radius:var(--sv-r-card);box-shadow:var(--sv-shadow-sm);padding:28px;
}
.sv-rfq-shell .ywraq-wrapper{margin:0}
.sv-rfq-shell table.shop_table{width:100%;border-collapse:collapse;font-size:.9375rem}
.sv-rfq-shell table.shop_table th{
  text-align:left;padding:12px 14px;border-bottom:1px solid var(--sv-line);
  font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--sv-ink-600);font-weight:600;
}
.sv-rfq-shell table.shop_table td{padding:14px;border-bottom:1px solid var(--sv-line);vertical-align:middle}
.sv-rfq-shell .quantity input{width:88px;min-height:42px;padding:8px 10px;border:1px solid var(--sv-line);border-radius:var(--sv-btn,10px)}
.sv-rfq-shell input[type="text"],
.sv-rfq-shell input[type="email"],
.sv-rfq-shell textarea{
  width:100%;min-height:46px;padding:11px 14px;border:1px solid var(--sv-line);
  border-radius:var(--sv-r-btn);background:var(--sv-white);
}
.sv-rfq-shell textarea{min-height:120px}
.sv-rfq-shell .button,
.sv-rfq-shell input[type="submit"],
.sv-rfq-shell button[type="submit"]{
  display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 22px;
  background:var(--sv-clay-500);color:var(--sv-white);border:0;border-radius:var(--sv-r-btn);
  font-weight:600;cursor:pointer;transition:background-color .2s var(--sv-ease);
}
.sv-rfq-shell .button:hover,
.sv-rfq-shell input[type="submit"]:hover{background:var(--sv-clay-600);color:var(--sv-white)}
/* 空清单时 YITH 输出的一行提示，弱化它，改用下面的引导块 */
.sv-rfq-shell .ywraq-no-products{margin:0;color:var(--sv-ink-600)}

.sv-rfq-empty{
  margin-top:24px;padding:36px 28px;text-align:center;
  background:var(--sv-sand-200);border-radius:var(--sv-r-card);
}
.sv-rfq-empty p{margin-bottom:18px}

.sv-rfq-help{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:32px}
@media(max-width:768px){
  .sv-rfq-shell{padding:18px}
  .sv-rfq-help{grid-template-columns:1fr}
  .sv-rfq-shell table.shop_table{display:block;overflow-x:auto;white-space:nowrap}
}

/* ---------- 修正：Factory 页大图被拉满整屏 ----------
 * 现状：工厂图是一张 1600×900 的矢量插画，width:100% 后在桌面上占满约 1000px 高，
 * 一屏只看到一张图，显得空且笨重（截图实测）。
 * 改为固定视觉高度 + cover 裁切，保持信息量同时不喧宾夺主。 */
.sv-factory-hero img{
  width:100%!important;
  height:clamp(240px,42vw,460px)!important;
  object-fit:cover;
  object-position:center 62%;
}
@media(max-width:640px){
  .sv-factory-hero img{height:200px!important}
}

/* =============================================================================
   产品详情页（Stitch 03-product-detail 版式）
   ========================================================================== */

/* Hero 网格：画廊 7 / 购买栏 5 */
.sv-pd-hero{padding-top:8px;padding-bottom:8px}
.sv-pd-hero__grid{display:grid;grid-template-columns:7fr 5fr;gap:56px;align-items:start}
/* 网格子项必须 min-width:0。否则 grid item 默认 min-width:auto，会被
   缩略图 rail 的 min-content 宽度顶宽：5 张缩略图 = 5*64 + 4*12 = 368px，
   超过移动端容器内容宽 350px，导致画廊整体溢出容器（被 body 的
   overflow-x:hidden 静默裁掉，所以历次「无横向溢出」检查都没发现）。
   与 theme.css 里 .sv-grid/.sv-split 的处理保持一致。 */
.sv-pd-hero__grid > *{min-width:0}
@media(max-width:960px){.sv-pd-hero__grid{grid-template-columns:1fr;gap:32px}}

/* 画廊：左侧竖排缩略图 rail + 主图 + 图注 */
.sv-pd-gallery{display:flex;gap:16px;align-items:flex-start}
.sv-pd-gallery__rail{display:flex;flex-direction:column;gap:12px;flex:0 0 80px}
.sv-pd-thumb{position:relative;padding:2px;border:1.5px solid var(--sv-line);border-radius:10px;
  background:var(--sv-white);overflow:hidden;cursor:pointer;transition:border-color .2s var(--sv-ease)}
.sv-pd-thumb img{display:block;width:100%;aspect-ratio:1;object-fit:contain;background:var(--sv-white);border-radius:8px}
.sv-pd-thumb[aria-pressed="true"]{border-color:var(--sv-forest-700);border-width:2px;padding:1px}
.sv-pd-thumb:hover{border-color:var(--sv-forest-500)}
.sv-pd-gallery__main{flex:1;min-width:0;position:relative}
.sv-pd-gallery__caption{position:absolute;left:16px;bottom:16px;background:rgba(255,255,255,.92);
  backdrop-filter:blur(6px);border:1px solid var(--sv-line);padding:6px 14px;border-radius:999px;
  font-family:var(--sv-font-mono);font-size:11px;color:var(--sv-ink-600);letter-spacing:.02em;
  max-width:calc(100% - 32px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:960px){
  /* 移动端画廊：列向后 align-items 控制的是**水平**方向。原样继承桌面的
     align-items:flex-start 会让主图退化成「按内容宽度收缩 + 靠左」——
     而内容宽度由 srcset 选中的候选图决定，所以只在高 DPR 真机上暴露
     （实测 dsf=2 居中、dsf=3 右留白 134px）。必须显式 stretch + width:100%。 */
  .sv-pd-gallery{flex-direction:column-reverse;align-items:stretch}
  .sv-pd-gallery__main{width:100%}
  .sv-pd-gallery__rail{flex-direction:row;flex:0 0 auto;width:100%;overflow-x:auto;padding-bottom:4px}
  .sv-pd-thumb{flex:0 0 64px}
}

/* 购买栏 */
.sv-pd-sku{font-size:.8125rem;color:var(--sv-ink-400);margin:0 0 10px;letter-spacing:.02em}
.sv-pd-quickline{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.sv-pd-quicktag{font-family:var(--sv-font-mono);font-size:.75rem;font-weight:600;
  background:var(--sv-sand-200);color:var(--sv-ink-900);padding:3px 10px;border-radius:6px}
.sv-pd-buybox .woocommerce-product-details__short-description{margin-bottom:16px}

/* 关键规格表 */
.sv-pd-specs{margin-top:22px;border:1px solid var(--sv-line);border-radius:12px;overflow:hidden}
.sv-pd-specs__head{padding:12px 16px;border-bottom:1px solid var(--sv-line);background:var(--sv-sand-100)}
.sv-pd-specs .sv-specrow-wrap{margin:0}
.sv-pd-specs .sv-specrow{padding:10px 16px;font-size:.875rem;border-bottom:1px solid var(--sv-line)}
.sv-pd-specs .sv-specrow:last-child{border-bottom:0}
.sv-pd-specs .sv-specrow:nth-child(odd){background:var(--sv-sand-100)}
.sv-pd-specs .sv-specrow dd{text-align:right}

/* Tab 区 */
.sv-pd-tabs{border-top:1px solid var(--sv-line);border-bottom:1px solid var(--sv-line);
  padding:56px 0;background:var(--sv-white)}
.sv-pd-tabbar{display:flex;gap:28px;border-bottom:1px solid var(--sv-line);margin-bottom:36px;
  overflow-x:auto;scrollbar-width:none}
.sv-pd-tabbar::-webkit-scrollbar{display:none}
.sv-pd-tab{flex:0 0 auto;padding:0 2px 14px;border:0;border-bottom:2px solid transparent;
  background:none;font-family:var(--sv-font-display);font-size:1.125rem;color:var(--sv-ink-600);
  cursor:pointer;transition:color .2s var(--sv-ease),border-color .2s var(--sv-ease)}
.sv-pd-tab:hover{color:var(--sv-forest-700)}
.sv-pd-tab.is-active{color:var(--sv-forest-700);border-bottom-color:var(--sv-forest-700);font-weight:600}
.sv-pd-pane{min-width:0}
.sv-pd-pane[hidden]{display:none}
.sv-pd-content{max-width:840px}
.sv-pd-speclist{max-width:720px}
.sv-pd-speclist .sv-specrow{padding:13px 0;border-bottom:1px solid var(--sv-line)}
.sv-pd-empty{color:var(--sv-ink-600);font-size:.9375rem}
.sv-pd-empty a{color:var(--sv-forest-700);font-weight:600}

/* OEM 定制参数卡片 */
.sv-pd-customgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:960px){.sv-pd-customgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.sv-pd-customgrid{grid-template-columns:1fr}}
.sv-pd-param{background:var(--sv-white);border:1px solid var(--sv-line);border-radius:var(--sv-r-card);
  padding:24px;box-shadow:var(--sv-shadow-sm);transition:box-shadow .25s var(--sv-ease)}
.sv-pd-param:hover{box-shadow:var(--sv-shadow-md)}
.sv-pd-param__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.sv-pd-param__tag{font-family:var(--sv-font-mono);font-size:.6875rem;background:var(--sv-sand-200);
  color:var(--sv-ink-900);padding:2px 8px;border-radius:5px}
.sv-pd-param h3{font-family:var(--sv-font-body);font-size:1rem;font-weight:600;margin:0 0 6px}
.sv-pd-param p{font-size:.8125rem;color:var(--sv-ink-600);margin:0;line-height:1.55}

/* RFQ 深色横幅 */
.sv-pd-rfq{background:var(--sv-forest-900);color:var(--sv-white);padding:72px 0;
  border-top:1px solid rgba(220,213,199,.12)}
.sv-pd-rfq__inner{max-width:720px;margin:0 auto;text-align:center}
.sv-pd-rfq__eyebrow{color:var(--sv-moss-300)}
.sv-pd-rfq h2{color:var(--sv-white);margin:12px 0 16px}
.sv-pd-rfq p{color:#DCD5C7;margin:0 0 32px;line-height:1.7}
.sv-btn--ghost-light{background:transparent;border:1px solid rgba(255,255,255,.35);color:var(--sv-white)}
.sv-btn--ghost-light:hover{border-color:var(--sv-white);background:rgba(255,255,255,.08)}

/* =============================================================================
   YITH Request-a-Quote「Add to quote」按钮：改成品牌样式（原来是无品牌的宝蓝 button.alt）
   ========================================================================== */
.sv-pd-buybox .add-request-quote-button,
.sv-pd-buybox a.add-request-quote-button.button,
.sv-buybox a.add-request-quote-button.button,
.sv-pd-hero .add-request-quote-button{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  margin-top:10px;width:100%;padding:14px 24px;
  background:var(--sv-white)!important;color:var(--sv-forest-700)!important;
  border:1px solid var(--sv-forest-700)!important;border-radius:var(--sv-r-btn)!important;
  font-family:var(--sv-font-body);font-size:.9375rem;font-weight:600;line-height:1.2;
  text-decoration:none;cursor:pointer;
  transition:background .2s var(--sv-ease),color .2s var(--sv-ease)}
.sv-pd-buybox .add-request-quote-button:hover,
.sv-pd-buybox a.add-request-quote-button.button:hover,
.sv-pd-hero .add-request-quote-button:hover{
  background:var(--sv-forest-700)!important;color:var(--sv-white)!important}
/* YITH 自带的蓝色高亮与图标统一压成品牌色 */
.sv-pd-buybox .add-request-quote-button .yith-ywraq-add-to-quote-icon,
.sv-pd-buybox .add-request-quote-button i{color:inherit!important}
/* 询盘按钮（mu-plugin 注入的 .trade-inquiry-btn）与品牌主按钮对齐 */
.sv-pd-buybox .trade-inquiry-btn.button.alt{
  display:inline-flex;align-items:center;justify-content:center;
  width:100%;margin-top:0;padding:14px 24px;
  background:var(--sv-clay-500)!important;color:var(--sv-white)!important;
  border:0!important;border-radius:var(--sv-r-btn)!important;
  font-family:var(--sv-font-body);font-size:.9375rem;font-weight:600;
  cursor:pointer;transition:background .2s var(--sv-ease)}
.sv-pd-buybox .trade-inquiry-btn.button.alt:hover{background:var(--sv-clay-600)!important}
/* 确保两个按钮上下排列且有间距 */
.sv-pd-buybox form.cart,
.sv-pd-buybox .yith-ywraq-add-to-quote{width:100%}

/* 购买栏：规格书文字链 + 按钮间距 */
.sv-buybox__actions--link{margin-top:14px}
.sv-pd-spec-link{display:inline-flex;align-items:center;gap:6px;font-family:var(--sv-font-mono);
  font-size:.8125rem;font-weight:500;color:var(--sv-forest-700);text-decoration:none;
  transition:color .2s var(--sv-ease)}
.sv-pd-spec-link:hover{color:var(--sv-clay-500)}
.sv-pd-spec-link span{transition:transform .2s var(--sv-ease)}
.sv-pd-spec-link:hover span{transform:translateX(3px)}
/* 询盘/询价两个按钮之间留出间距（WooCommerce 会输出 form.cart 与 yith 区块） */
.sv-pd-buybox .woocommerce-variation-add-to-cart,
.sv-pd-buybox form.cart + .yith-ywraq-add-to-quote,
.sv-pd-buybox .trade-inquiry-btn + form.cart{margin-top:10px}
.sv-pd-buybox .trade-inquiry-btn{margin-bottom:10px!important}

/* 下载文档列表 */
.sv-pd-doclist{display:grid;gap:12px;max-width:760px}
.sv-pd-doc{display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:16px 18px;background:var(--sv-white);border:1px solid var(--sv-line);
  border-radius:var(--sv-r-btn);color:var(--sv-ink-900);text-decoration:none;
  font-size:.9375rem;transition:border-color .2s var(--sv-ease),box-shadow .2s var(--sv-ease)}
.sv-pd-doc:hover{border-color:var(--sv-forest-700);box-shadow:var(--sv-shadow-sm)}

/* =============================================================================
   父主题（Hello Elementor reset.css）会把所有 button 的 hover/focus 涂成
   品红 rgb(204,51,102) —— 与本站配色无关，必须在本层覆盖掉。
   影响面：产品详情 Tab、画廊缩略图、计数按钮、FAQ 等一切 <button>。
   ========================================================================== */
.sv-main button,
.sv-main [type="button"],
.sv-main [type="submit"],
.sv-header button,
.sv-footer button,
.sv-drawer button{background-color:transparent;color:inherit}
.sv-main button:hover,
.sv-main button:focus,
.sv-main [type="button"]:hover,
.sv-main [type="button"]:focus,
.sv-main [type="submit"]:hover,
.sv-main [type="submit"]:focus,
.sv-header button:hover,.sv-header button:focus,
.sv-footer button:hover,.sv-footer button:focus,
.sv-drawer button:hover,.sv-drawer button:focus{background-color:transparent;color:inherit;text-decoration:none}

/* 产品详情 Tab 专项：保持品牌配色，只保留底部指示条 */
.sv-pd-tab,
.sv-pd-tab:hover,
.sv-pd-tab:focus,
.sv-pd-tab:focus-visible,
.sv-pd-tab:active{background:transparent!important;border:0;border-bottom:2px solid transparent;
  border-radius:0;box-shadow:none;color:var(--sv-ink-600);outline:none}
.sv-pd-tab:not(.is-active){border-bottom-color:transparent!important}
.sv-pd-tab:hover{color:var(--sv-forest-700)}
.sv-pd-tab:focus-visible{outline:2px solid var(--sv-forest-700);outline-offset:3px}
.sv-pd-tab.is-active,
.sv-pd-tab.is-active:hover,
.sv-pd-tab.is-active:focus{color:var(--sv-forest-700)!important;border-bottom:2px solid var(--sv-forest-700)!important;font-weight:600}

/* 画廊缩略图同样不该被 reset 染色 */
.sv-pd-thumb,
.sv-pd-thumb:hover,
.sv-pd-thumb:focus,
.sv-pd-thumb:active{background:var(--sv-white)!important;border:1.5px solid var(--sv-line);
  border-radius:10px;box-shadow:none;outline:none}
.sv-pd-thumb:hover{border-color:var(--sv-forest-500)}
.sv-pd-thumb[aria-pressed="true"],
.sv-pd-thumb[aria-pressed="true"]:focus{border:2px solid var(--sv-forest-700)!important}
.sv-pd-thumb:focus-visible{outline:2px solid var(--sv-forest-700);outline-offset:2px}

/* 灯箱按钮同样会被 hello-elementor 的 reset.css 涂成洋红色（实测截图可见），
   这里显式压掉，和 .sv-pd-thumb / .sv-pd-tab 的处理保持一致。 */
.sv-lightbox button,
.sv-lightbox button:hover,
.sv-lightbox button:focus,
.sv-lightbox button:active{
  background-color:rgba(255,255,255,.14);
  color:#fff;border:0;box-shadow:none;
}
.sv-lightbox__close:hover,
.sv-lightbox__nav:hover{background-color:rgba(255,255,255,.3)}
.sv-lightbox__nav[disabled],
.sv-lightbox__nav[disabled]:hover{background-color:rgba(255,255,255,.06);color:rgba(255,255,255,.4)}
.sv-lightbox button:focus-visible{outline:2px solid #fff;outline-offset:2px}
/* ---------- 图片灯箱（点击放大，原生 <dialog>，零依赖） ---------- */
.sv-lightbox{
  width:min(96vw,1280px);max-width:none;height:min(92vh,900px);max-height:none;
  padding:0;border:0;border-radius:var(--sv-r-card);background:#0d1113;color:#fff;
  box-shadow:0 30px 80px -20px rgba(0,0,0,.7);
}
.sv-lightbox::backdrop{background:rgba(10,12,14,.86);backdrop-filter:blur(2px)}
.sv-lightbox__stage{position:relative;display:flex;align-items:center;justify-content:center;
  width:100%;height:100%;padding:44px 68px 72px}
.sv-lightbox__img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;
  opacity:0;transition:opacity .22s var(--sv-ease)}
.sv-lightbox__img.is-ready{opacity:1}
/* 灯箱放大态：点击主图放大 2 倍并可拖动平移。
   transform-origin 保持 center，由 JS 算 translate 实现「点哪放大哪」。
   transform 的过渡放在这里：放大/复位时平滑，拖动时 JS 临时置 none 保证跟手。 */
.sv-lightbox__img{will-change:transform;touch-action:none;
  transition:opacity .22s var(--sv-ease),transform .26s var(--sv-ease)}
.sv-lightbox__img.is-zoomed{cursor:grab}
.sv-lightbox__img.is-dragging{transition:opacity .22s var(--sv-ease);cursor:grabbing}
.sv-lightbox__stage{overflow:hidden}
.sv-lightbox__close{position:absolute;top:12px;right:12px;width:40px;height:40px;border:0;border-radius:50%;
  background:rgba(255,255,255,.14);color:#fff;font-size:20px;line-height:1;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;transition:background .2s}
.sv-lightbox__close:hover{background:rgba(255,255,255,.28)}
.sv-lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;
  border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:22px;line-height:1;
  cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .2s}
.sv-lightbox__nav:hover{background:rgba(255,255,255,.3)}
.sv-lightbox__nav[disabled]{opacity:.25;cursor:default}
.sv-lightbox__prev{left:12px}
.sv-lightbox__next{right:12px}
.sv-lightbox__bar{position:absolute;left:0;right:0;bottom:0;padding:12px 20px;
  background:linear-gradient(to top,rgba(0,0,0,.6),transparent);
  display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:.8125rem}
.sv-lightbox__caption{color:rgba(255,255,255,.86);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sv-lightbox__count{font-family:var(--sv-font-mono);color:rgba(255,255,255,.6);flex:none}
.sv-lightbox__spin{position:absolute;width:32px;height:32px;border:2px solid rgba(255,255,255,.25);
  border-top-color:#fff;border-radius:50%;animation:sv-spin .8s linear infinite}
@keyframes sv-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){
  .sv-lightbox__img{transition:none}
  .sv-lightbox__spin{animation:none}
}
@media(max-width:640px){
  .sv-lightbox__stage{padding:40px 10px 68px}
  .sv-lightbox__nav{width:38px;height:38px;font-size:19px}
  .sv-lightbox__prev{left:4px}
  .sv-lightbox__next{right:4px}
}

/* ---------- 无障碍工具类（自带实现，不再依赖父主题） ----------
 *
 * 背景（2026-09-21 实测）：header.php 用了 .screen-reader-text 与 .skip-link，
 * 但**本主题没有任何对应 CSS** —— 视觉隐藏完全靠父主题 hello-elementor 的
 * theme.css。后果有两个：
 *   1) 依赖脆弱：父主题一升级/一换，跳转链接会直接显示在页面顶部
 *      （实测屏蔽父主题 CSS 后，它占 26px 高、把整页顶下去）；
 *   2) 无障碍要点实际上是"别人家的实现"，不可控。
 *
 * 这里补上标准实现（与 WordPress 官方 _s / hello 版本语义一致）：
 *   · 常驻视觉隐藏，但**保留给屏幕阅读器**；
 *   · 获得键盘焦点时完整显示（键盘用户 Tab 一下就能看到并使用）。
 */
.screen-reader-text{
  border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;
  padding:0;position:absolute!important;width:1px;word-wrap:normal!important;
}
.screen-reader-text:focus{
  background-color:#fff;border-radius:4px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);
  clip-path:none;color:var(--sv-ink-900);display:block;font-size:.9375rem;
  font-weight:600;height:auto;left:16px;line-height:normal;padding:14px 22px;
  text-decoration:none;top:16px;width:auto;z-index:100000;
}

/* ---------- IP 语言建议提示条 ----------
   非模态提示条：底部居中浮出，不遮挡内容、无遮罩。
   爬虫不会渲染它（服务端按 UA 判断后根本不输出 HTML）。
   样式只复用现有设计令牌，不新增依赖。 */
.sv-geo-hint{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:9998;
  width:min(680px,calc(100vw - 32px));
  background:var(--sv-forest-900);color:var(--sv-white);
  border-radius:var(--sv-r-card);box-shadow:0 18px 48px rgba(0,0,0,.28);
  animation:sv-geo-in .34s var(--sv-ease) both}
.sv-geo-hint.is-leaving{animation:sv-geo-out .24s var(--sv-ease) both}
.sv-geo-hint__inner{display:flex;align-items:center;gap:14px;padding:14px 16px}
.sv-geo-hint__globe{flex:none;display:inline-flex;color:var(--sv-moss-300)}
.sv-geo-hint__text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.sv-geo-hint__text strong{font-weight:600;font-size:.9375rem;line-height:1.35}
.sv-geo-hint__text span{font-size:.8125rem;color:rgba(255,255,255,.72);line-height:1.35}
.sv-geo-hint__actions{flex:none;display:flex;align-items:center;gap:8px}
.sv-geo-hint__switch{display:inline-flex;align-items:center;justify-content:center;
  background:var(--sv-white);color:var(--sv-forest-900);text-decoration:none;
  font-weight:600;font-size:.875rem;line-height:1;padding:11px 16px;
  border-radius:var(--sv-r-btn);white-space:nowrap;transition:background-color .2s var(--sv-ease)}
.sv-geo-hint__switch:hover,.sv-geo-hint__switch:focus-visible{background:var(--sv-sand-200)}
.sv-geo-hint__switch:focus-visible{outline:2px solid var(--sv-white);outline-offset:2px}
/* 按钮 reset 守卫：Hello Elementor 的 reset.css 会把按钮涂成本站洋红 */
.sv-geo-hint__stay,.sv-geo-hint__stay:hover,.sv-geo-hint__stay:focus,.sv-geo-hint__stay:active,
.sv-geo-hint__close,.sv-geo-hint__close:hover,.sv-geo-hint__close:focus,.sv-geo-hint__close:active{
  background:transparent;color:rgba(255,255,255,.72);border:0;box-shadow:none;
  font:inherit;cursor:pointer;padding:0}
.sv-geo-hint__stay{font-size:.8125rem;text-decoration:underline;
  text-underline-offset:3px;white-space:nowrap;transition:color .2s var(--sv-ease)}
.sv-geo-hint__stay:hover,.sv-geo-hint__stay:focus-visible{color:var(--sv-white)}
.sv-geo-hint__close{width:28px;height:28px;flex:none;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;font-size:20px;line-height:1;
  transition:background-color .2s var(--sv-ease),color .2s var(--sv-ease)}
.sv-geo-hint__close:hover,.sv-geo-hint__close:focus-visible{background:rgba(255,255,255,.16);color:var(--sv-white)}
.sv-geo-hint [hidden]{display:none !important}
@keyframes sv-geo-in{from{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes sv-geo-out{from{opacity:1;transform:translate(-50%,0)}to{opacity:0;transform:translate(-50%,10px)}}
@media(max-width:640px){
  .sv-geo-hint{left:0;right:0;bottom:0;transform:none;width:100%;border-radius:var(--sv-r-card) var(--sv-r-card) 0 0}
  .sv-geo-hint__inner{flex-wrap:wrap;padding:14px;gap:10px}
  .sv-geo-hint__text{flex:1 1 100%;order:1}
  .sv-geo-hint__globe{order:0}
  .sv-geo-hint__actions{flex:1 1 100%;order:2;justify-content:space-between}
  .sv-geo-hint__switch{flex:1 1 auto;text-align:center}
  @keyframes sv-geo-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
  @keyframes sv-geo-out{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(10px)}}
}
@media(prefers-reduced-motion:reduce){
  .sv-geo-hint,.sv-geo-hint.is-leaving{animation:none}
}
/* RTL（阿拉伯语）：提示条内部整体镜像 */
html[dir="rtl"] .sv-geo-hint__inner{direction:rtl}
