/* ============================================================
   Maison Aurelia — 轻奢极简自定义样式表 (style.css)
   仅承载 Tailwind 无法优雅表达的部分。
   ------------------------------------------------------------
   模块分组索引
   [字体]       本地化 @font-face（Google Fonts 已下载至 fonts/ 目录）
   [全局通用]   基础重置 / 选区 / RTL 字距
   [导航]       悬浮导航栏 / 内页实背景导航 / 链接微动效
   [Hero]      全屏电影感轮播 / 文案 / 圆点
   [动效]       轻奢按钮 / 图片慢缩放 / 图片淡入加载
   [开发占位]   .overflow-hidden / .placeholder-wrap（上线删除）
   [Collection] 筛选标签
   [多语言]     国旗 / 下拉菜单 / 页脚行内按钮
   [移动端]     汉堡按钮 / 全屏菜单
   [动画]       滚动显现 reveal
   [页脚]       链接 / 社媒
   [组件]       返回顶部按钮
   [无障碍]     prefers-reduced-motion
   ============================================================ */

/* ---------- [全局通用] 基础 ---------- */
html {
  scroll-behavior: smooth;
}

::selection {
  background: rgba(201, 185, 154, 0.25); /* 香槟金极淡选区 */
  color: inherit;
}

body {
  text-rendering: optimizeLegibility;
}

/* 阿拉伯语环境下微调字距（阿拉伯字符不适合过宽字距） */
html[dir="rtl"] body {
  letter-spacing: 0 !important;
}
html[dir="rtl"] .tracking-\[0\.5em\],
html[dir="rtl"] .tracking-\[0\.35em\],
html[dir="rtl"] .tracking-\[0\.3em\],
html[dir="rtl"] .tracking-\[0\.25em\] {
  letter-spacing: 0.08em !important;
}

/* ---------- [导航] 悬浮导航栏 ---------- */
#navbar {
  transition: background-color 0.7s ease, border-color 0.7s ease,
              backdrop-filter 0.7s ease;
  border-bottom: 1px solid transparent;
}

/* 滚动后：哑光炭黑轻奢底色（由 JS 添加 .scrolled） */
#navbar.scrolled {
  background: rgba(28, 27, 25, 0.9);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom-color: rgba(255, 255, 255, 0.06);
}

/* 内页导航：不透明炭黑实背景（覆盖上方 .scrolled 半透明逻辑）
   仅作用于带 .bg-ink 类的 header（内页 relative 实背景导航）；
   首页 #navbar 无 .bg-ink，保持透明悬浮叠加 Hero 不受影响。
   原由各内页 <head> 内联 <style> 承载，现原样迁移至本文件。 */
#navbar.bg-ink,
#navbar.bg-ink.scrolled {
  background-color: #1c1b19;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* 导航链接：极淡下划线微动效 */
.nav-link {
  position: relative;
  padding-bottom: 4px;
  transition: color 0.5s ease;
}
.nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: rgba(201, 185, 154, 0.9);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.6s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.nav-link:hover {
  color: #fff;
}
.nav-link:hover::after {
  transform: scaleX(1);
}

/* ---------- [Hero] 全屏电影感轮播 ---------- */
.hero-slide {
  opacity: 0;
  background-color: #1c1b19;   /* 图片未加载时炭黑兜底，避免首屏大片空白 */
  transition: opacity 2.4s cubic-bezier(0.22, 0.61, 0.36, 1); /* 淡入淡出：品牌级慢起慢收贝塞尔 + 稍延长至2.4s，更有电影呼吸感 */
  will-change: opacity, transform;
}
.hero-slide.active {
  opacity: 1;
}

/* Ken Burns 电影慢推镜：缩放 + 斜向微位移，替代单一缩放的呆板感
   起始：画面略放大+下移，11s极缓慢收缩到正常+上移，形成左上方向的慢推镜头
   时长与贝塞尔曲线与整体品牌调性统一：克制、不跳、不硬 */
.hero-slide img {
  transform: scale(1.08) translateY(0.8%);
  transition: transform 11s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: transform;
}
.hero-slide.active img {
  transform: scale(1) translateY(-0.8%);
}

