/* 横向溢出防护（20261016 续104）：hero-slider-band 100vw 在有垂直滚动条时溢出 ~15px，裁剪之。 */
html { overflow-x: clip; }
/**
 * @file theme.css
 * shadcn/ui-compatible theme variables for Haven Theme.
 *
 * You can customize these values without rebuilding the compiled CSS.
 * Tools like https://tweakcn.com can help generate these values. Copy this
 * file to your web root, so it sits next to index.php, and clear Drupal's
 * cache. Then, any changes you make in this file should be reflected right away.
 */

:root {
  --background: oklch(0.952 0 89.876);
  --foreground: oklch(0.321 0 89.876);
  --card: oklch(1 0 89.876);
  --card-foreground: oklch(0.321 0 89.876);
  --primary: var(--std-blue-dark); /* Primary deep blue #004880 (2026-08-28) */
  --primary-foreground: oklch(1 0 0);
  --secondary: var(--std-blue); /* standard Blue #008fd7 */
  --secondary-foreground: oklch(1 0 89.876);
  --muted: oklch(0.925 0 89.876);
  --muted-foreground: oklch(0.321 0 89.876);
  --accent: oklch(0.935 0.163 102.299);
  --accent-foreground: oklch(0.321 0 89.876);
  --destructive: oklch(0.6368 0.2078 25.3313);
  --destructive-foreground: oklch(1 0 0);
  --border: oklch(0.321 0 89.876);
  --input: oklch(0.872 0.009 258.338);
  /* ---- 标准色 palette (标准色.txt, 2026-08-28) ---- */
  --std-blue: #008fd7;    /* Blue   主品牌蓝 */
  --std-blue-dark: #004880; /* Primary deep blue (主色加深, 2026-08-28) */
  --link-color: #003366; /* 链接默认色=深蓝 (2026-10-18) */
  --std-blue2: #3fdcf5;   /* Blue 2 (背景/装饰用, 对白<2.1:1) */
  --std-green: #64be00;   /* Green  (背景/装饰用) */
  --std-orange: #f9570e;  /* Orange (大字/图标用, ~3.2:1) */
  --std-yellow: #ffb300;  /* Yellow (背景/装饰用) */
  --success: var(--std-green);
  --warning: var(--std-yellow);
  --info: var(--std-blue2);
  --font-sans: Arial, Helvetica, sans-serif;
  --font-serif: Arial, Helvetica, sans-serif;
  --font-mono: "Fira Mono", "Menlo", "Consolas", "Liberation Mono", monospace;
  --radius: 1rem;
  --shadow-x: 0;
  --shadow-y: 1px;
  --shadow-blur: 3px;
  --shadow-spread: 0px;
  --shadow-opacity: 0.1;
  --shadow-color: oklch(0 0 0);
  --shadow-2xs: 0 1px 3px 1px hsl(0 0% 0% / 0.05);
  --shadow-xs: 0 1px 3px 1px hsl(0 0% 0% / 0.05), 0 1px 2px -1px hsl(0 0% 0% / 0.1);
  --shadow-sm: 0 1px 3px 1px hsl(0 0% 0% / 0.1), 0 2px 4px -1px hsl(0 0% 0% / 0.1);
  --shadow: 0 1px 3px 1px hsl(0 0% 0% / 0.1), 0 2px 4px -1px hsl(0 0% 0% / 0.1);
  --shadow-md: 0 1px 3px 1px hsl(0 0% 0% / 0.1), 0 4px 6px -2px hsl(0 0% 0% / 0.1);
  --shadow-lg: 0 1px 3px 1px hsl(0 0% 0% / 0.1), 0 8px 10px -2px hsl(0 0% 0% / 0.1);
  --shadow-xl: 0 1px 3px 1px hsl(0 0% 0% / 0.1), 0 12px 14px -3px hsl(0 0% 0% / 0.1);
  --shadow-2xl: 0 1px 3px 1px hsl(0 0% 0% / 0.1), 0 16px 18px -3px hsl(0 0% 0% / 0.1);
  --tracking-normal: 0em;
  --spacing: 0.25rem;

  /* Extra color variants for primary, secondary and accent */
  /* color-mix() blends two colors in a specified color space. */
  /* Syntax: color-mix(in <colorspace>, <color1> <percentage>, <color2>) */
  /* https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/color_value/color-mix */
  --primary-light: color-mix(in oklch, var(--primary) 80%, white);
  --primary-dark: color-mix(in oklch, var(--primary) 80%, black);
  --secondary-light: color-mix(in oklch, var(--secondary) 90%, white);
  --secondary-dark: color-mix(in oklch, var(--secondary) 85%, black);
  --accent-light: color-mix(in oklch, var(--accent) 95%, white);
  --accent-dark: color-mix(in oklch, var(--accent) 95%, black);

  /* Set navbar height for hero billboard overlay */
  --navbar-height: 76px;

  @media (min-width: 768px) {
    --navbar-height: 105px;
  }
  @media (min-width: 1280px) {
    --navbar-height: 105px;
  }
}

.node__content:after { content:''; display:table; clear:both; }

div.align-center{display:block!important;max-width:100%!important;margin-left:auto!important;margin-right:auto!important;float:none!important;text-align:center!important;border:1px solid #ccc!important}div.align-center img{display:block!important;max-width:100%!important;height:auto!important;margin-left:auto!important;margin-right:auto!important}div.align-center[style*=width] img{width:100%!important}
div.align-left{float:left!important;margin-right:1.5em!important;margin-bottom:1em!important}
div.align-right{float:right!important;margin-left:1.5em!important;margin-bottom:1em!important}
article .node__content::after{content:'';display:table;clear:both}

/* ──────────────────────────────────────────
   Image width classes (CKEditor5 Styles)
   ────────────────────────────────────────── */
div.image-w-25 { width: 25% !important; }
div.image-w-33 { width: 33.33% !important; }
div.image-w-50 { width: 50% !important; }
div.image-w-66 { width: 66.66% !important; }
div.image-w-75 { width: 75% !important; }
div.image-w-100 { width: 100% !important; }
div[class*=image-w-] img { width: 100%; height: auto; }
/* drupal-media width classes (大图专用，档位与 gaodimic_editor.module $widths 同步；max-width 防窄屏溢出) */
.media-w-800{width:800px;max-width:100%}
.media-w-900{width:900px;max-width:100%}
.media-w-1000{width:1000px;max-width:100%}
.media-w-1200{width:1200px;max-width:100%}
[class*=media-w-] img{width:100%;height:auto}
/* Article body line-height 2026-10-03: +50% over Tailwind base 1.35 (unitless
   so every breakpoint scales exactly; products use 2.25, spec tables stay 1.5). */
.page-node-type-article .node__content { line-height: 2.025; }
/* Navbar height override - increase vertical padding */
.navbar { padding-top: 16px !important; padding-bottom: 16px !important; }

/* Hero billboard bottom color band */
section.justify-center-safe::after {
  content: '';
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 0px;
  background-color: #000000;
  z-index: 999;
  pointer-events: none;
}

/* Hero billboard slideshow */
.hero-slideshow {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: -1 !important;
  overflow: hidden !important;
}
.hero-slideshow .hero-slide {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  opacity: 1;
  visibility: visible;
  transition: opacity 0.6s ease-in-out, visibility 0s;
}
.hero-slideshow .hero-slide--hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.6s ease-in-out, visibility 0s 0.6s;
}
.hero-slideshow .hero-slide-link {
  position: absolute;
  inset: 0;
  display: block;
  text-decoration: none;
}
.hero-slide-title {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 1.25rem 2rem;
  color: #fff;
  font-size: 1.375rem;
  font-weight: 600;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6);
  z-index: 1;
}
@media (prefers-reduced-motion: reduce) {
  .hero-slideshow .hero-slide {
    transition: none;
  }
}


