/**
 * @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 #025078 (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: #025078; /* Primary deep blue (主色加深, 2026-08-28) */
  --std-blue2: #3fdcf5;   /* Blue 2 (背景/装饰用, 对白<2.1:1) */
  --std-green: #98d44b;   /* 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 (大图专用，默认原宽不放大) */
.media-w-800{width:800px}
.media-w-900{width:900px}
.media-w-1000{width:1000px}
[class*=media-w-] img{width:100%;height:auto}
/* 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-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 country (e.g. China x2): cards side by side in one row */
@media (min-width: 641px) {
  .wpm-list__country-block--multi.wpm-span-2 { grid-column: span 2; }
  .wpm-list__country-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-content: start; }
}

/* 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(--std-primary, #008fd7); 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(--std-primary, #008fd7); }
.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(--std-primary, #008fd7); }

/* 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;
}