/* 文案淡入淡出：整体放慢一点，配合电影慢节奏 */
.hero-caption {
  transition: opacity 0.9s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.9s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.hero-caption.fading {
  opacity: 0;
  transform: translateY(18px);
}

/* 圆点指示器：极小素雅 */
.hero-dot {
  width: 6px;
  height: 6px;
  border-radius: 9999px;
  background: rgba(255, 255, 255, 0.35);
  transition: background-color 0.6s ease, width 0.6s ease;
}
.hero-dot.active {
  width: 22px;
  background: rgba(255, 255, 255, 0.92);
}
.hero-dot:hover {
  background: rgba(255, 255, 255, 0.7);
}

/* ---------- [动效] 左右切换箭头：静止 0.5s 后启动淡出；任意输入→立即显示
   淡出 2.0s + 品牌慢起慢收贝塞尔曲线（比上一版更柔和，完全不突兀）；
   显示 0.18s（"立刻出现"级别）；hover/focus 强制显示保证可交互性 ---------- */
.hero-arrow {
  opacity: 0;
  pointer-events: none;
  transition-property: opacity, background-color, border-color;
  /* 淡出：opacity 拉长到 2.0s + 品牌级「慢起慢收」贝塞尔曲线，做到"更柔和的渐隐"，
     而不是线性/瞬间跳变；bg/border-color 的 hover 交互仍保持 0.6s ease 不变 */
  transition-duration: 2.0s, 0.6s, 0.6s;
  transition-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1), ease, ease;
}
/* 鼠标/触屏/键盘任意活动 → 立即显形 */
#home.is-arrow-visible .hero-arrow {
  opacity: 1;
  pointer-events: auto;
  /* 显示：0.18s 稍缓一点（0.16→0.18），不显得"硬弹"，仍符合"立刻出现" */
  transition-duration: 0.18s, 0.6s, 0.6s;
  transition-timing-function: ease-out, ease, ease;
}
/* 额外保险：即便正处于闲置隐藏态，只要用户鼠标悬停 / 键盘聚焦到按钮，
   也必须立即浮起，避免"刚要点击却消失"的挫败感 */
.hero-arrow:hover,
.hero-arrow:focus-visible {
  opacity: 1 !important;
  pointer-events: auto !important;
  transition-duration: 0.14s, 0.6s, 0.6s;
  transition-timing-function: ease-out, ease, ease;
}

/* ---------- [动效] 轻奢按钮（慢速微动效，无发光无弹跳） ---------- */
.btn-primary {
  display: inline-block;
  padding: 1rem 2.75rem;
  border-radius: 9999px;
  background: rgba(28, 27, 25, 0.92);
  color: #fff;
  font-size: 12px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  transition: background-color 0.6s ease, letter-spacing 0.6s ease,
              color 0.6s ease;
}
.btn-primary:hover {
  background: #3a352c;                 /* 极淡香槟调加深 */
  letter-spacing: 0.36em;              /* hover 微扩展，电影级克制 */
  color: #f3efe7;
}

.btn-ghost {
  display: inline-block;
  padding: 1rem 0.25rem 0.6rem;
  color: rgba(255, 255, 255, 0.85);
  font-size: 12px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  border-bottom: 1px solid rgba(255, 255, 255, 0.45);
  transition: color 0.6s ease, border-color 0.6s ease, letter-spacing 0.6s ease;
}
.btn-ghost:hover {
  color: #e9e0cd;
  border-color: rgba(201, 185, 154, 0.95);
  letter-spacing: 0.36em;
}

/* ---------- [动效] 图片缓慢缩放（画廊质感，hover 放大克制在 1.03 以内） ---------- */
.img-slow-zoom {
  transition: transform 1.6s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.work-card:hover .img-slow-zoom,
a:hover > .img-slow-zoom {
  transform: scale(1.03);
}

/* ---------- [产品卡片] 高端鼠标交互效果 ---------- */
/* 暗色渐变蒙版：hover 时从底部柔和浮现，营造画廊深度感 */
.work-card .overflow-hidden::after,
.work-card .placeholder-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(to top, rgba(28,27,25,0.5) 0%, rgba(28,27,25,0) 55%);
  opacity: 0;
  transition: opacity 0.8s cubic-bezier(0.22, 0.61, 0.36, 1);
  pointer-events: none;
}
.work-card:hover .overflow-hidden::after,
.work-card:hover .placeholder-wrap::after {
  opacity: 1;
}