/* Badge custom style colors */
.badge-style-yellow { background-color: #facc15; color: #000000; }
.badge-style-black { background-color: #000000; color: #ffffff; }
.badge-style-deep-gray { background-color: #404040; color: #ffffff; }
.badge-style-gray { background-color: #707070; color: #ffffff; }
.badge-style-white { background-color: #ffffff; color: #000000; }
.badge-style-orange { background-color: #f9570e; color: #ffffff; }
.badge-style-transparent { background-color: transparent; color: #ffffff; }




/* Heading text colors (consistent with badge palette) */
.heading-text-yellow { color: #facc15; }
.heading-text-black { color: #000000; }
.heading-text-deep-gray { color: #404040; }
.heading-text-gray { color: #707070; }
.heading-text-white { color: #ffffff; }


/* Hero billboard per-slide badge/heading overlay (z-10, above content) */
.hero-slide-texts .hero-slide-text {
  position: absolute;
  inset: 0;
  padding: 2rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.75rem;
  opacity: 1;
  visibility: visible;
  transition: opacity 0.6s ease-in-out, visibility 0s;
}
.hero-slide-texts .hero-slide-text.hero-slide--hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.6s ease-in-out, visibility 0s 0.6s;
}
.hero-slide-badge-link {
  pointer-events: auto;
  text-decoration: none;
}


/* Hero billboard badge background-only colors */
.badge-bg-yellow { background-color: #facc15; }
.badge-bg-black { background-color: #000000; }
.badge-bg-deep-gray { background-color: #404040; }
.badge-bg-gray { background-color: #707070; }
.badge-bg-white { background-color: #ffffff; }
.badge-bg-transparent { background-color: transparent; }

/* Utility page h1 title: standard-blue #008fd7 + 80px (2026-08-27) */
h1.text-primary.text-left.font-bold {
  color: var(--std-blue);
  font-size: 80px;
}

/* Footer social icons -> standard Yellow (2026-08-28) */
.social-menu--item svg {
  fill: var(--std-yellow); /* #ffb300 */
}

/* Main nav font +2px (2026-08-28) */
.navbar--dropdown-menu a[data-level='1'] {
  font-size: 16px;
}

/* Footer newsletter Subscribe -> standard Yellow (2026-08-28) */
.site-footer .webform-category--footer .webform-button--submit {
  background-color: var(--std-yellow);
  border-color: var(--std-yellow);
  color: var(--std-blue-dark); /* 黄底深蓝字 */
}
.site-footer .webform-category--footer .webform-button--submit:hover,
.site-footer .webform-category--footer .webform-button--submit:focus {
  background-color: color-mix(in oklch, var(--std-yellow) 85%, black);
  border-color: color-mix(in oklch, var(--std-yellow) 85%, black);
  color: var(--std-blue-dark);
}

/* ──────────────────────────────────────────
   Main nav dropdown v2 — 3-level flyout (2026-09-01)
   一级 18px；二/三级 16px；hover 蓝底白字；三级右侧拉出
   ────────────────────────────────────────── */
.gaodimic-nav-dd { background: #fff; border-radius: 12px; box-shadow: 0 12px 32px rgba(0,0,0,.14); padding: 8px; min-width: 260px; }
.gaodimic-nav-dd ul, .gaodimic-nav-dd-sub ul { list-style: none; margin: 0; padding: 0; }
.gaodimic-nav-dd li { position: relative; }
.gaodimic-nav-l2, .gaodimic-nav-l3 {
  display: block; padding: 9px 14px; font-size: 14px;
  text-transform: none; letter-spacing: normal; border-radius: 8px;
  color: #1f2937; white-space: nowrap;
}
.gaodimic-nav-l2 { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding-right: 22px; }
.gaodimic-nav-l2.has-flyout::after { content: '\25B8'; color: #9ca3af; font-size: 13px; }
.gaodimic-nav-dd li:hover > .gaodimic-nav-l2,
.gaodimic-nav-dd li:hover > a.gaodimic-nav-l3,
.gaodimic-nav-dd li:focus-within > .gaodimic-nav-l2,
.gaodimic-nav-dd li:focus-within > a.gaodimic-nav-l3 { background: var(--std-blue, #008fd7); color: #fff; }
.gaodimic-nav-dd li:hover > .gaodimic-nav-l2::after { color: #fff; }
.gaodimic-nav-soon { color: #9ca3af; cursor: default; }
@media (max-width: 767px) {
  .gaodimic-nav-dd { display: block; position: static; box-shadow: none; padding: 0 0 0 12px; border-left: 1px solid #e5e7eb; margin: 4px 0; }
  .gaodimic-nav-dd-sub { display: block; position: static; box-shadow: none; padding: 0 0 0 12px; border-left: 1px solid #eef2f7; }
}
@media (min-width: 768px) {
  .navbar--dropdown-menu li[data-level='1'] { position: relative; }
  .gaodimic-nav-dd { display: none; position: absolute; top: 100%; left: 0; z-index: 600; }
  .navbar--dropdown-menu li[data-level='1']:hover > .gaodimic-nav-dd,
  .navbar--dropdown-menu li[data-level='1']:focus-within > .gaodimic-nav-dd { display: block; }
  .gaodimic-nav-dd-sub {
    display: none; position: absolute; left: 100%; top: -8px; z-index: 601;
    min-width: 240px; background: #fff; border-radius: 12px;
    box-shadow: 0 12px 32px rgba(0,0,0,.14); padding: 8px;
  }
  /* 悬停桥：防止二级行与三级面板间空隙导致闪烁 */
  .gaodimic-nav-dd-sub::before { content: ''; position: absolute; left: -14px; top: 0; bottom: 0; width: 14px; }
  .gaodimic-nav-dd li:hover > .gaodimic-nav-dd-sub,
  .gaodimic-nav-dd li:focus-within > .gaodimic-nav-dd-sub { display: block; }
}

/* L2 submenu uppercase display (2026-09-01) */
.gaodimic-nav-l2 { text-transform: uppercase; }

/* L1 nav hover: blue bg + white text (2026-09-01) */
.navbar--dropdown-menu li[data-level='1']:hover > a[data-level='1'],
.navbar--dropdown-menu li[data-level='1']:focus-within > a[data-level='1'],
.navbar--dropdown-menu a[data-level='1']:hover,
.navbar--dropdown-menu a[data-level='1']:focus-visible {
  background: var(--std-blue, #008fd7);
  color: #fff;
}

/* L2 submenu row spacing +20% (2026-09-04) */
.gaodimic-nav-l2 { padding-top: 10.8px; padding-bottom: 10.8px; }

/* ──────────────────────────────────────────
   Social menu WeChat QR popup (2026-09-04 rewrite)
   右侧弹出 / top 80px / z-index 9999 置顶
   ────────────────────────────────────────── */
.social-menu--item.gaodimic-has-qr { position: relative; }
.social-menu--item.gaodimic-has-qr .gaodimic-qr-pop {
  display: none;
  position: absolute;
  left: calc(100% + 12px);
  top: -60px;
  z-index: 9999;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 12px 32px rgba(0,0,0,.14);
  padding: 10px;
}
.social-menu--item.gaodimic-has-qr:hover .gaodimic-qr-pop,
.social-menu--item.gaodimic-has-qr:focus-within .gaodimic-qr-pop { display: block; }
.social-menu--item.gaodimic-has-qr .gaodimic-qr-pop img {
  display: block; border-radius: 8px;
  max-width: calc(100vw - 2rem); height: auto;
}
.social-menu--item.gaodimic-has-qr .gaodimic-qr-id {
  margin: 8px 0 0; font-size: 12px; color: #4b5563;
  text-align: center; white-space: nowrap;
}

/* == gaodimic body-image defaults 20260905 == */
/* 正文图片：默认居中，显示层封顶 800px（原图不动） */
.node__content img{display:block;margin-left:auto;margin-right:auto;max-width:800px;height:auto}
.node__content figure.image{margin-left:auto;margin-right:auto}
/* CKEditor5 对齐类（figure 或 img 直接携带）与 filter_align 产物 */
.node__content .image-style-align-left,.node__content img.align-left{float:left;margin:0 1.5rem 1rem 0}
.node__content .image-style-align-right,.node__content img.align-right{float:right;margin:0 0 1rem 1.5rem}
.node__content img.align-center{display:block;margin-left:auto;margin-right:auto;float:none}

/* == article page title: 32/40/48 -> 16/24/32 (2026-09-05, -4 then -12) == */
.page-node-type-article h1{font-size:16px}
@media(min-width:768px){.page-node-type-article h1{font-size:24px}}
@media(min-width:1024px){.page-node-type-article h1{font-size:32px}}

/* == article body content: extend right edge +20px (2026-09-05) == */
@media(min-width:1024px){
.page-node-type-article .node__content{max-width:calc(80% + 20px);transform:translateX(10px)}
}



/* hero-navy-back 20260910 v11: full-width navy band under the slider frame */
.hero-navy-back .hero-slider-band {
  position: absolute;
  top: 0;
  bottom: -12px;
  left: 50%;
  margin-left: -50vw;
  width: 100vw;
  z-index: 1;
  background: var(--primary);
}
.hero-navy-back .hero-slideshow {
  z-index: 2 !important;
}

/* navbar login divider 20260910: pipe between main nav and account links (+4px spacing) */
@media (min-width: 768px) {
  .navbar--links::before {
    content: "";
    align-self: center;
    width: 1px;
    height: 16px;
    margin-left: -4px;   /* pull into parent gap: divider sits centered */
    margin-right: 8px;   /* divider->Register 20px, ABOUT->divider 20px (24 parent gap - 4) */
    background: var(--std-blue);
  }
}

/* hero-media-layer + content layering 20260911 v3 */
.hero-navy-back .hero-media-layer {
  z-index: 2 !important;
}
.hero-navy-back > .container {
  position: relative;
  z-index: 3;
}

/* Mobile: level-1 dropdown (Info) full-width static under its label (2026-09-11 info menu task) */
@media (max-width: 767px) {
  .navbar--dropdown-menu li[data-level='1'] > .gaodimic-nav-dd { width: 100%; min-width: 0; }
}

/* Level-1 nolink span (Info): match link typography & vertical alignment (2026-09-11 info menu task) */
.navbar--dropdown-menu li[data-level='1'] > .gaodimic-nav-nolink {
  display: flex; align-items: center; gap: 0.25rem;
  min-height: 2.75rem; padding: 0.5rem;
  flex: 1 1 0%;
  font-size: 1rem; font-weight: 400; line-height: 1;
  text-transform: uppercase; cursor: default;
}
@media (min-width: 768px) {
  .navbar--dropdown-menu li[data-level='1'] > .gaodimic-nav-nolink {
    min-height: auto; padding: 0 0.75rem;
  }
}

/* Biz Partners page (canvas page 13): halve hero ribbon min-heights */
body.canvas-page-13 .hero-navy-back { min-height: 240px; padding-top: 105px; justify-content: flex-start; }

/* canvas-page-13 hero: tighten inner paddings (band halved, badge below navbar) */
body.canvas-page-13 .hero-navy-back .container { padding-top: 8px; padding-bottom: 8px; }
body.canvas-page-13 .hero-navy-back .container > .flex { padding-top: 0; padding-bottom: 0; margin-top: 12px; gap: 12px; }

/* canvas-page-13 hero: description single line, 18px (line-height kept) */
@media (min-width: 768px) {
  body.canvas-page-13 .hero-navy-back .container .font-serif { font-size: 18px; }
  body.canvas-page-13 .hero-navy-back .container > .flex { max-width: 100%; }
}

/* Biz Partners page: map + list width aligned with navbar pill (module css twin lives in world-partner-map.css) */
body.canvas-page-13 .wpm-root {
  max-width: none;
  width: calc(100% - 48px);
  margin-left: auto;
  margin-right: auto;
}

/* Continent name carries the thin blue line (title removed 20260912) */
.wpm-list__continent-name {
  padding-bottom: 10px;
  border-bottom: 1px solid var(--wpm-blue, #008fd7);
}

/* Uniform card height = Japan (ArtBox) card, 162px, content centered */
.wpm-card--compact {
  height: 162px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.wpm-card--compact .wpm-card__logo { margin-bottom: 12px; }
.wpm-card--compact .wpm-card__name { margin: 0; }
/* Multi-partner countries take one full 4-column row; cards keep the
   standard cell size and wrap within the row. */
@media (min-width: 641px) {
  .wpm-list__country-block--multi { grid-column: span 4; }
  .wpm-list__country-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; align-content: start; }
}
@media (min-width: 641px) and (max-width: 1024px) {
  .wpm-list__country-block--multi { grid-column: span 2; }
  .wpm-list__country-cards { grid-template-columns: repeat(2, 1fr); }
}

/* Panel: partner info boxes 2 per row, wider */
.wpm-panel__body { grid-template-columns: repeat(2, 1fr); gap: 16px; }
@media (max-width: 640px) { .wpm-panel__body { grid-template-columns: 1fr; } }

/* Panel partner card: two columns — left logo+name, right details */
.wpm-panel__body .wpm-card {
  display: grid;
  grid-template-columns: minmax(150px, 220px) 1fr;
  column-gap: 24px;
  row-gap: 10px;
  align-items: start;
}
.wpm-panel__body .wpm-card__logo { grid-column: 1; margin-bottom: 0; }
.wpm-panel__body .wpm-card__name { grid-column: 1; margin: 0; }
.wpm-panel__body .wpm-card__contacts { grid-column: 2; grid-row: 1; }
.wpm-panel__body .wpm-card__desc { grid-column: 2; }

/* Selected country: orange (std palette) instead of navy */
.wpm-root .wpm-map path.is-selected {
  fill: var(--std-orange, #f9570e);
  stroke: #ffffff;
}

/* Keep contact labels on one line */
.wpm-panel__body .wpm-card__contacts dt { white-space: nowrap; }

/* Panel cards: logo cap matches list cards; single-partner country = full-width card with big logo */
.wpm-panel__body .wpm-card__logo { height: auto; }
.wpm-panel__body .wpm-card__logo img { max-height: 66px; max-width: 180px; }
.wpm-panel__body--single { grid-template-columns: 1fr; }
.wpm-panel__body--single .wpm-card { grid-template-columns: 280px 1fr; }
.wpm-panel__body--single .wpm-card__logo { align-items: flex-start; }
.wpm-panel__body--single .wpm-card__logo img { max-height: 110px; max-width: 240px; }

/* Single full-width card: spread contact rows across the whole details zone */
.wpm-panel__body--single .wpm-card__contacts {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  column-gap: 48px;
  row-gap: 10px;
  align-content: start;
  align-items: start;
}

/* Single full-width card: content in two even columns — logo+name | details */
.wpm-panel__body--single .wpm-card { grid-template-columns: 1fr 1fr; column-gap: 48px; }
.wpm-panel__body--single .wpm-card__contacts { display: block; }

/* Map: panning locked until + is clicked; wheel zoom removed */
.wpm-map svg { cursor: default; }
.wpm-map svg.is-pannable { cursor: grab; }
.wpm-map svg.is-panning { cursor: grabbing; }

/* List cards open the partner panel at the bottom of their continent */
.wpm-list__country-block .wpm-card { cursor: pointer; transition: box-shadow .15s ease, border-color .15s ease; }
.wpm-list__country-block .wpm-card:hover { border-color: var(--wpm-blue); box-shadow: 0 3px 10px rgba(0,0,0,.12); }


/* marker: member center 20260917 (gaodimic_member) */
.gsh-member-center { max-width: 960px; margin: 0 auto; padding: 24px 16px 48px; }
.gsh-mc-title { font-size: 28px; line-height: 1.2; margin: 0 0 18px; font-weight: 700; }
.gsh-mc-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.gsh-mc-card { display: flex; flex-direction: column; gap: 6px; padding: 22px 20px; background: #fff; border: 1px solid #e3e7ea; border-radius: 10px; text-decoration: none; color: inherit; transition: border-color .15s ease, box-shadow .15s ease; }
.gsh-mc-card:hover { border-color: var(--link-color, #003366); box-shadow: 0 3px 10px rgba(0,0,0,.10); text-decoration: none; }
.gsh-mc-card__title { font-size: 17px; font-weight: 600; }
.gsh-mc-card__desc { font-size: 13.5px; color: #5a6570; }
.gsh-mc-cancel { margin-top: 28px; font-size: 13px; }
.gsh-mc-cancel a { color: #8a949c; }
.gsh-address-book { list-style: none; padding: 0; }
.gsh-address-item { background: #fff; border: 1px solid #e3e7ea; border-radius: 10px; padding: 16px 18px; margin-bottom: 12px; }
.gsh-address-item.is-default { border-color: var(--link-color, #003366); }
.gsh-default-badge { display: inline-block; margin-left: 8px; padding: 1px 8px; font-size: 11.5px; border-radius: 999px; background: var(--std-primary, #008fd7); color: #fff; }
.gsh-address-actions { display: flex; gap: 14px; list-style: none; padding: 0; margin: 10px 0 0; font-size: 13px; }
.gsh-address-actions a { color: var(--link-color, #003366); }

/* CKEditor 遗留 fontSize 档位（class 制，历史数据）→ 固定 px（20260920） */
.text-tiny { font-size: 12px; }
.text-small { font-size: 14px; }
.text-big { font-size: 20px; }

/* gaodimic dark full-width navbar 20260923 (shure-style navy header, utility row) */
/* P0-1: region-header's compiled white background must become navy — the hero slides
   up under the navbar, and any --navbar-height mismatch would otherwise show as a
   white seam (same-color overlap is invisible). */
.region-header {
  background: var(--primary);
}
.gaodimic-hdr {
  position: relative;
  z-index: 500;
  background: var(--primary);
  color: #fff;
}
/* Utility row display is owned HERE, not by Tailwind classes: the compiled build
   only emits classes the original component used, so md:flex / justify-end /
   gap-x-4 on the twig div would silently not exist ("hidden" would win at every
   width — exactly the phase-1 bug). Mobile: no utility row; >=768: right-aligned
   small links, same visual grammar as shure.com's top strip. */
.gaodimic-hdr-utility {
  display: none;
  font-size: 0.75rem;
}
@media (min-width: 48rem) {
  .gaodimic-hdr-utility {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    column-gap: 1rem;
    min-height: 1.75rem;
    padding-top: 0.375rem;
    padding-bottom: 0.375rem;
  }
}
.gaodimic-hdr-utility .menu .menu__link {
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.75rem;
  line-height: 1.4;
}
.gaodimic-hdr-utility .menu .menu__link:hover {
  color: #fff;
}
/* white logo inside the dark bar only — same warm-white filter recipe the footer
   already uses (main.min.css .site-footer .branding img); mobile modal logo keeps
   the original blue. print guard: white-on-white paper would vanish. */
.gaodimic-hdr .navbar--logo img {
  filter: brightness(0) invert(100%);
}
@media print {
  .gaodimic-hdr .navbar--logo img {
    filter: none;
  }
}
/* main menu level-1 links + nolink spans: white on navy */
.gaodimic-hdr .navbar--dropdown-menu a[data-level='1'],
.gaodimic-hdr .navbar--dropdown-menu .gaodimic-nav-nolink {
  color: #fff;
}
/* L1 hover on navy: translucent white chip (overrides the global blue-bg hover rule
   of 2026-09-01 only inside the dark bar) */
.gaodimic-hdr .navbar--dropdown-menu li[data-level='1']:hover > a[data-level='1'],
.gaodimic-hdr .navbar--dropdown-menu li[data-level='1']:focus-within > a[data-level='1'],
.gaodimic-hdr .navbar--dropdown-menu a[data-level='1']:hover,
.gaodimic-hdr .navbar--dropdown-menu a[data-level='1']:focus-visible {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}
/* kill the light chip background (Home item bg-muted/50) on the dark bar */
.gaodimic-hdr .navbar--dropdown-menu li[data-level='1'] {
  background-color: transparent;
}
/* hamburger button white on navy */
.gaodimic-hdr .navbar--hamburger {
  color: #fff;
}

/* gaodimic homepage flash below navbar 20260923 */
/* The hero section's compiled utility mt-[calc(var(--navbar-height)*-1)] tucks the
   slideshow's top 93px (64px mobile) under the dark bar. Homepage shows the full
   slideshow starting at the bar's bottom edge. Scoped by ROUTE body class — survives
   alias changes; Biz_Partners etc. keep their compensated layout.
   NOTE: if this becomes a site-wide decision, remove the class in the component
   twig instead of widening this selector (twig-only edits don't bump canvas hash). */
body.path-frontpage .hero-navy-back {
  margin-top: 0;
}

/* gaodimic logo white nudge 20260923 */
/* Desktop-only: up 10px + 10% larger on the two-row dark bar (mobile single-row
   bar keeps the optically centered logo). transform-only — the 93/64px height
   sync and utility alignment are untouched. Source image is EN-h60.png now
   (site branding), so the 30.8px render stays sharp on 2x DPR.
   NOTE: header logo is PURE white from here on; the footer keeps the warm-white
   recipe (deliberate divergence, unify later if desired). */
@media (min-width: 48rem) {
  .gaodimic-hdr .navbar--logo img {
    transform: translateY(-10px) scale(1.1);
  }
}
/* print: restore original logo (filter:none from the darkbar block) AND kill the
   transform — later same-specificity rule wins over the darkbar print guard. */
@media print {
  .gaodimic-hdr .navbar--logo img {
    transform: none;
  }
}

/* gaodimic flash resize 20260923 */
/* Homepage flash: +30% height per component breakpoint (600->780, 400->520,
   300->390), navy backdrop flush with the flash (no +12px lip), square corners
   on the slide images + scrim (badge pills are rounded-full, untouched).
   Scoped to the frontpage route; Biz_Partners keeps its own compensated layout. */
body.path-frontpage .hero-navy-back {
  min-height: 390px;
}
@media (min-width: 48rem) {
  body.path-frontpage .hero-navy-back { min-height: 520px; }
}
@media (min-width: 80rem) {
  body.path-frontpage .hero-navy-back { min-height: 780px; }
}
body.path-frontpage .hero-navy-back .hero-slider-band {
  bottom: 0;
}
body.path-frontpage .hero-navy-back .rounded-lg {
  /* today this hits exactly 3 slides x (img + bg-black/60 scrim); badge pills are
     rounded-full. Re-review if rounded elements are ever added inside the hero. */
  border-radius: 0;
}
/* Main-nav full bar +12px (user: the band's 12px lip moves into the top bar).
   Bottom padding only — menu/logo/utility positions are untouched; the
   --navbar-height var is sed-synced to 76/105/105 in the same deploy so the
   page-13 padding and the Biz hero mt-class consumers follow automatically. */
.gaodimic-hdr {
  padding-bottom: 12px;
}


/* gaodimic menu typography 20260923 */
/* L1 menu +2px (16->18) and bold; account/utility links +2px (12->14).
   Line-heights are PINNED to the current computed values: the utility row is
   content-sized (lh + 2*6px padding = 28.8px) — a unitless 1.4 at 14px would
   grow it to 31.6px and desync the 105px header / --navbar-height chain.
   The L1 element box (32px = 16px lh + py-2) likewise stays frozen. */
/* the nolink selector must carry li[data-level='1'] > to OUTSPECIFY the
   2026-09-11 rule (.navbar--dropdown-menu li[data-level='1'] > .gaodimic-nav-nolink,
   0,3,1, sets font-size:1rem / font-weight:400) — a bare .gaodimic-nav-nolink
   suffix (0,2,1) silently loses to it. */
.gaodimic-hdr .navbar--dropdown-menu a[data-level='1'],
.gaodimic-hdr .navbar--dropdown-menu li[data-level='1'] > .gaodimic-nav-nolink {
  font-size: 18px;
  font-weight: 700;
  line-height: 16px;
}
.gaodimic-hdr-utility .menu .menu__link {
  font-size: 14px;
  line-height: 16.8px;
}

/* Firmware/manual description: keep line breaks (2026-09-30) */
.product-doc__desc {
  white-space: pre-line;
}

/* ===== Front follows editor: body-table borders mirror CKEditor5's injected
   content styles (source: core table.js runtime styles, verbatim 2026-10-06).
   Scope: product body container only; spec tables keep their own design. ===== */
.product-description table.table:not(.layout-table) { border: 1px double #b3b3b3; border-collapse: collapse; border-spacing: 0; }
.product-description table.table:not(.layout-table) td,
.product-description table.table:not(.layout-table) th { border: 1px solid #bfbfbf; min-width: 2em; padding: .4em; }
.product-description table { max-width: 100%; }

/* ===== Node content tables (2026-11-01): CKEditor5 writes border-color/style inline
   but no border-width; tailwind preflight zeroes width, article tables render borderless.
   Front follows editor: restore the 1px grid. Scope: node body wrapper, mirroring the
   .product-description rule above; spec/layout tables keep their own design. ===== */
.node__content table.table:not(.layout-table) { border-style: solid; border-width: 1px; border-collapse: collapse; }
.node__content table.table:not(.layout-table) td,
.node__content table.table:not(.layout-table) th { border-style: solid; border-width: 1px; padding: .5em; }

/* ===== Series front page (2026-10-07): flash hero + featured + kits/components grids.
   版式镜像 /projects 页（hero 白卡 + FEATURED 大卡）。字段来自 product_series 词条。 ===== */
.series-front__hero { min-height: 420px; background-size: cover; background-position: center; display: flex; align-items: center; position: relative; }
.series-front__hero::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, 0.08); pointer-events: none; }
.series-front__hero-card { position: relative; z-index: 1; background: #fff; border-radius: 10px; padding: 36px 44px; max-width: 520px; margin: 0 0 0 5%; box-shadow: 0 6px 24px rgba(0, 0, 0, 0.12); }
.series-front__badge { display: inline-block; border-radius: 999px; padding: 5px 16px; font-size: 12px; font-weight: 700; letter-spacing: normal; text-transform: uppercase; }
.series-front__badge--yellow { background: #ffd200; color: #12365c; }
.series-front__badge--blue { background: var(--std-blue, #008fd7); color: #fff; }
.series-front__hero-title { color: #10538b; font-size: 44px; line-height: 1.1; font-weight: 800; margin: 14px 0 10px; }
.series-front__hero-text { color: #333; font-size: 16px; line-height: 1.6; margin: 0; }
.series-front__featured-wrap { background: #f5f6f8; padding: 40px 16px; }
.series-front__featured { max-width: 1280px; margin: 0 auto; background: #fff; border-radius: 12px; display: flex; gap: 48px; align-items: center; padding: 48px; }
.series-front__featured-body { flex: 1 1 50%; }
.series-front__featured-title { color: #4aa8dc; font-size: 42px; line-height: 1.1; font-weight: 800; margin: 14px 0 16px; }
.series-front__featured-intro { color: #555; font-size: 16px; line-height: 1.7; }
.series-front__featured-media { flex: 1 1 50%; }
.series-front__featured-media img { width: 100%; height: auto; border-radius: 10px; display: block; }
.series-front__section { max-width: 1280px; margin: 0 auto; padding: 40px 16px 24px; }
.series-front__section-title { font-size: 24px; font-weight: 700; color: #1a1a1a; margin: 0 0 18px; padding-bottom: 12px; border-bottom: 1px solid #000; }
.series-front__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
@media (max-width: 1024px) { .series-front__grid { grid-template-columns: repeat(2, 1fr); } .series-front__featured { flex-direction: column; padding: 28px; } .series-front__hero-title { font-size: 34px; } }
@media (max-width: 640px) { .series-front__grid { grid-template-columns: 1fr; } .series-front__hero-card { margin: 0 4%; padding: 24px; } }

/* ===== Series front breadcrumb (2026-10-07): 面包屑渲染在 flash hero 下方（主题带对该路由关闭）。 ===== */
.series-front__breadcrumb { padding-top: 16px; }

/* ===== Series featured polish (2026-10-07): 对齐 /projects Featured Project 模块
   （用户截图口径：蓝徽章 FEATURED PROJECT / 48px 大标题 / 加粗灰 context / 近方形圆角右图 / 无按钮）。 ===== */
.series-front__featured { padding: 40px; gap: 40px; }
.series-front__badge--blue { padding: 8px 20px; font-size: 13px; }
.series-front__featured-title { font-size: 48px; margin: 18px 0 20px; }
.series-front__featured-intro { font-size: 18px; color: #4a5560; }
.series-front__featured-media img { aspect-ratio: 1 / 1; object-fit: cover; border-radius: 12px; }

/* ===== Series featured width (2026-10-07): 白色框左右扩展 40px（用户口径）。 ===== */
.series-front__featured { max-width: 1360px; }

/* ===== Series featured shift v2 (2026-10-07): Featured 白卡上移 4px（wrap padding-top 40→36）。
   灰底 wrap 原本紧贴面包屑（gap 0），视觉间距=白卡顶与面包屑的距离，按用户口径减 4px。 ===== */
.series-front__featured-wrap { padding-top: 36px; }

/* ===== Series featured shift v3 (2026-10-07): 整个灰卡上移 8px（用户口径"整个灰卡上移，上移8px"）。 ===== */
.series-front__featured-wrap { margin-top: -8px; }

/* ===== Series featured shift v4 (2026-10-07): 灰卡再上移 8px（累计 -16）。 ===== */
.series-front__featured-wrap { margin-top: -16px; }

/* ===== Series hero height (2026-10-07): flash 高度 420→600（用户口径，对齐 /projects 大屏）。 ===== */
.series-front__hero { min-height: 600px; }

/* ===== Series carousel (2026-10-07): kits/components 改横向滑动行（对齐 Shure 配置展示模式）。
   卡片 280px 定宽一行，左右箭头按页滚动，scroll-snap 对齐，滚动条隐藏。 ===== */
.series-front__carousel { position: relative; }
.series-front__grid--scroll { display: flex; gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -ms-overflow-style: none; padding: 2px 2px 6px; }
.series-front__grid--scroll::-webkit-scrollbar { display: none; }
.series-front__grid--scroll > * { flex: 0 0 auto; width: 280px; scroll-snap-align: start; }
.series-front__carousel-btn { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 40px; height: 40px; border-radius: 50%; border: 1px solid #d0d5dd; background: #fff; color: #1a1a1a; font-size: 18px; line-height: 1; cursor: pointer; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12); display: flex; align-items: center; justify-content: center; transition: opacity 0.15s ease, box-shadow 0.15s ease; }
.series-front__carousel-btn:hover { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18); }
.series-front__carousel-btn--prev { left: -10px; }
.series-front__carousel-btn--next { right: -10px; }
.series-front__carousel-btn:disabled { opacity: 0.35; cursor: default; box-shadow: none; }
@media (max-width: 640px) {
  .series-front__grid--scroll > * { width: 240px; }
  .series-front__carousel-btn { width: 34px; height: 34px; }
}

/* ===== Series section width v2 (2026-10-07): 回退 +32，改左右各 +8px（合计 +16，用户口径）。 ===== */
@media (min-width: 1400px) {
  .series-front__section { width: calc(100% + 16px); max-width: none; margin-left: -8px; }
}

/* ===== Series card (2026-10-07): 轻量产品卡（首图 + 名称，无缩略图条/价格/灯箱）。 ===== */
.series-card { background: #fff; border-radius: 8px; overflow: hidden; height: 100%; display: flex; flex-direction: column; }
.series-card__media { display: block; aspect-ratio: 1 / 1; background: #fff; }
.series-card__media img { width: 100%; height: 100%; object-fit: contain; display: block; }
.series-card__title { display: block; padding: 12px 14px 16px; font-size: 16px; font-weight: 400; color: #1a1a1a; text-align: center; line-height: 1.4; }
.series-card__title:hover { color: var(--link-color, #003366); }

/* ===== Series card dark (2026-10-07): 卡片白底改 80% 黑（用户试看口径），标题反白。 ===== */
.series-front__grid--scroll .series-card { background: rgba(0, 0, 0, 0.8); }
.series-front__grid--scroll .series-card__title { color: #fff; }
.series-front__grid--scroll .series-card__title:hover { color: #ffd200; }

/* ===== Series card nudge (2026-10-07): 图上移 8px、黑名称条上移 12px（叠图底，用户口径）。 ===== */
.series-front__grid--scroll .series-card__media img { margin-top: -8px; }
.series-front__grid--scroll .series-card__title { margin-top: -12px; position: relative; }


/* ===== Series front hero card position (2026-10-08): left default / right flip. ===== */
.series-front__hero-card--right { margin-left: auto; margin-right: 5%; }
@media (max-width: 640px) { .series-front__hero-card--right { margin: 0 4% 0 auto; } }

/* ===== Series front hero title line-height 1.3 (2026-10-08). ===== */
.series-front__hero-title { line-height: 1.5; }
.series-front__featured-title { line-height: 1.5; }
.series-front__hero-card .series-front__badge { text-transform: none; }
/* ===== Series card text area (2026-10-08): 下部文字区加高+顶部空一行(叠图-12px, 34-12=22px约一行, 用户口径, 全站组件级). ===== */
.series-card__title { padding: 34px 14px 22px; }
/* ===== Series flash tuck (2026-10-08): 对齐 blog flash 模式——flash 顶到视口顶(钻透明 header, 桌面-105px/移动-76px)+16px 圆角; 下方内容 48/40/32px 下移过 flash 底(blog 同款). ===== */
.series-front__hero { margin-top: -105px; border-radius: 16px; }
.series-front__breadcrumb { margin-top: 36px; padding-top: 0; padding-bottom: 0; }
@media (max-width: 767.98px) {
  .series-front__hero { margin-top: -76px; }
}
@media (min-width: 768px) and (max-width: 1279.98px) {
}
/* ===== Series flash blue band (2026-10-08): blog 同款深蓝通栏(与 header 同色 #004880), 全宽包住 flash(上0-下+12px), flash 圆角浮在带上. ===== */
.series-front__hero::before { content: ''; position: absolute; top: 0; bottom: -12px; left: 50%; width: 100vw; transform: translateX(-50%); background: #004880; z-index: -1; }
/* ===== Series breadcrumb rhythm (2026-10-08): 面包屑上下各隔一行(24px), 废除 featured -16px 旧校准. ===== */
.series-front__featured-wrap { margin-top: 24px; }
/* ===== Series section rhythm (2026-10-08): featured 卡与下方卡片区/两个卡片区之间一律隔一行(24px), 删 featured-wrap 底部 40px 冗余. ===== */
.series-front__featured-wrap { padding-bottom: 0; }
.series-front__section { padding-top: 48px; }
/* ===== Series breadcrumb sym (2026-10-08): NAV 自带 pt-4/pb-8 归零, 上下视觉各一行(蓝带-24-文字-24-featured). ===== */
.series-front__breadcrumb nav { padding-top: 0; padding-bottom: 0; }
/* ===== Series hero badge fix (2026-10-09): 字距归零(全局0.06em在16px下过散), 文字显式靠左. ===== */
.series-front__hero-card .series-front__badge { letter-spacing: normal; text-align: left; }
/* ===== Header nav band translucent (2026-10-09): navigation 通栏 20%% 透明(alpha 0.8), flash 顶部隐约透出; gutter 后为不透明蓝带故观感不变. ===== */
.region-header, .gaodimic-hdr { background: var(--nav-band, rgba(0, 0, 0, 0.85)); }

/* == 2026-10-10 nav dropdown dark + L3 flyout left (user 定版) == */
/* 全站统一深色下拉面板（Info 同步受益，白底白字隐身同病同修）；
   三级向左飞出——Products 居导航右侧，向右溢出视口。桌面作用域，移动端静态样式不动。 */
@media (min-width: 768px) {
  .gaodimic-nav-dd, .gaodimic-nav-dd-sub {
    background: var(--std-blue-dark, #004880);
  }
  .gaodimic-nav-l2, .gaodimic-nav-l3 {
    color: #fff;
  }
  .gaodimic-nav-dd li:hover > .gaodimic-nav-l2,
  .gaodimic-nav-dd li:hover > a.gaodimic-nav-l3,
  .gaodimic-nav-dd li:focus-within > .gaodimic-nav-l2,
  .gaodimic-nav-dd li:focus-within > a.gaodimic-nav-l3 {
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
  }
  .gaodimic-nav-l2.has-flyout::after { color: rgba(255, 255, 255, 0.65); }
  .gaodimic-nav-dd li:hover > .gaodimic-nav-l2.has-flyout::after { color: #fff; }
  .gaodimic-nav-soon { color: #cbd5e1; }
  /* L3 向左飞出 + 悬停桥换边 */
  .gaodimic-nav-dd-sub {
    left: auto;
    right: 100%;
  }
  .gaodimic-nav-dd-sub::before {
    left: auto;
    right: -14px;
  }
  .gaodimic-nav-l2:focus-visible, .gaodimic-nav-l3:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.7);
    outline-offset: -2px;
  }
  /* 面板右对齐：Products 靠导航右端，left:0 在窄桌面（1280）溢出亚像素 */
  .navbar--dropdown-menu li[data-level='1'] > .gaodimic-nav-dd {
    left: auto;
    right: 0;
  }
}

/* ===== Series featured wrap bottom (2026-10-11): 恢复灰框下边 36px 与上沿对称（10-08 rhythm 误删：白卡下沿贴住下方白色区域）。 ===== */
.series-front__featured-wrap { padding-bottom: 36px; }

/* ===== Series carousel arrows blue (2026-10-11): 左右键白底深灰箭头→品牌蓝底白箭头(hover 深蓝, 用户口径 蓝色底箭头)。 ===== */
.series-front__carousel-btn { background: var(--std-blue, #008fd7); border-color: var(--link-color, #003366); color: #fff; }
.series-front__carousel-btn:hover { background: var(--std-blue-dark, #004880); border-color: var(--std-blue-dark, #004880); }

/* ===== Series carousel arrows thicker (2026-10-11): 箭头字形加粗(text-stroke, 用户口径 箭头粗点)。 ===== */
.series-front__carousel-btn { -webkit-text-stroke: 1.3px currentColor; }


/* ===== System series modules (2026-10-12): Temp_Product_System_DT 的 Series 模块卡与 More 按钮（蓝底白字）。 ===== */
.series-front__sysmod .series-front__featured { max-width: 1360px; margin: 0 auto 24px; }
.series-front__more { display: inline-block; margin-top: 18px; padding: 10px 30px; border-radius: 6px; background: var(--std-blue, #008fd7); color: #fff; font-weight: 600; font-size: 15px; text-decoration: none; transition: background 0.15s ease; }
.series-front__more:hover { background: var(--std-blue-dark, #004880); color: #fff; text-decoration: none; }

/* ===== Series module image fixed 480 (2026-10-12): Series module 右图定尺 480×480（用户口径 固定的480*480）；仅 System 版式模块卡，Featured 区与窄屏堆叠不动。 ===== */
@media (min-width: 1025px) { .series-front__sysmod .series-front__featured-media { flex: 0 1 480px; } }

/* ===== Series module title/badge polish (2026-10-12): 标题行距 1.5（用户口径 行距1.5倍）+ 徽标文字两侧间距 +8px（16→24px，用户口径 两侧间距增加8px）；仅 System 版式模块卡。 ===== */
.series-front__sysmod .series-front__featured-title { line-height: 1.5; }
.series-front__sysmod .series-front__badge { padding-left: 24px; padding-right: 24px; }

/* ===== Series module card gaps halved (2026-10-12): 模块卡间距减半（实测 卡间 96→48 = pb24→12 + mb24→12 + pt48→24；面包屑→首卡 48→24，用户口径 缩小一半）；仅 System 版式模块卡。 ===== */
.series-front__sysmod.series-front__section { padding-top: 24px; padding-bottom: 12px; }
.series-front__sysmod .series-front__featured { margin: 0 auto 12px; }

/* ===== Nav shift + L3 flyout right (2026-10-12): 导航菜单左移 50px 腾出右侧空间；L3 恢复向右飞出（用户口径 放回右边）。桌面作用域，移动端静态不动。 ===== */
@media (min-width: 768px) {
  .navbar--dropdown-menu nav nav { left: -50px; }
  .gaodimic-nav-dd-sub { left: 100%; right: auto; }
  .gaodimic-nav-dd-sub::before { left: -14px; right: auto; }
}

/* gaodimic news card (2026-10-13; v7 two-section split: all-list thumb stretches to text column,
   rec-grid card gets 240px square thumb + no summary) */
.gaodimic-news-card { display: flex; gap: 16px; align-items: stretch; border-bottom: 1px solid rgba(0,0,0,.1); padding: 16px 0; }
.gaodimic-news-card__thumb { flex: 0 0 280px; height: 210px; min-width: 0; position: relative; overflow: hidden; border-radius: 6px; }
.gaodimic-news-card__thumb a { display: block; height: 100%; }
.gaodimic-news-card__thumb a > * { height: 100%; }
.gaodimic-news-card__thumb img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.gaodimic-news-card--rec .gaodimic-news-card__thumb { flex: 0 0 240px; height: 240px; }
.gaodimic-news-card__body { flex: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; min-width: 0; }
.gaodimic-news-card__date { display: inline-block; background: var(--std-green, #64be00); color: #fff; font-size: 12px; font-weight: 700; line-height: 1; padding: 5px 10px; border-radius: 999px; }
.gaodimic-news-card__title { margin: 0; font-size: 20px; line-height: 1.3; font-weight: 600; }
.gaodimic-news-card__title a { color: var(--link-color, #003366); }
.gaodimic-news-card__title a:hover { text-decoration: underline; }
.gaodimic-news-card__summary { color: #555; font-size: 16px; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-width: 100%; }
.gaodimic-news-card__summary * { font-size: 16px !important; white-space: normal !important; color: #555 !important; }

/* gaodimic news card (2026-10-13; v8: contextual-region (logged-in) must stretch too, else absolute img resolves to h=0) */
.gaodimic-news-card { display: flex; gap: 16px; align-items: stretch; border-bottom: 1px solid rgba(0,0,0,.1); padding: 16px 0; }
.gaodimic-news-card__thumb { flex: 0 0 280px; height: 210px; min-width: 0; position: relative; overflow: hidden; border-radius: 6px; }
.gaodimic-news-card__thumb a { display: block; height: 100%; }
.gaodimic-news-card__thumb a > * { height: 100%; }
.gaodimic-news-card__thumb .contextual-region { height: 100%; }
.gaodimic-news-card__thumb img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.gaodimic-news-card--rec .gaodimic-news-card__thumb { flex: 0 0 240px; height: 240px; }
.gaodimic-news-card__body { flex: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; min-width: 0; }
.gaodimic-news-card__date { display: inline-block; background: var(--std-green, #64be00); color: #fff; font-size: 12px; font-weight: 700; line-height: 1; padding: 5px 10px; border-radius: 999px; }
.gaodimic-news-card__title { margin: 0; font-size: 20px; line-height: 1.3; font-weight: 600; }
.gaodimic-news-card__title a { color: var(--link-color, #003366); }
.gaodimic-news-card__title a:hover { text-decoration: underline; }
.gaodimic-news-card__summary { color: #555; font-size: 16px; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-width: 100%; }
.gaodimic-news-card__summary * { font-size: 16px !important; white-space: normal !important; color: #555 !important; }

/* gaodimic news card (2026-10-13; v9: recommended panel — std-blue tint card bg via color-mix,
   "Recommended News" heading, no gray separators inside panel, rec summary 120 chars no clamp) */
.gaodimic-news-panel { background: color-mix(in srgb, var(--std-blue) 8%, #fff); border-radius: 10px; padding: 20px 24px 4px; margin: 0 0 28px; }
.gaodimic-news-panel__title { margin: 0 0 14px; font-size: 22px; line-height: 1.2; font-weight: 700; color: var(--std-blue-dark, #004880); }
.gaodimic-news-card--rec { border-bottom: none; }
.gaodimic-news-card--rec .gaodimic-news-card__summary { display: block; -webkit-line-clamp: unset; -webkit-box-orient: unset; overflow: visible; }
.gaodimic-news-card { display: flex; gap: 16px; align-items: stretch; border-bottom: 1px solid rgba(0,0,0,.1); padding: 16px 0; }
.gaodimic-news-card__thumb { flex: 0 0 280px; height: 210px; min-width: 0; position: relative; overflow: hidden; border-radius: 6px; }
.gaodimic-news-card__thumb a { display: block; height: 100%; }
.gaodimic-news-card__thumb a > * { height: 100%; }
.gaodimic-news-card__thumb .contextual-region { height: 100%; }
.gaodimic-news-card__thumb img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.gaodimic-news-card--rec .gaodimic-news-card__thumb { flex: 0 0 240px; height: 240px; }
.gaodimic-news-card__body { flex: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; min-width: 0; }
.gaodimic-news-card__date { display: inline-block; background: var(--std-green, #64be00); color: #fff; font-size: 12px; font-weight: 700; line-height: 1; padding: 5px 10px; border-radius: 999px; }
.gaodimic-news-card__title { margin: 0; font-size: 20px; line-height: 1.3; font-weight: 600; }
.gaodimic-news-card__title a { color: var(--link-color, #003366); }
.gaodimic-news-card__title a:hover { text-decoration: underline; }
.gaodimic-news-card__summary { color: #555; font-size: 16px; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-width: 100%; }
.gaodimic-news-card__summary * { font-size: 16px !important; white-space: normal !important; color: #555 !important; }

.gaodimic-news-card--rec { border-bottom: none; }

/* gaodimic news card (2026-10-13; v10: recommended panel via :has() on view-content
   (views areas wrap header separately — cannot wrap rows), heading drawn by ::before) */
.view-blog .view-content:has(.gaodimic-news-card--rec) { background: color-mix(in srgb, var(--std-blue) 8%, #fff); border-radius: 10px; padding: 20px 24px; margin: 0 0 28px; }
.view-blog .view-content:has(.gaodimic-news-card--rec)::before { content: 'Recommended News'; display: block; grid-column: 1 / -1; margin: 0 0 14px; font-size: 22px; line-height: 1.2; font-weight: 700; color: var(--std-blue-dark, #004880); }
.gaodimic-news-card--rec { border-bottom: none; }
.gaodimic-news-card--rec .gaodimic-news-card__summary { display: block; -webkit-line-clamp: unset; -webkit-box-orient: unset; overflow: visible; }
.gaodimic-news-card { display: flex; gap: 16px; align-items: stretch; border-bottom: 1px solid rgba(0,0,0,.1); padding: 16px 0; }
.gaodimic-news-card__thumb { flex: 0 0 280px; height: 210px; min-width: 0; position: relative; overflow: hidden; border-radius: 6px; }
.gaodimic-news-card__thumb a { display: block; height: 100%; }
.gaodimic-news-card__thumb a > * { height: 100%; }
.gaodimic-news-card__thumb .contextual-region { height: 100%; }
.gaodimic-news-card__thumb img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.gaodimic-news-card--rec .gaodimic-news-card__thumb { flex: 0 0 240px; height: 240px; }
.gaodimic-news-card__body { flex: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; min-width: 0; }
.gaodimic-news-card__date { display: inline-block; background: var(--std-green, #64be00); color: #fff; font-size: 12px; font-weight: 700; line-height: 1; padding: 5px 10px; border-radius: 999px; }
.gaodimic-news-card__title { margin: 0; font-size: 20px; line-height: 1.3; font-weight: 600; }
.gaodimic-news-card__title a { color: var(--link-color, #003366); }
.gaodimic-news-card__title a:hover { text-decoration: underline; }
.gaodimic-news-card__summary { color: #555; font-size: 16px; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-width: 100%; }
.gaodimic-news-card__summary * { font-size: 16px !important; white-space: normal !important; color: #555 !important; }

/* hero-billboard card background options (2026-10-13): series-consistent 75% opacity, global tokens */
.hero-card-bg-transparent { background: transparent; }
.hero-card-bg-blue { background: color-mix(in srgb, var(--std-blue) 75%, transparent); }
.hero-card-bg-blue-dark { background: color-mix(in srgb, var(--std-blue-dark) 75%, transparent); }
.hero-card-bg-green { background: color-mix(in srgb, var(--std-green) 75%, transparent); }
.hero-card-bg-orange { background: color-mix(in srgb, var(--std-orange) 75%, transparent); }
.hero-card-bg-yellow { background: rgba(255, 210, 0, 0.75); }
.hero-card-bg-black { background: rgba(0, 0, 0, 0.75); }
.hero-card-bg-white75 { background: rgba(255, 255, 255, 0.75); }

/* ===== gaodimic text std colors + font-size override (2026-10-14 textstd) ===== */
/* 文字标准色（值走全局令牌；白黑补令牌便于将来全局调色）。 */
:root {
  --std-white: #ffffff;
  --std-black: #000000;
}
.gaodimic-text-std-white { color: var(--std-white, #ffffff); }
.gaodimic-text-std-black { color: var(--std-black, #000000); }
.gaodimic-text-std-blue { color: var(--link-color, #003366); }
.gaodimic-text-std-blue-dark { color: var(--std-blue-dark, #004880); }
.gaodimic-text-std-green { color: var(--std-green, #64be00); }
.gaodimic-text-std-orange { color: var(--std-orange, #f9570e); }
.gaodimic-text-std-yellow { color: var(--std-yellow, #ffb300); }
/* 精确字号覆盖时，内部 h1-h6 跟随（压过 [&_h2]:text-2xl 等子选择器）。 */
.gaodimic-text-fs :is(h1, h2, h3, h4, h5, h6) { font-size: inherit !important; }

/* ===== hero-center 内容组居中 (20261014 flexpos) ===== */
/* 卡层 items-center 被内层 group 包装的 self-start（align-self 优先）反杀， */
/* 用更高特异性压回：badge/heading/text 组整体水平居中。 */
div.hero-card--center > * { align-self: center; align-items: center; }

/* ===== 卡片 right 档：文本全部右对齐（全局定义 20261014） ===== */
/* Canvas hero 卡（news/cases）：内容组(badge/heading/text)右对齐（压内层 group 的 items-start）。 */
div.hero-card--right > * { align-self: flex-end; align-items: flex-end; text-align: right; }
/* Series/System 前台卡：块级卡 text-align 即可（badge=inline-block 随动）。 */
.series-front__hero-card--right { text-align: right; }

/* ===== Cases Overview 卡片分类徽章（20261014）：灰底白字；分类在上、日期在下，左对齐堆叠 ===== */
/* 默认隐藏；仅 Cases 页（canvas-page-12）显示。body 为 flex-column，徽章天然堆叠、左缘对齐。 */
.gaodimic-news-card__cat { display: none; }
.canvas-page-12 .gaodimic-news-card__cat { display: inline-block; background: #6b7280; color: #fff; font-size: 12px; font-weight: 700; line-height: 1; padding: 5px 10px; border-radius: 999px; }
.canvas-page-14 .gaodimic-news-card__cat { display: inline-block; background: #6b7280; color: #fff; font-size: 12px; font-weight: 700; line-height: 1; padding: 5px 10px; border-radius: 999px; }

/* ===== Case 详情页 meta + Related Kits/Components（20261014）===== */
.node__meta .case-meta { margin-top: 10px; }
.node__meta .case-meta__row { font-size: 15px; color: #333; line-height: 1.7; }
.node__meta .case-meta__label { font-weight: 700; }
.case-related { margin-top: 80px; padding-top: 24px; border-top: 3px solid #444444; }
.case-related + .case-related { margin-top: 48px; border-top: none; padding-top: 0; }
.case-related__title { font-size: 22px; font-weight: 700; color: var(--std-blue-dark, #004880); margin-bottom: 16px; padding-bottom: 10px; position: relative; }
.case-related__title::after { content: ""; display: block; position: absolute; left: 0; bottom: 0; width: calc((100% - 48px) / 3); height: 2px; background: var(--std-blue-dark, #004880); }
.case-related__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 1024px) { .case-related__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .case-related__grid { grid-template-columns: 1fr; } }
.case-related__card { border: 1px solid #e5e7eb; border-radius: 8px; overflow: hidden; background: #fff; display: flex; flex-direction: column; }
.case-related__card .case-related-card__img { display: block; height: 210px; overflow: hidden; }
.case-related__card .case-related-card__img img { width: 100%; height: 100%; object-fit: cover; object-position: bottom; display: block; }
.case-related__card a { display: block; padding: 12px 14px; font-weight: 600; color: var(--link-color, #003366); text-decoration: none; }
.case-related__card a:hover { text-decoration: underline; }
.case-related__card a.case-related-card__title { font-weight: 400; background: #444444; color: #ffffff; flex: 1 0 auto; }
.case-related__card a.case-related-card__title:hover { color: #ffffff; }
/* Related Cases 产品页标题（20261016）：黑 20px 粗体 + 黑色 100% 横线（对齐 Parameters/页签）。 */
.case-related--product .case-related__title { font-size: 20px; font-weight: 700; color: #000000; }
.case-related--product .case-related__title::after { width: 100%; height: 2px; background: #111827; }

/* 折叠块外壳（20261016 续96）：产品页折叠 details 抽到全局，Series 页 Related Cases 复用。 */
.product-kitcomponents { margin-top: 2rem; padding-top: 24px; padding-bottom: 24px; border-bottom: 1px solid #000000; }
.product-kitcomponents__summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; cursor: pointer; list-style: none; color: #000000; }
.product-kitcomponents__summary::-webkit-details-marker { display: none; }
.product-kitcomponents__toggle { position: relative; width: 20px; height: 20px; flex: none; }
.product-kitcomponents__toggle::before, .product-kitcomponents__toggle::after { content: ""; position: absolute; left: 50%; top: 50%; width: 14px; height: 2px; background: currentColor; transform: translate(-50%, -50%); transition: transform 0.2s ease; }
.product-kitcomponents__toggle::after { width: 2px; height: 14px; }
details[open] > .product-kitcomponents__summary .product-kitcomponents__toggle::after { transform: translate(-50%, -50%) scaleY(0); }
.product-kitcomponents__title { font-size: 20px !important; font-weight: 700; color: #000000; margin: 0; }



/* ===== Case 相关卡无图占位 + 裸 img 链（20261014 补）===== */
.case-related-card__img { display: block; }
.case-related-card__noimg { display: block; min-height: 210px; background: #f3f4f6; }

/* Related Documents 列表：统一 icon(40px) 左 + 文件名右，一行一个（20261017） */
.doc-list { display: flex; flex-direction: column; gap: 12px; }
.doc-item { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.doc-item__icon { width: 40px; height: 40px; flex: 0 0 40px; object-fit: contain; }
.doc-item__name { color: var(--link-color, #003366); font-weight: 500; }
.doc-item:hover .doc-item__name { text-decoration: underline; }

/* 正文与 Related 区之间的黑色粗分隔线（20261017） */
.related-separator { border: none; border-top: 3px solid #000; margin-top: 3rem; margin-bottom: 2rem; }

/* Recommended 卡片右侧图 400×400（20261018） */


/* Recommended 卡片（20261018）：图左 300×300、title 28px、简介 16px 不粗体 */
.view-display-id-tech_recommended .views-row .aspect-1\/1 { flex: 0 0 500px; width: 500px; height: 250px; }
.view-display-id-tech_recommended .views-row h2 { font-size: 28px !important; }
.view-display-id-tech_recommended .views-row .heading-text-gray { font-size: 16px !important; font-weight: 400 !important; }

/* /tech Recommended 每篇独立白卡 + list 色卡分开（20261018） */
.view-display-id-tech_recommended .views-row { margin-bottom: 24px; }
.view-display-id-tech_all .gaodimic-news-card { background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 16px; }

/* Recommended Type/日期徽章（20261018）：尺寸与 list 一致 */

.view-display-id-tech_recommended .views-row .heading-text-black { color: var(--std-green, #64be00) !important; }

/* Info 二级菜单收窄 40%（260px → 156px，20261018）：仅 Info（含 /tech 链接） */
@media (min-width: 768px) {
  .navbar--dropdown-menu li[data-level='1']:has(.gaodimic-nav-l2[href$="/tech"]) > .gaodimic-nav-dd { min-width: 156px; }
}

/* Series slides 逐页图片轮播（20261018）：白色卡下方，左右箭头 + 页码 */
.series-front__slides { margin: 28px 0; }
.series-front__slides-carousel { display: flex; align-items: center; gap: 16px; }
.series-front__slides-viewport { flex: 1 1 auto; display: flex; justify-content: center; align-items: center; min-height: 120px; }
.series-front__slide { max-width: 100%; max-height: 80vh; height: auto; width: auto; border-radius: 8px; box-shadow: 0 8px 24px rgba(0,0,0,.12); }
.series-front__slide-btn { flex: 0 0 auto; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--std-blue, #008fd7); background: var(--std-blue, #008fd7); color: #fff; font-size: 18px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; -webkit-text-stroke: 1.3px currentColor; }
.series-front__slide-btn:hover { background: var(--std-blue-dark, #004880); border-color: var(--std-blue-dark, #004880); }
.series-front__slide-btn:disabled { opacity: 0.35; cursor: default; }
.series-front__slides-counter { text-align: center; margin-top: 12px; color: #6b7280; font-size: 14px; }


/* 全局超链接默认深蓝（2026-10-18） */
a { color: var(--link-color); }

/* 多个 slide（轮播）之间 8px 间距（2026-10-18，全局） */
.series-front__slides-carousel + .series-front__slides-carousel { margin-top: 24px; }

/* 底部 footer 链接强制白色（2026-10-19）：深色底不遵循全局 --link-color */
.site-footer a { color: #fff; }

/* /en/cases 推荐案例图框 560x360（2026-10-20）：桌面固定，移动端自适应 */
.view-display-id-featured .flex-1.overflow-hidden { width: 560px; height: 360px; flex: 0 0 560px; }
.view-display-id-featured .flex-1.overflow-hidden img { width: 560px; height: 360px; object-fit: cover; }
@media (max-width: 767px) {
  .view-display-id-featured .flex-1.overflow-hidden { width: 100%; height: auto; flex: 0 0 auto; aspect-ratio: 560 / 360; }
  .view-display-id-featured .flex-1.overflow-hidden img { width: 100%; height: 100%; object-fit: cover; }
}

/* /en/cases 推荐案例简介：非粗体 18px（2026-10-20） */
.view-display-id-featured .heading-text-gray { font-weight: 400; font-size: 18px; line-height: 1.55; }

/* /en/cases 推荐案例独立白卡（2026-10-20）：与下方列表分开成两张卡 */
#block-fa336a04-89da-41f3-bd2b-deb63c32e84b { background: #fff; border-radius: 6px; padding: 8px; margin: 20px 0 36px; }

/* /en/about Company Introduction 白卡图框缩小 20%（584→~467，20261021） */
@media (min-width: 768px) {
  body.canvas-page-2 .flex-1.overflow-hidden { flex: 0 0 40%; max-width: 40%; align-self: flex-start; }
}


/* Donate strip (Company Profile): light green background (page-scoped) */
body.canvas-page-2 div.absolute.bg-accent {
  background-color: #e0f2c9 !important;
}

/* Address card (page 2): gray separator between rows; 1.5 line-height for address text */
body.canvas-page-2 div.flex-row:has(> iframe) + div.flex-row {
  border-top: 1px solid #d0d5dd;
}
body.canvas-page-2 section:has(iframe) div.font-serif,
body.canvas-page-2 section:has(iframe) div.font-serif p {
  line-height: 1.5;
}
body.canvas-page-2 section:has(iframe) iframe {
  flex: 0 0 auto;
}

/* About page: double image-to-text gap (intro card 24->48px) */
@media (min-width: 768px) {
  body.canvas-page-2 section:has(.flex-1.overflow-hidden) div.flex.flex-col.gap-6.py-4.md\:px-6 {
    padding-left: 48px;
  }
}

/* Address card: stretch to full restricted width (match colored bands above) */
body.canvas-page-2 section:has(iframe) > .container {
  padding-left: 0;
  padding-right: 0;
}

/* Team member avatar frame: fixed 320x280 (page 11) */
body.canvas-page-11 div.bg-white [class*="aspect-1"] {
  aspect-ratio: 320 / 240;
  width: 320px;
  max-width: 100%;
  margin-inline: auto;
}

/* Home dropdown (ITALY | GAODIMIC): narrower panel, single short item */
li:has(.gaodimic-nav-dd a[href*="gaodimic.it"]) .gaodimic-nav-dd {
  min-width: 160px;
}

/* Nav panels narrow (20261022)：Team 三级飞出（About Us 下）240→160px；BUY 二级面板 260→160px（仅 Biz Partners 一行，用户口径 Team/Biz Partners 菜单缩短）。定向 :has 覆盖，其余面板不变。 */
@media (min-width: 768px) {
  .gaodimic-nav-dd li:has(> .gaodimic-nav-l2[href$='/en/about']) > .gaodimic-nav-dd-sub { min-width: 160px; }
  .navbar--dropdown-menu li[data-level='1']:has(.gaodimic-nav-l2[href$='/Biz_Partners']) > .gaodimic-nav-dd { min-width: 160px; }
}


/* Delivery Address 表单白卡（address book add/edit 独立表单页；checkout 内嵌表单是另一个 form 元素不受影响） */
form.profile-form {
  max-width: 760px;
  margin-inline: auto;
  background: #fff;
  border-radius: 16px;
  padding: 36px 40px 32px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}
@media (max-width: 860px) {
  form.profile-form {
    margin-inline: 16px;
    padding: 24px 20px;
  }
}


/* Delivery Address 列表页白卡（与表单页同款；仅命中含地址列表的 region） */
body.path-user .region-content:has(> ul.gsh-address-book) {
  max-width: 760px;
  margin-inline: auto;
  background: #fff;
  border-radius: 16px;
  padding: 32px 36px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}
@media (max-width: 860px) {
  body.path-user .region-content:has(> ul.gsh-address-book) {
    margin-inline: 16px;
    padding: 24px 20px;
  }
}


/* Address 表单：City/Province/Postal 同行（:has 免服务器类，三联 inline-block） */
form.profile-form div:has(> [name*="[locality]"]),
form.profile-form div:has(> [name*="[administrative_area]"]),
form.profile-form div:has(> [name*="[postal_code]"]) { display: inline-block; width: 30%; margin-right: 0; vertical-align: top; }
form.profile-form .gaodimic-addr-col select { height: 41px; }
@media (max-width: 640px) {
  form.profile-form div:has(> [name*="[locality]"]),
  form.profile-form div:has(> [name*="[administrative_area]"]),
  form.profile-form div:has(> [name*="[postal_code]"]) { display: block; width: auto; }
}


/* Address 表单：字段间隔统一 42px（含 Save 按钮上方） */
form.profile-form .form-item { margin-top: 0; margin-bottom: 42px; }
form.profile-form .form-actions { margin-top: 0; }
/* Street 第二行与第一行同属一字段，贴紧凑（仅当第二行存在时命中） */
form.profile-form div:has(> [name*="[address_line2]"]) { margin-top: -34px; }
/* Phone 上方双重 42（容器尾距+字段前距）抵消一份，统一 42 节奏 */
form.profile-form div:has(> [name="phone[0][value]"]) { margin-top: -42px; }


/* Address 表单备注行小字 */
form.profile-form .form-item .description { font-size: 14px; }

/* State/Province/County 加宽：一行三列 26% | 42% | 26%（总 94% 防换行） */
form.profile-form div:has(> [name*="[administrative_area]"]) { width: 42%; }
form.profile-form div:has(> [name*="[locality]"]),
form.profile-form div:has(> [name*="[postal_code]"]) { width: 26%; }

/* ===== PI 文档（My Orders 按 Commercial Invoice 模板渲染） ===== */
.gsh-pi { background:#fff; border:1px solid rgba(15,23,42,.08); border-radius:16px; padding:36px 40px 32px; max-width:1200px; margin:0 auto 32px; font-family:arial,sans-serif; color:#111; }
.gsh-pi-title { text-align:center; letter-spacing:2px; font-weight:700; margin-bottom:24px; }
.gsh-pi-head { display:flex; justify-content:space-between; gap:24px; margin-bottom:20px; }
.gsh-pi-seller { }
.gsh-pi-seller .gsh-pi-co { font-weight:400; }
.gsh-pi-meta { border-collapse:collapse; }
.gsh-pi-meta td { padding:2px 8px; }
.gsh-pi-meta .lbl { font-weight:700; white-space:nowrap; }
.gsh-pi-parties { display:flex; gap:40px; margin-bottom:24px; }
.gsh-pi-party { flex:1; border-collapse:collapse; }
.gsh-pi-party th { text-align:left; font-weight:700; border-bottom:1px solid #333; padding:14px 6px 4px; }
.gsh-pi-party td { padding:3px 6px; vertical-align:top; }
.gsh-pi-party td:first-child { width:110px; font-weight:600; white-space:nowrap; }
.gsh-pi-items { width:100%; border-collapse:collapse; margin-bottom:8px; }
.gsh-pi-items th, .gsh-pi-items td { border:1px solid #999; padding:6px; text-align:left; vertical-align:top; }
.gsh-pi-items th { background:#f2f2f2; font-weight:700; }
.gsh-pi-items td.desc { min-width:180px; }
.gsh-pi-made { text-align:right; font-style:italic; margin:6px 4px 20px; }
.gsh-pi-bottom { display:flex; gap:40px; align-items:flex-start; }
.gsh-pi-remarks { flex:1.4; }
.gsh-pi-remarks .h { font-weight:700; margin-bottom:6px; }
.gsh-pi-remarks p { margin:0 0 8px; }
.gsh-pi-remarks .bank { margin-top:18px; }
.gsh-pi-remarks .attn { color:#555; }
.gsh-pi-totals { flex:1; border-collapse:collapse; }
.gsh-pi-totals td { padding:6px 10px; border-bottom:1px solid #ddd; }
.gsh-pi-totals td:last-child { text-align:right; min-width:90px; }
.gsh-pi-totals tr:last-child td { font-weight:700; border-bottom:2px solid #333; }
@media (max-width: 860px) {
  .gsh-pi-head, .gsh-pi-parties, .gsh-pi-bottom { flex-direction:column; }
  .gsh-pi { padding:24px 16px; }
}

/* 地址列表：Default 徽标与 Edit/Delete 操作加大（18px） */
.gsh-default-badge { font-size: 18px; padding: 5px 14px; }
.gsh-address-actions a { font-size: 18px; padding: 5px 12px; display: inline-block; }

/* 地址卡姓名行加粗 */
.gsh-address-item .address .family-name,
.gsh-address-item .address .given-name { font-weight: 700; }

/* 账户页卡片一行三卡 + Cancel account 16px */
.gsh-mc-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px 16px; }
.gsh-mc-cancel, .gsh-mc-cancel a { font-size: 16px; }
@media (max-width: 900px) {
  .gsh-mc-cards { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .gsh-mc-cards { grid-template-columns: 1fr; }
}

/* 账户卡文本统一 16px */
.gsh-mc-card__title { font-size: 16px; }
.gsh-mc-card__desc { font-size: 16px; }

/* /cart 白卡 + PI 风格商品表 */
body.path-cart .region-content {
  background: #fff;
  border: 1px solid rgba(15,23,42,.08);
  border-radius: 16px;
  padding: 36px 40px 32px;
  max-width: 1200px;
  margin: 0 auto 32px;
  box-shadow: 0 1px 3px rgba(15,23,42,.06);
}
body.path-cart .region-content table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
body.path-cart .region-content table th,
body.path-cart .region-content table td {
  border: 1px solid #999;
  padding: 8px 6px;
  text-align: left;
  vertical-align: top;
  background: #fff;
}
body.path-cart .region-content table th {
  background: #f2f2f2;
  font-weight: 700;
  white-space: nowrap;
}
body.path-cart .region-content table td input[type=number],
body.path-cart .region-content table td input[type=text] { width: 64px; }
body.path-cart .region-content .form-actions { margin-top: 20px; }
@media (max-width: 860px) {
  body.path-cart .region-content { padding: 20px 12px; overflow-x: auto; }
}



/* 购物车 PayPal 支付提示徽标（纯展示） */
.cart-paypal-note { display: flex; align-items: center; gap: 8px; margin-top: 14px; font-size: 12px; color: #5a6570; }
.cart-paypal-note__logo { display: inline-flex; align-items: center; gap: 3px; background: #fff; border: 1px solid #e3e7ea; border-radius: 4px; padding: 3px 8px; }
.cart-paypal-note__logo svg { height: 15px; width: 15px; fill: #253b80; }
.pp-word { font-style: italic; font-weight: 700; font-size: 13px; line-height: 1; }
.pp-word--blue { color: #253b80; }
.pp-word--light { color: #179bd7; }

/* 购物车：卡片加宽10%+右贴边；字号12→14；列宽调整（20261023） */
body.path-cart .region-content table,
body.path-cart .region-content table th,
body.path-cart .region-content table td,
body.path-cart .region-content table td * { font-size: 14px !important; }
body.path-cart .region-content table th.views-field-gaodimic-hs { white-space: normal; width: 62px; max-width: 62px; }
body.path-cart .region-content table th.views-field-gaodimic-pack-weight { white-space: normal; width: 68px; max-width: 68px; }
body.path-cart .region-content table th.views-field-edit-quantity,
body.path-cart .region-content table td.views-field-edit-quantity { width: 56px; }
body.path-cart .region-content table td.views-field-edit-quantity input[type=number],
body.path-cart .region-content table td.views-field-edit-quantity input[type=text] { width: 44px; }
body.path-cart .region-content table th.views-field-gaodimic-sku,
body.path-cart .region-content table td.views-field-gaodimic-sku { width: 176px; min-width: 176px; }




/* 修正（20261024 红线基线）：卡片右缘 = footer/nav 内容边缘（色带内缩 48px），
   并消除横向溢出——任何视口下页面宽度不得超过视口。 */
@media (min-width: 1200px) {
  body.path-cart .region-content {
    width: auto;
    max-width: 1320px;
    margin-right: 48px;
    margin-left: auto;
  }
}

/* 购物车白卡终版（20261024 红线基线 v3）：卡片宽度=footer 内容网格宽度
   （Tailwind container 档位 1024/1280/1536 各减 2*48px 内缩），中心对齐——
   左右边缘同时落在红线（footer/nav 内容边缘）上，结构性零横向溢出 */
@media (min-width: 1200px) {
  body.path-cart .region-content {
    max-width: calc(min(100%, 1024px) - 96px);
    margin-left: auto;
    margin-right: auto;
  }
}
@media (min-width: 1280px) {
  body.path-cart .region-content {
    max-width: calc(min(100%, 1280px) - 96px);
  }
}
@media (min-width: 1536px) {
  body.path-cart .region-content {
    max-width: calc(min(100%, 1536px) - 96px);
  }
}

/* QTY 加宽 50%（57→86px）并显示步进箭头；空间从 MATERIAL（118→86px）挤出 */
body.path-cart .region-content table th.views-field-edit-quantity,
body.path-cart .region-content table td.views-field-edit-quantity { width: 86px; }
body.path-cart .region-content table td.views-field-edit-quantity input[type=number],
body.path-cart .region-content table td.views-field-edit-quantity input[type=text] {
  width: 64px;
  appearance: auto;
  -webkit-appearance: auto;
  -moz-appearance: textfield;
}
body.path-cart .region-content table td.views-field-edit-quantity input::-webkit-outer-spin-button,
body.path-cart .region-content table td.views-field-edit-quantity input::-webkit-inner-spin-button {
  -webkit-appearance: inner-spin-button;
  opacity: 1;
  display: block;
}
body.path-cart .region-content table td.views-field-gaodimic-pack-weight { white-space: nowrap; }

/* 购物车：Update cart / Checkout 按钮与 PayPal 徽标右对齐 */
body.path-cart .region-content .form-actions { text-align: right; }
body.path-cart .region-content .form-actions .cart-paypal-note { display: inline-flex; }

/* 购物车：按钮行与 PayPal 徽标右对齐（flex 容器需 flex-end，text-align 无效） */
body.path-cart .region-content .form-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
body.path-cart .region-content .form-actions .cart-paypal-note {
  display: flex;
  width: 100%;
  justify-content: flex-end;
}


/* Delivery Address 空状态与添加按钮（20261024）：空文案与页题左缘对齐；Add 用 Checkout 同款按钮 */
.gsh-address-empty { margin: 28px 0 16px 72px; font-size: 16px; color: #3a4652; display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
body.path-user .region-content a.gsh-address-add {
  display: inline-block;
  background: var(--std-blue-dark, #004880);
  color: #ffffff;
  padding: 8px 20px;
  border-radius: 9999px;
  font-size: 16px;
  font-weight: 400;
  text-decoration: none;
}
body.path-user .region-content a.gsh-address-add:hover { background: #003a6a; color: #ffffff; }
@media (max-width: 860px) {
  .gsh-address-empty { margin-left: 24px; }
}


/* 购物车地址闸：地址缺失/不全 → 红色粗体提示 + Edit Delivery Address 按钮 */
.cart-address-gate { margin: 16px 0 4px; padding: 14px 18px; background: #fff4f4; border: 1px solid #f3c1c1; border-radius: 10px; text-align: right; }
.cart-address-gate__msg { margin: 0 0 10px; color: #d02b2b; font-weight: 700; font-size: 15px; }
.cart-address-gate__btn { display: inline-block; background: var(--std-blue-dark, #004880); color: #ffffff; padding: 8px 20px; border-radius: 9999px; font-size: 16px; text-decoration: none; }
.cart-address-gate__btn:hover { background: #003a6a; color: #ffffff; }


/* Choose Delivery Address 弹窗 + 选址摘要（20261024） */

/* 选址摘要（20261024） */
.cart-address-gate__summary { margin: 0 0 10px; font-size: 15px; color: #1f2a36; }


/* ===== Checkout 白卡 v3（20261024）：单列流——Shipping information 卡 →
   Continue to review 按钮 → Order summary 卡。flex column + order 视觉重排
   （DOM 与表单提交顺序不变）。商品清单=cart 同款表格（表头/边框/14px）。
   红线 v3 宽度公式挂 .region-content（与 cart 同构，水平 padding 归零）；
   卡片自带内距，卡缘精确落在 footer/nav 内容边缘。 ===== */
body.path-checkout .layout-region-checkout-main,
body.path-checkout .layout-region-checkout-secondary {
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 16px;
  padding: 36px 40px 32px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}
body.path-checkout .layout-checkout-form { display: flex; flex-direction: column; }
body.path-checkout .layout-region-checkout-main { float: none; width: 100%; order: 1; }
body.path-checkout .layout-region-checkout-footer { float: none; width: 100%; order: 2; padding: 0; margin: 20px 0 24px; }
body.path-checkout .layout-region-checkout-secondary { float: none; width: 100%; order: 3; }
@media (max-width: 860px) {
  body.path-checkout .layout-region-checkout-main,
  body.path-checkout .layout-region-checkout-secondary { padding: 24px 16px; }
}
@media (min-width: 1200px) {
  body.path-checkout .region-content {
    max-width: calc(min(100%, 1024px) - 96px);
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 1280px) {
  body.path-checkout .region-content { max-width: calc(min(100%, 1280px) - 96px); }
}
@media (min-width: 1536px) {
  body.path-checkout .region-content { max-width: calc(min(100%, 1536px) - 96px); }
}

/* Order summary 商品表（cart 同款：#999 边框 / 表头 #f2f2f2 / 14px） */
body.path-checkout .checkout-summary-items { width: 100%; border-collapse: collapse; font-size: 14px; margin: 0 0 16px; }
body.path-checkout .checkout-summary-items th,
body.path-checkout .checkout-summary-items td { border: 1px solid #999; padding: 8px 6px; text-align: left; vertical-align: top; background: #fff; }
body.path-checkout .checkout-summary-items th { background: #f2f2f2; font-weight: 700; }
body.path-checkout .checkout-summary-items .cs-qty { width: 72px; text-align: center; }
body.path-checkout .checkout-summary-items .cs-amount { width: 120px; text-align: right; white-space: nowrap; }

/* 合计行：标签/金额两列右对齐（账单式） */
body.path-checkout .checkout-order-summary .order-total-line { display: flex; justify-content: flex-end; font-size: 14px; margin: 0; }
body.path-checkout .checkout-order-summary .order-total-line-label { width: 90px; text-align: left; }
body.path-checkout .checkout-order-summary .order-total-line-value { width: 110px; text-align: right; }
body.path-checkout .checkout-order-summary .order-total-line__total { font-weight: 700; }


/* ===== 购物车 Coupon 填报块（20261024 自 checkout 迁入；
   inline form commerce_promotion/coupon_redemption，模块 form_alter 注入） ===== */
body.path-cart .cart-coupon { display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: 12px; margin: 4px 0 12px; }
body.path-cart .cart-coupon .form-item { margin: 0; display: flex; align-items: center; gap: 10px; }
body.path-cart .cart-coupon label { margin: 0; font-size: 14px; color: #1f2a36; }
body.path-cart .cart-coupon input[type=text] { width: 220px; height: 38px; margin: 0; }
body.path-cart .cart-coupon input.button { height: 38px; margin: 0; padding: 4px 20px; border-radius: 9999px; background: var(--std-blue-dark, #004880); color: #ffffff; border: none; font-size: 14px; cursor: pointer; }
body.path-cart .cart-coupon input.button:hover { background: #003a6a; }
body.path-cart .cart-coupon .coupon-redemption-form__coupons { display: flex; align-items: center; gap: 10px; font-size: 14px; color: #1f2a36; }
body.path-cart .cart-coupon .coupon-redemption-form__coupons p { margin: 0; }
body.path-cart .cart-coupon .coupon-redemption-form__coupons input.button { height: 32px; padding: 2px 14px; font-size: 13px; }


/* ===== /Shipping_Fee 三白卡 + cart Next Step（20261025 三段流） ===== */
body.path-shipping-fee .region-content { padding-left: 0; padding-right: 0; }
@media (min-width: 1200px) {
  body.path-shipping-fee .region-content { max-width: calc(min(100%, 1024px) - 96px); margin-left: auto; margin-right: auto; }
}
@media (min-width: 1280px) {
  body.path-shipping-fee .region-content { max-width: calc(min(100%, 1280px) - 96px); }
}
@media (min-width: 1536px) {
  body.path-shipping-fee .region-content { max-width: calc(min(100%, 1536px) - 96px); }
}
.gsh-sf-card { background: #fff; border: 1px solid rgba(15,23,42,.08); border-radius: 16px; padding: 36px 40px 32px; box-shadow: 0 1px 3px rgba(15,23,42,.06); margin: 0 0 24px; }
.gsh-sf-card__title { margin: 0 0 18px; font-size: 22px; font-weight: 700; color: #1f2a36; }
.gsh-sf-card__text { margin: 0; font-size: 16px; color: #1f2a36; }
.gsh-sf-row { display: flex; justify-content: space-between; align-items: center; gap: 18px; flex-wrap: wrap; }
.gsh-sf-hint { color: #d02b2b; font-weight: 700; font-size: 15px; margin: 8px 0 0; }
.gsh-btn-primary { display: inline-block; padding: 9px 26px; border-radius: 9999px; background: var(--std-blue-dark, #004880); color: #fff !important; font-size: 15px; text-decoration: none; border: none; cursor: pointer; }
.gsh-btn-primary:hover { background: #003a6a; color: #fff !important; text-decoration: none; }
body.path-cart .form-actions .gsh-btn-primary { margin-left: 12px; }
.gsh-sf-card--method .form-item { margin: 0 0 12px; font-size: 15px; }
.gsh-sf-card--method .form-radios { list-style: none; margin: 0; padding: 0; }
.gsh-sf-card--method .form-submit { float: right; margin-top: 8px; }
.gsh-sf-table-hint { margin: 0 0 12px; font-size: 13px; color: #5a6570; }
.gsh-sf-card--items table { width: 100%; border-collapse: collapse; font-size: 14px; }
.gsh-sf-card--items table th, .gsh-sf-card--items table td { border: 1px solid #999; padding: 8px 6px; text-align: left; vertical-align: top; background: #fff; }
.gsh-sf-card--items table th { background: #f2f2f2; font-weight: 700; }
.gsh-sf-checkout-row { text-align: right; margin: 0; }
.gsh-sf-checkout-row .gsh-sf-hint { margin: 0; }
@media (max-width: 860px) {
  .gsh-sf-card { padding: 24px 16px; }
}

/* Shipping_Fee 商品表列宽（cart 同款布局，去 Remove） */
.gsh-sf-table-wrap { overflow-x: auto; }
.gsh-sf-items .col-no { width: 44px; }
.gsh-sf-items .col-type { width: 110px; }
.gsh-sf-items .col-hs { width: 70px; white-space: normal; }
.gsh-sf-items .col-pw { width: 72px; white-space: normal; }
.gsh-sf-items .col-qty { width: 60px; }
.gsh-sf-items .col-unit { width: 60px; }
.gsh-sf-items .col-price { width: 90px; }
.gsh-sf-items .col-amount { width: 100px; }
.gsh-sf-items .col-battery { width: 70px; }

/* 交付地址卡全量明细（无标题） */
.gsh-addr-full { font-size: 16px; line-height: 1.75; color: #1f2a36; }

/* ===== /Shipping_Fee 卡片标题栏：蓝底白字（20261025） ===== */
.gsh-sf-card__title {
  background: var(--std-blue-dark, #004880);
  color: #ffffff;
  font-size: 19px;
  font-weight: 700;
  margin: -36px -40px 22px;
  padding: 13px 40px;
  border-radius: 16px 16px 0 0;
}
@media (max-width: 860px) {
  .gsh-sf-card__title { margin: -24px -16px 16px; padding: 11px 16px; font-size: 17px; }
}

/* ===== /Shipping_Fee 运费单选：圆圈与文字同行（20261025） ===== */
.gsh-sf-card--method .form-type-radio {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 12px;
}
.gsh-sf-card--method .form-type-radio .form-radio {
  margin: 0;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
}
.gsh-sf-card--method .form-type-radio label.option {
  margin: 0;
  font-size: 15px;
  color: #1f2a36;
}

/* ===== /Shipping_Fee Apply 按钮收回卡内（float 逃逸修复，20261025） ===== */
.gsh-sf-card--method form { display: flex; flex-direction: column; }
.gsh-sf-card--method .form-submit {
  float: none;
  align-self: flex-end;
  margin: 16px 0 0;
}

/* Shipping_Fee 商品表字号对齐 cart（14px，haven 基础表样式需 !important 压制） */
.gsh-sf-items th, .gsh-sf-items td, .gsh-sf-items td * { font-size: 14px !important; }

/* ===== /Shipping_Fee 卡片标题栏 v2：24px + 标准蓝 #008fd7 + 上行距加倍（20261025） ===== */
.gsh-sf-card__title {
  font-size: 24px;
  background: var(--std-blue, #008fd7);
  padding: 26px 40px 13px;
}
@media (max-width: 860px) {
  .gsh-sf-card__title { padding: 20px 16px 11px; }
}

/* ===== /user/1 账户卡标题栏：与 /Shipping_Fee 卡片标题同款（标准蓝/白字/24px/上行距加倍，20261025） ===== */
.gsh-mc-card .gsh-mc-card__title {
  display: block;
  background: var(--std-blue, #008fd7);
  color: #ffffff !important;
  font-size: 24px;
  font-weight: 700;
  margin: -22px -20px 18px;
  padding: 26px 20px 13px;
  border-radius: 10px 10px 0 0;
  text-decoration: none;
}
.gsh-mc-card a:hover .gsh-mc-card__title,
.gsh-mc-card:hover .gsh-mc-card__title { color: #ffffff !important; }

/* ===== /user/1 账户卡：下部内容区加长一倍（72→144px，20261025） ===== */
.gsh-mc-card { min-height: 219px; }

/* ===== 地址簿列表：incomplete 告警 + Edit 按钮化右对齐（20261025） ===== */
.gsh-address-item .gsh-sf-hint { margin: 0 0 10px; }
.gsh-address-actions { display: flex; justify-content: flex-end; margin: 12px 0 0; }
.gsh-address-actions a.gsh-btn-primary { font-size: 15px; padding: 9px 26px; }

/* ===== 会员中心 Delivery Address 卡 incomplete 告警（20261025） ===== */
.gsh-mc-card__warn { display: block; margin-top: 4px; color: #d02b2b; font-weight: 700; font-size: 13px; line-height: 1.4; }

.gsh-address-actions a.gsh-btn-primary { background: var(--std-blue,#008fd7); }

/* ===== Cancel account：右对齐卡片右缘 + 20px + 深蓝（20261025） ===== */
.gsh-mc-bottom { width: fit-content; margin: 0 auto; }
.gsh-mc-cancel, .gsh-mc-cancel a { font-size: 20px; }
.gsh-mc-cancel a { color: var(--std-blue-dark, #004880); }

.gsh-mc-cancel { text-align: right; }

/* ===== 购物车合计行距调整（20261025）：全行+50%，Coupon 上下加倍，PayPal 上行距加倍 ===== */
body.path-cart .order-total-line { line-height: 24px; }
body.path-cart .order-total-line__coupon { margin: 10px 0; }
body.path-cart .region-content .form-actions .cart-paypal-note { margin-top: 28px; }

/* ===== 购物车 Coupon code 区与 AMOUNT / Update cart 行再加大间距（20261025） ===== */
body.path-cart .cart-coupon { margin-top: 48px; margin-bottom: 28px; }

/* ===== 购物车：合计区与上方商品表格间隔 24px（20261025） ===== */
body.path-cart table.cols-11 + div { margin-top: 24px; }

/* ===== 购物车：Subtotal 与 Discount 行间距（20261025） ===== */
body.path-cart .order-total-line__subtotal { margin-bottom: 8px; }

/* ===== Shipping_Fee：Delivery address 卡 Edit 沉到右下角（对齐 Apply 风格，20261025） ===== */
body.path-shipping-fee .gsh-sf-card--address .gsh-sf-row { align-items: flex-end; }
body.path-shipping-fee .gsh-sf-card--address .gsh-sf-row .gsh-btn-primary { margin-bottom: 2px; }

/* ===== Shipping_Fee：购物车提示文字 16px（20261025） ===== */
.gsh-sf-table-hint { font-size: 16px; }

/* ===== Shipping_Fee：合计区右对齐 + AMOUNT 20px 加粗 + 上方细线（20261025） ===== */
body.path-shipping-fee .gsh-sf-card--items .order-total-line { display: flex; justify-content: flex-end; }
body.path-shipping-fee .gsh-sf-card--items .order-total-line-label { text-align: right; padding-right: 8px; }
body.path-shipping-fee .gsh-sf-card--items .order-total-line-value { width: 120px; text-align: right; }
body.path-shipping-fee .gsh-sf-card--items .order-total-line__total { font-size: 20px; font-weight: 700; border-top: 1px solid #c9ced3; margin-top: 10px; padding-top: 12px; }

/* ===== 购物车：AMOUNT (Without Shipping) 20px 加粗 + 上方细线（20261025） ===== */
body.path-cart .order-total-line__total { font-size: 20px; font-weight: 700; border-top: 1px solid #c9ced3; margin-top: 10px; padding-top: 12px; }

/* ===== 结账确认页视觉排序：地址/运费 → 摘要 → Previous → PayPal（20261025） ===== */
body.path-checkout .layout-checkout-form { display: flex; flex-direction: column; }
body.path-checkout .layout-checkout-form > * { width: 100%; }
body.path-checkout .gsh-co-review { order: 1; }
body.path-checkout .checkout-pane-order-summary { order: 2; }
body.path-checkout .gsh-co-prev { order: 3; align-self: flex-end; }
body.path-checkout .checkout-pane-payment-process { order: 4; }

/* ===== 结账确认页：全列商品表 + 合计右对齐 AMOUNT 样式（20261025） ===== */
body.path-checkout .gsh-sf-card--items .order-total-line { display: flex; justify-content: flex-end; }
body.path-checkout .gsh-sf-card--items .order-total-line-label { text-align: right; padding-right: 8px; }
body.path-checkout .gsh-sf-card--items .order-total-line-value { width: 120px; text-align: right; }
body.path-checkout .gsh-sf-card--items .order-total-line__total { font-size: 20px; font-weight: 700; border-top: 1px solid #c9ced3; margin-top: 10px; padding-top: 12px; }
body.path-checkout .gsh-sf-table-wrap { overflow-x: auto; }

/* ===== Previous Step：缩窄靠右 + 与 PayPal 隔一行（20261025） ===== */
body.path-checkout .layout-checkout-form > .gsh-co-prev { width: fit-content; align-self: flex-end; }
body.path-checkout .layout-checkout-form > .checkout-pane-payment-process { margin-top: 28px; }

/* ===== PayPal 按钮：宽度减半 + 右靠齐（20261025） ===== */
body.path-checkout .paypal-buttons-container { width: 50%; margin-left: auto; }

/* ===== PayPal 按钮：收窄为紧凑按钮宽度（20261025） ===== */
body.path-checkout .paypal-buttons-container { width: 320px; }

/* ===== Shipping_Fee：Previous Step / Next Step: Checkout 按钮行（20261025） ===== */
.gsh-sf-checkout-row .button + .button { margin-left: 12px; }
.gsh-sf-checkout-row .gsh-sf-hint { margin: 0 0 12px; }

/* ===== /user/1 账户卡 hover 边缘改标准蓝（20261025） ===== */
.gsh-mc-card:hover { border-color: var(--std-blue, #008fd7); box-shadow: 0 3px 10px rgba(0,143,215,.18); }


/* 20261027 Packing-weight 说明注释（cart/Shipping_Fee/Payment 的 Order summary 下方） */
.gsh-pack-note { font-size: calc(0.85rem + 1px); color: #d93025; margin: 10px 0 0; line-height: 1.5; }
.gsh-sf-card .gsh-pack-note { text-align: right; }

/* === Order summary: UNIT / UNIT PACKING WEIGHT / WEIGHT AMOUNT / BAT (20261027) === */
body.path-cart .region-content table th.views-field-gaodimic-unit,
body.path-cart .region-content table td.views-field-gaodimic-unit { width: 52px; max-width: 52px; }
body.path-cart .region-content table td.views-field-gaodimic-unit { white-space: nowrap; }
body.path-cart .region-content table th.views-field-gaodimic-unit-pw { white-space: normal; width: 78px; max-width: 78px; }
body.path-cart .region-content table th.views-field-gaodimic-pack-weight { white-space: normal; width: 64px; max-width: 64px; }
body.path-cart .region-content table th.views-field-gaodimic-battery,
body.path-cart .region-content table td.views-field-gaodimic-battery { width: 46px; max-width: 46px; white-space: nowrap; }
body.path-cart .region-content table th.views-field-edit-quantity,
body.path-cart .region-content table td.views-field-edit-quantity { width: 48px; }
body.path-cart .region-content table td.views-field-edit-quantity input[type=number],
body.path-cart .region-content table td.views-field-edit-quantity input[type=text] { width: 40px; }
body.path-checkout .checkout-summary-items .cs-qty { width: 48px; }
body.path-checkout .checkout-summary-items .cs-unit,
body.path-checkout .checkout-summary-items .cs-bat { width: 48px; }
body.path-checkout .checkout-summary-items .cs-upw,
body.path-checkout .checkout-summary-items .cs-wam { width: 80px; white-space: normal; }
.gsh-sf-items .col-upw { width: 80px; white-space: normal; }
.gsh-sf-items .col-wam { width: 70px; white-space: normal; }
.gsh-sf-items .col-qty { width: 48px; }
.gsh-sf-items .col-unit { width: 52px; }
.gsh-sf-items .col-battery { width: 46px; }
.order-total-line.order-total-line__packweight { color: #374151; }

/* cart 1280 squeeze (20261027) */
@media (max-width: 1366px) {
  body.path-cart .region-content table th.views-field-gaodimic-sku,
  body.path-cart .region-content table td.views-field-gaodimic-sku { width: 150px; min-width: 150px; }
  body.path-cart .region-content table th.views-field-unit-price__number,
  body.path-cart .region-content table td.views-field-unit-price__number,
  body.path-cart .region-content table th.views-field-total_price__number,
  body.path-cart .region-content table td.views-field-total_price__number { width: 84px; }
}

/* Remote Region red badge on Delivery address cards (20261027) */
.gsh-remote-badge { display: inline-block; margin-top: 8px; padding: 2px 10px; border-radius: 4px; background: #fdecea; color: #d93025; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.02em; border: 1px solid #f5c6c0; }

/* Remote Region badge: bottom-left of the address card (20261027) */
.gsh-sf-card--address .gsh-remote-badge { display: inline-block; margin-top: 12px; }

/* Shipping method select: 200px separators + multiline description (20261027) */
.gsh-method-item + .gsh-method-item::before { content: ''; display: block; width: 200px; height: 1px; background: #d9d9d9; margin: 12px 0; }
.gsh-method-desc { white-space: pre-line; color: #6b7280; font-size: calc(0.85rem + 1px); margin: 2px 0 0 26px; }

/* Cart pack-note right-aligned (20261027) */
body.path-cart .gsh-pack-note { text-align: right; }

/* Agent-country notice on the Shipping method card (20261027) */
.gsh-agent-notice { margin-top: 10px; padding: 12px 14px; border: 1px solid #b6dcf5; border-left: 4px solid #008fd7; background: #f2f9ff; border-radius: 6px; color: #1f2937; font-size: 0.9rem; line-height: 1.7; }
.gsh-agent-notice a { color: #008fd7; font-weight: 600; }

/* Postscript card on checkout (20261028) */
.gsh-sf-card--postscript textarea { width: 100%; box-sizing: border-box; }
.gsh-ps-saved { color: #1b7e3c; font-size: 0.8rem; margin-top: 4px; min-height: 1.1em; }


/* ===== GAODIMIC user order center (20261029) ===== */
.view-commerce-user-orders {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
  padding: 24px;
  font-size: 14px;
}
.view-commerce-user-orders table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.view-commerce-user-orders th {
  text-align: left;
  padding: 12px 14px;
  background: #f5f7fa;
  border-bottom: 2px solid #e3e6ea;
  font-weight: 600;
  font-size: 14px;
}
.view-commerce-user-orders td {
  padding: 12px 14px;
  border-bottom: 1px solid #eceef1;
  vertical-align: middle;
  font-size: 14px;
}
.view-commerce-user-orders tr:hover td {
  background: #fafbfc;
}
.gaodimic-order-status {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}
.gs-st-pending { background: #fff4e5; color: #b26a00; }
.gs-st-paid { background: #e6f4ff; color: #0067c5; }
.gs-st-shipped { background: #e8f5e9; color: #2e7d32; }
.gs-st-refreq { background: #f3e5f5; color: #7b1fa2; }
.gs-st-refunded { background: #fbe9e7; color: #c0392b; }
.gs-st-canceled { background: #eeeeee; color: #666; }
.gs-st-closed { background: #37474f; color: #fff; }
.gs-view-btn {
  display: inline-block;
  padding: 6px 18px;
  background: #008fd7;
  color: #fff;
  border-radius: 6px;
  font-size: 13px;
  text-decoration: none;
  white-space: nowrap;
}
.gs-view-btn:hover, .gs-view-btn:focus {
  background: #007ab8;
  color: #fff;
  text-decoration: none;
}
.gaodimic-order-card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
  padding: 28px;
  font-size: 14px;
}
.gaodimic-order-head {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
  margin: 0 0 18px;
}
.gaodimic-order-meta {
  font-size: 14px;
  font-weight: 600;
}
.gaodimic-order-head .gaodimic-order-status {
  font-size: 13px;
}
.gaodimic-order-head .gs-refund-pending {
  color: #7b1fa2;
  font-weight: 600;
}
.gaodimic-order-head a {
  margin-left: auto;
}
.gaodimic-order-shipment {
  margin: 0 0 16px;
  padding: 10px 14px;
  background: #e8f5e9;
  color: #2e7d32;
  border-radius: 8px;
  font-size: 13px;
}

/* ===== GAODIMIC order center alignment fix: 48px 全站基线 ===== */
.view-commerce-user-orders,
.gaodimic-order-card {
  max-width: calc(100% - 48px);
  transform: translateX(48px);
  box-sizing: border-box;
}

/* ===== GAODIMIC order center v3: 宽度再收 10% + 物流列 + 下载按钮 ===== */
.view-commerce-user-orders,
.gaodimic-order-card {
  max-width: calc(90% - 48px);
}
.gaodimic-order-divider {
  border: 0;
  border-top: 1px solid #e3e6ea;
  margin: 26px 0 18px;
}
.gs-download-btn {
  display: inline-block;
  padding: 10px 22px;
  background: #008fd7;
  color: #fff;
  border-radius: 8px;
  font-size: 13px;
  text-decoration: none;
}
.gs-download-btn:hover, .gs-download-btn:focus {
  background: #007ab8;
  color: #fff;
  text-decoration: none;
}

/* ===== GAODIMIC order detail v4 (20261029): 全页统一 14px ===== */
.gaodimic-order-card,
.gaodimic-order-card * {
  font-size: 12px !important;
}
.gaodimic-order-card .gsh-pi-title {
  font-size: 20px !important;
  text-align: left;
}
.gaodimic-order-card {
  overflow: hidden;
}
.gaodimic-order-card .gsh-pi { max-width: 100%; }
.gaodimic-order-card .gsh-pi-party th {
  padding-bottom: 9px;
}
.gaodimic-order-card .gsh-pi-totals {
  flex: 0 0 auto;
  width: auto;
  margin-left: auto;
  min-width: 200px;
}
.gaodimic-order-card .gsh-pi-totals td {
  padding: 3px 0 3px 16px;
  text-align: right;
  white-space: nowrap;
}
.gaodimic-order-card .gsh-pi-totals td:last-child {
  min-width: 0;
}
.gaodimic-order-card .gsh-pi-items {
  table-layout: fixed;
  width: 100%;
}
.gaodimic-order-card .gsh-pi-items th,
.gaodimic-order-card .gsh-pi-items td {
  word-break: break-word;
  overflow-wrap: anywhere;
  padding: 5px 4px;
}
.gaodimic-order-card .gsh-pi-items td.desc { min-width: 0; }
.gaodimic-order-card .gsh-pi-items th:nth-child(1) { width: 2.8%; }
.gaodimic-order-card .gsh-pi-items th:nth-child(2) { width: 16.3%; }
.gaodimic-order-card .gsh-pi-items th:nth-child(3) { width: 7%; }
.gaodimic-order-card .gsh-pi-items th:nth-child(4) { width: 8%; }
.gaodimic-order-card .gsh-pi-items th:nth-child(5) { width: 8%; }
.gaodimic-order-card .gsh-pi-items th:nth-child(6) { width: 8%; }
.gaodimic-order-card .gsh-pi-items th:nth-child(7) { width: 3%; }
.gaodimic-order-card .gsh-pi-items th:nth-child(8) { width: 3.5%; }
.gaodimic-order-card .gsh-pi-items th:nth-child(9) { width: 5%; }
.gaodimic-order-card .gsh-pi-items th:nth-child(10) { width: 5.8%; }
.gaodimic-order-card .gsh-pi-items th:nth-child(11) { width: 8.3%; }
.gaodimic-order-card .gsh-pi-items th:nth-child(12) { width: 5.8%; }
.gaodimic-order-card .gsh-pi-items th:nth-child(13) { width: 6.5%; }
.gaodimic-order-card .gsh-pi-items th:nth-child(14) { width: 5%; }
.gaodimic-order-card .gsh-pi-items th:nth-child(15) { width: 3%; }
.gaodimic-order-card .gsh-pi-items th:nth-child(16) { width: 4%; }
.gaodimic-order-card .gsh-pi-items th:nth-child(9),
.gaodimic-order-card .gsh-pi-items td:nth-child(9),
.gaodimic-order-card .gsh-pi-items th:nth-child(10),
.gaodimic-order-card .gsh-pi-items td:nth-child(10) {
  text-align: right;
}
.gaodimic-order-card .gsh-pi-items th:nth-child(11),
.gaodimic-order-card .gsh-pi-items td:nth-child(11),
.gaodimic-order-card .gsh-pi-items th:nth-child(12),
.gaodimic-order-card .gsh-pi-items td:nth-child(12) {
  text-align: right;
}
.gaodimic-order-card .gsh-pi-items th:nth-child(15),
.gaodimic-order-card .gsh-pi-items th:nth-child(16),
.gaodimic-order-card .gsh-pi-items td:nth-child(15),
.gaodimic-order-card .gsh-pi-items td:nth-child(16) {
  white-space: nowrap;
}
.gaodimic-order-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 4px;
}

/* 50% hero overlay（bg-black/50 不在编译产物，手写标记类 2026-11-01） */
.gaodimic-overlay-50 { background-color: rgba(0, 0, 0, 0.5); }
/* ===== 首页系列推荐产品（block.series_products_block，2026-11-02） ===== */
.gaodimic-series-rec { max-width: 100%; margin: 0 auto 48px; background: #fff; border: 1px solid #eef2f7; border-radius: 16px; padding: 28px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08); }
.gaodimic-series-rec__head { margin: 0 0 20px; }
.gaodimic-series-rec__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; list-style: none; margin: 0; padding: 0; }
@media (max-width: 1024px) { .gaodimic-series-rec__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .gaodimic-series-rec__grid { grid-template-columns: 1fr; } }
.gaodimic-series-rec__grid li { margin: 0; }
.gaodimic-series-rec__card { display: block; background: #fff; border-radius: 10px; overflow: hidden; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); transition: box-shadow 0.2s; }
.gaodimic-series-rec__card:hover { box-shadow: 0 4px 14px rgba(0, 0, 0, 0.14); }
.gaodimic-series-rec__card img { width: 300px; height: 200px; object-fit: cover; display: block; margin: 24px auto 0; }
.gaodimic-series-rec__title { padding: 14px 16px 16px; font-size: 16px; font-weight: 400; color: #025078; line-height: 1.35; text-align: center; }

/* ===== 系列推荐区=白色卡容器（badge+grid 整体；2026-11-02） ===== */
.gaodimic-series-rec__section { }
.gaodimic-series-rec__section + .gaodimic-series-rec__section { margin-top: 28px; padding-top: 28px; border-top: 1px solid #eef2f7; }

/* 区块级 More：每系列区一张，右下角（2026-11-02） */
.gaodimic-series-rec__foot { display: flex; justify-content: flex-end; margin-top: 8px; }
.gaodimic-series-rec__more { display: inline-block; padding: 8px 28px; font-size: 18px; color: #008fd7; border: 1px solid #008fd7; border-radius: 9999px; text-decoration: none; transition: background 0.2s, color 0.2s; }
.gaodimic-series-rec__more:hover { background: #008fd7; color: #fff; }

/* Recommended Products 标题（首页根级 h2）：32px，上 24 下 16（2026-11-02） */
.region-content > h2 { font-size: 32px; margin-top: 40px; margin-bottom: 24px; }

/* 20261103: Latest Cases heading 60px -> 54px (shrink 6px), scoped to text-4xl white heading */
@media (min-width: 1024px) {
  h2.heading-text-white.text-4xl {
    font-size: 3.375rem !important;
  }
}

/* news 文章正文：压掉 CKEditor 粘贴带来的 nowrap 内联（2026-11-04） */
.node__content [style*="nowrap"] { white-space: normal !important; }

/* 全站文字防溢出：正文级标签压掉 CKEditor 粘贴的 nowrap 内联（2026-11-04） */
.region-content :is(p, li, td, th, h1, h2, h3, h4, h5, h6, span)[style*="nowrap"] { white-space: normal !important; }

/* 20261105: coupon page card+table */
.gsh-coupon-card { background: #fff; border: 1px solid #e3e7ea; border-radius: 10px; padding: 6px 20px 8px; }
.gsh-coupon-table { width: 100%; border-collapse: collapse; font-size: 16px; }
.gsh-coupon-table th { text-align: left; font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: #5a6570; padding: 14px 12px 10px; border-bottom: 1px solid #e3e7ea; }
.gsh-coupon-table td { padding: 14px 12px; border-bottom: 1px solid #eef2f7; vertical-align: middle; }
.gsh-coupon-table tr:last-child td { border-bottom: 0; }
.gsh-coupon-table td:first-child { font-weight: 600; letter-spacing: .02em; }
.coupon-status { display: inline-block; padding: 3px 12px; border-radius: 9999px; font-size: 13px; }
.coupon-status--available { background: #e6f7ee; color: #1a7f4b; }
.coupon-status--used { background: #f0f2f4; color: #5a6570; }
.my-coupons-empty { margin: 8px 0; font-size: 16px; color: #5a6570; }
.my-coupons-note { margin-top: 16px; font-size: 13.5px; color: #5a6570; }
@media (max-width: 640px) {
  .gsh-coupon-table thead { display: none; }
  .gsh-coupon-table, .gsh-coupon-table tbody, .gsh-coupon-table tr, .gsh-coupon-table td { display: block; }
  .gsh-coupon-table tr { background: #fff; border: 1px solid #e3e7ea; border-radius: 10px; padding: 4px 16px; }
  .gsh-coupon-table tr + tr { margin-top: 12px; }
  .gsh-coupon-card { background: none; border: 0; border-radius: 0; padding: 0; }
  .gsh-coupon-table td { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 8px 0; }
  .gsh-coupon-table td::before { font-size: 13px; color: #5a6570; }
  .gsh-coupon-table td:nth-child(1)::before { content: 'Code'; }
  .gsh-coupon-table td:nth-child(2)::before { content: 'Discount'; }
  .gsh-coupon-table td:nth-child(3)::before { content: 'Valid until'; }
  .gsh-coupon-table td:nth-child(4)::before { content: 'Status'; }
}

/* zh-hans no-ecommerce UI (20261107): CN site is content-only */
/* 20261109 geo-scoped: mainland (html.geo-cn, cookie gaodimic_geo=cn) sees
   pure content; overseas (incl. HK/MO/TW) keeps user + language menus. Cart
   stays zh-hidden for everyone (zh has no commerce UI). */
html.geo-cn body.is-zh-site a[data-drupal-link-system-path="user/login"],
html.geo-cn body.is-zh-site a[data-drupal-link-system-path="user/register"] { display: none !important; }
body.is-zh-site a[data-drupal-link-system-path="cart"] { display: none !important; }

/* language switcher (20261107): body.is-zh-site is the single zh signal (gaodimic_zh module) */
.gaodimic-langsw { display: flex; align-items: center; column-gap: 0.75rem; }
.gaodimic-hdr-utility .gaodimic-langsw a {
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.75rem;
  line-height: 1.4;
  text-decoration: none;
}
.gaodimic-hdr-utility .gaodimic-langsw a:hover { color: #fff; text-decoration: underline; }
.navbar--links .gaodimic-langsw--mobile { padding: 0.5rem 1rem 0; }
.navbar--links .gaodimic-langsw--mobile a {
  color: #374151;
  font-size: 0.875rem;
  line-height: 1.4;
  text-decoration: none;
}
.navbar--links .gaodimic-langsw--mobile a:hover { color: #008fd7; }
body.is-zh-site .gaodimic-langsw__zh { display: none; }
/* zh (20261109): CN visitors get no switcher at all — /en stays fully featured */
html.geo-cn body.is-zh-site .gaodimic-langsw__en { display: none; }
body:not(.is-zh-site) .gaodimic-langsw__en { display: none; }

/* ===== Legal/Privacy page title 36px (2026-11-09, user) ===== */
body.node--id-7 h1,
body.node--id-8 h1 { font-size: 44px !important; }