/* ==========================================================================
   Atelova — BLOCK LAYER
   File: public/ve/blocks.css
   Styles for the .b-* blocks injected through custom-sline sections.
   Generated from shopline/02-blocks.html (build_blocks.py).
   Block-local custom properties (--b-*) are defined in this file.
   Brand tokens (--ve-*) come from ve/theme.css.
   ========================================================================== */

/* ---------------------------------------------------------------- host fixes
   Blocks are injected through a custom-sline section, so each one arrives
   wrapped in:

       .custom-sline > .page-width > .custom-sline__inner > .rte

   .page-width would clamp our full-bleed blocks to the theme's content width
   and .custom-sline__inner is a centred flex column, which would stop blocks
   from stretching edge to edge. Both are neutralised here, scoped with
   :has(.veb) so nothing else on the site is affected. The plain-child
   fallbacks cover browsers without :has().

   The theme's .rte typography (heading margins, list markers, link colours)
   is already out-specified by the .veb resets further down, because this
   stylesheet loads after base/index.css.
   ------------------------------------------------------------------------- */
.custom-sline .page-width:has(.veb),
.custom-sline .page-width > .custom-sline__inner:has(.veb) {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}

.custom-sline .custom-sline__inner:has(.veb) {
  align-items: stretch;
  justify-content: flex-start;
  row-gap: 0;
  column-gap: 0;
}

.custom-sline .rte > .veb {
  width: 100%;
  margin: 0;
}

/* fallback for browsers without :has() */
.custom-sline .rte > .veb { margin: 0; }
.custom-sline .rte > .veb > *:first-child { margin-top: 0; }
.custom-sline .rte > .veb > *:last-child  { margin-bottom: 0; }

/* ---- style block #0 ---- */
.veb{
  /* 底色 / 墨色 */
  --cream:#FDF6EC; --cream2:#F7EDDE; --cream3:#FBF3E8; --ivory:#FFFFFF;
  --sand:#E1D1C0;  --sand2:#EDE2D4;
  --ink:#2E211A;   --brown:#4A3728;  --brown2:#6B4F3A; --brown3:#8A6A50;
  --muted:#8A7F76; --faint:#B3A79A;
  /* 金 */
  --gold:#B8925A;  --gold2:#D4B483;  --gold3:#F3E9D8;
  /* 线 */
  --line:#E6DCD0;  --line2:#F0E8DD;  --line3:#D6C7B4;
  /* 语义 */
  --sale:#A8321E;  --ok:#4F6B52;     --pre:#4A6B7C; --vtg:#5C7A5E;
  /* 字体 */
  --serif:'Cormorant Garamond',Garamond,Georgia,'Times New Roman',serif;
  --sans:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  /* 弧度 / 动效 */
  --r-sm:4px; --r-md:6px; --r-lg:12px; --r-pill:999px;
  --ease:cubic-bezier(.22,.61,.36,1); --dur:.38s;
  /* 版心 */
  --shell:1440px;
}
/* 区块内所有元素统一盒模型，避免被主题的通用规则打乱 */
.veb, .veb *, .veb *::before, .veb *::after{box-sizing:border-box;}
.veb img{max-width:100%;display:block;}
.veb a{text-decoration:none;}
.veb p{margin:0;}
.veb h1,.veb h2,.veb h3,.veb h4{margin:0;font-family:var(--serif);font-weight:600;line-height:1.15;color:var(--ink);letter-spacing:0;}
.veb ul{margin:0;padding:0;list-style:none;}
/* 版心容器：所有 B 区块共用 */
.veb-shell{width:100%;max-width:var(--shell);margin:0 auto;padding:0 clamp(16px,4vw,40px);}
/* 通用小标签 */
.veb-eyebrow{display:inline-block;font:500 11px/1 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--gold);}
/* 通用按钮 */
.veb-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:15px 32px;border:1px solid var(--ink);border-radius:var(--r-sm);
  background:var(--ink);color:var(--cream);font:500 13px/1 var(--sans);
  letter-spacing:.14em;text-transform:uppercase;cursor:pointer;
  transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease);}
