/* GPU WORLD palette refinements. Load after the shared page styles.
   Keep the forest, cream and lime identity; strengthen small text and controls. */
.gw-page {
  --gw-muted: #53665a;
}

.gw-page .gw-card-top > span,
.gw-page .gw-row-number,
.gw-page .gw-step-number,
.gw-page .gw-brand-strip p {
  color: #526448;
}

/* A deliberate, readable minimum for secondary labels at every breakpoint. */
.gw-page .gw-kicker,
.gw-page .gw-mini-label,
.gw-page .gw-audience-row .gw-mini-label,
.gw-page .gw-card-top > span,
.gw-page .gw-step-number,
.gw-page .gw-row-number,
.gw-page .gw-brand-strip p,
.gw-page .gw-hero-foot,
.gw-page .gw-visual-top,
.gw-page .gw-visual-bottom,
.gw-page .gw-visual-bottom > span:last-child,
.gw-page .gw-art-caption,
.gw-page .gw-breadcrumb {
  font-size: 11px;
}

.gw-page .gw-hero-foot,
.gw-page .gw-breadcrumb {
  flex-wrap: wrap;
}

.gw-page .gw-hero-foot { row-gap: 8px; }
.gw-page .gw-art-caption { color: #b4c3a7; }

/* Dark green is visible against cream; lime is visible against dark panels. */
.gw-page a:focus-visible,
.gw-page button:focus-visible,
.gw-page summary:focus-visible,
.gw-page input:focus-visible,
.gw-page select:focus-visible,
.gw-page textarea:focus-visible {
  outline: 3px solid #42682d;
  outline-offset: 4px;
}

.gw-page .gw-home-hero :focus-visible,
.gw-page .gw-page-hero :focus-visible,
.gw-page .gw-closing :focus-visible,
.gw-page .gw-region-global:focus-visible,
.gw-page .gw-region-global :focus-visible {
  outline-color: #b8f16b;
}

/* The mobile WhatsApp focus outline sits inside the lime button. */
.gw-mobile-contact > a:last-child:focus-visible {
  outline-color: #10271f;
}

/* Controls must remain identifiable on both white and pale green surfaces. */
.gw-page .gw-catalog-tools input,
.gw-contact-page .form-field input,
.gw-contact-page .form-field textarea,
.gw-contact-page .form-field select {
  border-color: #74876a;
}

.gw-page .gw-editorial .gw-button-outline {
  border-color: #74876a;
}

.gw-contact-page .form-field input:focus,
.gw-contact-page .form-field textarea:focus,
.gw-contact-page .form-field select:focus {
  border-color: #3f6b29;
}

.gw-contact-page .form-field input:user-invalid { border-color: #a92b28; }

@media (max-width: 600px) {
  .gw-page .gw-hero-foot { column-gap: 16px; }
  .gw-page .gw-visual-top,
  .gw-page .gw-visual-bottom,
  .gw-page .gw-visual-bottom > span:last-child,
  .gw-page .gw-art-caption { font-size: 10px; }
}

/* Keep the viewport as the sticky header's scroll container. */
body { overflow-x: clip; }

/* Keep small-screen artwork clean; the HTML caption describes the system. */
@media (max-width: 600px) { .gw-art-annotation { display:none; } }

/* Reserve the fixed mobile contact bar when the navigation scrolls. */
@media (max-width: 720px) {
  .gw-mobile-menu { max-height:calc(100dvh - 170px - env(safe-area-inset-bottom, 0px)); }
}
