/* Editorial layer, explicitly opted in by public pages. Blog and app layouts stay isolated. */
.gb-editorial { --reading-ink: #424e60; --reading-rule: #cbd2db; --reading-panel: #f0f3f6; }
[data-theme="dark"] .gb-editorial { --reading-ink: #c6cfda; --reading-rule: #465567; --reading-panel: #1c2938; }
.gb-editorial .content :is(section, div, figure)[id] { scroll-margin-top: 92px; }
.gb-editorial .content :is(h2,h3):not(.sr-only) { white-space: normal; text-wrap: pretty; overflow-wrap: anywhere; }
.gb-editorial .content h2:not(.sr-only):not(.package-name):not(.home-report-title) {
  font-size: clamp(26px, 2.35vw, 36px); line-height: 1.22; letter-spacing: -.035em;
  font-weight: 720; max-width: 30ch; margin-block: 0 22px;
}
.gb-editorial .content h3 { font-size: clamp(19px, 1.6vw, 22px); line-height: 1.35; letter-spacing: -.02em; }
.gb-editorial .content :is(p,li,dd) { line-height: 1.75; }
.gb-editorial .content :is(.muted,.desc,.data-value,.feature-item-text,.problem-text p,.dash-list,.gb-proof-grid dd) { color: var(--reading-ink); }
.gb-editorial .content :is(.seo-section-lead,.ai-section-lead,.feature-card-desc) { font-size: 18px; line-height: 1.75; max-width: 68ch; }
.gb-editorial .content :is(.data-label,.s01-eyebrow) { font-size: 12px; line-height: 1.5; font-weight: 700; letter-spacing: .09em; margin-block: 0 16px; }
.gb-editorial .content :is(.card,.module-section,.gb-founder-copy) > p { max-width: 72ch; }
.gb-editorial .content :is(.gb-hub-section,.seo-section-card,.ai-section-card) p:not(.data-label):not(.price-hint) { font-size: 17px; }
.gb-editorial .content .gb-price-terms { max-width: none; font-size: 14px; }
.gb-editorial .content :is(.problem-cta-hint,.gb-editorial-link) a,
.gb-editorial .gb-editorial-link { color: var(--text); text-decoration: underline; text-underline-offset: 5px; font-weight: 600; }
.gb-editorial :is(.gb-editorial-link,.gb-chapter-nav a):hover { text-decoration-thickness: 2px; }
.gb-editorial .content :is(summary,.gb-editorial-link,.gb-chapter-nav a):focus-visible { outline: 2px solid var(--text); outline-offset: 5px; border-radius: 3px; }

/* Full-width chapters, controlled text measure, and space between ideas rather than nested boxes. */
.gb-editorial #dashboard.gb-hub { max-width: 1280px; }
.gb-editorial #dashboard.gb-hub .gb-hub-section { margin-block: clamp(40px, 5vw, 72px); }
.gb-editorial #dashboard.gb-hub > :is(.card,.module-section):not(.gb-proof-block):not(.dash-packages):not(.gb-service-choice) {
  border: 0; border-top: 1px solid var(--reading-rule); border-radius: 0; background: transparent;
  box-shadow: none; padding: clamp(32px, 4vw, 52px) 0 0;
}
.gb-editorial #dashboard .hero-subtitle { max-width: 76ch; }
.gb-editorial #dashboard .dash-hero { margin-bottom: 24px; }
.gb-editorial #dashboard .gb-hub-pillars { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.gb-editorial #dashboard .gb-hub-pillars > .card { border-top: 3px solid var(--accent-solid); padding: clamp(24px, 3vw, 36px); box-shadow: none; }
.gb-editorial #dashboard .gb-hub-pillars h3 { font-size: clamp(24px, 2vw, 30px); max-width: 22ch; margin: 12px 0 20px; }
.gb-editorial #dashboard .gb-hub-pillars .btn { margin-block: 6px; }
.gb-editorial #dashboard .gb-hub-support { padding: 24px 28px; box-shadow: none; background: var(--reading-panel); }
.gb-editorial #dashboard .problem-item { padding: 0 16px 0 0; background: transparent; box-shadow: none; border: 0; }
.gb-editorial #dashboard .problem-text strong { font-size: 21px; line-height: 1.4; }
.gb-editorial .gb-chapter-nav { display: flex; flex-wrap: wrap; gap: 8px 24px; border-block: 1px solid var(--reading-rule); padding-block: 14px; margin-bottom: 32px; }
.gb-editorial .gb-chapter-nav a { display: inline-flex; gap: 12px; align-items: center; min-height: 40px; color: var(--text); font-size: 14px; font-weight: 600; text-decoration: none; }
.gb-editorial .gb-chapter-nav span { color: var(--reading-ink); font-size: 12px; }

/* The supplied panorama is never cropped. The biography follows as a two-column editorial caption. */
.gb-editorial .gb-founder { border: 0; }
.gb-editorial .gb-founder-photo { margin: 0; }
.gb-editorial .gb-founder-photo img { display: block; width: 100%; height: auto; aspect-ratio: 5/2; border-radius: 18px; }
.gb-editorial .gb-founder-photo figcaption { margin-top: 12px; font-size: 13px; color: var(--reading-ink); }
.gb-editorial .gb-founder-copy { display: grid; grid-template-columns: 1fr 1.25fr; gap: clamp(24px, 4vw, 64px); margin-top: 32px; }
.gb-editorial .gb-founder-copy p:first-child { margin-top: 0; }
.gb-editorial .gb-founder-copy .data-label { color: var(--reading-ink); }
.gb-editorial .gb-founder-copy h2 { max-width: 21ch; }

/* Proof reads as a documented project, visually distinct from the offer. */
.gb-editorial .gb-proof-block { position: relative; padding: clamp(24px, 4vw, 44px); border-radius: 18px; border: 1px solid var(--reading-rule); background: var(--reading-panel); box-shadow: none; }
.gb-editorial .gb-proof-block .gb-proof-grid { gap: 0 40px; }
.gb-editorial .gb-proof-grid > div { background: transparent; border: 0; border-top: 1px solid var(--reading-rule); border-radius: 0; padding: 18px 0; }
.gb-editorial .gb-proof-grid dt { font-size: 12px; letter-spacing: .06em; margin-bottom: 7px; }
.gb-editorial .gb-proof-grid dd { margin: 0; max-width: 65ch; font-size: 16px; }
.gb-editorial #glasrein-arbeit { border: 1px solid var(--reading-rule); background: var(--reading-panel); padding: clamp(24px,4vw,44px); border-radius: 18px; }
.gb-editorial #glasrein-arbeit .seo-engine-grid { counter-reset: proof; gap: 28px; }
.gb-editorial #glasrein-arbeit .seo-mini-card { counter-increment: proof; padding: 24px 0 0; background: transparent; border: 0; border-top: 1px solid var(--reading-rule); box-shadow: none; }
.gb-editorial #glasrein-arbeit .seo-mini-card::before { content: '0' counter(proof); display: block; color: var(--reading-ink); font-size: 32px; letter-spacing: -.04em; margin-bottom: 18px; }

/* Creative work: three different glass glyphs, one connected sequence. */
.gb-editorial .gb-creative-steps { gap: 28px; margin-block: 32px; counter-reset: creative; }
.gb-editorial .gb-creative-steps > .seo-mini-card { position: relative; counter-increment: creative; background: transparent; border: 0; box-shadow: none; padding: 0; }
.gb-editorial .gb-creative-steps > .seo-mini-card::after { content: '0' counter(creative); position: absolute; right: 0; top: 14px; color: var(--reading-ink); font-size: 16px; }
.gb-editorial .gb-creative-steps h3 { border-top: 1px solid var(--reading-rule); padding-top: 22px; margin-top: 24px; }
.gb-editorial .gb-creative-steps .gb-service-glyph { width: 80px; height: 80px; }

/* Secondary depth stays in the server-rendered page, behind a native disclosure. */
.gb-editorial .gb-reading-details { margin-block: 36px; border-block: 1px solid var(--reading-rule); }
.gb-editorial .gb-reading-details > summary { cursor: pointer; padding: 25px 0; font-size: clamp(19px,1.7vw,24px); font-weight: 650; line-height: 1.4; list-style: revert; }
.gb-editorial .gb-reading-details > summary::marker { color: var(--text); }
.gb-editorial .gb-reading-details > summary span { display: block; font-size: 14px; font-weight: 400; line-height: 1.6; color: var(--reading-ink); margin-top: 8px; }
.gb-editorial .gb-reading-details > section { margin-block: 24px 40px; }
.gb-editorial .gb-growth-platforms { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.gb-editorial .gb-growth-platform { padding: 20px 0; background: transparent; border: 0; border-top: 1px solid var(--reading-rule); border-radius: 0; }
.gb-editorial .gb-growth-horizon { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px; margin-top: 32px; }
.gb-editorial .gb-growth-horizon-card { border: 0; border-top: 3px solid var(--accent-solid); border-radius: 0; background: transparent; box-shadow: none; padding: 22px 0 0; }
.gb-editorial .gb-growth-horizon-card h3 { font-size: 24px; }
.gb-editorial #dashboard .how-steps { gap: 24px; }
.gb-editorial #dashboard .how-step { padding: 20px 0; border: 0; border-top: 1px solid var(--reading-rule); background: transparent; box-shadow: none; }

/* Reusable glass plot, drawn with SVG; labelled synthetic both visually and for assistive technology. */
.gb-editorial .gb-measurement { display: grid; grid-template-columns: .95fr 1.2fr; gap: 28px 40px; margin: 36px 0; padding: clamp(22px,3vw,36px); border: 1px solid var(--reading-rule); border-radius: 18px; background: linear-gradient(125deg,#ffffff30,transparent 55%),var(--reading-panel); }
.gb-editorial .gb-measurement h3 { font-size: 26px; margin-block: 0 18px; }
.gb-editorial .gb-measurement .gb-example-label { border-left: 3px solid var(--accent-solid); padding-left: 12px; font-size: 14px; font-weight: 600; line-height: 1.6; color: var(--text); }
.gb-editorial .gb-measurement-plot { min-width: 0; align-self: center; }
.gb-editorial .gb-measurement-plot > p { margin-top: 0; }
.gb-editorial .gb-measurement-plot > p span { display: block; font-size: 13px; color: var(--reading-ink); }
.gb-editorial .gb-measurement svg { width: 100%; height: auto; overflow: visible; }
.gb-editorial .gb-chart-grid { stroke: var(--reading-rule); stroke-width: 1; }
.gb-editorial .gb-chart-text { fill: var(--reading-ink); font-size: 15px; }
.gb-editorial .gb-chart-values { fill: var(--text); font-size: 16px; font-weight: 650; }
.gb-editorial .gb-chart-area { fill: #ff783d1f; }
.gb-editorial .gb-chart-line { stroke: var(--text); stroke-width: 3; stroke-linejoin: round; }
.gb-editorial .gb-chart-points { fill: var(--accent-solid); stroke: var(--text); stroke-width: 2; }
.gb-editorial .gb-chart-data summary { padding: 10px 0; cursor: pointer; color: var(--text); font-size: 14px; }
.gb-editorial .gb-measurement > figcaption { grid-column: 1/-1; border-top: 1px solid var(--reading-rule); padding-top: 16px; color: var(--reading-ink); font-size: 13px; line-height: 1.65; }

/* Sales pages use the same chapter hierarchy without touching accepted controls. */
.gb-editorial .solution-page { --solution-section-gap: 40px; }
.gb-editorial .solution-page :is(.state-business,.state-engineering) > .card:not(.seo-offer-card):not(.gb-proof-block):not(.card--cta),
.gb-editorial .solution-page > .ai-section-card,
.gb-editorial .solution-page > .seo-section-card:not(.gb-service-choice) {
  padding: 36px 0; margin-block: 0 24px; background: transparent; border: 0; border-top: 1px solid var(--reading-rule); border-radius: 0; box-shadow: none;
}
.gb-editorial .solution-page .feature-grid { gap: 28px; margin-top: 28px; }
.gb-editorial .solution-page .feature-grid strong { display: block; font-size: 20px; line-height: 1.4; }
.gb-editorial .solution-page .service-hero-proof { align-self: center; }
.gb-editorial .solution-page .service-proof-card { background: linear-gradient(130deg,#ffffff50,transparent 60%),var(--reading-panel); border: 1px solid var(--reading-rule); box-shadow: inset 0 1px #ffffff40; }
.gb-editorial .solution-page .gb-service-grid > div { background: var(--reading-panel); box-shadow: none; }
.gb-editorial .solution-page .gb-service-grid h3 { max-width: 24ch; }
.gb-editorial .gb-steps { gap: 24px; counter-reset: rag; }
.gb-editorial .gb-step { counter-increment: rag; position: relative; padding: 26px 22px; border: 1px solid var(--reading-rule); border-radius: 16px; background: linear-gradient(130deg,#ffffff50,transparent 65%),var(--reading-panel); box-shadow: inset 0 2px #ffffff40; }
.gb-editorial .gb-step::before { content: '0' counter(rag); display: block; margin-bottom: 22px; color: var(--reading-ink); font-size: 30px; line-height: 1; letter-spacing: -.04em; }
.gb-editorial .gb-step strong { display: block; font-size: 19px; line-height: 1.35; }
.gb-editorial .gb-step p { margin-bottom: 0; }
.gb-editorial .ai-view-grid > div { border-top: 3px solid var(--reading-rule); padding-top: 20px; }
.gb-editorial .ai-view-grid > div:first-child { border-top-color: var(--accent-solid); }
.gb-editorial :is(.ai-build-grid,.ai-proof-grid) { gap: 24px; }
@media (min-width: 760px) {
  .gb-editorial :is(.ai-build-grid,.ai-proof-grid) { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
.gb-editorial :is(.ai-build-grid,.ai-proof-grid) > div { border: 0; border-top: 1px solid var(--reading-rule); border-radius: 0; background: transparent; padding: 20px 0; }
.gb-editorial .s01-page .s01-section { scroll-margin-top: 110px; }
.gb-editorial .s01-page h2 { font-size: clamp(28px,2.7vw,39px); }
.gb-editorial .s01-page .s01-hero-board h2 { font-size: 30px; }
.gb-editorial .s01-page .s01-deliverables { gap: 28px 44px; }
.gb-editorial .s01-page .s01-deliverables dt { font-size: 22px; }
.gb-editorial .s01-page .s01-deliverables dd { font-size: 17px; max-width: 54ch; }

/* A simple page wireframe gives the Web service a tangible visual explanation. */
.gb-editorial .gb-reading-map { margin: 32px 0 52px; padding: clamp(24px,4vw,44px); background: var(--reading-panel); border: 1px solid var(--reading-rule); border-radius: 18px; }
.gb-editorial .gb-reading-map ol { list-style: none; margin: 28px 0 0; padding: 0; }
.gb-editorial .gb-reading-map li { display: grid; grid-template-columns: 48px 1fr 160px; align-items: center; gap: 24px; border-top: 1px solid var(--reading-rule); padding-block: 24px; }
.gb-editorial .gb-reading-map li h3 { margin: 0 0 8px; }
.gb-editorial .gb-reading-map li p { margin: 0; max-width: 50ch; }
.gb-editorial .gb-map-number { font-size: 28px; letter-spacing: -.04em; color: var(--reading-ink); }
.gb-editorial .gb-wireframe { display: grid; gap: 9px; border: 1px solid var(--reading-rule); background: var(--bg-elev); padding: 18px; border-radius: 10px; box-shadow: inset 0 2px #ffffff60, 0 8px 18px #1428400a; }
.gb-editorial .gb-wireframe i { height: 5px; width: 85%; background: var(--reading-rule); border-radius: 3px; }
.gb-editorial .gb-wireframe i:first-child { height: 9px; width: 65%; background: var(--text); }
.gb-editorial .gb-wireframe--1 { grid-template-columns: 1fr 1fr; }
.gb-editorial .gb-wireframe--1 i:first-child { grid-column: 1/-1; }
.gb-editorial .gb-wireframe--1 i:not(:first-child) { height: 28px; width: 100%; border: 1px solid var(--reading-rule); background: transparent; }
.gb-editorial .gb-wireframe--2 i:last-child { height: 13px; width: 58%; background: var(--accent-solid); }

/* Long utility documents also need real headings and an appropriate reading measure. */
.gb-editorial.gb-utility .content h2:not(.sr-only):not(.package-name):not(.home-report-title) { font-size: clamp(23px,2vw,30px); margin-top: 32px; }
.gb-editorial.gb-utility .content :is(p,li) { max-width: 75ch; }
.gb-editorial.gb-utility .content :is(.legal-section,.privacy-section) { margin-bottom: 32px; }

@media (max-width: 1199px) {
  .gb-editorial .gb-growth-horizon { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 819px) {
  .gb-editorial #dashboard .gb-hub-pillars,
  .gb-editorial .gb-founder-copy,
  .gb-editorial .gb-measurement { grid-template-columns: minmax(0,1fr); }
  .gb-editorial .gb-founder-copy { gap: 26px; }
  .gb-editorial .gb-founder-copy h2 { max-width: 26ch; }
  .gb-editorial .gb-reading-map li { grid-template-columns: 32px 1fr; gap: 16px; }
  .gb-editorial .gb-wireframe { grid-column: 2; width: min(160px,100%); box-sizing: border-box; }
  .gb-editorial .gb-chapter-nav { gap: 6px 18px; }
}
@media (max-width: 540px) {
  .gb-editorial .gb-growth-horizon,
  .gb-editorial .gb-growth-platforms { grid-template-columns: minmax(0,1fr); }
  .gb-editorial #dashboard.gb-hub .gb-hub-section { margin-block: 40px; }
  .gb-editorial .gb-founder-photo img { border-radius: 10px; }
  .gb-editorial .gb-measurement { padding: 18px; }
  .gb-editorial .gb-measurement-plot > p { font-size: 16px; }
  .gb-editorial :is(.gb-chart-text,.gb-chart-values) { font-size: 21px; }
  .gb-editorial .gb-reading-map { padding: 22px; }
  .gb-editorial .content h2:not(.sr-only):not(.package-name):not(.home-report-title) { font-size: 26px; }
}
@media (forced-colors: active) {
  .gb-editorial .gb-chart-line,.gb-editorial .gb-chart-grid,.gb-editorial .gb-chart-points { stroke: CanvasText; }
  .gb-editorial .gb-chart-text,.gb-editorial .gb-chart-values { fill: CanvasText; }
  .gb-editorial .gb-chart-points { fill: Highlight; }
  .gb-editorial .gb-chart-area { fill: none; }
}