.veb-btn:hover{background:var(--brown2);border-color:var(--brown2);color:#fff;}
.veb-btn--outline{background:transparent;color:var(--ink);border-color:var(--line3);}
.veb-btn--outline:hover{background:var(--ink);color:var(--cream);border-color:var(--ink);}
.veb-btn--light{background:transparent;color:var(--cream);border-color:rgba(253,246,236,.45);}
.veb-btn--light:hover{background:var(--cream);color:var(--ink);border-color:var(--cream);}

/* ---------------------------------------------------------------------------
   ❗ 按钮必须用「两个类」的选择器再来一遍。
   原因：custom-sline 区块会被包进主题的 <div class="rte">，而主题基础样式
   base/index.css 里有两条特异度 (0,1,1) 的规则：

       a:not(.button), a:not(.button):hover { color: rgba(var(--color-button-text-link),1); }
       .rte a, .rte a:hover { padding: 0 1px; text-decoration: underline; ... }

   我们上面那些 `.<单个类>` 选择器只有 (0,1,0)，**打不过 (0,1,1)**，于是：
     · color 被换成 --color-button-text-link（scheme-1 = #4A3728 深棕）
       → 深底按钮上的字变成深棕，等于隐形；
     · padding 被压成 `0 1px` → 按钮塌成一个小方块。
   两个症状叠在一起，就是「框框太小、文字看不见」。
   下面用 (0,2,0) 的 `.veb .veb-btn` 把间距、底色、字色、边框全部夺回来。
   （区块自己的 `.b-xxx .veb-btn` 也只改 width 之类，顺序在后不受影响。）
   --------------------------------------------------------------------------- */
/* ❗ 悬停「防塌陷」（2026-09-21）：几何属性必须把 :hover 态也写进选择器。
   主题 base/index.css 有这一条：
       .rte a, .rte a:hover { position:relative; padding:0 1px; text-decoration:underline; }
   `.rte a` 只有 (0,1,1)，静止时打不过下面的 (0,2,0)；
   但 `.rte a:hover` 是 (0,2,1)，**悬停那一刻**把 padding 抢成 1px、还补上下游下划线
   → 按钮实测从 228x45 塌成 166x15（宽 -62、高 -30），就是「鼠标一上去就变窄」。
   把状态写进选择器后升到 (0,3,0)，静止/悬停几何都归我们。 */
.veb .veb-btn,
.veb .veb-btn:hover{
  padding:15px 32px;
  background:var(--ink);border:1px solid var(--ink);border-radius:var(--r-sm);
  color:var(--cream);text-decoration:none;
}
.veb .veb-btn:hover{background:var(--brown2);border-color:var(--brown2);color:#fff;}
.veb .veb-btn--outline{background:transparent;color:var(--ink);border-color:var(--line3);}
.veb .veb-btn--outline:hover{background:var(--ink);color:var(--cream);border-color:var(--ink);}
.veb .veb-btn--light{background:transparent;color:var(--cream);border-color:rgba(253,246,236,.45);}
.veb .veb-btn--light:hover{background:var(--cream);color:var(--ink);border-color:var(--cream);}
/* 通用排版 */
.veb-lede{font:300 clamp(14px,1.5vw,16px)/1.75 var(--sans);color:var(--brown2);}
.veb-muted{font:300 13px/1.75 var(--sans);color:var(--muted);}
/* 通用大标题 */
.veb-h2{font:600 clamp(30px,3.6vw,40px)/1.15 var(--serif);}
.veb-sub{font:300 13px/1.7 var(--sans);color:var(--muted);}

/* ---- style block #1 ---- */
.b-announce{position:relative;background:var(--ink);color:var(--cream);overflow:hidden;}
.b-announce__vp{display:flex;width:100%;}
.b-announce__track{display:flex;flex:0 0 auto;align-items:center;gap:48px;padding:12px 24px 12px 0;
  animation:b-marq 46s linear infinite;will-change:transform;}
.b-announce:hover .b-announce__track{animation-play-state:paused;}
.b-announce__item{flex:0 0 auto;font:400 11.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;color:rgba(253,246,236,.90);}
.b-announce__item a{color:var(--gold2);text-decoration:underline;text-underline-offset:.3em;}
.b-announce__item a:hover{color:var(--cream);}
@keyframes b-marq{from{transform:translateX(0);}to{transform:translateX(-100%);}}
@media (max-width:768px){
  .b-announce__track{gap:32px;animation-duration:34s;}
  .b-announce__item{font-size:10.5px;letter-spacing:.12em;}
}
@media (prefers-reduced-motion:reduce){.b-announce__track{animation:none;}}

/* ---- style block #2 ---- */
.b-hero{background:var(--cream);padding:clamp(40px,6vw,72px) 0 clamp(48px,7vw,96px);}
.b-hero__in{display:grid;grid-template-columns:1.02fr 1fr;gap:clamp(32px,5vw,72px);align-items:center;}
.b-hero__copy{display:flex;flex-direction:column;align-items:flex-start;gap:24px;}
.b-hero__title{font:600 clamp(42px,5.6vw,72px)/1.06 var(--serif);letter-spacing:-.01em;}
.b-hero__title em{font-style:italic;color:var(--gold);}
.b-hero__tag{font:italic 400 clamp(18px,2vw,22px)/1 var(--serif);color:var(--gold);letter-spacing:.04em;margin-top:-8px;}
.b-hero__txt{max-width:560px;}
.b-hero__acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;}
.b-hero__proof{display:flex;flex-wrap:wrap;gap:12px 28px;padding-top:28px;margin-top:4px;border-top:1px solid var(--line);width:100%;}
.b-hero__proof span{display:inline-flex;align-items:center;gap:9px;font:400 12px/1.4 var(--sans);color:var(--brown2);letter-spacing:.02em;}
.b-hero__proof svg{width:17px;height:17px;flex:0 0 auto;stroke:var(--gold);stroke-width:1.5;fill:none;}
.b-hero__media{position:relative;border-radius:var(--r-lg);overflow:hidden;background:var(--sand2);box-shadow:0 32px 72px -32px rgba(46,33,26,.34);}
.b-hero__media img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;}
.b-hero__stamp{position:absolute;right:24px;bottom:24px;width:112px;height:112px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;text-align:center;
  background:rgba(253,246,236,.94);color:var(--brown);border:1px solid var(--gold2);
  font:italic 500 13px/1.3 var(--serif);letter-spacing:.04em;backdrop-filter:blur(2px);}
@media (max-width:1024px){
  .b-hero__in{grid-template-columns:1fr;gap:40px;}
  .b-hero__media{order:-1;}
  .b-hero__stamp{width:92px;height:92px;right:16px;bottom:16px;font-size:11.5px;}
}
@media (max-width:768px){
  .b-hero__proof{gap:10px 20px;padding-top:20px;}
  .b-hero__acts{width:100%;}
  .b-hero__acts .veb-btn,
  .b-hero__acts .veb-btn:hover{flex:1 1 auto;padding:15px 22px;}
}

/* ---- style block #3 ---- */
.b-catstrip{background:var(--ivory);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.b-catstrip__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);}
.b-catstrip__item{display:flex;flex-direction:column;gap:7px;padding:clamp(28px,3.4vw,40px) clamp(24px,3vw,36px);
  background:var(--ivory);transition:background var(--dur) var(--ease);position:relative;}
.b-catstrip__item:hover{background:var(--cream3);}
.b-catstrip__label{font:600 clamp(22px,2.6vw,29px)/1.15 var(--serif);color:var(--ink);}
.b-catstrip__meta{font:300 12px/1.6 var(--sans);color:var(--muted);letter-spacing:.02em;}
.b-catstrip__item svg{position:absolute;right:clamp(24px,3vw,36px);top:50%;transform:translateY(-50%);
  width:22px;height:22px;stroke:var(--brown3);stroke-width:1.4;fill:none;
  transition:transform var(--dur) var(--ease),stroke var(--dur) var(--ease);}