/* "View Piece" 指示文字：从底部滑入，香槟金色 */
.view-indicator {
  position: absolute;
  bottom: 1.5rem;
  left: 50%;
  transform: translateX(-50%) translateY(12px);
  z-index: 3;
  color: #c9b99a;
  font-size: 11px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  opacity: 0;
  transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
  pointer-events: none;
  white-space: nowrap;
}
.work-card:hover .view-indicator {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* 图片容器：hover 时香槟金极细描边 */
.work-card .overflow-hidden,
.work-card .placeholder-wrap {
  transition: box-shadow 0.8s ease;
}
.work-card:hover .overflow-hidden,
.work-card:hover .placeholder-wrap {
  box-shadow: 0 0 0 1px rgba(201, 185, 154, 0.35);
}

/* 文案区：hover 时微妙上移，呼吸感 */
.work-card figcaption {
  transition: transform 0.6s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.work-card:hover figcaption {
  transform: translateY(-3px);
}

/* ============================================================
   [Product Detail] 产品图库轻量轮播
   - 舞台固定 4:5 画幅，所有帧绝对定位叠放
   - .is-active 帧 0.8s 淡入（与全站克制动效节奏一致）
   - 缩略图选中态：香槟金细边框 + 不透明度提升
   ============================================================ */
.gallery-stage {
  position: relative;
  aspect-ratio: 4 / 5;
  background: #f3efe7; /* 视频/图片缓冲时的浅卡其底，避免空白塌陷 */
}
.gallery-slide {
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.8s ease, visibility 0.8s ease;
}
.gallery-slide.is-active {
  z-index: 1;
  opacity: 1;
  visibility: visible;
}
.gallery-slide img,
.gallery-slide video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

/* 缩略图按钮：默认半透明，hover 提亮，选中态香槟金细边框 */
.gallery-thumb {
  position: relative;
  padding: 0;
  cursor: pointer;
  border: 1px solid transparent;
  opacity: 0.5;
  transition: opacity 0.6s ease, border-color 0.6s ease;
}
.gallery-thumb:hover {
  opacity: 0.85;
}
.gallery-thumb.is-active {
  opacity: 1;
  border-color: #c9b99a; /* 香槟金 */
}

/* 缩略图横向滚动容器：隐藏滚动条但保留滚动功能，契合高端克制美学 */
.thumbs-scrollbar {
  -ms-overflow-style: none;  /* IE / Edge */
  scrollbar-width: none;     /* Firefox */
  scroll-behavior: smooth;
}
.thumbs-scrollbar::-webkit-scrollbar {
  display: none;             /* Chrome / Safari / Opera */
}

/* 视频缩略图中央播放角标（原始小角标保留，兼容其他位置） */
.gallery-thumb-play {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.92);
  background: rgba(28, 27, 25, 0.22);
  pointer-events: none;
}

/* 视频缩略图【中心大播放图标】：用户一眼识别为视频，克制不浮夸
   44px 圆 + 16% 炭黑底 + 纯白播放三角，悬停/选中时圆底加深到 30% + 微放大 */
.gallery-thumb-play-center {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
.gallery-thumb-play-center::before {
  content: "";
  width: 44px;
  height: 44px;
  border-radius: 9999px;
  background: rgba(28, 27, 25, 0.55);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(1);
  transition: background-color 0.5s ease, transform 0.5s cubic-bezier(0.22, 0.61, 0.36, 1);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}
.gallery-thumb-play-center > svg {
  position: relative;
  z-index: 1;
  color: #ffffff;
  transform: translateX(2px); /* 视觉上让三角形更居中 */
}
.gallery-thumb:hover .gallery-thumb-play-center::before,
.gallery-thumb.is-active .gallery-thumb-play-center::before {
  background: rgba(28, 27, 25, 0.72);
  transform: translate(-50%, -50%) scale(1.06);
}

/* 产品主舞台：原生 video 控件条显示在最上层，且不被 object-fit:cover 裁边
   控件条是浏览器 shadow DOM，不受外部 CSS 控制，但可确保：
   - video 本身在 is-active 帧内正确展示
   - 用户 hover video 时控件条自动浮现（浏览器原生行为） */
.gallery-slide video {
  /* 控件条属于 shadow DOM，默认在视频底部，点击视频可暂停/继续
     此处仅保证 object-fit 裁切后底部控件条仍在可见区域内 */
  object-fit: cover;
  object-position: center;
  /* 浏览器原生控件的 z-index 始终在视频之上，无需额外设置 */
}

/* ---------- [动效] 图片淡入加载：加载成功后柔和显现（仅透明度，无其他动效） ---------- */
img {
  opacity: 0;
  transition: opacity 0.9s ease;
}
img.img-loaded {
  opacity: 1;
}

/* ============================================================
   【开发占位样式】上线前删除本区块即可全部清除
   作用：开发期图片未就位 / 加载失败时，容器显示
        浅卡其底色 + 香槟金虚线框 + 居中占位文字，
        消除大面积空白塌陷；图片加载成功后覆盖占位。
   说明：边框、底色、占位文字仅开发预览可见。
        首页图片外层用 .overflow-hidden，列表页用 .placeholder-wrap，
        两者共用同一套占位规则，删除本区块即同时清除。
   ============================================================ */
/* 图片外层容器：保留相对定位（供产品卡 ::after 蒙版 / View Piece 指示层绝对定位），
   已移除开发阶段的虚线边框、浅卡其底色和 "Image placeholder" 占位文字。
   若图片加载失败，浏览器原生的破图 icon + alt 文字即足够，不再额外套装饰层。 */
.overflow-hidden,
.placeholder-wrap {
  position: relative;
}
.overflow-hidden > img,
.placeholder-wrap > img {
  position: relative;
  z-index: 1;
}
/* ============================================================
   【开发占位样式结束】
   ============================================================ */

/* ---------- [Collection] 筛选标签（静态 UI，无 JS，后端 PHP 按 ?cat 渲染） ---------- */
.filter-tab {
  display: inline-block;
  padding: 0.6rem 1.4rem;
  border-radius: 9999px;
  font-size: 11px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: rgba(28, 27, 25, 0.55);
  border: 1px solid rgba(28, 27, 25, 0.12);
  transition: color 0.5s ease, background-color 0.5s ease, border-color 0.5s ease;
}
.filter-tab:hover {
  color: #1c1b19;
  border-color: rgba(201, 185, 154, 0.6);
}
.filter-tab.is-active {
  background: #1c1b19;
  color: #fff;
  border-color: #1c1b19;
}

/* ---------- [Collection] 分页控件（参考用户附图·中式方角分页，适配品牌墨水/香槟配色）
   核心设计：
   · 全直角 (border-radius: 0) → 完全对应用户参考图的方形按钮
   · 非激活 = 透明底 + 发丝墨描边 + 墨色数字
   · 激活态 = 纯墨水填充 + cream 白字（对应参考图的深红色填充当前页）
   · hover 统一走"香槟金描边 + 文字 + 极浅香槟底"品牌反馈
   · 左右箭头 / 跳转按钮与页码共享同一套 .page-btn 视觉语言 ---------- */
.pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding-top: 3rem;
  padding-bottom: 1rem;
}

.pagination-info {
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8b8578;
}

.pagination-controls {
  display: flex;
  align-items: center;
  gap: 6px;
}

/* 方角分页按钮：页码 / 上一页 / 下一页 通用 */
.page-btn {
  min-width: 38px;
  height: 38px;
  padding: 0 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  color: #1c1b19;
  font-size: 12px;
  letter-spacing: 0.15em;
  border: 1px solid rgba(28, 27, 25, 0.12);
  border-radius: 0;                     /* 关键：直角矩形（与参考图完全一致） */
  cursor: pointer;
  transition: color 0.5s ease, background-color 0.5s ease,
              border-color 0.5s ease, opacity 0.5s ease;
  user-select: none;
}
.page-btn:hover:not(.is-active):not(:disabled) {
  color: #c9b99a;                      /* hover: 香槟金文字 */
  border-color: #c9b99a;                /* hover: 香槟金描边 */
  background: rgba(201, 185, 154, 0.05);/* hover: 极浅香槟底色（克制不抢） */
}
/* 当前页 = 纯墨水填充（对应用户参考图中的深红色方块） */
.page-btn.is-active {
  background: #1c1b19;
  color: #faf8f4;
  border-color: #1c1b19;
  cursor: default;
}
/* 上一页/下一页禁用（第一页/最后一页）：淡化 + 禁止光标 */
.page-btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}
.page-btn .chevron {
  stroke-width: 1.2; /* 与全站 SVG 细线性图标同粗 */
}

