/* Business-page visual hierarchy. Loaded after page styles, not on accounts or cases. */
.section-head > .eyebrow,
.section-head > :is(.local-eyebrow,.gaode-eyebrow) {
  padding:0;
  border:0;
  border-radius:0;
  background:none;
  box-shadow:none;
  color:#526d96;
  font-size:11px;
  line-height:1.5;
  letter-spacing:1px;
}
.section-head > .eyebrow::before { content:none; }
.iot-architecture .section-head > .eyebrow { color:#bfd3f0; }
.section-head h2 { margin-top:12px; text-wrap:balance; }
.heading-phrase { display:inline-block; max-width:100%; overflow-wrap:normal; }
.service-hero :is(h1,h2),.column-hero h1 { text-wrap:balance; }

/* Standalone text actions need a touch target beyond their text line. */
/* A closed mobile menu must not fade over newly visible page content. */
@media(max-width:900px) {
  .site-header .nav-links { transition:none; }
  .site-header .nav-links.is-open { transition:transform .18s ease; }
}
.service-related-link { display:inline-flex; align-items:center; min-height:24px; color:#2459dd; text-decoration:underline; text-underline-offset:3px; }
main .home-service-grid article>a { min-height:44px; }
.home-business .partner-carousel button.partner-arrow { min-height:44px; }
.ssl-jump .wrap>a { min-height:44px; }
.site-footer .footer-contact { align-items:center; }
.site-footer .footer-phone { display:inline-flex; align-items:center; min-height:44px; margin:0; color:inherit; font-size:inherit; }
@media(max-width:620px) { .service-related-link { min-height:44px; } }
main :is(.service-content,.compliance-plan,.about-capability-grid article) > a,
main .hero-actions > :is(.about-ghost,.local-ghost) {
  display:flex; align-items:center; min-height:44px;
}

/* Card detail actions are secondary buttons, not bare text links. */
main :is(.service-content,.home-service-grid article,.about-capability-grid article) > a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  align-self:flex-start;
  width:fit-content;
  max-width:100%;
  min-height:46px;
  padding:10px 18px;
  border:1px solid #cbdcf7;
  border-radius:10px;
  color:#1858e8;
  background:#fff;
  font-size:14px;
  font-weight:700;
  line-height:1.5;
  text-decoration:none;
  text-align:center;
  box-shadow:none;
  transform:none;
  transition:background-color .12s ease,border-color .12s ease,color .12s ease;
}
@media(min-width:621px) {
  main .home-service-grid article > a { align-self:center; }
}
main :is(.service-content,.home-service-grid article,.about-capability-grid article) > a:hover {
  border-color:#7ea6ee;
  color:#1248be;
  background:#f0f5ff;
  box-shadow:none;
  transform:none;
}
main .service-content ul { border-bottom:0; }
main.home-business .service-content ul { padding-bottom:4px; }
@media(max-width:620px) {
  main :is(.service-content,.home-service-grid article,.about-capability-grid article) > a,
  .home-business .service-card .service-content > a {
    width:100%;
    justify-self:stretch;
    align-self:stretch;
    min-height:46px;
  }
}

/* Let the wrapper scroll; a block-level table otherwise leaves an empty tail. */
main .compare-scroll > table.compare { display:table; overflow:visible; max-width:none; }
main .compare-scroll { scrollbar-width:thin; scrollbar-color:#8ba8dc #edf3fb; }
.table-scroll-hint { margin:0 0 10px; color:#52647e; font-size:12px; line-height:1.6; text-align:right; }
.table-scroll-hint::before { content:"↔"; margin-right:7px; color:#245fe0; }
.table-scroll-hint[hidden] { display:none; }
/* Keep each data column narrower than the phone viewport minus its pinned label. */
@media(max-width:620px) {
  main .compare-scroll > table.compare { min-width:640px; table-layout:fixed; }
  main .compare-scroll .compare th,
  main .compare-scroll .compare td { overflow-wrap:anywhere; }
}

/* Without scripting the full catalog remains visible, not inert filter buttons. */
main :is(.ssltrus-filter,.email-sign-filter):not([data-initialized="true"]) { display:none; }
.ssl-catalog-return { display:inline-flex; align-items:center; min-height:44px; margin-top:12px; color:#2459dd; font-size:13px; }
.ssl-detail-hero .ssl-catalog-return { color:#e0eaff; }
.ssl-detail-hero .ssl-catalog-return:hover { color:#fff; }
.contact-qr-frame { display:block; }
.contact-copy-tools { grid-column:2; min-width:0; }
.contact-copy-button { min-height:44px; margin-top:8px; padding:6px 12px; border:1px solid #dce6f6; border-radius:8px; color:#2459dd; background:#f7faff; font:inherit; font-size:13px; cursor:pointer; }
.contact-copy-button[hidden],.contact-copy-manual[hidden] { display:none; }
.contact-channel .contact-copy-feedback { margin:4px 0 0; font-size:12px; }
.contact-copy-feedback:empty { display:none; }
.contact-copy-manual { width:100%; min-width:0; min-height:44px; margin-top:8px; padding:8px; border:1px solid #8ba8dc; border-radius:8px; font:inherit; font-size:14px; }
@media(min-width:621px) and (max-width:1000px) {
  .contact-channel-wechat { grid-column:1 / -1; padding-right:190px; min-height:260px; }
}

/* A quiet location marker, with the same navigation rhythm on long pages. */
main :is(.ssl-jump,.yuqing-jump) a { position:relative; }
main :is(.ssl-jump,.yuqing-jump) a[aria-current="location"] { color:#1858f2; }
main :is(.ssl-jump,.yuqing-jump) a[aria-current="location"]::after {
  content:""; position:absolute; inset:auto 0 4px; height:2px; border-radius:2px; background:#1858f2;
}
.yuqing-jump { position:sticky; top:calc(74px + var(--admin-bar-offset,0px)); z-index:15; }
.yuqing-jump .wrap { height:60px; padding-block:0; flex-wrap:nowrap; align-items:center; justify-content:flex-start; overflow-x:auto; overflow-y:hidden; white-space:nowrap; }
.yuqing-jump a { display:flex; align-items:center; flex:none; min-height:44px; }
@media(max-width:900px) { .yuqing-jump .wrap { height:50px; gap:22px; } }

/* One anchor offset: page padding and target margins must not accumulate. */
html:has(main) {
  --visual-anchor-offset:90px; --visual-admin-offset:0px;
  scroll-padding-top:calc(var(--visual-anchor-offset) + var(--visual-admin-offset));
}
html:has(main :is(.ssl-jump,.yuqing-jump)) { --visual-anchor-offset:148px; }
html:has(body.admin-bar) {
  --visual-admin-offset:32px;
  scroll-padding-top:calc(var(--visual-anchor-offset) + var(--visual-admin-offset));
}
@media(max-width:782px) {
  html:has(body.admin-bar) { --visual-admin-offset:46px; }
}
/* Existing page-ID rules have different specificities; offset lives on html now. */
main :is(section,article,div)[id],#main-content { scroll-margin-top:0 !important; }

/* Real two-column heroes fill their grid track, not a second percentage of it.
   Their gradients must cover the hero rather than repeat at artwork dimensions. */
.service-hero:is(.cross-hero,.spns-hero) { background-size:cover; }
.service-hero:is(.cross-hero,.spns-hero)::before { display:none; }
.service-hero:is(.cross-hero,.spns-hero) .service-hero-copy { width:100%; max-width:none; }
.service-hero.spns-hero { padding-block:56px; }

/* Background-art heroes reserve a reading zone and fade into the illustration. */
@media(min-width:1001px) {
  .column-hero .column-hero-copy { width:48%; max-width:560px; }
  .column-hero .column-hero-copy > p { max-width:530px; }
  .column-hero .column-hero-art,
  .column-hero .column-hero-art:is(.column-hero-art--security,.column-hero-art--enterprise,.column-hero-art--consultation),
  .column-hero .column-hero-art--email { width:64%; max-width:1080px; }
  .column-hero::after {
    background:linear-gradient(90deg,#fff 0%,#fff 39%,rgba(255,255,255,.96) 46%,rgba(255,255,255,.45) 56%,transparent 70%),linear-gradient(0deg,#fff,transparent 12%);
  }
  .service-hero:where(:not(.cross-hero):not(.spns-hero)) .service-hero-copy { width:48%; max-width:560px; }
  .service-hero:where(:not(.cross-hero):not(.spns-hero))::before {
    background:linear-gradient(90deg,#fff 0%,#fff 39%,rgba(255,255,255,.94) 47%,rgba(255,255,255,.4) 59%,transparent 73%),linear-gradient(0deg,rgba(255,255,255,.72),transparent 14%);
  }
}

/* Secondary hints are quiet inline text, not another row of capsule buttons. */
.service-hero :is(.development-tags,.baike-tags,.caller-tags,.geo-tags,.software-tags,.compliance-tags,.ops-tags) {
  display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:20px;
}
.service-hero :is(.development-tags,.baike-tags,.caller-tags,.geo-tags,.software-tags,.compliance-tags,.ops-tags) > * {
  display:inline-flex; align-items:center; gap:7px; min-height:22px; padding:0;
  border:0; border-radius:0; background:none; font-size:12px; font-weight:500; color:#52647e;
}
.service-hero :is(.development-tags,.baike-tags,.caller-tags,.geo-tags,.software-tags,.compliance-tags,.ops-tags) > *::before {
  content:""; width:4px; height:4px; flex:none; border-radius:50%; background:#5687e8;
}
.service-hero .software-tags span + span { padding-left:0; border-left:0; }

/* Keep product cards, but give workflows a lighter, continuous reading rhythm. */
body .process-grid:not(.process-grid--dark):not(.process-grid--compact):not(.process-grid--operation):not(.process-grid--architecture) > .process-step {
  padding:24px 20px; border:0; border-top:2px solid #dce6f5;
  border-radius:0; background:transparent; box-shadow:none;
}
body .process-grid:not(.process-grid--dark):not(.process-grid--compact):not(.process-grid--operation):not(.process-grid--architecture) > .process-step > .process-visual {
  width:80px; height:80px; margin-bottom:18px;
}
body .process-grid:not(.process-grid--dark) > .process-step p { color:#596b83; }
.ops-level-list > div { border-radius:0; border:0; border-left:2px solid #dce6f5; background:transparent; }

/* Homepage: less illustration weight and no reserved blank description block. */
@media(min-width:621px) {
  .home-business .service-art img { aspect-ratio:16/10; max-height:none; object-fit:cover; object-position:center 45%; }
  .home-business .service-content { padding:24px; }
  .home-business .service-content p { min-height:0; line-height:1.8; }
  .home-business .service-content ul { margin:16px 0; padding:12px 0; }
  .home-business .section { padding-block:64px; }
}
.home-business .partner-logos {
  padding:14px; border:1px solid #dce6f5; border-radius:16px;
  background:#edf3fb; gap:10px;
}
.home-business .partner-logos > div { border:1px solid #e4ebf6; }
.home-business .partner-logos img { max-width:min(136px,100%); max-height:44px; }

/* Catalog names, scope and price lead; repeated branding is secondary. */
.ssltrus-hero .mini-trust { color:#c6d8f5; }
.ssltrus-product .brand { margin-bottom:14px; }
.ssltrus-product .brand-mark { padding:0; background:none; color:#52647e; font-size:11px; letter-spacing:0; }
.ssltrus-product h3 { min-height:0; margin-bottom:12px; font-size:20px; line-height:1.5; }
.ssltrus-product > p { min-height:0; color:#62718a; font-size:12px; line-height:1.8; }
.ssltrus-product .ssl-specs { grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:16px; min-height:140px; }
.ssltrus-product .ssl-specs > span:first-child { grid-column:1 / -1; }
.ssltrus-product .ssl-specs b { font-size:13px; }
.ssltrus-product .sale-price { font-size:28px; }
.ssltrus-product > .btn { margin-top:auto; }
main :is(.ssl-product,.ssltrus-product) > .btn {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  width:100%; min-height:46px; padding:10px 18px; border-radius:9px;
  font-size:14px; line-height:1.5; text-align:center;
}

/* Shared rows follow the longest content in that row, not a fixed text height. */
@supports(grid-template-rows:subgrid) {
  @media(min-width:641px) {
    .ssltrus-products > .ssltrus-product:not([hidden]) {
      display:grid; grid-row:span 6; grid-template-rows:subgrid; row-gap:0;
    }
    .ssltrus-product > .brand { grid-row:1; }
    .ssltrus-product > h3 { grid-row:2; text-wrap:balance; }
    .ssltrus-product > p { grid-row:3; }
    .ssltrus-product > .ssl-specs { grid-row:4; }
    .ssltrus-product > .sale-line { grid-row:5; }
    .ssltrus-product > .btn { grid-row:6; align-self:end; margin-top:16px; }
  }
}

/* Legal links stay readable and form intentional lines on narrow screens. */
.beian-records,.beian-tools { display:flex; align-items:center; justify-content:center; gap:0; }
.site-footer .beian :is(a,.footer-placeholder) { color:#a0aec3; }
.beian-tools .beian-divider:first-child { display:inline; }

@media(max-width:1000px) {
  .service-hero:where(:not(.cross-hero):not(.spns-hero)) { padding:38px 0 220px; background-size:auto 260px; }
  .service-hero:where(:not(.cross-hero):not(.spns-hero))::before { background:linear-gradient(180deg,#fff 0%,#fff calc(100% - 230px),rgba(255,255,255,.2) calc(100% - 130px),transparent); }
  .service-hero.spns-hero { display:block; min-height:0; padding:56px 0; }
  .spns-hero .spns-hero-grid { grid-template-columns:minmax(0,1fr); gap:38px; }
  .spns-hero .spns-search-demo { max-width:720px; margin-inline:auto; }
  .ops-page .ops-hero {
    display:block; min-height:0; background-position:center bottom;
    
    
  }
  .ops-page .ops-hero .service-hero-copy { width:100%; max-width:720px; }
}
@media(max-width:760px) {
  body .process-grid:not(.process-grid--dark):not(.process-grid--compact):not(.process-grid--operation):not(.process-grid--architecture) { gap:0; }
  body .process-grid:not(.process-grid--dark):not(.process-grid--compact):not(.process-grid--operation):not(.process-grid--architecture) > .process-step {
    padding:20px 0; border-top:0; border-bottom:1px solid #dce6f5;
  }
  body .process-grid:not(.process-grid--dark):not(.process-grid--compact):not(.process-grid--operation):not(.process-grid--architecture) > .process-step > .process-visual {
    width:64px; height:64px; margin:0;
  }
  body .software-page .software-process.process-grid > .process-step { padding:20px 0; }
  .ops-page .ops-hero { padding:30px 0 175px; background-size:auto 210px; }
  .ops-page .ops-hero::before { background:linear-gradient(180deg,#fff 0%,#fff calc(100% - 185px),rgba(255,255,255,.2) calc(100% - 110px),transparent); }
  .ops-page .ops-hero-copy > p { text-align:left; line-height:1.8; }
  .ops-page .ops-hero h2 { font-size:20px; line-height:1.5; margin-bottom:14px; }
  .ops-page .ops-hero .hero-actions { margin:18px 0 0; gap:8px; }
  .ops-page .ops-tags { display:grid; grid-template-columns:repeat(2,max-content); gap:6px 20px; justify-content:center; margin-top:14px; }
  .ops-page .ops-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); border-radius:14px; box-shadow:0 8px 24px #12376f0a; }
  .ops-page .ops-summary article { padding:14px 8px; gap:8px; font-size:12px; }
  .ops-page .ops-summary article:nth-child(even) { border-left:1px solid #e3eaf4; }
  .ops-page .ops-summary article:nth-child(2) { border-top:0; }
  .ops-page .ops-summary article:nth-child(n+3) { border-top:1px solid #e3eaf4; }
}
@media(max-width:620px) {
  .section-head > .eyebrow,.section-head > :is(.local-eyebrow,.gaode-eyebrow) { padding:0; font-size:10px; letter-spacing:.65px; }
  .section-head > p { text-wrap:pretty; }
  .service-hero:where(:not(.cross-hero):not(.spns-hero)) { padding:30px 0 170px; background-size:auto 205px; }
  .service-hero:where(:not(.cross-hero):not(.spns-hero))::before { background:linear-gradient(180deg,#fff 0%,#fff calc(100% - 180px),rgba(255,255,255,.16) calc(100% - 105px),transparent); }
  .service-hero.spns-hero { padding:34px 0; }
  .service-hero .service-hero-copy > p { font-size:14px; line-height:1.75; text-align:left; }
  .service-hero .hero-actions { margin:18px 0 0; gap:8px; }
  .service-hero :is(.development-tags,.baike-tags,.caller-tags,.geo-tags,.software-tags,.compliance-tags) { gap:5px 14px; margin-top:14px; }
  .service-hero :is(.development-tags,.baike-tags,.caller-tags,.geo-tags,.software-tags,.compliance-tags) > * { padding:0; min-height:22px; font-size:11px; }
  .column-hero { padding:30px 0 18px; }
  .column-hero .column-hero-art { height:170px; aspect-ratio:auto; margin-top:12px; mix-blend-mode:multiply; }
  .column-hero .column-hero-art img { object-fit:cover; object-position:right center; mix-blend-mode:normal; }
  .column-hero .column-hero-copy .mini-trust { margin-top:14px; }
  .home-business .partner-logos { padding:9px; gap:8px; }
  .home-business .partner-logos > div { min-height:68px; }
  .site-footer .beian { display:flex; flex-direction:column; gap:6px; padding-top:14px; }
  .beian-records { flex-wrap:wrap; row-gap:5px; max-width:100%; }
  .beian-records > a { max-width:100%; }
  .site-footer .beian :is(a,.footer-placeholder,.beian-divider) { font-size:11px; line-height:20px; }
  .site-footer .beian a { min-height:44px; }
  .beian-tools .beian-divider:first-child { display:none; }
  .site-footer .footer-contact { flex-direction:row; flex-wrap:wrap; gap:5px 16px; }
}
@media(max-width:350px) {
  .beian-records { flex-direction:column; gap:2px; }
  .beian-records > .beian-divider { display:none; }
}
.contact-inquiry-context {
  grid-column:1 / -1;
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:16px 20px;
  border:1px solid #dce6f5;
  border-left:3px solid #2458b5;
  border-radius:12px;
  background:#f4f7fd;
}
/* Type shortcuts depend on the filter script; the native all-products link does not. */
main .ssl-jump a[data-ssl-type]:not([data-filter-ready="true"]) { display:none; }
/* Secondary actions have a quiet outline; primary calls to action remain distinct. */
main .hero-actions > :is(.email-ghost,.local-ghost,.about-ghost,.ghost-link),
main .ssl-type > a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  max-width:100%;
  padding:10px 18px;
  border:1px solid #cbdcf7;
  border-radius:10px;
  background:#fff;
  color:#1858e8;
  font-size:14px;
  font-weight:650;
  line-height:1.5;
  text-align:center;
  text-decoration:none;
  transition:background-color .12s, border-color .12s;
}
main .hero-actions > :is(.email-ghost,.local-ghost,.about-ghost):hover,
main .ssl-type:nth-child(3) > a:hover { background:#f0f5ff; border-color:#7ea6ee; }
main .hero-actions > .ghost-link,
main .ssl-type:not(:nth-child(3)) > a {
  color:#fff;
  border-color:rgba(255,255,255,.45);
  background:rgba(255,255,255,.08);
}
main .hero-actions > .ghost-link:hover,
main .ssl-type:not(:nth-child(3)) > a:hover {
  border-color:rgba(255,255,255,.8);
  background:rgba(255,255,255,.16);
}
main .ssl-type > a:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
@media(max-width:620px) {
  main .hero-actions > :is(.email-ghost,.local-ghost,.about-ghost,.ghost-link) { width:100%; }
}
@media(prefers-reduced-motion:reduce) {
  main .hero-actions > :is(.email-ghost,.local-ghost,.about-ghost,.ghost-link),
  main .ssl-type > a { transition:none; }
}
.contact-inquiry-context[hidden] { display:none; }
.contact-inquiry-context > div { flex:1; min-width:0; }
.contact-inquiry-context small { display:block; margin-bottom:4px; color:#546887; font-size:12px; }
.contact-inquiry-context a { display:inline-block; padding:5px 0; color:#2458b5; font-weight:650; overflow-wrap:anywhere; text-decoration:underline; text-decoration-color:#b7c8e2; text-underline-offset:4px; }
.contact-inquiry-context p { margin:4px 0 0; color:#546887; font-size:13px; line-height:1.7; }
.contact-inquiry-context button { flex:none; width:44px; height:44px; padding:0; border:0; border-radius:8px; color:#546887; background:transparent; font-size:24px; cursor:pointer; }
.contact-inquiry-context button:hover { background:#e6edf8; }
.contact-inquiry-context :is(a,button):focus-visible { outline:2px solid #2458b5; outline-offset:3px; }
@media(max-width:620px) { .contact-inquiry-context { padding:12px 14px; gap:8px; } }
@media(prefers-reduced-motion:reduce) {
  .home-business :is(.btn,.home-need-links a),.ssltrus-product { transition:none; }
}