.b-catstrip__item:hover svg{transform:translateY(-50%) translateX(5px);stroke:var(--gold);}
@media (max-width:768px){
  .b-catstrip__grid{grid-template-columns:1fr;}
  .b-catstrip__item{padding:24px 16px;}
  .b-catstrip__item svg{right:16px;}
}

/* ---- style block #4 ---- */
.b-brands{background:var(--cream);padding:clamp(56px,7vw,96px) 0;}
.b-brands__head{max-width:640px;margin:0 auto clamp(36px,4.5vw,56px);text-align:center;}
.b-brands__head .veb-eyebrow{margin-bottom:14px;}
.b-brands__head p{margin-top:16px;}
.b-brands__grid{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(12px,1.6vw,20px);}
.b-brands__tile{display:flex;flex-direction:column;align-items:center;gap:14px;
  padding:clamp(24px,2.8vw,32px) 12px;background:var(--ivory);
  border:1px solid var(--line);border-radius:var(--r-md);
  transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease);}
.b-brands__tile:hover{border-color:var(--gold2);transform:translateY(-3px);box-shadow:0 18px 40px -22px rgba(46,33,26,.30);}
.b-brands__ini{display:flex;align-items:center;justify-content:center;
  width:56px;height:56px;border-radius:50%;border:1px solid var(--line3);
  background:var(--cream3);color:var(--brown);font:500 17px/1 var(--serif);letter-spacing:.06em;
  transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease),color var(--dur) var(--ease);}
.b-brands__tile:hover .b-brands__ini{border-color:var(--gold);background:var(--gold3);color:var(--brown);}
.b-brands__media{width:100%;aspect-ratio:1/1;overflow:hidden;border-radius:var(--r-sm);background:var(--cream3);}
.b-brands__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.b-brands__tile:hover .b-brands__media img{transform:scale(1.05);}
.b-brands__name{font:500 15px/1.3 var(--sans);color:var(--ink);text-align:center;letter-spacing:.02em;}
.b-brands__count{font:300 11.5px/1 var(--sans);color:var(--faint);}
.b-brands__more{margin-top:clamp(32px,4vw,48px);text-align:center;}
.b-brands__arrow{display:inline-flex;align-items:center;gap:8px;font:500 12.5px/1 var(--sans);
  letter-spacing:.12em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--line3);padding-bottom:5px;
  transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease);}
.b-brands__arrow:hover{border-color:var(--gold);color:var(--gold);}
.b-brands__arrow svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.5;fill:none;}
@media (max-width:1024px){.b-brands__grid{grid-template-columns:repeat(3,1fr);}}
@media (max-width:480px){
  .b-brands__grid{grid-template-columns:repeat(2,1fr);gap:10px;}
  .b-brands__tile{padding:18px 8px;gap:10px;}
  .b-brands__ini{width:44px;height:44px;font-size:14px;}
  .b-brands__name{font-size:13px;}
}

/* ---- style block #5 ----
   The three promises are set as a measured pair of lines, not as reflowed
   prose: the copy carries a semantic <br> and the column is wide enough to
   hold the longer half (232px at 13px) without letting the pair drift apart.
   Under 900px the row becomes a single column and the break is switched
   off so the text flows naturally again. Every <br> in the markup is
   followed by a space, so removing the break never fuses two words. */
.b-props{background:var(--ivory);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.b-props__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);}
.b-props__item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px;min-width:0;
  padding:clamp(38px,4.6vw,58px) clamp(20px,2.4vw,36px);background:var(--ivory);}
.b-props__ico{display:flex;align-items:center;justify-content:center;width:56px;height:56px;
  border-radius:50%;background:var(--cream3);border:1px solid var(--line);}
.b-props__ico svg{width:24px;height:24px;stroke:var(--brown);stroke-width:1.4;fill:none;}
.b-props__body{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:0;}
.b-props__item h3{font:600 clamp(19px,2.1vw,23px)/1.25 var(--serif);margin:0;}
.b-props__item p{max-width:420px;margin:0;line-height:1.65;}
@media (max-width:1024px){
  .b-props__item{padding:36px clamp(16px,2vw,26px);gap:14px;}
}
@media (max-width:900px){
  .b-props__grid{grid-template-columns:minmax(0,1fr);}
  .b-props__item{flex-direction:row;align-items:flex-start;text-align:left;gap:18px;padding:26px 16px;}
  .b-props__ico{flex:0 0 auto;width:48px;height:48px;}
  .b-props__ico svg{width:20px;height:20px;}
  .b-props__body{flex:1 1 auto;align-items:flex-start;gap:8px;}
  .b-props__item p{max-width:none;text-wrap:wrap;}
  .b-props__item p br{display:none;}
}

/* ---- style block #6 ---- */
.b-iwt{background:var(--cream);padding:clamp(56px,7vw,96px) 0;}
.b-iwt--white{background:var(--ivory);}
.b-iwt__in{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5.5vw,80px);align-items:center;}
.b-iwt__media{border-radius:var(--r-lg);overflow:hidden;background:var(--sand2);box-shadow:0 30px 68px -34px rgba(46,33,26,.32);}
.b-iwt__media img{width:100%;height:auto;aspect-ratio:7/6;object-fit:cover;}
.b-iwt__copy{display:flex;flex-direction:column;align-items:flex-start;gap:20px;}
.b-iwt__copy h2{font:600 clamp(30px,3.6vw,40px)/1.14 var(--serif);max-width:100%;}
.b-iwt__list{display:flex;flex-direction:column;gap:12px;margin-top:4px;}
.b-iwt__list li{display:flex;align-items:flex-start;gap:11px;font:300 14px/1.65 var(--sans);color:var(--brown2);}
.b-iwt__list svg{flex:0 0 auto;width:18px;height:18px;margin-top:3.5px;stroke:var(--gold);stroke-width:1.8;fill:none;}
.b-iwt__stats{display:flex;flex-wrap:wrap;gap:20px 48px;padding:24px 0;margin-top:8px;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);width:100%;}
.b-iwt__stat{display:flex;flex-direction:column;gap:4px;}
.b-iwt__stat b{font:600 clamp(26px,3vw,34px)/1 var(--serif);color:var(--gold);}
.b-iwt__stat span{font:400 11px/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);}
/* 反方向 */
.b-iwt--flip .b-iwt__media{order:2;}
.b-iwt--flip .b-iwt__copy{order:1;}
@media (max-width:1024px){
  .b-iwt__in{grid-template-columns:1fr;gap:36px;}
  .b-iwt--flip .b-iwt__media{order:-1;}
  .b-iwt--flip .b-iwt__copy{order:0;}
  .b-iwt__media img{aspect-ratio:16/10;}
}
@media (max-width:768px){
  .b-iwt__stats{gap:18px 30px;padding:20px 0;}
}
/* 标题断点由 HTML 里的 <br> 决定（改断点就挪那个 <br>）；
   窄屏放开让它自然流，避免强制的长行溢出。
   注：主题全局对标题设了 text-wrap:balance，只调 max-width 是改不动断点的。 */
