/* Shared SOLVINTAL foundation. Include this stylesheet on every page.
   The sitewide palette is locked: do not introduce UI colors outside these tokens. */
:root {
  color-scheme: light;
  --brand-navy: #1A1A2E;
  --brand-blue: #4A90E2;
  --brand-blue-deep: #2F75D5;
  --brand-ice: #F8F9FA;
  --brand-mist: #FCFDFF;
  --brand-line: #4A90E252;
  --page-bg: #FCFDFF;
  --footer-bg: var(--brand-navy);
  --ink: var(--brand-navy);
  --blue: var(--brand-blue);
  --accent: var(--brand-blue);
  --muted: var(--brand-navy);
  --rule: #4A90E252;
  --cta-blue: #2F75D5;
  --cta-hover: #2364BA;
  --pure-white: #FFFFFF;
  --font-body: "Segoe UI", Arial, sans-serif;
  --font-heading: var(--font-body);
  /* 1918px reference viewport: 125px mirrored edges and a 1668px content field. */
  --shell-gutter: clamp(20px, 6.52vw, 125px);
  --site-content-max: 1668px;
  --site-content-width: min(var(--site-content-max), calc(100% - 2 * var(--shell-gutter)));
  --site-edge: max(var(--shell-gutter), calc((100% - var(--site-content-max)) / 2));
  --ease: cubic-bezier(.22, 1, .36, 1);
  --section-space: 72px;
  --section-heading-size: 36px;
  --section-eyebrow-size: 13px;
  --eyebrow-color: #4A90E2;
  --eyebrow-weight: 600;
  --eyebrow-line-height: 1.5;
  --eyebrow-letter-spacing: .1em;
  --eyebrow-space: 16px;
  /* Canonical page-hero rhythm, derived from the Sitemap hero. */
  --page-hero-padding-start: clamp(145px, 12vw, 180px);
  --page-hero-padding-end: 64px;
  --page-hero-title-max: 960px;
  --page-hero-title-size: clamp(42px, 5.3vw, 72px);
  --page-hero-title-weight: 600;
  --page-hero-title-line-height: 1.08;
  --page-hero-title-letter-spacing: -.05em;
  --page-hero-copy-max: 590px;
  --page-hero-copy-gap: 24px;
  --page-hero-copy-size: 18px;
  --page-hero-copy-line-height: 1.75;
  --section-subheading-size: 18px;
  --section-copy-size: 16px;
  --section-button-size: 15px;
}
html, body, main > section:not(.hero), footer { background-color: var(--page-bg); }
body,
button,
input,
select,
textarea { color: var(--ink); font-family: var(--font-body); }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-heading); }