/* 跳转栏：参考图"跳转 [ ] 页"布局 */
.pagination-jump {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #8b8578;
}
.pagination-jump input {
  width: 48px;
  height: 38px;
  padding: 0 8px;
  text-align: center;
  background: transparent;
  border: 1px solid rgba(28, 27, 25, 0.12);
  border-radius: 0;
  color: #1c1b19;
  font-size: 12px;
  letter-spacing: 0.08em;
  outline: none;
  transition: border-color 0.5s ease, color 0.5s ease;
  -moz-appearance: textfield;
}
.pagination-jump input::-webkit-outer-spin-button,
.pagination-jump input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.pagination-jump input:focus {
  border-color: #c9b99a;                 /* 聚焦变香槟描边 */
}
.pagination-jump-btn {
  height: 38px;
  padding: 0 14px;
  font-size: 11px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  background: transparent;
  color: #1c1b19;
  border: 1px solid rgba(28, 27, 25, 0.12);
  border-radius: 0;
  cursor: pointer;
  transition: color 0.5s ease, background-color 0.5s ease, border-color 0.5s ease;
}
.pagination-jump-btn:hover {
  color: #c9b99a;
  border-color: #c9b99a;
  background: rgba(201, 185, 154, 0.05);
}

/* 移动端：分页三行居中堆叠（总信息 / 页码按钮 / 跳转栏） */
@media (max-width: 768px) {
  .pagination {
    flex-direction: column;
    justify-content: center;
    gap: 16px;
  }
  .pagination-info  { order: 2; }
  .pagination-controls { order: 1; }
  .pagination-jump { order: 3; }
}