@media (max-width:480px){
  .b-iwt__copy h2 br{display:none;}
}

/* ---- style block #7 ---- */
.b-addon{background:var(--ivory);padding:clamp(48px,6vw,80px) 0;}
.b-addon__panel{display:grid;grid-template-columns:1.05fr 1.15fr;gap:clamp(32px,5vw,72px);align-items:center;
  padding:clamp(32px,4.5vw,56px);background:var(--cream);border:1px solid var(--line);border-radius:var(--r-lg);}
.b-addon__copy{display:flex;flex-direction:column;align-items:flex-start;gap:18px;}
.b-addon__copy h2{font:600 clamp(26px,3vw,34px)/1.2 var(--serif);}
.b-addon__list{display:flex;flex-direction:column;gap:12px;}
.b-addon__list li{display:flex;align-items:flex-start;gap:11px;font:300 13.5px/1.65 var(--sans);color:var(--brown2);}
.b-addon__list svg{flex:0 0 auto;width:17px;height:17px;margin-top:3.5px;stroke:var(--gold);stroke-width:1.8;fill:none;}
/* 两个鉴定服务选项：Entrupy / Legitapp 各一条，各带自己的 Add to bag 按钮。
   用 grid 而不是 flex：flex 的默认 align-items:stretch 会把 logo 拉满一整列宽。 */
.b-addon__opts{display:flex;flex-direction:column;gap:clamp(20px,2.2vw,26px);
  padding-left:clamp(0px,3vw,40px);border-left:1px solid var(--line);}
.b-addon__opt{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(16px,1.6vw,22px);align-items:center;}
.b-addon__opt + .b-addon__opt{padding-top:clamp(20px,2.2vw,26px);border-top:1px solid var(--line);}
.b-addon__opt-body{display:flex;flex-direction:column;gap:11px;min-width:0;}
/* ⚠ 主题基础样式 .rte img{max-width:100%;height:auto} 是 (0,1,1)，
   单类选择器 (0,1,0) 压不住，logo 会被撑成整列宽 —— 必须写到 .veb 这一层 */
.veb .b-addon__opt-logo{display:block;height:52px;width:auto;border-radius:8px;}
.b-addon__opt-sub{font:300 12.5px/1.55 var(--sans);color:var(--brown3);}
.b-addon__opt-price{display:flex;align-items:baseline;gap:11px;flex-wrap:wrap;}
.b-addon__opt-price b{font:600 clamp(28px,2.7vw,34px)/1 var(--serif);color:var(--ink);}
.b-addon__opt-was{display:inline-flex;align-items:baseline;gap:9px;}
.b-addon__opt-was s{font:300 14px/1 var(--sans);color:var(--faint);}
.b-addon__opt-was em{font:500 11px/1 var(--sans);font-style:normal;letter-spacing:.08em;
  text-transform:uppercase;color:var(--sale);}
.b-addon__opt .veb-btn{width:100%;}
.b-addon__fine{margin-top:-2px;}
/* 选项内的排布跟着可用宽度走：opts 列窄了竖排，面板回到单列后又变宽就横排 */
@media (max-width:1180px){
  .b-addon__opt{grid-template-columns:1fr;}
}
@media (max-width:900px){
  .b-addon__panel{grid-template-columns:1fr;gap:32px;}
  .b-addon__opts{padding-left:0;border-left:0;border-top:1px solid var(--line);padding-top:32px;}
  .b-addon__opt{grid-template-columns:auto minmax(0,1fr);}
}
@media (max-width:620px){
  .b-addon__opt{grid-template-columns:1fr;}
}
@media (max-width:420px){
  .veb .b-addon__opt-logo{height:46px;}
}

/* ---- style block #8 ---- */
.b-look{background:var(--cream);padding:clamp(56px,7vw,96px) 0;}
.b-look__head{max-width:640px;margin:0 auto clamp(36px,4.5vw,56px);text-align:center;}
.b-look__head .veb-eyebrow{margin-bottom:14px;}
.b-look__head p{margin-top:16px;}
.b-look__row{display:flex;gap:clamp(12px,1.6vw,20px);overflow-x:auto;scroll-snap-type:x mandatory;
  padding-bottom:16px;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.b-look__row::-webkit-scrollbar{display:none;}
.b-look__item{flex:0 0 auto;width:clamp(220px,23vw,290px);aspect-ratio:1/1;position:relative;
  scroll-snap-align:start;border-radius:var(--r-md);overflow:hidden;background:var(--sand2);display:block;}
.b-look__item img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease);}
.b-look__item:hover img{transform:scale(1.06);}
.b-look__empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--brown3);opacity:.42;}
.b-look__empty svg{width:32px;height:32px;stroke:currentColor;stroke-width:1.2;fill:none;}
.b-look__ov{position:absolute;inset:0;display:flex;align-items:flex-end;gap:8px;padding:20px;
  background:linear-gradient(to top,rgba(46,33,26,.62),rgba(46,33,26,0) 55%);
  color:var(--cream);font:400 12px/1 var(--sans);letter-spacing:.06em;
  opacity:0;transition:opacity var(--dur) var(--ease);}
