/* Shared keyboard, contrast and reflow rules for public pages and tools. */
body { line-height: 1.5; }
.search-page, .gigus-error { --muted: #52677e; }
main, .shell, .hero-grid, .searchbox, .search-entry, .section-head > * { min-width: 0; }
a, p, h1, h2, li, dd { overflow-wrap: anywhere; }
.skip-link {
  position: fixed; top: .5rem; left: .5rem; z-index: 1000;
  padding: .8rem 1rem; border: 2px solid #fff; border-radius: .5rem;
  background: #143052; color: #fff !important; font-weight: 700;
  transform: translateY(-200%);
}
.skip-link:focus { transform: none; }
.visually-hidden {
  position: absolute !important; width: 1px !important; height: 1px !important;
  padding: 0 !important; margin: -1px !important; overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important;
}
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid #0758bc !important; outline-offset: 3px;
}
.tool-page :focus-visible { outline-color: #e8bb72 !important; }
main[tabindex="-1"]:focus:not(:focus-visible) { outline: none; }
.language-picker, .tool-language { flex-wrap: wrap; }
.language-picker button, .tool-language button {
  min-height: 2.75rem; margin: 0; padding: .45rem .75rem;
  border: 1px solid #667c94; border-radius: .6rem;
  background: #fff; color: #143052; font: inherit; font-size: .85rem;
  font-weight: 650; cursor: pointer;
}
.language-picker select, .tool-language select { min-height: 2.75rem; border-color: #667c94; }
.search-page .topbar, .domain-page .topbar, .bot-page .topbar { flex-wrap: wrap; }
.search-entry, .search-page .search-filters select { border-color: #71859b; }
.search-page .search-entry input::placeholder { color: #52677e; opacity: 1; }
/* The surrounding search entry provides the focus indicator; avoid a second inner frame. */
.search-page .search-entry input:focus-visible { outline: none !important; box-shadow: none; }
.search-page .search-entry button, .gigus-error .primary-button {
  color: #fff; background: linear-gradient(135deg, #0867de, #0758cc);
}
.search-page .search-entry button:hover, .gigus-error .primary-button:hover { background: #0758cc; }
.search-page .hero-description, .search-page .search-filters label,
.search-page .section-head p, .search-page footer { color: #52677e; }
.search-page footer { font-size: .85rem; }
footer a { display: inline-block; min-height: 1.5rem; text-decoration: underline; text-underline-offset: .2em; }
.search-page .search-filters select { min-height: 2.75rem; }
.search-scope { display: flex; justify-content: center; flex-wrap: wrap; gap: .35rem 1.5rem; border: 0; padding: 0; margin: .85rem 0 0; min-width: 0; }
.search-scope label { display: flex; align-items: center; gap: .5rem; min-height: 2.75rem; color: #52677e; font-size: .85rem; text-align: left; cursor: pointer; }
.search-page .searchbox .search-scope input { appearance: auto; flex: 0 0 auto; width: 1.1rem; height: 1.1rem; min-height: 0; margin: 0; padding: 0; accent-color: #0867de; }
.search-active .search-scope { justify-content: flex-start; }
.ai-shortcuts { margin: 1.5rem auto 0; max-width: 46rem; }
.ai-shortcuts h2 { margin: 0 0 .7rem; color: #52677e; font-size: .85rem; font-weight: 650; letter-spacing: .02em; }
.ai-chat-links { display: flex; justify-content: center; flex-wrap: wrap; gap: .5rem; padding: 0; margin: 0; list-style: none; }
.ai-chat-links a {
  display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
  min-height: 2.75rem; padding: .5rem .85rem; border: 1px solid #71859b;
  border-radius: .75rem; background: #ffffffc9; color: #143052;
  font-size: .8rem; font-weight: 600; line-height: 1.4; text-decoration: none;
}
.ai-chat-links a:hover { border-color: #0867de; background: #edf5ff; color: #0758bc; }
.ai-chat-links a span { color: #52677e; }
.ai-shortcuts .ai-links-note { margin: .65rem 0 0; color: #52677e; font-size: .75rem; line-height: 1.5; }
.search-active .ai-shortcuts { display: none; }
#location-filters[hidden], .searchbox:not(:has(#scope-international:checked)) #location-filters { display: none; }
@media (max-width: 600px) {
  .search-scope { flex-direction: column; gap: 0; }
}
.search-page .hero h1 { line-height: 1.2; }
.search-active .hero h1 { display: none; }
.search-active #results-title { margin: 0; font: 650 1.15rem/1.5 ui-sans-serif, system-ui, sans-serif; letter-spacing: -.025em; }
.result h2 { margin: 0; font: inherit; }
.search-page .result p { color: #52677e; }
.search-page .result .meta { align-items: baseline; gap: .6rem; }
.search-page .result .url {
  flex: 1; min-width: 0; color: #315640; font-size: .9rem; font-weight: 500;
  line-height: 1.6; white-space: normal; overflow: visible;
  overflow-wrap: anywhere; text-overflow: clip;
}
.search-page .badge { color: #306799; }
.search-page .result-title:hover { text-decoration: underline; }
.search-home .promoted-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: visible; }
.search-page .promo strong, .search-page .promo span { white-space: normal; overflow-wrap: anywhere; }
.search-page .promo span { color: #52677e; }
#search-content[aria-busy="true"] { opacity: 1; }
.domain-submit input, .searchbox input { scroll-margin-block: 1rem; }
.tool-page input, .tool-page textarea, .tool-language select { border-color: #81958a; }
.tool-page code { overflow-wrap: anywhere; }
.tool-page a:not(.bookmark):not(.skip-link) { color: #e8bb72; text-decoration: underline; }
@media (max-width: 900px) {
  .search-home .promoted-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .search-page .topbar { gap: .6rem; }
  .search-page .language-picker { margin-left: auto; }
  .search-page .language-picker select { max-width: 8rem; }
  .search-page .search-entry { flex-wrap: wrap; }
  .search-page .search-entry input { min-width: 7rem; }
  .search-page .search-entry button { min-height: 2.75rem; }
  .search-home .promoted-grid { grid-template-columns: minmax(0, 1fr); }
  .search-home footer { font-size: .8rem; }
  .search-filters label { overflow-wrap: anywhere; }
  .search-page .search-filters select { max-width: 100%; padding-left: .5rem; }
  .tool-page { padding: .75rem; }
  .tool-page main { padding: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
@media (forced-colors: active) {
  .search-entry:focus-within { outline: 3px solid Highlight; outline-offset: 3px; }
  .search-entry, .search-page .result, .search-page .promo { border: 1px solid CanvasText; }
  .search-page .search-entry button, .gigus-error .primary-button { border: 1px solid ButtonText; }
}