/* ---------- [多语言] 下拉菜单 ---------- */
/* 国旗：圆角矩形，尺寸统一，极简无花哨边框（仅发丝线防浅色旗面融入白底） */
.flag-icon {
  display: inline-block;
  width: 21px;
  height: 14px;
  border-radius: 3px;
  overflow: hidden;
  flex-shrink: 0;
  border: 1px solid rgba(28, 27, 25, 0.07);
  object-fit: cover;
  vertical-align: middle;
}

.lang-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: calc(100% - 20px);
  margin: 0 10px;
  padding: 0.75rem 0.9rem;          /* 加大上下内边距，提升呼吸感 */
  border-radius: 10px;
  font-size: 13px;
  line-height: 1.5;                /* 行高加大 */
  letter-spacing: 0.04em;
  color: #1c1b19;
  transition: background-color 0.4s ease, color 0.4s ease;
}
.lang-item:hover {
  background: rgba(201, 185, 154, 0.12);
}
/* 选中条目：浅米色高亮底色降透明度，对齐截图选中风格 */
.lang-item.active {
  background: rgba(201, 185, 154, 0.18);
  color: #8a7a55;
}

/* 覆盖 Tailwind .hidden 的 display:none，用透明度实现柔和淡入淡出 */
#langMenu {
  transition: opacity 0.5s ease, transform 0.5s ease;
  box-shadow: 0 14px 34px rgba(28, 27, 25, 0.08); /* 极淡柔和阴影 */
  padding-top: 0.75rem;            /* 列表上下内边距加大 */
  padding-bottom: 0.75rem;
  /* 注：Tailwind 在 HTML 中已设 absolute / right-0 / top-10，此处不写 position 覆盖 */
}
/* 【hover 下拉】按钮与菜单间存在 top-10 间隙，用透明伪元素桥接，
   让鼠标从按钮下移时始终命中 hover 区域，避免菜单提前收起。 */
#langMenu::before {
  content: "";
  position: absolute;
  top: -12px;
  left: 0;
  right: 0;
  height: 12px;
  background: transparent;
  pointer-events: auto;
}
#langMenu.hidden {
  display: block;
  opacity: 0;
  transform: translateY(-6px);
  pointer-events: none;
}
#langMenu:not(.hidden) {
  opacity: 1;
  transform: translateY(0);
}

#langChevron.rotate {
  transform: rotate(180deg);
}

/* 页脚多语言行内按钮（国旗尺寸略小于下拉菜单） */
.lang-item-inline {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 8px;
  border-radius: 6px;
  color: rgba(255, 255, 255, 0.45);
  background: transparent;
  transition: color 0.5s ease, background-color 0.5s ease;
}
.lang-item-inline .flag-icon {
  width: 18px;
  height: 12px;
  border-radius: 2.5px;
}
/* hover 淡变色反馈 */
.lang-item-inline:hover {
  color: #c9b99a;
  background: rgba(201, 185, 154, 0.08);
}
/* 当前语言轻微高亮 */
.lang-item-inline.active {
  color: #c9b99a;
  background: rgba(201, 185, 154, 0.14);
}