.b-look__item:hover .b-look__ov{opacity:1;}
.b-look__ov svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.5;fill:none;}
.b-look__more{margin-top:clamp(32px,4vw,48px);text-align:center;}
.b-look__more a{display:inline-flex;align-items:center;gap:8px;font:500 12.5px/1 var(--sans);
  letter-spacing:.12em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--line3);padding-bottom:5px;
  transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease);}
.b-look__more a:hover{border-color:var(--gold);color:var(--gold);}
.b-look__more svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.5;fill:none;}
@media (max-width:768px){
  .b-look__item{width:68vw;}
  .b-look__ov{opacity:1;}
}

/* ---- style block #9 ---- */
.b-news{background:var(--ink);color:var(--cream);padding:clamp(56px,7vw,96px) 0;}
.b-news__in{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:center;}
.b-news__copy{display:flex;flex-direction:column;gap:16px;}
.b-news__copy .veb-eyebrow{color:var(--gold2);}
.b-news__copy h2{font:600 clamp(30px,3.6vw,42px)/1.14 var(--serif);color:var(--cream);}
.b-news__copy p{font:300 14px/1.75 var(--sans);color:rgba(253,246,236,.72);max-width:46ch;}
.b-news__form{display:flex;gap:10px;flex-wrap:wrap;}
.b-news__form input{flex:1 1 260px;min-width:0;padding:16px 18px;border:1px solid rgba(253,246,236,.28);
  border-radius:var(--r-sm);background:rgba(253,246,236,.06);color:var(--cream);font:300 14px/1 var(--sans);}
.b-news__form input::placeholder{color:rgba(253,246,236,.45);}
.b-news__form input:focus{outline:none;border-color:var(--gold2);background:rgba(253,246,236,.10);}
.b-news__form button{flex:0 0 auto;padding:16px 32px;border:1px solid var(--cream);border-radius:var(--r-sm);
  background:var(--cream);color:var(--ink);font:500 13px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;
  transition:background var(--dur) var(--ease),color var(--dur) var(--ease);}
.b-news__form button:hover{background:transparent;color:var(--cream);}
.b-news__note{margin-top:14px;font:300 11.5px/1.6 var(--sans);color:rgba(253,246,236,.48);}
@media (max-width:860px){
  .b-news__in{grid-template-columns:1fr;gap:32px;}
  .b-news__form button{width:100%;}
}

/* ---- style block #10 ---- */
.b-faq{background:var(--ivory);padding:clamp(56px,7vw,96px) 0;}
.b-faq__in{max-width:920px;margin:0 auto;}
.b-faq__head{text-align:center;margin-bottom:clamp(36px,4.5vw,56px);}
.b-faq__head .veb-eyebrow{margin-bottom:14px;}
.b-faq__head p{margin-top:16px;}
.b-faq__group{margin-bottom:40px;}
.b-faq__group:last-child{margin-bottom:0;}
.b-faq__gt{font:500 12.5px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold);
  padding-bottom:14px;margin-bottom:4px;border-bottom:1px solid var(--line3);}
.b-faq__item{border-bottom:1px solid var(--line);}
.b-faq__item summary{display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:22px 0;cursor:pointer;list-style:none;
  font:500 clamp(15px,1.7vw,17.5px)/1.45 var(--sans);color:var(--ink);
  transition:color var(--dur) var(--ease);}
.b-faq__item summary::-webkit-details-marker{display:none;}
.b-faq__item summary:hover{color:var(--gold);}
.b-faq__item summary svg{flex:0 0 auto;width:20px;height:20px;stroke:var(--brown3);stroke-width:1.6;fill:none;
  transition:transform var(--dur) var(--ease),stroke var(--dur) var(--ease);}
.b-faq__item[open] summary{color:var(--gold);}
.b-faq__item[open] summary svg{transform:rotate(180deg);stroke:var(--gold);}
.b-faq__a{padding:0 0 24px;max-width:78ch;}
.b-faq__a p{font:300 14px/1.8 var(--sans);color:var(--brown2);}
.b-faq__a p + p{margin-top:12px;}
.b-faq__a ul{display:flex;flex-direction:column;gap:9px;margin-top:12px;}
.b-faq__a li{position:relative;padding-left:16px;font:300 14px/1.8 var(--sans);color:var(--brown2);}
.b-faq__a li::before{content:"";position:absolute;left:0;top:.95em;width:5px;height:5px;border-radius:50%;background:var(--gold);}
.b-faq__a a{color:var(--brown);border-bottom:1px solid var(--line3);}
.b-faq__a a:hover{color:var(--gold);border-color:var(--gold);}
@media (max-width:480px){
  .b-faq__item summary{padding:18px 0;gap:12px;}
  .b-faq__a{padding-bottom:20px;}
}

/* ---- style block #11 ---- */
.b-grade{background:var(--cream);padding:clamp(56px,7vw,96px) 0;}
.b-grade__in{max-width:1100px;margin:0 auto;}
.b-grade__head{text-align:center;margin-bottom:clamp(32px,4vw,48px);}
.b-grade__head .veb-eyebrow{margin-bottom:14px;}
.b-grade__head p{margin-top:16px;}
.b-grade__wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--r-md);background:var(--ivory);}
.b-grade table{width:100%;border-collapse:collapse;min-width:640px;}
.b-grade thead th{background:var(--cream3);padding:18px 22px;text-align:left;
  font:500 11.5px/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--brown2);
  border-bottom:1px solid var(--line3);white-space:nowrap;}
.b-grade tbody td{padding:20px 22px;border-bottom:1px solid var(--line2);vertical-align:top;
  font:300 13.5px/1.7 var(--sans);color:var(--brown2);}
.b-grade tbody tr:last-child td{border-bottom:0;}
.b-grade tbody tr:hover td{background:var(--cream3);}
.b-grade__g{display:inline-flex;align-items:center;gap:10px;font:500 15px/1 var(--sans);color:var(--ink);white-space:nowrap;}
.b-grade__dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto;}
.b-grade__badge{display:inline-block;padding:5px 11px;border-radius:var(--r-pill);
  font:500 10.5px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;}