/* Shared footer: a closing invitation and an intentionally spacious five-column directory. */
.site-footer { --ink: #FCFDFF; --muted: #FCFDFF; --rule: #4A90E23D; background: #1A1A2E; border-top: 1px solid #4A90E2; padding-top: clamp(52px, 6vw, 84px); color: var(--muted); }
.footer-inner { width: var(--site-content-width); margin-inline: auto; }
.footer-cta { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 40px; padding-bottom: clamp(42px, 5vw, 64px); border-bottom: 1px solid var(--rule); }
.footer-cta-copy { min-width: 0; }
.footer-cta .eyebrow { margin: 0 0 var(--eyebrow-space); color: var(--eyebrow-color); font-size: var(--section-eyebrow-size); font-weight: var(--eyebrow-weight); line-height: var(--eyebrow-line-height); letter-spacing: var(--eyebrow-letter-spacing); }
.footer-cta h2 { max-width: 850px; margin: 0; color: var(--ink); font-size: clamp(46px, 6.4vw, 92px); font-weight: 600; line-height: .98; letter-spacing: -.055em; }
.footer-cta h2 span { color: #4A90E2; }
.footer-cta p:not(.eyebrow) { max-width: 650px; margin: 24px 0 0; color: var(--muted); font-size: 17px; line-height: 1.7; opacity: .82; }
.footer-action { align-self: start; display: inline-flex; align-items: center; justify-content: center; min-height: 50px; margin-top: 56px; padding: 14px 22px; border: 1px solid #2F75D5; border-radius: 8px; background: #2F75D5; color: #FFFFFF; font-size: 15px; font-weight: 600; line-height: 1.35; text-decoration: none; white-space: nowrap; transition: background .2s, border-color .2s, transform .2s; }
.footer-action:hover { border-color: #2364BA; background: #2364BA; color: #FFFFFF; transform: translateY(-2px); }
.footer-grid { display: grid; grid-template-columns: minmax(260px, 1.5fr) repeat(3, minmax(0, .635fr)) minmax(0, .8fr); gap: clamp(24px, 3.3vw, 48px); padding-top: clamp(42px, 5vw, 64px); }
.footer-grid > * { min-width: 0; }
.footer-brand-column { display: flex; flex-direction: column; align-items: flex-start; }
.footer-slogan,
.footer-brand-column > .footer-contact { display: none; }
.footer-logo { display: block; width: min(190px, 100%); height: auto; }
.footer-summary { max-width: 33ch; margin: 24px 0 28px; color: var(--muted); font-size: 15px; line-height: 1.7; opacity: .8; }
.footer-socials { display: flex; flex-wrap: wrap; gap: 10px; }
.social-icon { display: grid; place-items: center; width: 40px; height: 40px; padding: 10px; border: 1px solid #4A90E266; border-radius: 8px; background: transparent; color: var(--ink); transition: color .25s, border-color .25s, background .25s, transform .25s; }
.social-icon svg { display: block; width: 20px; height: 20px; }
.social-icon:hover { border-color: #4A90E2; background: #4A90E229; color: #FFFFFF; transform: translateY(-2px); }
.footer-column h2 { margin: 0 0 22px; color: var(--ink); font-size: 17px; font-weight: 600; line-height: 1.4; }
.footer-column ul { margin: 0; padding: 0; list-style: none; }
.footer-column li + li { margin-top: 12px; }
.footer-column a { display: inline-block; padding-block: 3px; color: var(--muted); font-size: 15px; line-height: 1.5; text-decoration: none; text-underline-offset: 4px; overflow-wrap: anywhere; }
.footer-column a:hover, .footer-bottom a:hover { color: #4A90E2; text-decoration: underline; }
.footer-contact-column { justify-self: end; width: max-content; max-width: 100%; font-style: normal; }
.footer-contact-list { display: grid; gap: 14px; font-style: normal; }
.footer-contact-list .contact-item { display: flex; align-items: flex-start; gap: 11px; margin: 0; color: var(--muted); font-size: 15px; line-height: 1.55; text-decoration: none; }
.footer-contact-list a[href^="mailto:"] { white-space: nowrap; overflow-wrap: normal; }
.footer-contact-list a.contact-item:hover { color: #4A90E2; }
.contact-item svg { width: 18px; height: 18px; flex: 0 0 auto; margin-top: 3px; color: #4A90E2; }
.contact-item span { min-width: 0; }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: clamp(42px, 5vw, 64px); padding-block: 24px; border-top: 1px solid var(--rule); font-size: 15px; line-height: 1.5; }
.footer-bottom p { margin: 0; }
.footer-bottom a { padding-block: 8px; color: var(--muted); text-decoration: none; }
.footer-bottom a span { margin-left: 9px; }
@media (max-width: 1120px) {
  .footer-cta { grid-template-columns: 1fr; align-items: start; gap: 28px; }
  .footer-action { justify-self: start; margin-top: 0; }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: 'brand company' 'services contact' 'legal legal'; }
  .footer-brand-column { grid-area: brand; }
  .footer-company { grid-area: company; }
  .footer-services { grid-area: services; }
  .footer-legal-links { grid-area: legal; }
  .footer-contact-column { grid-area: contact; }
  .footer-contact-column { justify-self: stretch; width: auto; }
}
@media (max-width: 600px) {
  :root {
    --page-hero-padding-start: 138px;
    --page-hero-padding-end: 42px;
    --page-hero-title-size: clamp(32px, 8.5vw, 48px);
    --page-hero-copy-gap: 22px;
    --page-hero-copy-size: 17px;
  }
  .site-footer { padding-top: 46px; }
  .footer-cta h2 { font-size: clamp(42px, 13vw, 62px); }
  .footer-grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: 'brand' 'company' 'services' 'contact' 'legal'; gap: 34px; }
  .footer-column h2 { margin-bottom: 15px; }
  .footer-bottom { align-items: flex-start; flex-direction: column; gap: 8px; margin-top: 36px; padding-block: 20px; }
}
