.search-page {
  --blue: #0867de;
  --ink: #143052;
  --muted: #64788e;
  --line: #e0e9f2;
  background: #f8fbff;
}
.search-page::before {
  background: radial-gradient(ellipse at 50% 20%, #e0efff 0, transparent 56%),
    linear-gradient(180deg, #fff 0%, #f8fbff 75%);
  background-size: auto;
  mask-image: none;
}
.search-page .shell { width: min(70rem, calc(100% - 3rem)); }
.search-page .topbar { padding: 1.5rem 0; gap: 1.5rem; }
.search-page .brand { font-size: 1.5rem; letter-spacing: -.06em; color: #0756b7; }
.brand-dot { width: .45rem; height: .45rem; border-radius: 50%; background: #ffb82e; align-self: flex-end; margin-bottom: .4rem; }
.header-add { margin-left: auto; color: var(--ink); font-size: .82rem; font-weight: 600; text-decoration: none; }
.header-add span { margin-left: .35rem; color: var(--blue); }
.search-page .language-picker { margin-left: 0; }
.search-page .language-picker select { background: #ffffffb3; border-radius: 999px; }
.search-page .hero {
  margin: 0; padding: 1.25rem 0 3rem; overflow: visible;
  border-radius: 0; background: transparent; color: var(--ink); box-shadow: none;
}
.search-page .hero::before { display: none; }
.search-page .hero-grid { max-width: 48rem; margin: auto; text-align: center; }
.hero-logo { display: block; width: min(20rem, 75%); margin: 0 auto 1.1rem; }
.hero-logo img { display: block; width: 100%; height: auto; filter: drop-shadow(0 14px 20px #2672bd1a); }
.search-page .hero h1 {
  margin: 0 0 .7rem; font-family: inherit; font-size: clamp(2rem, 5vw, 3.2rem);
  font-weight: 750; line-height: 1.12; letter-spacing: -.055em;
}
.hero-description { margin: 0 0 1.8rem; color: var(--muted); font-size: .98rem; line-height: 1.6; }
.search-page .searchbox { display: block; padding: 0; background: transparent; box-shadow: none; }
.search-entry {
  display: flex; align-items: center; gap: .75rem; padding: .5rem .5rem .5rem 1.25rem;
  border: 1px solid #cbdced; border-radius: 1.25rem; background: #fff;
  box-shadow: 0 8px 32px #1c6fc315, 0 2px 6px #14305206;
  transition: border-color .2s, box-shadow .2s;
}
.search-entry:focus-within { border-color: var(--blue); box-shadow: 0 0 0 4px #0867de14, 0 10px 32px #1c6fc315; }
.search-icon { flex: 0 0 auto; color: #7a94af; }
.search-page .search-entry input { flex: 1; width: 0; min-height: 3rem; padding: 0; background: transparent; font-size: 1rem; }
.search-page .search-entry input::placeholder { color: #8192a5; }
.search-page .search-entry button {
  display: flex; align-items: center; gap: 1.25rem; min-height: 3rem; padding: 0 1.4rem;
  border-radius: .85rem; background: linear-gradient(135deg, #1387fa, #0758cc);
  box-shadow: 0 4px 10px #0867de26; font-size: .9rem; font-weight: 650;
}
.search-page .search-entry button:hover { background: #0758cc; }
.search-filters { display: flex; justify-content: center; align-items: center; gap: .65rem; margin-top: 1rem; }
.search-filters label { color: var(--muted); font-size: .75rem; }
.search-page .search-filters select {
  min-height: 2.4rem; max-width: 13rem; border: 1px solid var(--line); border-radius: .65rem;
  background-color: #ffffffb3; font-size: .78rem;
}
.search-filters label[for="country"] { margin-left: .5rem; }
.search-page .section { margin: 1.75rem 0 3rem; padding-top: 1.75rem; border-top: 1px solid var(--line); }
.search-page .section-head h2 { font-family: inherit; font-size: 1.1rem; font-weight: 650; line-height: 1.3; letter-spacing: -.025em; }
.search-page .section-head p { font-size: .78rem; }
.search-page .promo { padding: 1.5rem; border-radius: 1rem; background: #fff; }
.search-page .promo:hover { border-color: #92beef; box-shadow: 0 10px 24px #14305208; }
.search-page .promo small { color: #3974ac; letter-spacing: .08em; }
.search-page .promo strong { font-family: inherit; font-size: 1rem; font-weight: 650; }
.search-page .promo-empty { border-style: solid; background: #ffffff80; padding: 1.6rem; }
.search-page .results { margin: 1rem auto 3rem; max-width: 48rem; }
.search-page .result { border-color: var(--line); background: #fff; box-shadow: 0 3px 12px #14305203; }
.search-page .result-title { color: #0758bc; font-family: inherit; font-size: 1.1rem; font-weight: 600; line-height: 1.45; overflow-wrap: anywhere; }
.search-page .badge { background: #edf5ff; color: #3974ac; }
.search-page .url { color: #57806d; }
.search-page footer { padding: 1.5rem 0 2rem; line-height: 1.7; }
.search-page a:focus-visible, .search-page select:focus-visible, .search-page button:focus-visible {
  outline: 3px solid #0867de; outline-offset: 4px;
}
@media (max-width: 600px) {
  .search-page .shell { width: calc(100% - 2rem); }
  .search-page .topbar { gap: .8rem; padding: 1rem 0; }
  .header-add { font-size: .72rem; }
  .search-page .hero { padding: 1.5rem 0 2rem; }
  .hero-logo { width: min(16rem, 80%); }
  .hero-description { font-size: .86rem; margin-bottom: 1.4rem; }
  .search-entry { padding-left: .85rem; gap: .5rem; border-radius: 1rem; }
  .search-icon { width: 18px; }
  .search-page .search-entry input { font-size: 1rem; }
  .search-page .search-entry button { padding: 0 .9rem; font-size: .8rem; }
  .search-entry button span { display: none; }
  .search-filters { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .4rem .65rem; text-align: left; }
  .search-filters label[for="continent"] { grid-column: 1; grid-row: 1; }
  .search-filters label[for="country"] { grid-column: 2; grid-row: 1; margin: 0; }
  .search-page .search-filters select { width: 100%; max-width: none; }
  .search-page .section { margin-top: 1rem; }
  .search-page .section-head { gap: .4rem; }
}

/* The error page keeps its HTTP 404 response while sharing the search identity. */
.gigus-error {
  --ink: #143052; --muted: #64788e; --blue: #0867de;
  background: radial-gradient(ellipse at 50% 20%, #e0efff, transparent 65%), #f8fbff;
}
.gigus-error .error-card {
  width: min(42rem, 100%); padding: clamp(1.5rem, 5vw, 3rem);
  border-color: #e0e9f2; border-radius: 1.5rem; background: #ffffffd9;
  box-shadow: 0 16px 60px #1c6fc310;
}
.gigus-error .error-language { margin-bottom: .5rem; }
.error-logo { display: block; width: min(15rem, 80%); margin: 0 auto 1.5rem; }
.error-logo img { display: block; width: 100%; height: auto; }
.gigus-error .error-code { color: #0867de; font-weight: 750; }
.gigus-error .error-card h1 {
  margin: .85rem 0; font-family: inherit; font-size: clamp(2rem, 6vw, 3rem);
  font-weight: 750; line-height: 1.12; letter-spacing: -.05em;
}
.gigus-error .primary-button {
  color: #fff;
  min-height: 3rem; padding: 0 1.4rem; border-radius: .85rem;
  background: linear-gradient(135deg, #1387fa, #0758cc); font-weight: 650;
}
.gigus-error .primary-button:hover { background: #0758cc; }
.gigus-error a:focus-visible { outline: 3px solid #0867de; outline-offset: 4px; }

/* A full-height landing page and a compact layout once a query is present. */
.search-page > .shell { min-height: 100svh; }
.search-home #search-main { display: flex; flex-direction: column; justify-content: flex-start; margin-top: 3rem; }
.search-home .hero { flex: 0 0 auto; padding: 1rem 0 1.5rem; }
.search-home .hero-logo { width: min(18rem, 28svh, 70%); margin-bottom: .75rem; }
.search-home .hero h1 { font-size: clamp(1.75rem, 4vw, 2.6rem); }
.search-home .hero-description { max-width: 42rem; margin: 0 auto 1.25rem; }
.search-home .section { margin: .5rem 0 1rem; padding-top: 1rem; }
.search-home .promo { padding: .85rem 1rem; }
.search-home .promo small { margin-bottom: .35rem; }
.search-home .promoted-grid { display: flex; gap: .8rem; overflow-x: auto; padding-bottom: .5rem; }
.search-home .promo { flex: 0 0 calc((100% - 1.6rem) / 3); }
.search-home footer { padding: 1rem 0; }
.search-active .topbar { padding: 1rem 0; }
.search-active .hero { padding: .25rem 0 1.25rem; border-bottom: 1px solid var(--line); }
.search-active .hero-logo, .search-active .hero h1, .search-active .hero-description { display: none; }
.search-active .hero-grid { max-width: 48rem; }
.search-active .search-filters { justify-content: flex-start; margin-top: .75rem; }
.search-active #search-content { display: flex; flex-direction: column; }
.search-active .results { order: 0; width: min(48rem, 100%); margin: 1.5rem auto 2rem; }
.search-active .promoted-section { order: 1; margin: 0 0 2rem; }
.search-active .results > .section-head h2 { font: 650 1.1rem/1.4 ui-sans-serif, system-ui, sans-serif; letter-spacing: -.025em; overflow-wrap: anywhere; }
#search-content { transition: opacity .15s; }
#search-content[aria-busy="true"] { opacity: .5; cursor: progress; }
.results:focus { outline: none; }
@media (max-height: 750px) and (min-width: 601px) {
  .search-home .topbar { padding: .8rem 0; }
  .search-home .hero-logo { width: min(13rem, 25svh); }
  .search-home .hero-description { margin-bottom: .85rem; font-size: .85rem; }
  .search-home .hero { padding: .5rem 0 1rem; }
}
@media (max-width: 600px) {
  .search-home .hero-logo { width: min(14rem, 24svh, 70%); }
  .search-home .hero-description { font-size: .8rem; margin-bottom: 1rem; }
  .search-home .topbar { padding: .75rem 0; }
  .search-home footer { gap: .3rem; padding: .75rem 0; font-size: .68rem; }
  .search-home .promo { flex-basis: 80%; }
  .search-active .hero { padding-bottom: 1rem; }
  .search-active .results { margin-top: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  #search-content { transition: none; }
}
