/* Sylvain Gengo · Visual system 20.0
 * Presentation only: no editorial, URL, form or tool logic changes.
 * Loaded after style.css. Portal presentation keeps its own stylesheet.
 */
:root {
  --sg-brand-blue: #087cf0;
  --sg-brand-blue-deep: #075fbd;
  --sg-violet: #087cf0;
  --sg-violet-deep: #075fbd;
  --sg-violet-light: #73baff;
  --sg-ink: #10243f;
  --sg-ink-soft: #526277;
  --sg-gris: #526277;
  --sg-paper: #fbfdff;
  --sg-paper-soft: #f3f8fe;
  --sg-paper-violet: #eef6ff;
  --sg-paper-cyan: #eef9fc;
  --sg-line: #dce7f2;
  --sg-shadow: 0 12px 34px -20px rgb(16 36 63 / 22%);
  --sg-radius: 24px;
}

body { color: var(--sg-ink); background: var(--sg-paper); }
::selection { color: #fff; background: #075fbd; }
main { --wp--preset--color--contrast: var(--sg-ink); }
main :is(h1,h2,h3,h4) { text-wrap: balance; }
main :is(p,li) { overflow-wrap: break-word; }
main :is(section,[id]) { scroll-margin-top: 112px; }
main .sg-display {
  font-size: clamp(2.5rem, 5.65vw, 4.75rem) !important;
  line-height: 1.075 !important;
  letter-spacing: -.048em !important;
}
main .sg-title {
  font-size: clamp(1.9rem, 3.55vw, 3rem) !important;
  line-height: 1.12 !important;
  letter-spacing: -.038em !important;
}
main .sg-lead { font-size: clamp(1.05rem, 1.45vw, 1.2rem); line-height: 1.7; }
main .sg-eyebrow {
  color: #075fbd !important;
  font-size: .7rem !important;
  letter-spacing: .14em;
  line-height: 1.65;
}
main .sg-gradient-text:not(.sg-rolling-text) {
  background-image: linear-gradient(110deg, #087cf0, #0676c0 55%, #087f92);
}
.sg-rolling-text--settled .sg-roll-char {
  color: var(--sg-roll-color, #087cf0) !important;
  -webkit-text-fill-color: var(--sg-roll-color, #087cf0) !important;
}
/* A clear, aligned first screen across service, local, hub and tool pages. */
main .sg-page-hero,
main .sg-resources-hero,
main .sg-article-hero {
  padding-block: calc(88px + clamp(40px, 4.5vw, 64px)) clamp(56px, 6vw, 84px) !important;
}
main .sg-local-hero .sg-lead { margin-inline: 0; max-width: 65ch; }
main .sg-page-hero:has(h1:not(.has-text-align-center)) .sg-lead { margin-inline: 0; }
main .sg-page-hero h1,
main .sg-resources-hero h1 { margin-block: .7rem 1.5rem; }
main .sg-local-hero .sg-display { max-width: 20ch; }
main .sg-resources-hero .sg-display { max-width: 20ch; }
main .sg-hero {
  min-height: 0;
  padding-block: calc(88px + clamp(36px, 4vw, 56px)) clamp(56px, 7vw, 96px) !important;
}
main .sg-hero .sg-display { font-size: clamp(2.6rem, 4.25vw, 4.15rem) !important; max-width: 19ch; margin-block: .6rem 1.4rem; }
main .sg-hero__grid { align-items: center; gap: clamp(2rem, 4vw, 4rem); }
main .sg-hero .sg-lead { font-size: 1.065rem; line-height: 1.7; }
main .sg-hero .sg-proof { margin-top: 1.5rem; }
main .sg-proof { gap: .6rem; }
main .sg-proof__item { padding: .5rem .75rem; border: 1px solid #d1e2f4; border-radius: 999px; font-size: .76rem; }
/* Stable labels, animated light: the five search engines never collide. */
main .sg-orbit { box-sizing: border-box; padding: .75rem; border: 1px solid #d1e2f4; border-radius: 36px; background: radial-gradient(ellipse at center,#fff,#eef6ff); box-shadow: 0 28px 64px -40px rgb(8 95 189 / 28%); }
main .sg-orbit__ring, main .sg-orbit__sat { animation: none; }
main .sg-orbit__ring > circle:first-child { stroke: #bed5ec; }
main .sg-orbit__sat rect { fill: #10243f; stroke: #73baff; }
main .sg-orbit__core circle:nth-child(2) { fill: #10243f; }
main .sg-aurora::before {
  background: radial-gradient(40% 50% at 10% 18%, rgb(8 124 240 / 14%), transparent 70%), radial-gradient(40% 50% at 92% 38%, rgb(56 189 248 / 12%), transparent 70%);
}
.sg-resources-hero, .sg-article-hero {
  background: radial-gradient(ellipse at 88% 15%, #e4f3ff, transparent 58%), linear-gradient(150deg,#fff,#f2f7ff);
}
main .sg-local-section { padding-block: clamp(56px, 7vw, 96px); }
main .sg-section { padding-block: clamp(56px, 7vw, 96px) !important; }
main .sg-resource-index { padding-block: clamp(56px, 7vw, 96px); }
main .sg-split > *, main .sg-hero__grid > * { min-width: 0; }

/* Reusable surface language: opaque whites, crisp hairlines, restrained depth. */
main :is(.sg-bento__cell,.sg-card,.sg-tool-card,.sg-stat,.sg-resource-card,.sg-local-query-grid > div) {
  border: 1px solid var(--sg-line);
  border-radius: var(--sg-radius);
  background-color: #fff;
  box-shadow: var(--sg-shadow);
}
main :is(.sg-card,.sg-bento__cell,.sg-resource-card,.sg-tool-card) {
  transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
main :is(.sg-card,.sg-bento__cell,.sg-tool-card):hover {
  border-color: #a8caee;
  box-shadow: 0 20px 42px -24px rgb(8 95 189 / 30%);
}
main .sg-bento__tag { color: #075fbd; font-size: .7rem; letter-spacing: .1em; }
main :is(.sg-card,.sg-bento__cell) h3 { line-height: 1.3; letter-spacing: -.02em; }
main :is(.sg-card,.sg-bento__cell) p { color: var(--sg-ink-soft); line-height: 1.7; }
main .sg-local-answer {
  background: linear-gradient(125deg, #eef6ff, #f7fcff);
  border: 1px solid #cee2f7;
  border-radius: 24px;
  box-shadow: var(--sg-shadow);
  padding: clamp(1.5rem, 3.5vw, 2.8rem);
}
main .sg-local-answer::before { background: linear-gradient(90deg,#087cf0,#38bdf8); }
main :is(.sg-badge,.sg-pill,.sg-proof__item,.sg-anchors a,.sg-resource-topics span) {
  color: #27517f !important;
  -webkit-text-fill-color: #27517f;
  background: #f0f6fd;
  border-color: #d1e2f4;
  box-shadow: none;
}
main :is(.sg-roi-hero__trust,.sg-maps-diagnostic-hero__trust) span {
  color: #27517f !important;
  -webkit-text-fill-color: #27517f !important;
  background: #eaf3fe !important;
  border-color: #c9dff5 !important;
}
main :is(.sg-local-source, figcaption) { color: #5b6c80 !important; line-height: 1.65; }
main .sg-local-links a { background: #fff; color: #075fbd; border-color: #d1e2f4; min-height: 42px; }
main .sg-local-hubs a { background: #eef6ff; }
main .sg-case { background: linear-gradient(140deg,#fff 45%,#f1f8ff); border-color: #d1e2f4; box-shadow: var(--sg-shadow); }
main .sg-case::before { background: linear-gradient(90deg,#087cf0,#38bdf8); }
main .sg-case .sg-case__metric { background: #eef6ff; border-color: #d1e2f4; }
main .sg-case__metric b { color: #075fbd; -webkit-text-fill-color: #075fbd; background: none; }
main .sg-case__metric span, main .sg-case__source { color: #526277; }
main .sg-case__what h4 { color: #075fbd; }

/* CTA hierarchy: brand blue primary / navy secondary, same geometry everywhere. */
body .wp-site-blocks .sg-arrow-fill {
  font-size: .9rem !important;
  min-width: 0 !important;
  max-width: 100%;
  white-space: normal !important;
  box-shadow: 0 8px 20px -10px rgb(8 95 189 / 45%) !important;
}
body .wp-site-blocks .wp-block-button.is-style-outline > .wp-block-button__link.sg-arrow-fill,
body .wp-site-blocks a.sg-arrow-fill.sg-arrow-fill--secondary {
  --sg-af-bg: #10243f;
  --sg-af-text: #fff;
  --sg-af-fill: #fff;
  --sg-af-fill-text: #10243f;
  --sg-af-arrow: #10243f;
  border-color: #10243f !important;
}
main .wp-block-buttons { flex-wrap: wrap !important; gap: .8rem !important; }
main .wp-block-buttons > .wp-block-button { min-width: 0; max-width: 100%; }
.wp-site-blocks > header .wp-block-navigation li.sg-nav-cta > a.sg-arrow-fill {
  --sg-af-bg: #087cf0;
  --sg-af-text: #fff;
  font-size: .95rem !important;
}
main .sg-cta {
  border: 1px solid #254365;
  border-radius: 28px;
  background: #0b203b !important;
  box-shadow: 0 24px 58px -28px rgb(16 36 63 / 45%);
}
main .sg-cta :is(h2,h3) { color: #fff !important; }
main .sg-cta :is(p,.sg-lead) { color: #cfdeef !important; }
main .sg-cta .sg-eyebrow { color: #96caff !important; }
main .sg-local-cta { padding-block: clamp(2.6rem, 5.5vw, 4.8rem); }
main .sg-local-cta .sg-title { max-width: 25ch; margin-inline: auto; }

/* Editorial pages and resources share the service typography and blue surfaces. */
.sg-article-hero h1 { font-size: clamp(2.4rem, 4.8vw, 4.2rem); line-height: 1.1; letter-spacing: -.045em; max-width: 24ch; }
.sg-article-back { margin-bottom: 1.75rem; }
.sg-article-meta { color: #526277; }
.sg-article-body h2 { font-size: clamp(1.75rem, 3vw, 2.6rem); line-height: 1.18; letter-spacing: -.035em; }
.sg-article-body > section { margin-bottom: clamp(2.5rem, 5vw, 4.25rem); }
.sg-article-body :is(p,li) { color: #40546c; }
.sg-article-toc { background: #f0f6fd; border-color: #d1e2f4; }
.sg-resource-card__cover { background: linear-gradient(125deg,#10243f,#075fbd) !important; }
.sg-resource-card--2 .sg-resource-card__cover { background: linear-gradient(125deg,#075fbd,#087f92) !important; }
.sg-resource-card--3 .sg-resource-card__cover { background: linear-gradient(125deg,#163859,#087cf0) !important; }
.sg-resource-card__body { padding: 1.6rem; }
.sg-resource-card h3 { line-height: 1.3; letter-spacing: -.025em; }
.sg-resource-card__body > p { color: #526277; }
.sg-resource-card__meta { color: #53687f; }
.sg-resource-tool-banner { background: linear-gradient(125deg,#eef6ff,#fff); }
.sg-resource-tool-banner > div { min-width: 0; }
.sg-resource-tool-banner h2 { color: #10243f; line-height: 1.15; }
.sg-resource-tool-banner p:last-child { color: #526277; font-size: 1rem; line-height: 1.7; }
.sg-resource-tool-banner > a.sg-arrow-fill { flex: 0 0 auto; }
main .sg-faq details { border: 1px solid #d8e5f2; border-radius: 16px; background: #fff; box-shadow: none; }
main .sg-faq details[open] { border-color: #99c5f2; box-shadow: var(--sg-shadow); }
main .sg-faq summary { color: #10243f; line-height: 1.45; padding-block: 1.2rem; }
main .sg-faq summary::after { background: #eaf3fe; color: #075fbd; }

/* Form feedback must remain legible on the light background. */
main div.wpforms-container .wpforms-form label { color: #10243f; }
main div.wpforms-container .wpforms-form :is(input:not([type=checkbox]):not([type=radio]),textarea,select) {
  color: #10243f; background: #fff; border-color: #bdcfe2; border-radius: 12px;
}
main div.wpforms-container .wpforms-form label.wpforms-error { color: #b42318 !important; }
main .wpforms-confirmation-container-full { color: #14532d !important; background: #f0fdf4 !important; border-color: #86c79b !important; }
main .wpforms-confirmation-container-full p { color: #14532d !important; }
body :is(a,button,input,select,textarea,summary):focus-visible { outline: 3px solid #087cf0; outline-offset: 4px; }

/* Footer: brighter navigation and one clear visual hierarchy. */
.sg-footer { background: radial-gradient(ellipse at 0 0,#123c67,transparent 55%),#0a192e; }
footer.wp-block-template-part .sg-footer__cta { background: linear-gradient(120deg,#17385b,#10243f); border-color: #345779; box-shadow: none; }
footer.wp-block-template-part .sg-footer__cta h2 { color: #fff !important; opacity: 1; }
footer.wp-block-template-part :is(.sg-footer__nav a,.sg-footer__brand > p,.sg-footer__local > p,.sg-footer__bottom) { color: #c0cede !important; }
footer.wp-block-template-part :is(.sg-footer__nav h2,.sg-footer__local h2) { color: #93c7ff !important; }
footer.wp-block-template-part :is(.sg-footer__local-hubs a,.sg-footer__local-cities a) { color: #e2edfa; border-color: #2c4968; background: #142d48; }
footer.wp-block-template-part .sg-footer__nav a:hover { color: #fff !important; }
footer.wp-block-template-part :is(.sg-footer__legal a,.sg-footer__bottom p,.sg-footer__back-top) { color: #adbed2 !important; }
.sg-footer__logo, .sg-footer__logo img { border-radius: 12px; }
footer.wp-block-template-part .sg-footer__top { color: #adbed2 !important; }

@media (max-width: 1000px) and (min-width: 783px) {
  main .sg-hero__grid { grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); }
  .wp-site-blocks > header .wp-block-navigation .wp-block-navigation-item__content { font-size: .85rem !important; }
  .wp-site-blocks > header .wp-block-navigation__container { gap: .6rem !important; }
}
@media (max-width: 782px) {
  /* Core switches at 600px; our header switches at 782px. Never show both. */
  .wp-site-blocks > header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
  main .sg-display { font-size: clamp(2.35rem, 9.2vw, 3.5rem) !important; line-height: 1.12 !important; }
  main .sg-title { font-size: clamp(1.8rem, 7.1vw, 2.6rem) !important; line-height: 1.16 !important; }
  main .sg-hero .sg-display { font-size: clamp(2.35rem, 9.2vw, 3.5rem) !important; }
  main :is(.sg-page-hero,.sg-resources-hero,.sg-article-hero,.sg-hero) { padding-block: 112px 48px !important; }
  main .sg-local-section { padding-block: 48px; }
  main .sg-section { padding-block: 48px !important; }
  main .sg-lead { font-size: 1.025rem; line-height: 1.7; }
  main .wp-block-buttons { flex-direction: column !important; align-items: stretch !important; }
  main .wp-block-buttons > .wp-block-button { width: 100% !important; flex: 0 0 auto !important; }
  main .wp-block-buttons > .wp-block-button > a.sg-arrow-fill { width: 100% !important; }
  main .sg-local-cta { border-radius: 24px; }
  .sg-resource-card__body { padding: 1.4rem; }
  .sg-article-hero h1 { font-size: clamp(2.1rem, 8.5vw, 3.3rem); line-height: 1.15; }
  .sg-article-back { margin-bottom: 1.5rem; }
  .sg-article-layout { padding-block: 40px; }
  footer.wp-block-template-part .sg-footer__cta { padding: 1.5rem; border-radius: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  main :is(.sg-card,.sg-bento__cell,.sg-resource-card,.sg-tool-card) { transition: none; transform: none; }
}