/* ---------- [移动端] 汉堡 / 全屏菜单 ---------- */
#menuBtn .menu-line:nth-child(2) {
  transition: width 0.5s ease, transform 0.5s ease, opacity 0.5s ease;
}
#menuBtn.open .menu-line:nth-child(1) {
  transform: translateY(4px) rotate(45deg);
}
#menuBtn.open .menu-line:nth-child(2) {
  width: 1.75rem;
  transform: translateY(-4px) rotate(-45deg);
}

.mobile-link {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
#mobileMenu.open .mobile-link {
  opacity: 1;
  transform: none;
}
#mobileMenu.open .mobile-link:nth-child(1) { transition-delay: 0.15s; }
#mobileMenu.open .mobile-link:nth-child(2) { transition-delay: 0.22s; }
#mobileMenu.open .mobile-link:nth-child(3) { transition-delay: 0.29s; }
#mobileMenu.open .mobile-link:nth-child(4) { transition-delay: 0.36s; }
#mobileMenu.open .mobile-link:nth-child(5) { transition-delay: 0.43s; }

/* ---------- [动画] 滚动显现（慢速、柔和、克制） ---------- */
.reveal {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity 1.1s ease, transform 1.1s ease;
}
.reveal.revealed {
  opacity: 1;
  transform: none;
}

/* ---------- [页脚] 链接 / 社媒微动效 ---------- */
.footer-link {
  transition: color 0.5s ease, padding-left 0.5s ease;
}
.footer-link:hover {
  color: #c9b99a;
  padding-left: 6px;
}
.social-link {
  color: rgba(255, 255, 255, 0.5);
  transition: color 0.5s ease;
}
.social-link:hover {
  color: #c9b99a;
}

/* ============================================================
   [product_detail.html · 价格区（电商突出风格）]
   顶奢电商价格组合：折扣徽章圆角弹动 + 折扣价柔和微缩 hover
   ============================================================ */
/* 折扣徽章：入场弹一下、悬停略微放大、颜色更饱和 */
.pd-price-badge {
  letter-spacing: 0.22em;
  font-weight: 500;
  transition: transform 0.5s cubic-bezier(0.22, 0.61, 0.36, 1),
              background-color 0.5s ease,
              box-shadow 0.5s ease;
  animation: pdBadgePop 0.9s cubic-bezier(0.22, 1.2, 0.36, 1) both;
}
.pd-price-badge:hover {
  transform: scale(1.04);
  background-color: #dc2626;
  box-shadow: 0 2px 10px rgba(220, 38, 38, 0.18);
}
@keyframes pdBadgePop {
  0%   { transform: scale(0.8); opacity: 0; }
  60%  { transform: scale(1.08); opacity: 1; }
  100% { transform: scale(1); }
}
/* 现价：顶奢级价格字重，悬停轻微变香槟金（"贵气"反馈） */
.pd-price-now {
  font-variant-numeric: tabular-nums;   /* 数字等宽，避免切换产品时价格跳动 */
  letter-spacing: -0.01em;
  transition: color 0.6s cubic-bezier(0.22, 0.61, 0.36, 1),
              transform 0.6s cubic-bezier(0.22, 0.61, 0.36, 1);
  display: inline-block;
}
.pd-price-now:hover {
  color: #c9b99a;                 /* hover 变香槟金 */
  transform: translateY(-1px);    /* 微微抬起 */
}
/* 原价：删除线使用品牌贝塞尔过渡（悬停时略微加深灰色 + 正常强调） */
.pd-price-orig {
  font-variant-numeric: tabular-nums;
  transition: color 0.5s ease, text-decoration-color 0.5s ease;
}
.pd-price-orig:hover {
  color: #6b6252;
  text-decoration-color: rgba(139, 133, 120, 0.8);
}
/* Save 节省提示：悬停红色加深 */
.pd-price-save {
  transition: color 0.5s ease;
}
.pd-price-save:hover {
  color: #dc2626;
}

/* ============================================================
   [product_detail.html · 9 组竖排详情故事区]
   设计：单数组左图右文，双数组右图左文（交替杂志风）
         图片 2/3 宽 + 文案 1/3 宽
         图片容器带占位底色（图片不存在时显示卡其占位 + 轻微斜纹）
         全部使用 reveal 滚动显现动画（已复用全局 .reveal）
   ============================================================ */

