/* Dimensions follow the 1920px version 03 reference. */
.knowledge.knowledge-with-credentials {
    position: relative;
    padding-top: 0;
    border-radius: 2.5rem 2.5rem 0 0;
    background: #fff;
    box-shadow: 0 -1rem 2.5rem #173b700d;
}
.geo-credentials.container {
    width: 100%;
    max-width: none;
    margin-bottom: 7rem;
    padding: 5rem 0 4.75rem;
    border-radius: inherit;
    background: #fff;
}
.geo-credentials-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 3.5rem;
    width: 75%;
    max-width: 90rem;
    margin: 0 auto;
}
.geo-credential {
    position: relative;
    min-width: 0;
    min-height: 7.125rem;
    padding: 1.5rem 0 1.375rem;
    border-bottom: 1px solid #e8edf4;
}
.geo-credential:nth-child(-n+2) { min-height: 7rem; padding-top: 0; }
.geo-credential-link { color: inherit; }
.geo-credential-link:hover,
.geo-credential-link:focus-visible { color: #288cff; }
.geo-credential h3 {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding-right: 2rem;
    color: #13263e;
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.5;
}
.geo-credential-icon {
    flex: 0 0 auto;
    width: 2rem;
    height: 1.5rem;
    color: #269fff;
}
.geo-credential p {
    position: relative;
    display: block;
    padding-left: .875em;
    margin-top: .75rem;
    color: #52677f;
    font-size: 1rem;
    line-height: 1.5;
    overflow-wrap: anywhere;
}
.geo-credential p::before {
    content: "";
    position: absolute;
    top: .75em;
    left: .125em;
    width: .1875em;
    height: .1875em;
    border-radius: 50%;
    background: currentColor;
    transform: translateY(-50%);
}
.geo-credential-description-icon { display: inline-block; width: 1.15rem; height: 1.15rem; margin-left: .375rem; vertical-align: middle; }
@media (max-width: 760px) {
    .knowledge.knowledge-with-credentials { padding-top: 0; border-radius: 1.5rem 1.5rem 0 0; }
    .geo-credentials.container { width: 100%; margin-bottom: 3.5rem; padding: 2.5rem 0; }
    .geo-credentials .geo-knowledge-intro { width: calc(100% - 2.5rem); margin-bottom: 2rem; }
    .geo-credentials-grid { width: calc(100% - 2.5rem); }
    .geo-credentials-grid { grid-template-columns: 1fr; }
    .geo-credential,
    .geo-credential:nth-child(-n+2) { min-height: 0; padding: 1.5rem 0; }
    .geo-credential:first-child { padding-top: 0; }
    .geo-credential h3 { font-size: 1.15rem; }
    .geo-credential p { margin-top: .65rem; font-size: 1rem; line-height: 1.8; }
    .geo-credential p::before { top: .9em; }
    .geo-credential-description-icon { margin-top: calc((1.8em - 1.15rem) / 2); }
}

:root { scroll-padding-top: calc(max(4.375rem, 48px) + 1rem); }
.site-header.geo-header {
    position: sticky;
    top: 0;
    z-index: 100;
    height: 4.375rem;
}
.geo-header .brand { flex-shrink: 0; }
.geo-header .brand img { width: 15rem; height: auto; }
.geo-header .main-nav {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    margin-left: auto;
    margin-right: 2.5rem;
    gap: 2.25rem;
    font-size: .9375rem;
    color: #718096;
    white-space: nowrap;
}
.geo-header .main-nav a {
    flex-shrink: 0;
    font-weight: 400;
    line-height: 1.5;
}
.geo-header .main-nav a:first-child { color: inherit; font-weight: 400; }
.geo-header .main-nav a:hover,
.geo-header .main-nav a:focus-visible { color: #2f70ff; }
.geo-header .header-contact-menu { position: relative; flex-shrink: 0; }
.geo-header .header-contact {
    width: 7.5rem;
    min-height: 2.5rem;
    padding: 0;
    gap: .5rem;
    border-radius: .5rem;
    background: #2f70ff;
    color: #fff;
    font-size: .875rem;
    list-style: none;
    cursor: pointer;
}
.geo-header .header-contact .icon { width: .875rem; height: .875rem; }
.geo-header .header-contact:hover { background: #2463ed; transform: none; }
.geo-header .header-contact:focus-visible { outline: 3px solid #47aaff; outline-offset: 5px; }
.geo-header .header-contact-panel {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transform: translateY(.375rem) scale(.98);
    transform-origin: top right;
    transition: opacity .18s ease, transform .22s cubic-bezier(.2, .8, .2, 1), visibility 0s linear .22s;
    position: absolute;
    top: calc(100% + .6875rem);
    right: 0;
    z-index: 3;
    width: 16.75rem;
    padding: .9375rem;
    border: 1px solid #e3e8ef;
    border-radius: .75rem;
    background: #fff;
    box-shadow: 0 .5rem 2rem rgb(22 56 89 / 5%);
    font-size: .875rem;
    line-height: 1.5;
}
.geo-header .header-contact-menu:hover .header-contact-panel,
.geo-header .header-contact-menu:has(:focus-visible) .header-contact-panel {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0) scale(1);
    transition-delay: 0s;
}
@media (hover: none) {
    .geo-header .header-contact-menu:focus-within .header-contact-panel {
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
        transform: translateY(0) scale(1);
        transition-delay: 0s;
    }
}
.geo-header .header-contact-panel::before {
    content: "";
    position: absolute;
    right: 0;
    bottom: 100%;
    left: 0;
    height: 1.25rem;
}
@media (prefers-reduced-motion: reduce) {
    .geo-header .header-contact-panel { transition: none; transform: none; }
}
.geo-header .header-contact-panel p { color: #52677f; }
.geo-header .header-contact-panel p:not(:first-child) { margin-top: .75rem; }
.geo-header .header-contact-panel a { display: block; white-space: nowrap; color: #0b2441; }
.geo-header .header-contact-panel a:hover { color: #0875ff; }

.hero.geo-hero { height: 48.875rem; }
#geo-system {
    width: 100%;
    height: 0;
    padding-top: 42.7083333333%;
    background-image: url("../images/geo-system-hero-compressed.svg");
    background-position: center top;
    background-size: 100% auto;
    background-repeat: no-repeat;
}
.geo-hero-banner { position: relative; width: 100%; }
.geo-brand-intro { display: block; width: 79.2%; max-width: 90rem; margin: 0 auto 3rem; }
.geo-brand-intro > img { display: block; width: 100%; height: auto; }
@media (max-width: 760px) {
    .geo-brand-intro { width: calc(100% - 2.5rem); margin-bottom: 2rem; }
}
.geo-knowledge-intro { display: flex; justify-content: center; width: calc(100% - 3rem); max-width: 52.375rem; margin: 0 auto 4rem; }
.geo-knowledge-intro img { display: block; width: 100%; height: auto; }
@media (max-width: 767.98px) {
    #geo-system {
        padding-top: 122.6666666667%;
        background-image: url("../images/geo-system-hero-mobile-compressed.svg");
    }
}
.geo-hero .hero-content { padding-top: 7.25rem; }
.geo-hero .eyebrow { color: #10243e; font-size: 1.5rem; line-height: 2.25rem; font-weight: 700; letter-spacing: 0; }
.geo-hero .hero-services { display: flex; align-items: center; gap: 2rem; margin-top: .75rem; }
.geo-hero .hero-services a { display: flex; align-items: center; gap: .75rem; white-space: nowrap; }
.geo-hero .hero-service-icon {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: 1.875rem;
    height: 1.875rem;
    border-radius: .375rem;
    color: #168bff;
    background: linear-gradient(135deg, #c2dcff, #edf7ff 50%, #aad1ff);
    box-shadow: inset 0 0 .375rem rgb(142 190 255 / 35%);
}
.geo-hero .hero-service-icon .icon { width: 1.125rem; height: 1.125rem; stroke-width: 2.2; }
.geo-hero .hero-services strong { display: block; font-size: 1.125rem; font-weight: 600; line-height: 1.6875rem; color: #0b2441; }
.geo-hero .hero-services small { display: block; font-size: 1rem; line-height: 1.5rem; color: #52677f; }
.hero.geo-hero .hero-promise {
    width: 39rem;
    max-width: 100%;
    margin-top: 2.5rem;
    font-size: 2.625rem;
    font-weight: 700;
    line-height: 4rem;
    letter-spacing: .125rem;
}
.geo-hero .hero-promise span {
    display: block;
    width: fit-content;
    color: #126cda;
    background: linear-gradient(100deg, #004396, #187ded 65%, #3bbaff);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.geo-hero .hero-promise span:nth-child(2) { margin-left: auto; }
.geo-hero .hero-promise span:nth-child(3) { margin-left: 6rem; }
.geo-hero .hero-actions { gap: .875rem; margin-top: 1.6875rem; }
.geo-hero .hero-actions .btn { width: 8.9375rem; min-height: 3rem; padding: 0; gap: .5rem; border-radius: .5rem; font-size: .875rem; }
.geo-hero .hero-actions .icon { width: 1rem; height: 1rem; }
.geo-hero .hero-stats { grid-template-columns: 170fr 362fr 267fr 228fr 195fr 218fr; align-items: start; bottom: 5.5rem; }
.geo-hero .stat { height: 4.5rem; padding-left: 2.5rem; justify-content: flex-start; border-left-color: #bfdaf5; }
.geo-hero .stat:first-child { padding-left: 0; border-left: 0; }
.geo-hero .stat strong { font-size: 2.125rem; font-weight: 600; line-height: 2.875rem; color: #0b2441; }
.geo-hero .stat span { margin-top: .25rem; font-size: 1rem; line-height: 1.5rem; color: #52677f; white-space: nowrap; }

@media (max-width: 760px) {
    :root { scroll-padding-top: 10rem; }
    .site-header.geo-header { height: auto; min-height: 4.5rem; }
    .geo-header .header-inner { flex-wrap: wrap; gap: .875rem; padding: .75rem 0; }
    .geo-header .brand { max-width: calc(100% - 7rem); }
    .geo-header .main-nav { display: flex; order: 3; width: 100%; margin: 0; padding-bottom: .375rem; gap: 1.25rem; overflow-x: auto; scrollbar-width: none; font-size: .9rem; }
    .geo-header .main-nav::-webkit-scrollbar { display: none; }
    .geo-header .main-nav a:first-child { display: block; }
    .geo-header .header-contact-menu { margin-left: auto; }
    .geo-header .header-contact { width: 6rem; min-height: 2.25rem; font-size: .875rem; }
    .geo-header .header-contact-panel { width: 19rem; font-size: 1rem; }
    .hero.geo-hero { display: flex; flex-direction: column; height: auto; min-height: 0; }
    .geo-hero .hero-content { order: 1; padding-top: 2.5rem; }
    .geo-hero .eyebrow { font-size: 1.25rem; line-height: 1.5; }
    .geo-hero .hero-services { align-items: flex-start; flex-direction: column; gap: .875rem; margin-top: 1rem; }
    .geo-hero .hero-services strong { font-size: 1rem; line-height: 1.5; }
    .geo-hero .hero-services small { font-size: .875rem; line-height: 1.5; }
    .hero.geo-hero .hero-promise { width: 100%; margin-top: 1.5rem; font-size: 1.9rem; line-height: 1.65; letter-spacing: 0; }
    .geo-hero .hero-promise span:nth-child(3) { margin-left: auto; margin-right: auto; }
    .geo-hero .hero-actions { margin-top: 1.5rem; }
    .geo-hero .hero-actions .btn { width: 9rem; min-height: 2.8rem; font-size: .95rem; }
    .geo-hero .hero-art { position: relative; order: 2; top: auto; left: 50%; right: auto; width: 125%; height: auto; margin: 1.5rem 0 -1.5rem; transform: translateX(-50%); }
    .geo-hero .hero-stats { position: relative; order: 3; left: auto; right: auto; bottom: auto; width: calc(100% - 2.5rem); margin: 0 auto; padding: 0 0 2.5rem; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem .75rem; }
    .geo-hero .stat { height: auto; min-height: 5rem; padding-left: 1rem; }
    .geo-hero .stat:nth-child(odd) { padding-left: 0; border-left: 0; }
    .geo-hero .stat strong { font-size: 1.875rem; line-height: 1.35; }
    .geo-hero .stat span { font-size: .85rem; line-height: 1.5; white-space: normal; }
}

.geo-back-to-top {
    position: fixed;
    right: 24px;
    bottom: calc(24px + env(safe-area-inset-bottom, 0px));
    z-index: 90;
    display: block;
    width: 72px;
    height: 72px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    line-height: 0;
}
.geo-back-to-top[hidden] { display: none; }
.geo-back-to-top img { display: block; width: 100%; height: auto; }
@media (max-width: 760px) {
    .geo-back-to-top { right: 8px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); }
}
@media print {
    .geo-back-to-top { display: none; }
}

/* 原图宽 720，主体位于横向 40–680；补偿两侧透明留白，使画面铺满列宽。 */
#workbench-service .product-screen {
    width: 112.5%;
    max-width: none;
    height: auto;
    margin: auto -6.25% 0;
    padding-top: 2rem;
}
@media (max-width: 760px) {
    #workbench-service .product-screen { margin-top: 1.5rem; padding-top: 0; }
}

/* 大模型传播趋势：桌面三列两行，手机按阅读顺序单列。 */
.geo-communication { margin-bottom: 4rem; padding: 6.5rem 0 4.5rem; background: #fff; }
.geo-communication-heading { margin-bottom: 3.5rem; text-align: center; }
.geo-communication-heading h2 { color: #14263e; font-size: 2.75rem; font-weight: 700; line-height: 1.2; }
.geo-communication-heading > p { margin-top: 1.5rem; color: #607590; font-size: 1.125rem; line-height: 1.7; }
.geo-communication-heading > strong { display: block; margin-top: 1.25rem; font-size: 2.75rem; font-weight: 700; line-height: 1.25; }
.geo-communication-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.geo-communication-card { display: flex; align-items: center; gap: 1.25rem; min-width: 0; min-height: 7rem; padding: 1.5rem; border: 1px solid #dce7f6; border-radius: .75rem; background: #fff; box-shadow: 0 .875rem 2rem rgb(35 65 105 / 6%); }
.geo-communication-icon { display: grid; place-items: center; flex-shrink: 0; width: 3rem; height: 3rem; border-radius: .625rem; background: linear-gradient(135deg, #1765ff, #39bfff); color: #fff; }
.geo-communication-icon svg { width: 1.5rem; height: 1.5rem; }
.geo-communication-copy { min-width: 0; color: #1b304b; font-size: 1.5rem; line-height: 1.4; }
.geo-communication-copy h3 { font-size: inherit; font-weight: 400; overflow-wrap: anywhere; }
.geo-communication-copy p { font-size: inherit; font-weight: 700; overflow-wrap: anywhere; }
@media (max-width: 767.98px) {
    .geo-communication { margin-bottom: 3rem; padding: 3rem 0; }
    .geo-communication > .container { width: calc(100% - 2.5rem); }
    .geo-communication-heading { margin-bottom: 1.75rem; }
    .geo-communication-heading h2 { font-size: 1.65rem; }
    .geo-communication-heading > p { margin-top: .875rem; font-size: .875rem; line-height: 1.8; }
    .geo-communication-heading > strong { margin-top: .75rem; font-size: 1.65rem; }
    .geo-communication-grid { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
    .geo-communication-card { min-height: 5.5rem; padding: 1.125rem; gap: .875rem; }
    .geo-communication-icon { width: 2.75rem; height: 2.75rem; }
    .geo-communication-copy { font-size: 1rem; line-height: 1.5; }
}

/* 咨询表单：姓名与电话并排，公司和备注各占一行。 */
#consult-form .form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem .75rem;
}
#consult-form .form-field.full { grid-column: 1 / -1; margin-top: 0; }
#consult-form .form-field[hidden] { display: none; }
#consult-form .required { color: #e53935; }

/* Product subscription plans in a native modal. */
body.pricing-dialog-open { overflow: hidden; }
.pricing-dialog { width: min(92vw, 1330px); margin: auto; font-size: clamp(12px, 1.111111vw, 16px); max-width: none; max-height: 90dvh; padding: 1em 1.5em 2.5em; border: 1px solid #dce4ed; border-radius: 1em; color: var(--ink); background: #fff; box-shadow: 0 1.5em 4em #172c4026; }
.pricing-dialog::backdrop { background: rgb(0 0 0 / 52%); }
.pricing-dialog-header { display: flex; align-items: center; justify-content: space-between; gap: 1em; }
.pricing-dialog-logo { width: 11.5em; height: 2em; object-fit: contain; object-position: left center; }
.pricing-dialog-close { display: grid; place-items: center; width: 2em; height: 2em; padding: 0; border: 0; border-radius: 50%; color: #536579; background: transparent; font-size: 1.4em; line-height: 1; }
.pricing-dialog-close:hover { background: #edf4ff; }
.pricing-dialog #pricing { width: 72%; max-width: 57em; padding-top: 1em; margin: 0 auto; }
.pricing-dialog .section-heading h2 { font-size: 2em; line-height: 1.4; }
.pricing-dialog .section-heading p { margin-top: .5em; font-size: .75em; }
.pricing-dialog .pricing-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.125em; margin-top: 1.75em; }
.pricing-dialog .price-card { height: auto; min-height: 27.5em; padding: 1.25em 1.5em; border-radius: 1em; }
.pricing-dialog .plan-name { font-size: 1.125em; }
.pricing-dialog .price { margin-top: .75em; }
.pricing-dialog .price strong { font-size: 2em; }
.pricing-dialog .price .currency { font-size: 1.25em; }
.pricing-dialog .price .period { font-size: .625em; }
.pricing-dialog .plan-duration { margin-top: .5em; font-size: .8em; }
.pricing-dialog .plan-cta { min-height: 2.25em; margin-top: 1em; border-radius: 2em; font-size: .6875em; background: #2b70ff; }
.pricing-dialog .price-card ul { margin-top: 1em; padding-top: 1em; gap: .5em; }
.pricing-dialog .price-card li { font-size: .745em; line-height: 1.7; gap: .375em; }
.pricing-dialog .pricing-check-icon { width: .625em; height: auto; margin-top: .2em; }
.pricing-dialog .pricing-note { margin-top: 1em; padding: 0; font-size: .625em; }
@media (max-width: 767.98px) {
    .pricing-dialog { width: calc(100% - 1.5em); padding: .75em 1em 1.5em; border-radius: .875em; }
    .pricing-dialog-logo { width: 9em; }
    .pricing-dialog #pricing { width: 100%; padding-top: 1em; }
    .pricing-dialog .section-heading h2 { font-size: 1.35em; }
    .pricing-dialog .section-heading p { font-size: .7em; }
    .pricing-dialog .pricing-grid { grid-template-columns: 1fr; gap: 1em; margin-top: 1.25em; }
    .pricing-dialog .price-card { min-height: 0; padding: 1.25em; }
    .pricing-dialog .price-card li { font-size: .8em; }
    .pricing-dialog .plan-duration, .pricing-dialog .plan-cta { font-size: .8em; }
    .pricing-dialog .pricing-note br { display: none; }
}

.pricing-dialog:not([open]) { display: none; }
.pricing-dialog .price-card li::before { content: none; }
.pricing-dialog .pricing-title-glow { color: #238aff; background: linear-gradient(100deg, #246fff, #2bc1ff); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.pricing-dialog .pricing-check-icon { flex-shrink: 0; color: #6c8caf; font-size: 1em; line-height: 1.7; margin-top: 0; }
@media (max-width: 767.98px) { .pricing-dialog { font-size: 14px; } }

/* 可信知识资产：独立的双栏介绍与归集示意，避免影响既有百科卡片。 */
.geo-knowledge-assets { padding: 3.75rem 0 2.25rem; background: #fff; color: #1c304c; }
.geo-assets-inner { width: 75%; max-width: 90rem; margin: 0 auto; }
.geo-assets-heading { text-align: center; margin-bottom: 3.25rem; }
.geo-assets-heading h2 { font-size: 2.75rem; line-height: 1.4; font-weight: 700; letter-spacing: .02em; }
.geo-assets-heading h2 span { color: #278cff; background: linear-gradient(100deg, #3477ff, #28c4ff); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.geo-assets-heading p { margin-top: .625rem; color: #788ba6; font-size: 1.125rem; line-height: 1.8; }
.geo-assets-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.0678fr); align-items: stretch; gap: 0; }
.geo-assets-explainer { min-width: 0; padding: 2.25rem; border: 1px solid #3766bc; border-radius: 1rem; }
.geo-assets-explainer { color: white; background: linear-gradient(135deg, #102b72, #183b9e 60%, #2464b7); border-color: #3766bc; }
.geo-assets-explainer > h3 { position: relative; padding: 1.25rem 1.5rem; background: #fff; border-radius: .75rem; color: #218dff; font-size: 1.875rem; line-height: 1.5; font-weight: 700; }
.geo-assets-explainer > h3::after { content: ''; position: absolute; bottom: -1rem; left: 0; border-top: 1.25rem solid #fff; border-right: 1.25rem solid transparent; }
.geo-assets-answer { margin-top: 2.5rem; font-size: 1.5rem; line-height: 1.5; font-weight: 500; }
.geo-assets-points { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .625rem; margin-top: 1.25rem; }
.geo-assets-point { display: flex; align-items: center; gap: .8125rem; min-width: 0; padding: 1.5rem 1rem; border-radius: .625rem; background: rgb(62 145 235 / 16%); }
.geo-assets-icon { display: grid; place-items: center; flex-shrink: 0; width: 2.625rem; height: 2.625rem; border-radius: .4375rem; background: linear-gradient(135deg, #38c9ff, #2b73ff); color: #fff; box-shadow: inset 0 0 .2rem #ffffff40; }
.geo-assets-icon svg { width: 1.375rem; height: 1.375rem; }
.geo-assets-point h4 { font-size: 1.125rem; font-weight: 700; line-height: 1.5; }
.geo-assets-point p { font-size: .75rem; line-height: 1.7; margin-top: .125rem; color: #9bbce8; }
.geo-assets-conclusion { display: flex; align-items: center; gap: .625rem; margin-top: 1rem; padding: .75rem; border: 1px solid #518bda40; border-radius: .5rem; background: #3486d62b; font-size: 1.125rem; font-weight: 600; line-height: 1.5; }
.geo-assets-conclusion svg { flex-shrink: 0; width: 1.25rem; height: 1.25rem; color: #38afff; }
.geo-assets-diagram { display: block; align-self: stretch; width: 100%; height: 100%; min-width: 0; min-height: 0; object-fit: fill; border-radius: 0; }
.geo-assets-home { padding: 1rem; border: 1px solid #c9dfff; border-radius: .625rem; background: #f5f8fd; box-shadow: 0 .75rem 1.75rem #2046750b; }
.geo-assets-home-title { display: flex; align-items: center; gap: .75rem; margin-bottom: .75rem; }
.geo-assets-home-title > svg { width: 2.25rem; height: 2.25rem; color: #249bff; flex-shrink: 0; }
.geo-assets-home-title h3 { font-size: 1.5rem; font-weight: 700; letter-spacing: .05em; }
.geo-assets-home-title small { margin-left: auto; color: #2988ff; font-size: .5625rem; font-weight: 600; white-space: nowrap; }
.geo-assets-capabilities { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .375rem; }
.geo-assets-capabilities > div { display: flex; align-items: center; justify-content: center; gap: .75rem; min-height: 6.625rem; padding: .5rem; background: #fff; border-radius: .375rem; }
.geo-assets-capabilities strong { font-size: .875rem; white-space: nowrap; }
.geo-assets-merge { position: relative; flex: 1; min-height: 6.625rem; }
.geo-assets-merge > svg { display: block; position: absolute; width: 100%; height: 100%; }
.geo-assets-merge > span { position: absolute; bottom: 1.25rem; left: 0; width: 100%; text-align: center; font-size: .875rem; color: white; text-shadow: 0 1px 3px #408cff; }
.geo-assets-sources { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .375rem; }
.geo-assets-sources > div { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .75rem; min-height: 6.75rem; padding: .75rem .125rem; background: #f4f8ff; border: 1px solid #dfe8f7; border-radius: .375rem; }
.geo-assets-sources svg { width: 1.75rem; height: 1.75rem; color: #259fff; }
.geo-assets-sources strong { font-size: .9375rem; white-space: nowrap; }
@media (max-width: 760px) {
    .geo-knowledge-assets { padding: 2.5rem 0 3rem; }
    .geo-assets-inner { width: calc(100% - 2.5rem); }
    .geo-assets-heading { margin-bottom: 1.5rem; }
    .geo-assets-heading h2 { font-size: 1.625rem; }
    .geo-assets-heading p { font-size: .8125rem; }
    .geo-assets-grid { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
    .geo-assets-diagram { height: auto; object-fit: contain; }
    .geo-assets-explainer { padding: 1.125rem; }
    .geo-assets-explainer > h3 { font-size: 1.125rem; padding: .875rem; }
    .geo-assets-answer { font-size: 1rem; }
    .geo-assets-point { padding: .75rem .5rem; gap: .5rem; }
    .geo-assets-point h4 { font-size: .8125rem; }
    .geo-assets-conclusion { font-size: .75rem; }
    .geo-assets-home { padding: .75rem; }
    .geo-assets-home-title { gap: .5rem; }
    .geo-assets-home-title h3 { font-size: 1.125rem; }
    .geo-assets-home-title small { font-size: .5rem; }
    .geo-assets-capabilities > div { flex-direction: column; gap: .5rem; min-height: 5.5rem; }
    .geo-assets-capabilities strong { font-size: .75rem; }
    .geo-assets-sources strong { font-size: .75rem; }
    .geo-assets-sources > div { min-height: 5.5rem; }
}

/* Platform overview directly below the encyclopedia comparison. */
.encyclopedia-platform { margin-top: 6rem; padding-bottom: 4.75rem; }
.platform-showcase { padding-top: 5rem; overflow: hidden; background: linear-gradient(180deg, #f5f8fd 0%, #fafcfe 100%); text-align: center; }
.platform-showcase h2 { font-size: 2.75rem; font-weight: 650; line-height: 1.3; }
.platform-tagline { margin-top: .625rem; color: #142942; font-size: 2.75rem; font-weight: 650; line-height: 1.5; }
.platform-description { margin-top: .625rem; color: #6c809b; font-size: 1.125rem; line-height: 1.5; }
.platform-preview { width: 75rem; height: auto; margin: 2.5rem auto 0; }
.platform-benefits { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .75rem; margin-top: 2.5rem; }
.platform-benefit { position: relative; display: flex; align-items: center; min-height: 10rem; overflow: hidden; padding: 1.125rem; border: 1px solid #dce6f2; border-radius: 1rem; background: #f8fcff; }
.platform-benefit > div { position: relative; z-index: 1; }
.platform-benefit > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.platform-benefit h4 { display: flex; align-items: center; gap: .875rem; font-size: 1.25rem; font-weight: 600; line-height: 1.5; }
.platform-benefit .icon { width: 1.75rem; height: 1.75rem; color: #279cff; }
.platform-benefit p { margin-top: .75rem; color: #6c809b; font-size: 1rem; line-height: 1.5; }
@media (max-width: 760px) {
    .encyclopedia-platform { margin-top: 3rem; padding-bottom: 2rem; }
    .platform-showcase { padding-top: 2.5rem; }
    .platform-showcase h2 { font-size: 1.5rem; }
    .platform-tagline { font-size: 1.5rem; margin-top: .75rem; }
    .platform-description { margin-top: 1rem; font-size: .875rem; line-height: 1.7; }
    .platform-description br { display: none; }
    .platform-preview { margin-top: 1.5rem; width: 100%; }
    .platform-benefits { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 1.5rem; gap: .75rem; }
    .platform-benefit { min-height: 8rem; padding: .875rem; }
    .platform-benefit h4 { font-size: 1.125rem; gap: .625rem; }
    .platform-benefit p { font-size: .8125rem; }
    .platform-benefit:last-child { grid-column: 1 / -1; }
}

/* AI infrastructure carousel */
.geo-infrastructure { padding: 2.75rem 0 2.5rem; background: #f8fafc; }
.geo-infrastructure h2 { margin: 0 0 1.75rem; color: #14263e; text-align: center; font-size: 2.75rem; font-weight: 700; line-height: 1.5; }
.geo-infrastructure h2 span { color: #238aff; background: linear-gradient(90deg, #3d70ff, #20c5ff); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.geo-infrastructure { overflow: hidden; }
.geo-infrastructure h2 { margin-bottom: 56px; }
.geo-infrastructure-viewport { width: 100%; }
    .geo-poster-carousel {
      width: 100%;
      position: relative;
      user-select: none;
      touch-action: pan-y;
    }

    .geo-poster-carousel__viewport {
      width: 100%;
      height: min(584px, 38.2vw);
      position: relative;
      overflow: visible;
      cursor: grab;
    }

    .geo-poster-carousel__viewport:active { cursor: grabbing; }

    .geo-poster-carousel__stage {
      width: 100%;
      height: 100%;
      position: relative;
    }

    .geo-poster-card {
      width: min(1040px, 68vw);
      aspect-ratio: 2668 / 1500;
      position: absolute;
      left: 50%;
      top: 50%;
      overflow: hidden;
      transform: translate3d(calc(-50% + var(--x, 0%)), -50%, 0) scale(var(--scale, 1));
      transform-origin: center;
      border: 1px solid rgba(184, 211, 239, .9);
      border-radius: 4px;
      background: #eaf3ff;
      box-shadow: none;
      opacity: var(--opacity, 0);
      transition:
        transform 680ms cubic-bezier(.2, .75, .2, 1),
        opacity 520ms ease,
        filter 520ms ease,
        box-shadow 520ms ease;
      z-index: var(--z, 0);
      pointer-events: var(--pointer, none);
      filter: saturate(var(--saturation, 1)) brightness(var(--brightness, 1));
    }

    .geo-poster-card.is-active {
      box-shadow:
        0 30px 64px rgba(24, 67, 118, .14),
        0 -18px 44px rgba(36, 105, 186, .08),
        0 8px 24px rgba(16, 95, 190, .1);
    }

    .geo-poster-card__image {
      width: 100%;
      height: 100%;
      display: block;
      object-fit: contain;
      pointer-events: none;
    }

    .geo-poster-carousel__fade {
      width: clamp(70px, 18vw, 360px);
      height: 100%;
      position: absolute;
      top: 0;
      z-index: 20;
      pointer-events: none;
    }

    .geo-poster-carousel__fade--left {
      left: 0;
      background: linear-gradient(90deg, #f8fafc 4%, rgba(248, 250, 252, .96) 22%, rgba(248, 250, 252, .62) 58%, transparent 100%);
    }

    .geo-poster-carousel__fade--right {
      right: 0;
      background: linear-gradient(270deg, #f8fafc 4%, rgba(248, 250, 252, .96) 22%, rgba(248, 250, 252, .62) 58%, transparent 100%);
    }

    .geo-poster-carousel__nav {
      width: min(1040px, calc(100% - 40px));
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 16px;
      margin: 24px auto 0;
    }

    .geo-poster-carousel__dots {
      min-height: 28px;
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 8px;
    }

    .geo-poster-carousel__dot {
      width: 8px;
      height: 8px;
      padding: 0;
      border: 0;
      border-radius: 999px;
      background: #cdd5df;
      cursor: pointer;
      transition: width 200ms ease, background 200ms ease;
    }

    .geo-poster-carousel__dot[aria-current="true"] {
      width: 34px;
      background: var(--blue);
    }

    @media (max-width: 900px) {
      .geo-poster-carousel__viewport { height: min(427px, 47.2vw); }
      .geo-poster-card { width: min(760px, 84vw); }
      .geo-poster-carousel__fade { width: clamp(44px, 10vw, 90px); }
    }

    @media (max-width: 600px) {

      .geo-poster-carousel__viewport { height: calc(56.2vw - 22px); }
      .geo-poster-card { width: calc(100vw - 40px); border-radius: 3px; }

      .geo-poster-carousel__fade { width: 34px; }
      .geo-poster-carousel__nav { margin-top: 24px; gap: 12px; }
      .geo-poster-carousel__dots { gap: 6px; }
      .geo-poster-carousel__dot { width: 6px; height: 6px; }
      .geo-poster-carousel__dot[aria-current="true"] { width: 24px; }
    }

    @media (prefers-reduced-motion: reduce) {
      .geo-poster-card { transition: none; }
    }

.geo-poster-card.is-active { --opacity: 1; --z: 10; }
.geo-poster-carousel__dot:focus-visible { outline: 2px solid #1478ff; outline-offset: 4px; }
.geo-poster-carousel:not(.is-ready) .geo-poster-card:not(:first-child) { visibility: hidden; }
@media (max-width: 760px) { .geo-infrastructure { padding: 2rem 0; } .geo-infrastructure h2 { font-size: 1.625rem; } }

/* GEO workbench: matching showcase and two rows of four capabilities. */
.geo-workbench-platform { padding-bottom: 4.75rem; background: #f8fafc; }
.geo-workbench-platform .platform-description { max-width: 80rem; margin-left: auto; margin-right: auto; }
.workbench-features { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; padding-top: 2.5rem; }
.workbench-feature { min-width: 0; min-height: 8rem; padding: 1rem; border: 1px solid #edf1f7; border-radius: 1rem; background: #fff; }
.workbench-feature h3 { display: flex; align-items: center; gap: .75rem; color: #273c57; font-size: 1.25rem; font-weight: 600; line-height: 1.5; }
.workbench-feature-icon { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; flex-shrink: 0; border-radius: .5rem; color: #299bff; background: #eaf4ff; }
.workbench-feature-icon .icon { width: 1.25rem; height: 1.25rem; stroke-width: 2.2; }
.workbench-feature p { margin-top: .625rem; color: #6c809b; font-size: 1rem; line-height: 1.5; }
@media (max-width: 760px) {
    .geo-workbench-platform { padding-bottom: 2.5rem; }
    .workbench-features { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; padding-top: 1.5rem; }
    .workbench-feature { padding: .875rem; }
    .workbench-feature h3 { gap: .5rem; font-size: .9375rem; }
    .workbench-feature-icon { width: 1.75rem; height: 1.75rem; }
    .workbench-feature p { font-size: .8125rem; line-height: 1.65; }
}
@media (max-width: 360px) {
    .workbench-features { grid-template-columns: 1fr; }
}

/* Subscription plan labels are intentionally non-interactive. */
.pricing-dialog .plan-cta:disabled {
    font-size: .8rem;
    letter-spacing: 2px;
    width: 100%;
    min-height: 3em;
    border-radius: 999px;
    color: #fff;
    background: #2b70ff;
    font-weight: 600;
    opacity: 1;
    cursor: default;
    transform: none;
    box-shadow: none;
}