.b-grade__foot{margin-top:24px;display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:center;text-align:center;}
@media (max-width:768px){
  /* 窄屏不再横向滚动，而是把每一行拆成一张卡片：
     用 td 的 data-label 属性把表头复述出来，信息一条都不丢。 */
  .b-grade__wrap{overflow:visible;border:0;background:transparent;border-radius:0;}
  .b-grade table{min-width:0;display:block;}
  .b-grade thead{display:none;}
  .b-grade tbody{display:flex;flex-direction:column;gap:14px;}
  .b-grade tbody tr{display:block;background:var(--ivory);border:1px solid var(--line);
    border-radius:var(--r-md);overflow:hidden;}
  .b-grade tbody tr:hover td{background:transparent;}
  .b-grade tbody td{display:block;padding:14px 18px;border-bottom:1px solid var(--line2);}
  .b-grade tbody tr td:last-child{border-bottom:0;}
  .b-grade tbody td::before{content:attr(data-label);display:block;margin-bottom:7px;
    font:500 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);}
  .b-grade tbody td:first-child{background:var(--cream3);padding-top:16px;padding-bottom:16px;}
  .b-grade__g{font-size:16px;}
}

/* ---- style block #12 ---- */
.b-promise{background:var(--brown);color:var(--cream);padding:clamp(64px,8vw,110px) 0;text-align:center;position:relative;overflow:hidden;}
.b-promise::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse at 50% 0%,rgba(184,146,90,.20),transparent 62%);}
.b-promise__in{position:relative;max-width:840px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:24px;}
.b-promise .veb-eyebrow{color:var(--gold2);}
.b-promise h2{font:600 clamp(32px,4.4vw,52px)/1.12 var(--serif);color:var(--cream);max-width:20ch;}
.b-promise h2 em{font-style:italic;color:var(--gold2);}
.b-promise p{font:300 clamp(14px,1.6vw,16px)/1.8 var(--sans);color:rgba(253,246,236,.76);max-width:62ch;}
.b-promise__acts{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:12px;}
.b-promise__rule{width:60px;height:1px;background:var(--gold2);opacity:.6;}
@media (max-width:480px){
  .b-promise__acts{width:100%;flex-direction:column;}
  .b-promise__acts .veb-btn{width:100%;}
}

/* ==========================================================================
   数字字形 —— Cormorant Garamond 的默认数字是「旧式数字 / text figures」：
   0 1 2 只到 x-height 高，3 4 5 7 9 出格（4 5 7 9 下沉，6 8 上升）。
   于是同一排里 "1" 矮 "7" 高，价格 "$50" 的 5 掉到基线以下 ——
   看上去像两种字体拼在一行，这就是统计数字和加购价格显得别扭的原因。
   统一改成「等高数字 / lining figures」：字形高度一致。
   数字宽度几乎不变（实测 "17 yrs" 只宽 2px，整行 627px 纹丝不动）。

   ⚠ 这一条必须留在本文件最末尾。上面各处都用 `font:` 简写，
     而 font 简写会把 font-variant-numeric 重置回 normal，
     只能靠「同特异度 + 来源顺序更靠后」把它压回去。
   ========================================================================== */
.veb h1, .veb h2, .veb h3, .veb h4,
.veb-h2,
.b-hero__title, .b-hero__tag, .b-hero__stamp,
.b-catstrip__label, .b-brands__ini, .b-props__item h3,
.b-iwt__copy h2, .b-iwt__stat b,
.b-addon__copy h2, .b-addon__price, .b-addon__opt-price b,
.b-news__copy h2, .b-promise h2 {
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
}

/* --------------------------------------------------------------------------
   兜底（2026-09-21 追加）
   上面那份清单是要人工维护的 —— 加一个新组件、忘了把它登记进来就会复发。
   这次的 `$50` 正是这么漏的：双选项改造新加的 .b-addon__opt-price b 没进清单，
   它的 `font:` 简写把 font-variant-numeric 重置回 normal，0 又变回矮的旧式数字。
   所以再通铺一层 !important：之后任何新增的组件都不用回来改这里。
   （已确认本文件没有别处用 font-feature-settings，全局强制不会踩到别人。）
   ========================================================================== */
.veb, .veb *, .veb *::before, .veb *::after {
  font-variant-numeric: lining-nums !important;
  font-feature-settings: "lnum" 1 !important;
}


/* ===========================================================================
   卡片与文字链接：同一只黑手（`.rte a:hover`）的其余两种症状（2026-09-21）
   ---------------------------------------------------------------------------
   除了按钮塌陷，`.rte a:hover` 还会：
     · 给所有链接硬加 text-decoration:underline + text-underline-offset:6px
       → 整块可点的卡片（分类条、图片格）悬停时文字莫名多一条下划线；
       → 公告条那条自己带下划线的链接，悬停时下划线会往下跳 2.5px。
     · 把 padding 抢成 `0 1px`
       → `.b-look__more a` 的 padding-bottom:5px 悬停时消失，边框跟着上跳。
   下面按元素逐条夺回，选择器都保证 (0,3,x) 以上，压得过 `.rte a:hover` (0,2,1)。
   =========================================================================== */

/* 分类条：整块卡片自带底色 + 箭头动效，不需要文字下划线 */
.veb .b-catstrip__item,
.veb .b-catstrip__item:hover{text-decoration:none;}

/* 图片格：悬停已有图片放大 + 遮罩淡入，不需要文字下划线 */
.veb .b-look__item,
.veb .b-look__item:hover{text-decoration:none;}

/* 「Follow @atelova on Instagram」：下划线是用 border-bottom 画的，
   留着主题那条 text-decoration 会变成双层线；padding-bottom 也要保住 */
.veb .b-look__more a,
.veb .b-look__more a:hover{
  padding-bottom:5px;
  text-decoration:none;
}