/* 区块标题与分区编号：香槟金细竖线 + 大号数字序号，杂志排版感 */
.pd-stories-title {
  display: flex;
  align-items: baseline;
  gap: 16px;
}
.pd-stories-title .num {
  font-size: 12px;
  letter-spacing: 0.5em;
  color: #a89878;           /* sand */
  text-transform: uppercase;
}
.pd-stories-title h2 {
  margin: 0;
}
.pd-stories-lede {
  max-width: 42rem;
}

/* 单组故事：上下间距，左图右文（默认） */
.pd-story {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 2.5rem;                      /* 40px，图与文呼吸感 */
  align-items: center;
}
/* 双数组翻转：右图左文 */
.pd-story.is-flip {
  grid-template-columns: 1fr 2fr;
}
.pd-story.is-flip .pd-story-img {
  order: 2;
}
.pd-story.is-flip .pd-story-copy {
  order: 1;
}

/* 图片容器：4:3 比例，带 hover 慢缩放 + 缺失占位底色 */
.pd-story-img {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background-color: #f3efe7;       /* khaki 占位底 */
  background-image: repeating-linear-gradient(
    45deg,
    rgba(201, 185, 154, 0.06) 0px,
    rgba(201, 185, 154, 0.06) 2px,
    transparent 2px,
    transparent 10px
  );                                    /* 缺失时极淡的香槟金斜纹，传达"图片占位" */
}
.pd-story-img > img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.04);
  transition: transform 1.2s cubic-bezier(0.22, 0.61, 0.36, 1),
              opacity 0.8s ease;
}
.pd-story-img:hover > img {
  transform: scale(1);
}
/* 图片缺省提示（角标小字，仅在图片缺失时由浏览器露出——被img盖住时不可见） */
.pd-story-img::before {
  content: "Detail Image";
  position: absolute;
  inset: auto 0 0 0;
  padding: 10px 14px;
  text-align: right;
  font-size: 10px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: rgba(168, 152, 120, 0.55);
  pointer-events: none;
}
/* 图片蒙版：hover 柔和暗角，呼应首页产品卡画廊深度感 */
.pd-story-img::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(to top, rgba(28, 27, 25, 0.18) 0%, rgba(28, 27, 25, 0) 55%);
  opacity: 0;
  transition: opacity 0.8s cubic-bezier(0.22, 0.61, 0.36, 1);
  pointer-events: none;
}
.pd-story-img:hover::after {
  opacity: 1;
}

/* 文案区：香槟金小标题 + 数字序号 + 大标题 + 正文段 */
.pd-story-copy {
  padding: 0 0.5rem;
}
.pd-story-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 11px;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  color: #a89878;           /* sand */
  margin-bottom: 1.5rem;
}
.pd-story-meta .dash {
  flex: 0 0 32px;
  height: 1px;
  background: #c9b99a;      /* champagne */
}
.pd-story-meta .idx {
  font-weight: 500;
  color: #c9b99a;
}
.pd-story-copy h3 {
  font-size: 24px;
  font-weight: 300;             /* extralight → light，顶奢标题比正文轻一档 */
  line-height: 1.35;
  letter-spacing: 0.02em;
  color: #1c1b19;
  margin: 0 0 1.25rem 0;
}
.pd-story-copy p {
  font-size: 16px;
  line-height: 1.9;
  color: #8b8578;              /* stone2 */
  margin: 0;
}

/* 移动端：改单列，图文顺序为 图→文（不再翻转） */
@media (max-width: 767px) {
  .pd-story,
  .pd-story.is-flip {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  .pd-story.is-flip .pd-story-img { order: 0; }
  .pd-story.is-flip .pd-story-copy { order: 0; }
}

/* ---------- [无障碍] 尊重系统减弱动效 ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hero-slide, .hero-slide img, .hero-caption,
  .reveal, .btn-primary, .btn-ghost, .img-slow-zoom,
  .pd-price-badge, .pd-price-now, .pd-price-orig, .pd-price-save,
  .pd-story-img > img, .pd-story-img::after {
    transition: none !important;
  }
  .reveal { opacity: 1; transform: none; }
  .hero-slide img { transform: none; }
  .pd-price-badge { animation: none !important; }
  .pd-story-img > img { transform: none; }
  img { opacity: 1; } /* 减弱动效时图片直接显示 */
}

/* ---------- [组件] 返回顶部按钮（极简线性，淡入淡出，克制无弹跳） ----------
   固定右下角；滚动超阈值 JS 加 .is-visible 平滑淡入。
   极淡 cream 半透明毛玻璃底色 + 发丝线边框，确保在浅色区块（cream/khaki）
   和深色 footer（ink）上都清晰可读，无需 JS 检测背景色。 */
