/* Shared public-site rhythm. Component exceptions stay explicit so demos and
   private tools keep their own presentation. See DESIGN-AUDIT.md. */
.public-site .section,.public-site .studio-home .section { padding-block: var(--section-space); }
.public-site .page-hero,.public-site .trust-page .trust-hero { padding-block: var(--section-space); }
.public-site .page-hero h1,.public-site .trust-page .trust-hero h1,
.public-site .assessment-intro h1,.public-site .page-internal .page-title {
    font-size: var(--type-title); line-height: 1.13; letter-spacing: -.045em;
    text-wrap: balance; max-width: 1000px; margin-bottom: 18px;
}
.public-site .page-hero p:not(.eyebrow):not(.platform-note),
.public-site .page-internal .page-subtitle { font-size: var(--type-body); line-height: 1.8; max-width: 70ch; }
.public-site .eyebrow,.public-site .page-hero .eyebrow { font-size: var(--type-caption); letter-spacing: .09em; margin-bottom: 16px; }
.public-site .trust-page .trust-hero .platform-note { font-size: .8125rem; line-height: 1.75; max-width: 78ch; color: #52647c; }
.public-site .breadcrumbs { font-size: .8125rem; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.public-site h2,.public-site h3 { text-wrap: balance; }
.public-site .trust-heading h2,.public-site .studio-home h2 { font-size: var(--type-section); letter-spacing: -.04em; }
.public-site .studio-hero h1 { font-size: clamp(2.5rem, 1.35rem + 3.2vw, 4rem); letter-spacing: -.045em; line-height: 1.09; }
.public-site .studio-hero .studio-lead { font-size: var(--type-body); }
.public-site .studio-text-link,.public-site .btn,.public-site .filter-chip { font-size: var(--type-label); min-height: 44px; }
.public-site .lang-btn { font-size: var(--type-caption); min-width: 36px; min-height: 44px; }
.public-site .nav-link { min-height: 44px; display: flex; align-items: center; }
.public-site .nav-list { gap: 12px; }
.public-site .nav-actions { gap: 12px; }
.public-site .nav-cta { font-size: .8125rem; }
.public-site .form-jump { display: inline-flex; margin-top: 24px; gap: 14px; }
.public-site :is([id],.form-message) { scroll-margin-top: calc(var(--header-height) + 24px); }
.public-site .form-card { background: #fff; border-radius: var(--radius-lg); }
.public-site .form-heading h2 { font-size: clamp(1.5rem,2.5vw,2rem); line-height: 1.25; }
.public-site .quote-assurance h2 { line-height: 1.25; }
.public-site .form-heading p,.public-site .form-required-note,.public-site .form-direct-contact>p { font-size: var(--type-label); }
.public-site .form-group label { font-size: var(--type-label); color: #344b65; }
.public-site .form-group input,.public-site .form-group select,.public-site .form-group textarea { border-color: #7c8da5; transition: border-color var(--motion-hover), box-shadow var(--motion-hover); }
.public-site .form-group :is(input,select,textarea):focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px #2256e81a; }
.public-site .form-message { line-height: 1.7; scroll-margin-bottom: 110px; }
.public-site .form-message.is-success { color: #155c3a; background: #edf8f0; border: 1px solid #95bf9f; }
.public-site .form-message.is-error { color: #922b2b; background: #fff3f1; border: 1px solid #d6a29b; }
.public-site form[aria-busy=true] [type=submit] { cursor: progress; opacity: .8; }
.public-site .form-privacy,.public-site .editorial-figure figcaption>span { font-size: var(--type-caption); }
.public-site .service-goals a { min-height: 44px; display: inline-flex; align-items: center; font-size: var(--type-label); }
.public-site .service-core>p,.public-site .service-detail-content p,.public-site .case-copy>p:not(.eyebrow) { font-size: var(--type-body); line-height: 1.8; }
.public-site .service-core ul,.public-site .service-detail-content ul { font-size: .9375rem; }
.public-site .case-features li { font-size: var(--type-caption); }
.public-site .case-index>span,.public-site .case-image-label { font-size: var(--type-caption); }
.public-site .case-browser-bar { font-size: .6875rem; overflow-wrap: anywhere; }
.public-site .case-insights p,.public-site .case-insights li { font-size: .9375rem; }
.public-site .case-copy h3 { font-size: clamp(1.5rem,2.1vw,1.875rem); line-height: 1.25; }
.public-site .case-copy { padding: clamp(24px,3vw,38px); }
.public-site .case-image { display: flex; flex-direction: column; justify-content: center; }
.public-site .case-image img { object-fit: contain; }
.public-site .case-toggle { transition: transform var(--motion-hover) var(--motion-ease); }
.public-site .footer-column a { display: inline-flex; align-items: center; min-height: 36px; font-size: var(--type-label); }
.public-site .footer-description { font-size: var(--type-label); }
.public-site .planner-option,.public-site .planner-feature { font-size: var(--type-label); }
.public-site .planner-summary p { font-size: var(--type-label); }
.public-site .planner-types,.public-site .planner-features { gap: 12px; }
.page-models .split { grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 40px; }
.page-models .split-media img { width: 100%; height: auto; object-fit: contain; aspect-ratio: 1265/712; }
.page-models .split-media { min-height: 0; align-self: center; }
.page-models .split-content p { font-size: .9375rem; line-height: 1.75; }
.page-models .split-content h2 { font-size: clamp(1.5rem,2.5vw,2rem); }
.public-site .filters-bar input { min-height: 50px; font-size: var(--type-body); }

/* The product preview is a usable interface, including on touch screens. */
.public-site .system-summary { min-height: 54px; flex-wrap: wrap; gap: 6px 14px; }
.public-site .system-identity,.public-site .system-demo-label,.public-site .system-heading p,
.public-site .system-stats span,.public-site .system-card-type,.public-site .system-card-footer,
.public-site .system-bottom p,.public-site .system-empty { font-size: var(--type-caption); line-height: 1.6; }
.public-site .studio-home .system-heading h2 { font-size: 24px!important; }
.public-site .system-toolbar { flex-wrap: wrap; }
.public-site .system-toolbar button,.public-site .system-advance,.public-site .system-bottom button { font-size: .8125rem; min-height: 44px; }
.public-site .system-column h3 { font-size: var(--type-caption); white-space: normal; flex-wrap: wrap; }
.public-site .system-column h3>span:last-child { font-size: .6875rem; }
.public-site .system-card strong,.public-site .system-activity li { font-size: .8125rem; }
.public-site .system-card-type,.public-site .system-card-footer,.public-site .system-bottom p,.public-site .system-empty { color: #52647c; }
.public-site .demo-label { color: #8b4615; }
.public-site .system-stats>div { padding: 12px; }
.public-site .system-bottom { align-items: center; }
.public-site .system-pipeline { max-height: 330px; }

/* Existing editorial pages share the brand surface and readable article width. */
body.public-site .page-internal { padding-top: 0; }
.public-site .page-internal .internal-hero {
    padding-block: var(--section-space); background-color: #f6f5f1;
    background-image: linear-gradient(90deg,#f6f5f1 0%,#f6f5f1ed 70%,#f6f5f1b3),var(--brand-ivory-art);
    background-position: center,right center; background-size: cover,auto 150%; background-repeat: no-repeat;
}
.public-site .page-internal .hero-content.text-center { text-align: left; }
.public-site .page-internal .hero-content.text-center .page-subtitle { margin-inline: 0; }
.public-site .legal-container { grid-template-columns: 240px minmax(0,1fr); }
.public-site .legal-container>* { min-width: 0; }
.public-site .legal-content { max-width: 78ch; overflow-wrap: anywhere; }
.public-site .legal-content p,.public-site .legal-content li { font-size: var(--type-body); line-height: 1.85; }
.public-site .legal-sidebar { background: transparent; padding: 0; border: 0; }
.public-site .blog-card-image { aspect-ratio: 16/9; height: auto; }
.public-site .blog-card-placeholder { background: #eceae3 var(--brand-ivory-art) center/cover; aspect-ratio: 16/9; }
.public-site .blog-card:nth-child(2n) .blog-card-placeholder { background-image: var(--brand-navy-art); }
.public-site .blog-card:nth-child(3n) .blog-card-placeholder { background-image: var(--brand-warm-art); }
.public-site .blog-card-placeholder i { display: none; }
.public-site .blog-card-title { line-height: 1.4; }
.public-site .blog-grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,300px),1fr)); }
.public-site .blog-card { min-width: 0; }

/* Motion gives feedback; reading and navigation never depend on it. */
.public-site .btn,.public-site .filter-chip,.public-site .capability,.public-site .model-card {
    transition: transform var(--motion-hover) var(--motion-ease),border-color var(--motion-hover),background-color var(--motion-hover),box-shadow var(--motion-hover);
}
.public-site .studio-text-link>span[aria-hidden],.public-site .btn>span[aria-hidden] { transition: transform var(--motion-hover) var(--motion-ease); }
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
    .public-site .btn:hover { transform: translateY(-2px); }
    .public-site .btn:active { transform: translateY(0); }
    .public-site .studio-text-link:hover>span[aria-hidden] { transform: translateX(3px); }
    .public-site .capability:hover { transform: translateY(-3px); }
    .public-site .model-card:hover { transform: translateY(-3px); }
}
@media(prefers-reduced-motion:no-preference) {
    .public-site .motion-enter { animation: studio-enter var(--motion-enter) var(--motion-ease) both; }
    @keyframes studio-enter { from { opacity: .88; transform: translateY(10px); } to { opacity: 1; transform: none; } }
}
@media(prefers-reduced-motion:reduce) {
    .public-site .motion-enter { animation: none; }
    .public-site :is(.btn,.capability,.model-card,.case-image):hover,
    .public-site .case-image:hover img { transform: none; }
}
@media(hover:none), (pointer:coarse) {
    .public-site :is(.btn,.capability,.model-card):hover,
    .public-site .case-image:hover img { transform: none; }
}
@media(max-width:1100px) {
    .public-site .studio-hero-grid { grid-template-columns: 1fr; gap: 36px; padding-block: 44px; min-height: 0; }
    .public-site .studio-hero h1 { max-width: 760px; }
    .public-site .studio-hero .studio-lead { max-width: 60ch; }
    .public-site .system-playground { width: 100%; max-width: 740px; }
    .public-site .service-core-grid { grid-template-columns: 1fr; }
}
@media(max-width:900px) {
    .public-site .page-hero { background-image: linear-gradient(90deg,#f6f5f1fa 0%,#f6f5f1ed 70%,#f6f5f1c9),var(--brand-ivory-art); }
    .public-site .case-study,.public-site .case-1 { grid-template-columns: 1fr; }
    .public-site .case-1 .case-image { order: 0; }
    .public-site .case-image { padding: 24px 24px 0; }
    .public-site .planner-layout,.page-models .split { grid-template-columns: 1fr; }
    .public-site .planner-summary { position: static; }
    .public-site .legal-container { grid-template-columns: minmax(0,1fr); }
    .public-site .legal-sidebar { position: static; display: block; }
    .public-site .legal-nav ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 20px; }
    .public-site .legal-updated { margin-top: 16px; }
}
@media(max-width:600px) {
    .public-site .page-hero,.public-site .trust-page .trust-hero { padding-block: 32px; }
    .public-site .page-internal .internal-hero { background-image: linear-gradient(#f6f5f1de,#f6f5f1f5),var(--brand-ivory-art); }
    .public-site .studio-home .section { padding-block: 44px; }
    .public-site .studio-hero .btn,.public-site .studio-hero .studio-text-link { font-size: var(--type-label); }
    .public-site .studio-hero .studio-note { font-size: var(--type-caption); }
    .public-site .form-card { padding: 24px 20px; }
    .public-site .assessment-hero-grid { gap: 28px; }
    .public-site .assessment-promises { gap: 10px; }
    .public-site .assessment-intro h1 { margin-block: 14px 20px; }
    .public-site .system-pipeline { grid-template-columns: 1fr; max-height: 420px; gap: 12px; }
    .public-site .system-column { padding: 14px; }
    .public-site .system-card { padding: 12px; }
    .public-site .system-toolbar button { padding-inline: 10px; }
    .public-site .system-bottom { flex-wrap: wrap; }
    .public-site .system-stats strong { font-size: 26px; }
    .public-site .planner-types,.public-site .planner-features { grid-template-columns: 1fr; }
    .public-site .legal-nav ul { grid-template-columns: 1fr; }
    .public-site .legal-content { padding: 24px 20px; }
    .public-site .footer-column a { min-height: 44px; }
    .public-site .cta-actions { gap: 12px; }
}
/* Owner-supplied portrait, shared by the introduction and About page. */
.public-site .care-portrait { display: block; width: 112px; height: 112px; flex: 0 0 112px; object-fit: cover; border-radius: 14px; }
.public-site .client-care .care-person { min-width: 0; }
.public-site .client-care .care-person>div { min-width: 0; }
.public-site .gilbert-figure img { aspect-ratio: 4 / 5; max-height: 520px; object-position: center top; }
.public-site .gilbert-figure figcaption strong { font-size: 20px; font-weight: 600; }
.public-site .gilbert-figure figcaption>span { font-size: 14px; }
@media (min-width: 761px) and (max-width: 1024px) { .public-site .client-care .care-person { flex-direction: column; align-items: flex-start; } }

/* Complete GC Pixel Studio lockup in the About-page promise panel. */
.public-site .studio-mark {
    display: flex;
    flex-direction: column;
    gap: 20px;
    justify-content: center;
    align-items: center;
}
.public-site .studio-mark-icon { display: block; line-height: 0; }
.public-site .studio-mark-icon svg { display: block; width: clamp(64px, 7vw, 82px); height: auto; }
.public-site .studio-mark-name {
    color: #fff;
    font-size: clamp(1.45rem, 2.7vw, 2rem);
    font-weight: 700;
    letter-spacing: -.045em;
    line-height: 1.1;
    text-align: center;
}
.public-site .studio-mark-name>span { color: #60a5fa; }