/* 公告条：这条链接本来就有下划线，只需要钉住 offset，别让它悬停时跳位置 */
.veb .b-announce__item a,
.veb .b-announce__item a:hover{
  color:var(--gold2);
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:.3em;
}
.veb .b-announce__item a:hover{color:var(--cream);}

/* FAQ 正文里的链接同样用 border-bottom 画线，压掉主题那条 */
.veb .b-faq__a a:hover{text-decoration:none;}

/* FAQ 正文里的加粗：正文字重是 300，浏览器默认的 bolder 在浅色细体上几乎看不出
   差别，而「非真伪问题不接受退货」必须让客户一眼看到 —— 显式加重并压深颜色。
   （主题基础样式里没有 strong 规则，这条不会跟谁打架。） */
.veb .b-faq__a strong{font-weight:600;color:var(--ink);}



/* 成色分级那一条的收尾指路句：列表与段落之间补 12px（与 p+p / ul 的上边距同一口径） */
.b-faq__a ul + p{margin-top:12px;}

/* ---- style block #13 · 分类页：子分类导览 ---- */
.veb.b-colnav{display:none;background:var(--ivory);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:clamp(36px,4.6vw,58px) 0;}
.veb.b-colnav .b-colnav__head{display:flex;flex-direction:column;gap:12px;max-width:660px;}
.veb.b-colnav .b-colnav__title{font:600 clamp(25px,3vw,34px)/1.16 var(--serif);color:var(--ink);}
.veb.b-colnav .b-colnav__list{display:flex;flex-wrap:wrap;gap:10px 12px;margin:clamp(22px,2.6vw,32px) 0 0;padding:0;list-style:none;}
.veb.b-colnav .b-colnav__item{margin:0;}
.veb.b-colnav .b-colnav__item a{display:inline-flex;align-items:baseline;gap:9px;
  padding:11px 18px;border:1px solid var(--line3);border-radius:var(--r-pill);
  font:400 12px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);
  transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease);}
.veb.b-colnav .b-colnav__item a:hover{background:var(--ink);border-color:var(--ink);color:var(--cream);}
.veb.b-colnav .b-colnav__count{font:400 10.5px/1 var(--sans);color:var(--faint);letter-spacing:0;}
.veb.b-colnav .b-colnav__item a:hover .b-colnav__count{color:var(--gold2);}

/* ---- style block #14 · 分类页：选购说明条 ---- */
.veb.b-collhelp{background:var(--cream2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:clamp(40px,5vw,64px) 0;}
.veb.b-collhelp .b-collhelp__in{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,44px);}
.veb.b-collhelp .b-collhelp__cell{display:flex;flex-direction:column;gap:10px;}
.veb.b-collhelp .b-collhelp__n{font:500 11px/1 var(--sans);letter-spacing:.24em;color:var(--gold);}
.veb.b-collhelp .b-collhelp__cell h3{font:600 clamp(18px,2vw,22px)/1.25 var(--serif);color:var(--ink);}
@media (max-width:900px){.veb.b-collhelp .b-collhelp__in{grid-template-columns:1fr;gap:26px;}}
body[data-page-collection-handle="luxury-bags"] .veb.b-colnav[data-ve-coll="luxury-bags"]{display:block;}
body[data-page-collection-handle="fine-jewelry"] .veb.b-colnav[data-ve-coll="fine-jewelry"]{display:block;}
body[data-page-collection-handle="luxury-accessories"] .veb.b-colnav[data-ve-coll="luxury-accessories"]{display:block;}
body[data-page-collection-handle="chanel"] .veb.b-colnav[data-ve-coll="chanel"]{display:block;}

/* ==========================================================================
   Atelova — About page layer   (追加于 2026-10-07)
   File: public/ve/blocks.css      → 本段**纯追加**到文件末尾
   Scope: /pages/our-story 专属。只新增 .b-about-* 命名空间，
          不新增/不覆盖任何既有选择器 ⇒ 对全站其它页面零影响。
   复用既有类（未在此重复定义）：.b-iwt / .b-props / .b-promise / .veb-*
   ========================================================================== */

/* ---- 1. Page hero ------------------------------------------------------- */
.b-about-hero{background:var(--cream);padding:clamp(52px,6.5vw,88px) 0 clamp(40px,5vw,64px);text-align:center;}
.b-about-hero__in{max-width:880px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:22px;}
.b-about-hero h1{font:600 clamp(38px,5.2vw,64px)/1.08 var(--serif);color:var(--ink);}
.b-about-hero h1 em{font-style:italic;color:var(--gold);}
.b-about-hero__lede{font:300 clamp(14px,1.55vw,16.5px)/1.8 var(--sans);color:var(--brown2);max-width:62ch;}
.b-about-hero__acts{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:6px;}
.b-about-hero__meta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 30px;margin-top:22px;padding-top:26px;border-top:1px solid var(--line);width:100%;}
.b-about-hero__meta span{font:400 11px/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);}
@media (max-width:480px){
  .b-about-hero__acts{width:100%;flex-direction:column;}
  .b-about-hero__acts .veb-btn{width:100%;}
  .b-about-hero__meta{gap:10px 18px;}
}

/* ---- 2. 数字带 ---------------------------------------------------------- */
.b-about-stats{background:var(--ivory);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.b-about-stats__grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;background:var(--line);}
.b-about-stats__item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  padding:clamp(24px,3vw,36px) 10px;background:var(--ivory);text-align:center;min-width:0;}
.b-about-stats__item b{font:600 clamp(24px,2.8vw,34px)/1 var(--serif);color:var(--gold);white-space:nowrap;}
.b-about-stats__item span{font:400 10.5px/1.45 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);}
@media (max-width:960px){.b-about-stats__grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (max-width:480px){.b-about-stats__grid{grid-template-columns:repeat(2,minmax(0,1fr));}}

/* ---- 3. 流程四步 -------------------------------------------------------- */
.b-about-steps{background:var(--cream);padding:clamp(56px,7vw,96px) 0;}
.b-about-steps__head{max-width:680px;margin:0 auto clamp(36px,4.5vw,56px);text-align:center;}
.b-about-steps__head .veb-eyebrow{margin-bottom:14px;}
.b-about-steps__head h2{margin-bottom:16px;}
.b-about-steps__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(22px,2.6vw,34px);}
.b-about-steps__item{display:flex;flex-direction:column;gap:13px;padding-top:22px;border-top:2px solid var(--line3);min-width:0;}
.b-about-steps__no{font:500 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold);}
.b-about-steps__item h3{font:600 clamp(19px,2.1vw,23px)/1.25 var(--serif);}
.b-about-steps__item p{font:300 13.5px/1.7 var(--sans);color:var(--brown2);}
@media (max-width:900px){.b-about-steps__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 24px;}}
@media (max-width:480px){.b-about-steps__grid{grid-template-columns:1fr;}}