#backToTop {
  position: fixed;
  right: 24px;
  bottom: 32px;
  z-index: 30;                                /* 低于 #navbar(50) / #mobileMenu(40) */
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  border: 1px solid rgba(28, 27, 25, 0.22);   /* ink 发丝边框：浅底极淡、深底清晰 */
  background: rgba(250, 248, 244, 0.88);       /* cream 半透明毛玻璃底，深底上弹出 */
  -webkit-backdrop-filter: blur(6px);
          backdrop-filter: blur(6px);
  color: #1c1b19;                             /* ink 图标：浅底深底都可读 */
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.5s ease, color 0.5s ease, border-color 0.5s ease, background-color 0.5s ease;
}
#backToTop.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
#backToTop:hover {
  color: #c9b99a;                             /* champagne 图标 */
  border-color: #c9b99a;                      /* champagne 描边 */
  background: rgba(201, 185, 154, 0.12);       /* champagne 极淡底 */
}
@media (prefers-reduced-motion: reduce) {
  #backToTop { transition: none; }
}

/* ============================================================
   [字体] 本地化 @font-face（Google Fonts 已下载至 fonts/ 目录）
   Inter (200/300/400/500) + IBM Plex Sans Arabic (200/300/400)
   unicode-range 按子集拆分，woff2 格式，与 CDN 渲染效果一致
   ============================================================ */

/* arabic */
@font-face {
font-family: 'IBM Plex Sans Arabic';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(../fonts/ibmplexsansarabic-200-normal-arabic.woff2) format('woff2');
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
}

/* cyrillic-ext */
@font-face {
font-family: 'IBM Plex Sans Arabic';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(../fonts/ibmplexsansarabic-200-normal-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* latin-ext */
@font-face {
font-family: 'IBM Plex Sans Arabic';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(../fonts/ibmplexsansarabic-200-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
font-family: 'IBM Plex Sans Arabic';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(../fonts/ibmplexsansarabic-200-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* arabic */
@font-face {
font-family: 'IBM Plex Sans Arabic';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/ibmplexsansarabic-300-normal-arabic.woff2) format('woff2');
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
}

/* cyrillic-ext */
@font-face {
font-family: 'IBM Plex Sans Arabic';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/ibmplexsansarabic-300-normal-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* latin-ext */
@font-face {
font-family: 'IBM Plex Sans Arabic';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/ibmplexsansarabic-300-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
font-family: 'IBM Plex Sans Arabic';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/ibmplexsansarabic-300-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* arabic */
@font-face {
font-family: 'IBM Plex Sans Arabic';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/ibmplexsansarabic-400-normal-arabic.woff2) format('woff2');
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
}

/* cyrillic-ext */
@font-face {
font-family: 'IBM Plex Sans Arabic';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/ibmplexsansarabic-400-normal-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* latin-ext */
@font-face {
font-family: 'IBM Plex Sans Arabic';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/ibmplexsansarabic-400-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
font-family: 'IBM Plex Sans Arabic';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/ibmplexsansarabic-400-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(../fonts/inter-200-normal-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(../fonts/inter-200-normal-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* greek-ext */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(../fonts/inter-200-normal-greek-ext.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}

/* greek */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(../fonts/inter-200-normal-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}

/* vietnamese */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(../fonts/inter-200-normal-vietnamese.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(../fonts/inter-200-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 200;
  font-display: swap;
  src: url(../fonts/inter-200-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/inter-300-normal-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/inter-300-normal-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* greek-ext */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/inter-300-normal-greek-ext.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}

/* greek */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/inter-300-normal-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}

/* vietnamese */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/inter-300-normal-vietnamese.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/inter-300-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(../fonts/inter-300-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/inter-400-normal-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/inter-400-normal-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* greek-ext */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/inter-400-normal-greek-ext.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}

/* greek */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/inter-400-normal-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}

/* vietnamese */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/inter-400-normal-vietnamese.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/inter-400-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/inter-400-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/inter-500-normal-cyrillic-ext.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

/* cyrillic */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/inter-500-normal-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* greek-ext */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/inter-500-normal-greek-ext.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}

/* greek */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/inter-500-normal-greek.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}

/* vietnamese */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/inter-500-normal-vietnamese.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}

/* latin-ext */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/inter-500-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/inter-500-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
