/* 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: #2252ff;
  --sg-brand-blue-deep: #0033ed;
  --sg-violet: #2252ff;
  --sg-violet-deep: #0033ed;
  --sg-violet-light: #99afff;
  --sg-ink: #0f1a40;
  --sg-ink-soft: #5b6896;
  --sg-gris: #5b6896;
  --sg-paper: #fbfaf6;
  --sg-paper-soft: #fbfaf6;
  --sg-paper-violet: #fbf9f5;
  --sg-paper-cyan: #faf8f3;
  --sg-line: #f1ece0;
  --sg-shadow: 0 12px 34px -20px rgb(15 26 64 / 22%);
  --sg-radius: 24px;
}

body { color: var(--sg-ink); background: var(--sg-paper); }
::selection { color: #ffffff; background: #0033ed; }
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: #0033ed !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, #2252ff, #0034ef 55%, #012bc2);
}
.sg-rolling-text--settled .sg-roll-char {
  color: var(--sg-roll-color, #2252ff) !important;
  -webkit-text-fill-color: var(--sg-roll-color, #2252ff) !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 #e9e5dc; 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 #e9e5dc; border-radius: 36px; background: radial-gradient(ellipse at center,#ffffff,#fbf9f5); box-shadow: 0 28px 64px -40px rgb(0 52 238 / 28%); }
main .sg-orbit__ring, main .sg-orbit__sat { animation: none; }
main .sg-orbit__ring > circle:first-child { stroke: #ded8cc; }
main .sg-orbit__sat rect { fill: #0f1a40; stroke: #99afff; }
main .sg-orbit__core circle:nth-child(2) { fill: #0f1a40; }
main .sg-aurora::before {
  background: radial-gradient(40% 50% at 10% 18%, rgb(34 82 255 / 14%), transparent 70%), radial-gradient(40% 50% at 92% 38%, rgb(90 126 255 / 12%), transparent 70%);
}
.sg-resources-hero, .sg-article-hero {
  background: radial-gradient(ellipse at 88% 15%, #f7f5ee, transparent 58%), linear-gradient(150deg,#ffffff,#fbfaf6);
}
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: #ffffff;
  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: #d6cfc0;
  box-shadow: 0 20px 42px -24px rgb(0 52 238 / 30%);
}
main .sg-bento__tag { color: #0033ed; 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, #fbf9f5, #fbfaf6);
  border: 1px solid #e9e5dc;
  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,#2252ff,#5a7eff); }
main :is(.sg-badge,.sg-pill,.sg-proof__item,.sg-anchors a,.sg-resource-topics span) {
  color: #253b81 !important;
  -webkit-text-fill-color: #253b81;
  background: #fbf9f5;
  border-color: #e9e5dc;
  box-shadow: none;
}
main :is(.sg-roi-hero__trust,.sg-maps-diagnostic-hero__trust) span {
  color: #253b81 !important;
  -webkit-text-fill-color: #253b81 !important;
  background: #f9f7f2 !important;
  border-color: #e6e1d8 !important;
}
main :is(.sg-local-source, figcaption) { color: #65729e !important; line-height: 1.65; }
main .sg-local-links a { background: #ffffff; color: #0033ed; border-color: #e9e5dc; min-height: 42px; }
main .sg-local-hubs a { background: #fbf9f5; }
main .sg-case { background: linear-gradient(140deg,#ffffff 45%,#fbfaf6); border-color: #e9e5dc; box-shadow: var(--sg-shadow); }
main .sg-case::before { background: linear-gradient(90deg,#2252ff,#5a7eff); }
main .sg-case .sg-case__metric { background: #fbf9f5; border-color: #e9e5dc; }
main .sg-case__metric b { color: #0033ed; -webkit-text-fill-color: #0033ed; background: none; }
main .sg-case__metric span, main .sg-case__source { color: #5b6896; }
main .sg-case__what h4 { color: #0033ed; }

/* 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(0 52 238 / 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: #0f1a40;
  --sg-af-text: #ffffff;
  --sg-af-fill: #ffffff;
  --sg-af-fill-text: #0f1a40;
  --sg-af-arrow: #0f1a40;
  border-color: #0f1a40 !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: #2252ff;
  --sg-af-text: #ffffff;
  font-size: .95rem !important;
}
main .sg-cta {
  border: 1px solid #1f316b;
  border-radius: 28px;
  background: #0d1739 !important;
  box-shadow: 0 24px 58px -28px rgb(15 26 64 / 45%);
}
main .sg-cta :is(h2,h3) { color: #ffffff !important; }
main .sg-cta :is(p,.sg-lead) { color: #e6e1d8 !important; }
main .sg-cta .sg-eyebrow { color: #99afff !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: #5b6896; }
.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: #273d85; }
.sg-article-toc { background: #fbf9f5; border-color: #e9e5dc; }
.sg-resource-card__cover { background: linear-gradient(125deg,#0f1a40,#0033ed) !important; }
.sg-resource-card--2 .sg-resource-card__cover { background: linear-gradient(125deg,#0033ed,#012bc2) !important; }
.sg-resource-card--3 .sg-resource-card__cover { background: linear-gradient(125deg,#192756,#2252ff) !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: #5b6896; }
.sg-resource-card__meta { color: #5c6a9f; }
.sg-resource-tool-banner { background: linear-gradient(125deg,#fbf9f5,#ffffff); }
.sg-resource-tool-banner > div { min-width: 0; }
.sg-resource-tool-banner h2 { color: #0f1a40; line-height: 1.15; }
.sg-resource-tool-banner p:last-child { color: #5b6896; 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 #ebe7df; border-radius: 16px; background: #ffffff; box-shadow: none; }
main .sg-faq details[open] { border-color: #a0b3f8; box-shadow: var(--sg-shadow); }
main .sg-faq summary { color: #0f1a40; line-height: 1.45; padding-block: 1.2rem; }
main .sg-faq summary::after { background: #f9f7f2; color: #0033ed; }

/* Form feedback must remain legible on the light background. */
main div.wpforms-container .wpforms-form label { color: #0f1a40; }
main div.wpforms-container .wpforms-form :is(input:not([type=checkbox]):not([type=radio]),textarea,select) {
  color: #0f1a40; background: #ffffff; border-color: #dad3c5; border-radius: 12px;
}
main div.wpforms-container .wpforms-form label.wpforms-error { color: #b42318 !important; }
main .wpforms-confirmation-container-full { color: #db810c !important; background: #fcf8f1 !important; border-color: #f5aa47 !important; }
main .wpforms-confirmation-container-full p { color: #db810c !important; }
body :is(a,button,input,select,textarea,summary):focus-visible { outline: 3px solid #2252ff; outline-offset: 4px; }

/* Footer: brighter navigation and one clear visual hierarchy. */
.sg-footer { background: radial-gradient(ellipse at 0 0,#112d91,transparent 55%),#0b132d; }
footer.wp-block-template-part .sg-footer__cta { background: linear-gradient(120deg,#1a2858,#0f1a40); border-color: #273d86; box-shadow: none; }
footer.wp-block-template-part .sg-footer__cta h2 { color: #ffffff !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: #dad3c4 !important; }
footer.wp-block-template-part :is(.sg-footer__nav h2,.sg-footer__local h2) { color: #99afff !important; }
footer.wp-block-template-part :is(.sg-footer__local-hubs a,.sg-footer__local-cities a) { color: #f5f2e9; border-color: #213473; background: #111f4b; }
footer.wp-block-template-part .sg-footer__nav a:hover { color: #ffffff !important; }
footer.wp-block-template-part :is(.sg-footer__legal a,.sg-footer__bottom p,.sg-footer__back-top) { color: #bac2de !important; }
.sg-footer__logo, .sg-footer__logo img { border-radius: 12px; }
footer.wp-block-template-part .sg-footer__top { color: #bac2de !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; }
}
