/**
 * ETheme-Block — portable shared base layer (2.0.0).
 *
 * Layer contract:
 *   etb-base.css                plugin primitives + the --etb-* alias block
 *   etb-theme-fallback.css      legacy Container/Grid (capability-gated)
 *   eth-theme-integration.css   PetEvia-only contextual enhancements
 *   blocks/<slug>/style.css     component visual variants
 *
 * Dependency chain: block style → theme-integration → base. Every
 * etheme-block stylesheet therefore loads after this file.
 *
 * Breakpoint constitution (mandatory for new/edited rules; legacy block
 * stylesheets are migrated block-by-block in Phase B):
 *   768px  small   (max-width: 768px)
 *   992px  medium  (max-width: 992px)
 *   1200px large   (max-width: 1200px)
 * No other media widths may be introduced.
 *
 * The :root alias block below is the ONLY place where hard-coded fallbacks
 * for theme tokens are allowed. Component stylesheets must consume
 * var(--etb-*) or bare var(--eth-*) without appending their own fallback
 * values.
 */
:root{--etb-control-bg: var(--eth-bg-surface,#fff);--etb-control-color: var(--eth-text-title,#1f2937);--etb-control-border: var(--eth-border,rgba(31,41,55,0.18));--etb-control-shadow: var(--eth-shadow-m,0 0.5rem 1.5rem rgba(15,23,42,0.18));--etb-control-muted: var(--eth-text-muted,#64748b);--etb-overlay-dark: var(--eth-dark-60,rgba(0,0,0,0.78));--etb-overlay-dark-soft: var(--eth-dark-20,rgba(0,0,0,0.2));--etb-overlay-dark-medium: var(--eth-dark-40,rgba(0,0,0,0.55));--etb-overlay-dark-subtle: var(--eth-dark-10,rgba(0,0,0,0.08));--etb-overlay-dark-faint: var(--eth-dark-5,rgba(17,24,39,0.025));--etb-overlay-light: var(--eth-light-10,rgba(255,255,255,0.08));--etb-overlay-light-border: var(--eth-light-60,rgba(255,255,255,0.28));--etb-overlay-light-muted: var(--eth-light-80,rgba(255,255,255,0.8))}
/* ── 内部刻度（3.0.25）：集中定义，组件只引用不重复定义 ──────────────
   取值均为收敛前已在使用的值，故替换后计算值不变（零视觉变更）。
   注意：动效编排的逐组件时长（600/680/640/560/480/420ms 等）不在
   通用时长刻度内，属有意保留的编排参数。 */
:root{
	--etb-z-behind: -2;
	--etb-z-under: -1;
	--etb-z-base: 0;
	--etb-z-raised: 1;
	--etb-z-overlay: 2;
	--etb-z-popover: 3;
	--etb-z-sticky: 4;
	--etb-z-modal: 6;
	--etb-duration-fast: 0.15s;
	--etb-duration-normal: 0.25s;
	--etb-duration-slow: 0.3s;
	--etb-motion-ease: cubic-bezier(0.22,1,0.36,1);
	--etb-motion-hover: 420ms;
	--etb-motion-enter: 560ms;
	--etb-motion-image: 680ms;
}
/* 任意比例栅格：容器设 --etb-grid-cols 即可（如 1fr 3fr / 1fr），
   无需为每个比例新增类；具体 .eth-grid-ratio-* / .eth-grid-cols-* 类
   写在后面，优先级更高，可按需覆盖。 */
.eth-grid-cols-var{grid-template-columns: var(--etb-grid-cols, minmax(0, 1fr))}.etb-section-heading{--etb-heading-base-size: var(--eth-fs-h2);margin: 0;color: var(--etb-heading-color,var(--eth-text-title));font-family: var(--eth-font-heading);font-size: calc(var(--etb-heading-base-size) * var(--etb-heading-scale,1));font-weight: var(--eth-fw-heading);line-height: var(--eth-lh-heading)}.etb-section-heading:is(h1){--etb-heading-base-size: var(--eth-fs-h1)}.etb-section-description{margin: 0;color: var(--eth-text-muted);font-family: var(--eth-font-body);font-size: var(--eth-fs-body);line-height: var(--eth-lh-body)}.etb-section-description>:first-child{margin-top: 0}.etb-section-description>:last-child{margin-bottom: 0}.etb-section-header--center{display: flex;box-sizing: border-box;flex-direction: column;gap: var(--eth-space-2xs);align-items: center;width: 100%;margin-bottom: var(--eth-space-l);text-align: center}.etb-section-header--center .etb-section-heading{max-inline-size: min(100%,var(--eth-container));text-align: center}.etb-section-header--center .etb-section-description{box-sizing: border-box;width: 100%;max-width: none;text-align: center}@media (max-width: 768px){.etb-section-header--center{margin-bottom: var(--eth-space-m)}}.etb-prose{color: var(--eth-text-body);font-family: var(--eth-font-body);font-size: var(--eth-fs-body);line-height: var(--eth-lh-body)}.etb-prose>:first-child{margin-top: 0}.etb-prose>:last-child{margin-bottom: 0}.etb-prose :is(p,ul,ol){margin-block: var(--eth-space-s)}.etb-prose :is(ul,ol){padding-inline-start: var(--eth-space-l)}.etb-prose li + li{margin-top: var(--eth-space-2xs)}.etb-prose a{color: var(--eth-link);text-decoration: underline}.etb-prose h3,.etb-prose h4{color: var(--eth-text-title);font-family: var(--eth-font-heading);font-weight: var(--eth-fw-heading);line-height: var(--eth-lh-heading);margin-block: var(--eth-space-m) var(--eth-space-2xs)}.etb-prose .etb-button-block,.etb-prose .wp-block-buttons{margin-block-start: var(--eth-space-m)}.etb-prose .etb-button-block:last-child,.etb-prose .wp-block-buttons:last-child{margin-block-end: 0}.etb-heading-scale-80{--etb-heading-scale: 0.8}.etb-heading-scale-85{--etb-heading-scale: 0.85}.etb-heading-scale-90{--etb-heading-scale: 0.9}.etb-heading-scale-95{--etb-heading-scale: 0.95}.etb-heading-scale-100{--etb-heading-scale: 1}.etb-heading-scale-105{--etb-heading-scale: 1.05}.etb-heading-scale-110{--etb-heading-scale: 1.1}.etb-heading-color-primary{--etb-heading-color: var(--eth-primary)}.etb-heading-color-secondary{--etb-heading-color: var(--eth-secondary)}.etb-heading-color-dark{--etb-heading-color: var(--eth-dark)}.etb-heading-color-light{--etb-heading-color: var(--eth-light)}.etb-bg-custom-gradient,.eth-module--bg-custom-gradient{background-color: var(--eth-bg-surface);background-image: linear-gradient( var(--etb-gradient-angle,135deg),var(--etb-gradient-start,var(--eth-bg-surface)),var(--etb-gradient-end,var(--eth-primary-10)) )}.etb-b2b__header{display: flex;box-sizing: border-box;flex-direction: column;gap: var(--eth-space-2xs,0.5rem);margin-block-end: var(--eth-space-l,2.5rem)}.etb-b2b__meta{display: flex;flex-wrap: wrap;gap: var(--eth-space-2xs,0.5rem) var(--eth-space-s,1rem);align-items: center}.etb-b2b__table-wrap{max-width: 100%;overflow-x: auto;overscroll-behavior-inline: contain;-webkit-overflow-scrolling: touch;border: 1px solid var(--eth-border,rgba(31,41,55,0.18));border-radius: var(--eth-radius-m,0.75rem)}.etb-b2b__table{width: 100%;min-width: 38rem;border-collapse: collapse;color: var(--eth-text-body,#333);font-size: var(--eth-fs-body,1rem);line-height: var(--eth-lh-body,1.6)}.etb-b2b__table th,.etb-b2b__table td{padding: var(--eth-space-s,1rem) var(--eth-space-m,1.5rem);border-bottom: 1px solid var(--eth-border,rgba(31,41,55,0.18));text-align: start;vertical-align: top}.etb-b2b__table thead th{background: var(--eth-bg-muted,#f5f5f7);color: var(--eth-text-title,#111);font-weight: var(--eth-fw-semibold,600)}.etb-b2b__table tbody tr:last-child th,.etb-b2b__table tbody tr:last-child td{border-bottom: 0}.etb-b2b__empty{padding: var(--eth-space-l,2.5rem);border: 1px dashed var(--eth-border,rgba(31,41,55,0.2));border-radius: var(--eth-radius-m,0.75rem);color: var(--eth-text-muted,#555);text-align: center}@media (max-width: 768px){.etb-b2b__header{margin-block-end: var(--eth-space-m,1.5rem)}.etb-b2b__table th,.etb-b2b__table td{padding: var(--eth-space-xs,0.75rem) var(--eth-space-s,1rem)}}.etheme-block-color-label{margin: var(--eth-space-2xs,0.5rem) 0 var(--eth-space-3xs,0.25rem);color: var(--eth-text-muted,#64748b);font-size: var(--eth-fs-small,0.875rem);font-weight: var(--eth-fw-medium,500)}.etheme-block-gradient-preview{min-height: var(--eth-space-xl);margin-bottom: var(--eth-space-s);border: 1px solid var(--eth-border);border-radius: var(--eth-radius-s)}.etheme-block-gradient-reset{margin-inline-start: var(--eth-space-2xs)}
