/* SORVO component rules: tap targets, focus rings, buttons, dialogs and the
 * homepage hero composition. Loads after sorvo-theme.css.
 *
 * !important is needed because Nuxt appends every route CSS chunk after this
 * stylesheet during hydration. See ARCHITECTURE.md.
 *
 * Phase 10 retargeted this file onto sorvo-tokens.css. It previously carried
 * its own ink scale, an off-brand #2251e5 in seven places, twelve hardcoded
 * font sizes and five radii, none of them from the shared ladder.
 */
html { scroll-padding-top: 104px; }
body { color: var(--sorvo-ink); }
body main h1[class] { font-size: var(--fs-3xl)!important; line-height:1.16!important; letter-spacing:-.025em!important; overflow-wrap:break-word; }
body main h2[class]:not(.contact-card__title) { font-size:var(--fs-2xl)!important;line-height:1.3!important; }
body main h3[class] { font-size:var(--fs-h3)!important;line-height:1.45!important; }
body main p[class*="description"], body main p[class*="subtitle"] { font-size:var(--fs-base)!important;line-height:1.7!important; }
body main [class*="hero__description"], body main [class*="hero__subtitle"] { max-width:680px; }
body .home-page .hero-preview__title { font-size:var(--fs-3xl)!important; }
body .home-page .hero-preview__subtitle {font-size:var(--fs-3xl)!important;line-height:1.25!important;font-weight:var(--fw-semibold)!important;}
body header.fixed { background:rgba(255,255,255,.97)!important; color:var(--sorvo-ink)!important; }
body header.fixed .site-header__nav-link { color:var(--sorvo-ink)!important; }
body .site-mobile-menu-toggle, body .site-header__menu-toggle,
body .wechat-qr-modal__close, body [class*="__nav-button"], body .brand-case-study__nav,
body .website-process__nav button { min-width:var(--tap-min)!important;min-height:var(--tap-min)!important; }
body button:focus-visible,body a:focus-visible,body [tabindex]:focus-visible { outline:3px solid var(--sorvo-cobalt)!important;outline-offset:4px!important; }
body .app-button { min-height:48px!important;border-radius:var(--r-md)!important;font-size:var(--fs-base)!important;line-height:1.4!important;padding:12px 24px!important; }
body .app-button--primary { background:var(--sorvo-cobalt)!important;color:var(--sorvo-white)!important;border:1px solid var(--sorvo-cobalt)!important; }
body .app-button--outline, body .app-button--secondary { background:var(--sorvo-white)!important;color:var(--sorvo-cobalt-ink)!important;border:1px solid var(--sorvo-cobalt-ink)!important; }
body .website-development-hero::before { background:none!important;filter:none!important; }
body .website-development-hero { background-image:linear-gradient(90deg,rgba(248,252,255,.97),rgba(248,252,255,.86) 48%,rgba(248,252,255,.18)),url('/brand/page-scenes-v1/10-b2b-lead-generation-background.webp')!important;background-size:cover!important;background-position:center!important; }
body .website-development-hero__title,body .website-development-hero__description {color:var(--sorvo-ink)!important;}
body .vision-section .vision-stat-card {background:rgba(10,25,53,.92)!important;border:1px solid rgba(255,255,255,.22)!important;box-shadow:none!important;}
body .vision-stat-card [class] {color:var(--sorvo-white)!important;}
body .why-choose-card {background:var(--sorvo-white)!important;border:1px solid var(--sorvo-border)!important;border-radius:var(--r-xl)!important;box-shadow:0 8px 28px rgba(10,25,53,.06)!important;}
body .why-choose-card .why-choose-card__inner {background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;}
body .why-choose-card__title {font-size:var(--fs-lg)!important;}
body .sorvo-hero-services {font-size:var(--fs-lead);line-height:1.8;color:var(--sorvo-ink-muted);margin:20px 0 0;max-width:640px;}
body .sorvo-service-link {display:inline-flex;align-items:center;min-height:48px;margin-left:20px;color:var(--sorvo-cobalt-ink);font-size:var(--fs-base);text-decoration:underline;text-underline-offset:5px;}
body .service-card {position:relative;}
body .service-card::after {content:'了解服务 ↗';display:block;font-size:var(--fs-base);color:var(--sorvo-cobalt-ink);margin-top:24px;}
body .components-card__inner {position:relative;}
body .sorvo-case-label {position:absolute;bottom:16px;left:16px;background:var(--sorvo-white);color:var(--sorvo-ink);font-size:var(--fs-sm);font-weight:var(--fw-semibold);padding:7px 12px;border:1px solid var(--sorvo-border);border-radius:var(--r-sm);z-index:3;}
body [role="tab"][aria-selected="true"] {outline-offset:3px;font-weight:var(--fw-bold);}
body .wechat-qr-modal {z-index:10000!important;padding:16px!important;}
body .wechat-qr-modal__content {width:min(440px,100%)!important;max-height:calc(100dvh - 32px)!important;overflow:auto!important;padding:32px 28px 24px!important;border-radius:var(--r-xl)!important;}
body .wechat-qr-modal__close {top:8px!important;right:8px!important;}
body .sorvo-dialog-title {font-size:var(--fs-lg);line-height:1.4;margin:0 32px 8px 0;color:var(--sorvo-ink);font-weight:var(--fw-bold);}
body .wechat-qr-modal__body {gap:14px!important;}
body .wechat-qr-modal__code {margin:auto;max-width:230px;}
body .wechat-qr-modal__image {max-width:100%;height:auto;}
body .wechat-qr-modal__hint {font-size:var(--fs-base)!important;line-height:1.6!important;color:var(--sorvo-ink-muted)!important;}
body .sorvo-dialog-actions {display:grid;gap:10px;width:100%;}
body .sorvo-dialog-actions a,body .sorvo-dialog-actions button {display:flex;justify-content:center;align-items:center;min-height:var(--tap-min);border:1px solid var(--sorvo-border-strong);border-radius:var(--r-sm);padding:9px 12px;font:inherit;font-size:var(--fs-base);color:var(--sorvo-cobalt-ink);background:var(--sorvo-white);text-decoration:none;}
body .sorvo-dialog-actions .sorvo-save-qr {background:var(--sorvo-cobalt);color:var(--sorvo-white);border-color:var(--sorvo-cobalt);}
body .sorvo-dialog-status {font-size:var(--fs-xs);min-height:20px;text-align:center;color:var(--sorvo-ink-muted);}
body .contact-hero__shell {min-height:0!important;padding-bottom:40px!important;}
body .contact-hero__cards {position:static!important;inset:auto!important;transform:none!important;margin-top:48px!important;}
body .contact-hero .contact-info__shell {gap:32px!important;margin-top:40px!important;width:100%!important;padding:0!important;}
body .contact-hero .contact-info__grid {gap:32px!important;}
body .contact-info-card {background:rgba(255,255,255,.96);padding:24px!important;border:1px solid var(--sorvo-border);border-radius:var(--r-lg);flex:1;}
body .contact-info__divider {display:none!important;}
body .contact-info-card__action,body .contact-info-card__email {display:inline-flex;min-height:var(--tap-min);align-items:center;overflow-wrap:anywhere;}
body .contact-info {padding-top:32px!important;}
body .sorvo-image-dialog {border:0;border-radius:var(--r-lg);padding:52px 16px 16px;max-width:94vw;max-height:94dvh;background:var(--sorvo-white);}
body .sorvo-image-dialog::backdrop {background:rgba(8,18,38,.82);}
body .sorvo-image-dialog img {max-height:78dvh;max-width:88vw;object-fit:contain;}
body .sorvo-image-dialog button {position:absolute;right:8px;top:4px;width:44px;height:44px;font-size:var(--fs-lg);}
@media(max-width:767px) {
 body main h1[class] {font-size:36px!important;line-height:1.25!important;}
 body main h2[class]:not(.contact-card__title) {font-size:30px!important;line-height:1.35!important;}
 body main h3[class] {font-size:var(--fs-h3)!important;}
 body .home-page .hero-preview__title {font-size:36px!important;}
 body .home-page .hero-preview__subtitle {font-size:34px!important;}
 body .sorvo-hero-services {font-size:var(--fs-base);max-width:300px;line-height:1.7;margin-top:16px;}
 body .hero-preview {min-height:0!important;}
 body .hero-preview__content {min-height:650px!important;padding-top:120px!important;padding-bottom:72px!important;}
 body .sorvo-service-link {margin-left:14px;}
 body .service-card {min-height:0!important;height:auto!important;padding:24px!important;}
 body .service-card__number {font-size:40px!important;line-height:1.1!important;margin-bottom:20px!important;}
 body .service-card__tags {margin-top:24px!important;}
 body .service-card__description {font-size:var(--fs-base)!important;}
 body .service-card::after {margin-top:20px;}
 body .about-section {padding-top:40px!important;padding-bottom:40px!important;}
 body .why-choose-card__inner {padding:24px!important;gap:20px!important;}
 body .why-choose-card [class*="__visual"],body .why-choose-card__icon {height:130px!important;min-height:0!important;}
 body .website-process__swiper .swiper-wrapper {display:grid!important;grid-template-columns:1fr;gap:16px;transform:none!important;}
 body .website-process__swiper .swiper-slide {width:100%!important;margin:0!important;height:auto!important;}
 body .website-process__nav {display:none!important;}
 body .website-process__card {min-height:0!important;padding:24px!important;}
 body .website-process__card-description,body .website-process__card-output {font-size:var(--fs-base)!important;line-height:1.65!important;}
 body .contact-hero .contact-info__grid {flex-direction:column!important;gap:16px!important;}
 body .contact-hero__cards {gap:16px!important;}
 body .wechat-qr-modal__content {padding:28px 20px 18px!important;}
}
@media(prefers-reduced-motion:reduce) {
 html {scroll-behavior:auto!important;}
 *,*::before,*::after {animation:none!important;transition:none!important;scroll-behavior:auto!important;}
 .sorvo-hero-video {display:none!important;}
}
/* Scoped mirror selectors below deliberately outrank the historical scene layer. */
body header.fixed button[aria-expanded] {min-width:var(--tap-min)!important;min-height:var(--tap-min)!important;}
body .contact-info-card__action {border-radius:var(--r-sm)!important;color:var(--sorvo-cobalt-ink)!important;border-color:var(--sorvo-border-strong)!important;}
@media(max-width:767px) {
 body .home-page .hero-preview {height:auto!important;min-height:0!important;}
 body .home-page .hero-preview__content {height:690px!important;min-height:0!important;padding-top:112px!important;padding-bottom:40px!important;}
 body .home-page .hero-logos {margin-top:0!important;}
 body .home-page .service-card {padding:24px!important;}
 body .home-page .service-card__number {margin:0 0 16px!important;}
 body .home-page .service-card__icon-wrap {position:absolute;top:24px;right:24px;width:44px!important;height:44px!important;}
 body .home-page .service-card__icon {width:44px!important;height:44px!important;}
 body .home-page .service-card__body {display:block!important;}
 body .home-page .why-choose-card {padding:20px!important;min-height:0!important;}
 body .home-page .why-choose-card__inner {padding:0!important;min-height:0!important;gap:16px!important;}
 body .home-page .why-choose-card__icon-wrap {height:96px!important;width:100%!important;margin:0!important;}
 body .home-page .why-choose-card__image {height:96px!important;width:auto!important;max-width:100%!important;object-fit:contain!important;}
 body .home-page .why-choose-card__copy {padding:0!important;}
}
@media(max-width:767px) {
 body .home-page .vision-section,body .home-page .why-choose-section,body .home-page .marketing-flow-section {padding-top:40px!important;padding-bottom:40px!important;}
 body .home-page .vision-stat-card {display:flex!important;align-items:center!important;gap:20px!important;min-height:112px!important;padding:20px!important;text-align:left!important;}
 body .home-page .vision-stat-card__value {font-size:48px!important;line-height:1.2!important;min-width:100px;}
 body .home-page .vision-stat-card__description {font-size:var(--fs-base)!important;line-height:1.65!important;margin:0!important;}
}
body .website-development-page .website-development-hero {background-image:linear-gradient(90deg,rgba(248,252,255,.97),rgba(248,252,255,.86) 48%,rgba(248,252,255,.18)),url('/brand/page-scenes-v1/10-b2b-lead-generation-background.webp')!important;}
@media(max-width:767px) {
 body .website-development-page .website-development-hero {background-image:linear-gradient(180deg,rgba(248,252,255,.94) 0%,rgba(248,252,255,.94) 64%,rgba(248,252,255,.12) 100%),url('/brand/page-scenes-v1/10-b2b-lead-generation-background.webp')!important;}
 body .site-footer__nav-link-list--split {display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:12px!important;row-gap:8px!important;}
 body .site-footer__nav-link-list--split .site-footer__nav-link {min-height:var(--tap-min)!important;display:flex!important;align-items:center!important;font-size:var(--fs-sm)!important;}
}
body .components-card__inner {aspect-ratio:772 / 1028!important;height:auto!important;overflow:hidden!important;}
body .components-card__cover {width:100%!important;height:100%!important;object-fit:cover!important;}
body .vision-section__eyebrow {color:#dbe7ff!important;}
/* The third service card sits on a cobalt fill, so the same link colour that
   measures 8.31 : 1 on the other three measures 1.05 : 1 here -- effectively
   invisible until hover. Pre-dates phase 10; white measures 7.89 : 1. */
body .service-card:nth-child(3)::after {color:var(--sorvo-white)!important;}
body .service-card:hover::after,body .service-card:focus-visible::after {color:var(--sorvo-white)!important;}
body .brand-case-study__expand {min-width:110px!important;min-height:var(--tap-min)!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;border-radius:var(--r-md)!important;background:var(--sorvo-ink)!important;color:var(--sorvo-white)!important;}
body .brand-case-study__expand-icon {width:22px!important;height:22px!important;}
body .brand-case-study__expand::after {content:'放大查看';font-size:var(--fs-sm);}
body .brand-case-study-lightbox__close,body .brand-case-study-lightbox__rail-control,body .brand-case-study-lightbox button[aria-label="Previous image"],body .brand-case-study-lightbox button[aria-label="Next image"] {min-width:var(--tap-min)!important;min-height:var(--tap-min)!important;}
/* Homepage composition: one shared axis and a quieter secondary line. */
body .home-page .hero-preview__copy {display:flex!important;flex-direction:column!important;align-items:center!important;width:min(920px,100%)!important;margin-inline:auto!important;text-align:center!important;}
body .home-page .hero-preview__eyebrow {font-size:var(--fs-sm)!important;font-weight:var(--fw-medium)!important;line-height:1.6!important;letter-spacing:.1em!important;color:var(--sorvo-ink-muted)!important;margin:0 0 20px!important;}
body .home-page .hero-preview__title {font-size:var(--fs-3xl)!important;line-height:1.2!important;font-weight:var(--fw-semibold)!important;letter-spacing:-.035em!important;color:var(--sorvo-ink)!important;margin:0!important;}
body .home-page .hero-preview__subtitle {font-size:clamp(36px,3.5vw,50px)!important;line-height:1.25!important;font-weight:var(--fw-medium)!important;letter-spacing:-.025em!important;margin:10px 0 0!important;background-image:linear-gradient(100deg,var(--sorvo-cobalt) 18%,var(--sorvo-teal) 90%)!important;}
body .home-page .sorvo-hero-services {width:auto!important;max-width:640px!important;margin:24px auto 0!important;text-align:center!important;font-size:var(--fs-base)!important;line-height:1.75!important;color:var(--sorvo-ink-muted)!important;}
body .home-page .hero-preview__copy > .mt-3 {display:flex!important;align-items:center!important;justify-content:center!important;gap:24px!important;margin:28px 0 0!important;}
body .home-page .hero-preview__button {font-size:var(--fs-base)!important;font-weight:var(--fw-semibold)!important;padding:13px 24px!important;min-height:48px!important;border-radius:var(--r-md)!important;box-shadow:0 8px 22px rgb(37 99 255 / 16%)!important;}
body .home-page .sorvo-service-link {margin:0!important;min-height:48px!important;font-size:var(--fs-base)!important;font-weight:var(--fw-medium)!important;color:var(--sorvo-cobalt-ink)!important;text-decoration:none!important;gap:7px!important;}
body .home-page .sorvo-service-link::after {content:'↓';font-size:var(--fs-lead);}
@media(max-width:767px) {
 body .home-page .hero-preview__eyebrow {font-size:var(--fs-xs)!important;margin-bottom:18px!important;}
 body .home-page .hero-preview__title {font-size:34px!important;}
 body .home-page .hero-preview__subtitle {font-size:30px!important;margin-top:9px!important;}
 body .home-page .sorvo-hero-services {font-size:var(--fs-sm)!important;max-width:290px!important;margin-top:20px!important;}
 body .home-page .hero-preview__copy > .mt-3 {gap:20px!important;margin-top:24px!important;}
 body .home-page .hero-preview__content {padding-top:118px!important;}
}

@media(max-width:767px) {body .home-page .sorvo-service-link {background:rgba(255,255,255,.94)!important;padding:0 12px!important;border-radius:var(--r-sm)!important;}body .home-page .hero-preview__copy > .mt-3 {gap:12px!important;}}