/* ---- 4. 服务事实 -------------------------------------------------------- */
.b-about-facts{background:var(--ivory);padding:clamp(56px,7vw,96px) 0;}
.b-about-facts__in{max-width:1040px;margin:0 auto;}
.b-about-facts__head{text-align:center;margin-bottom:clamp(32px,4vw,48px);}
.b-about-facts__head .veb-eyebrow{margin-bottom:14px;}
.b-about-facts__head h2{margin-bottom:16px;}
.b-about-facts__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;}
.b-about-facts__row{display:grid;grid-template-columns:158px minmax(0,1fr);gap:18px;align-items:start;
  padding:clamp(20px,2.4vw,28px) clamp(20px,2.4vw,30px);background:var(--ivory);}
.b-about-facts__k{font:500 11.5px/1.5 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);}
.b-about-facts__v{font:300 13.5px/1.7 var(--sans);color:var(--brown2);}
@media (max-width:820px){.b-about-facts__grid{grid-template-columns:1fr;}}
@media (max-width:480px){.b-about-facts__row{grid-template-columns:1fr;gap:8px;}}
/* ==========================================================================
   Atelova — Hero × eBay AG trust   （追加于 2026-10-08）
   把原「页头」里那条 eBay AG 信任条并进 hero 右栏：
     左 = 原 hero（文案 + 主图），右 = AG 徽标 + 文案 + eBay 店铺按钮。
   只在 .b-hero--trust 修饰符下生效；未加修饰符的 hero 行为完全不变。

   ⚠ 三个实测坑，改这段前先读：
   1) 权重：`.b-hero--trust .b-hero__in`（0,2,0）高于主题自己的
      `@media (max-width:1024px){.b-hero__in{grid-template-columns:1fr}}`（0,1,0），
      而**媒体查询不增加特异性** ⇒ 必须在 ≤1024 处**显式收回**三栏，
      否则手机档一直是三栏、文案列被压到 119px 溢出。
   2) 列宽按「**webfont 回退**」定档：本店预览环境取不到 Cormorant Garamond，
      会落到 Georgia **Bold**（比正片宽约 50%，字体栈里的 Garamond 本机也没有）。
      实测 54px 时 "Second Time Around" 宽 ≈ 571px ⇒ 文案列必须 ≥ ~580px 才不换行。
      给到 571px 列 + 51px 标题后，**Georgia Bold 与 Cormorant 两种字体下都是两行**。
   3) 主图因此比原版窄（642 → 427px），stamp 圆章同步收小到 96px 才不显突兀。
   ========================================================================== */

/* —— ≥1201 桌面：文案 | 主图 | AG 卡 —— */
.b-hero--trust .b-hero__in{
  grid-template-columns:minmax(0,1.34fr) minmax(0,1fr) minmax(0,.66fr);
  gap:clamp(24px,2.4vw,44px);
}
.b-hero--trust .b-hero__title{font-size:clamp(28px,3.6vw,51px);}
.b-hero--trust .b-hero__txt{max-width:44ch;}
.b-hero--trust .b-hero__proof{gap:10px 20px;}
.b-hero--trust .b-hero__stamp{width:96px;height:96px;right:18px;bottom:18px;font-size:11.5px;}

/* —— AG 信任卡 —— */
.b-hero__ag{
  display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;
  padding:clamp(22px,2.2vw,34px) clamp(18px,1.8vw,26px);
  background:rgba(255,255,255,.68);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  box-shadow:0 26px 60px -36px rgba(46,33,26,.30);
}
.b-hero__ag-badge{display:block;width:clamp(126px,9.6vw,152px);height:auto;}
.b-hero__ag-title{font:600 clamp(18px,1.42vw,21px)/1.24 var(--serif);color:var(--ink);letter-spacing:-.005em;}
.b-hero__ag-txt{font:300 12.5px/1.62 var(--sans);color:var(--brown2);max-width:26ch;}
.b-hero__ag .veb-btn{width:100%;padding:14px 16px;letter-spacing:.1em;}

/* —— 1025–1200：文案 | 主图 两栏，AG 卡整行居中落到下方 —— */
@media (min-width:1025px) and (max-width:1200px){
  .b-hero--trust .b-hero__in{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:34px;}
  .b-hero--trust .b-hero__title{font-size:clamp(28px,4vw,44px);}
  .b-hero--trust .b-hero__ag{grid-column:1 / -1;width:100%;max-width:560px;margin:6px auto 0;}
}

/* —— ≤1024：显式收回三栏，标题/导语/stamp 恢复主题口径 —— */
@media (max-width:1024px){
  .b-hero--trust .b-hero__in{grid-template-columns:1fr;gap:40px;}
  .b-hero--trust .b-hero__title{font-size:clamp(42px,5.6vw,72px);}
  .b-hero--trust .b-hero__txt{max-width:560px;}
  .b-hero--trust .b-hero__stamp{width:92px;height:92px;right:16px;bottom:16px;font-size:11.5px;}
  .b-hero__ag{width:100%;max-width:520px;margin:4px auto 0;}
  .b-hero__ag-badge{width:150px;}
  .b-hero__ag-txt{max-width:36ch;}
}

@media (max-width:768px){
  .b-hero__ag{max-width:440px;}
  .b-hero__ag-badge{width:142px;}
}
