/* Shared visual system. Legacy component styles remain available in main.css. */
:root { --theme-width: 1280px; --mit-ink: #102b46; --mit-blue: #086ca8; --mit-navy: #0a2035; --mit-muted: #526475; --mit-border: #dce5ed; --mit-surface: #f5f8fb; --mit-accent: #a3e0ff; --light-color: #f7fbff; --blue-color: #086ca8; --brown-color: #526b80; --light-blue-color: #83d1fc; --color-100: #102b46; --color-200: #fff; --color-300: #102b46; --color-400: #eaf4fa; --back-color-100: #fff;  }
@font-face { font-family: "Space Grotesk"; src: url("../fonts/SpaceGrotesk-VariableFont_wght.ttf") format("truetype"); font-weight: 300 700; font-style: normal; font-display: swap; }
*, *::before, *::after { box-sizing: border-box; }
body { display: block; color: #102b46; font-size: 16px; line-height: 1.7; }
img { max-width: 100%; height: auto; }
a { color: #086ca8; text-underline-offset: 4px; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 3px solid #086ca8; outline-offset: 4px; }
button, input, textarea, select { font: inherit; }
[hidden] { display: none !important; }
.skip-link { position: fixed; top: -100px; left: 20px; z-index: 100000; padding: 12px 20px; color: #fff; background: #102b46; border-radius: 8px; }
.skip-link:focus { top: 12px; }
h1, h2, h3, h4 { line-height: 1.2; letter-spacing: -.025em; }
h1 { font-size: clamp(32px, 4vw, 56px); }
h2 { font-size: clamp(26px, 3vw, 38px); }
h3 { font-size: clamp(22px, 2vw, 28px); }
.page-header { opacity: 1; text-align: left; background: #f5f8fb; border-bottom: 1px solid #dce5ed; }
.page-header-inner { width: min(1280px, calc(100% - 48px)); min-width: 0; margin: auto; padding: 56px 0; }
.page-title { padding: 0; text-align: left; }
.page-title h1 { color: #102b46; font-size: clamp(32px, 4vw, 56px); line-height: 1.15; letter-spacing: -.035em; }
.page-image { margin-top: 28px; }
.page-image img { max-height: 520px; width: auto; box-shadow: none; }
.page-content-inner { width: min(1280px, calc(100% - 48px)); max-width: 1280px; min-width: 0; margin: 48px auto; }
.homepage-content > .page-content-inner { width: 100%; max-width: none; margin: 0; border-radius: 0; }
.entry-content { overflow-wrap: break-word; }
.entry-content > p { max-width: 80ch; }
.entry-content .alignwide { width: 100%; }
.manageit-button a, .wp-block-button__link, input[type="submit"], button[type="submit"] { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; padding: 12px 22px; border: 1px solid transparent; border-radius: 8px; background: #086ca8; color: #fff; box-shadow: none; white-space: normal; text-decoration: none; cursor: pointer; }
.manageit-button a:hover, .wp-block-button__link:hover, input[type="submit"]:hover, button[type="submit"]:hover { background: #102b46; color: #fff; box-shadow: none; scale: 1; }
input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="password"], input[type="search"], input[type="number"], textarea, select { max-width: 100%; min-height: 48px; border: 1px solid #bdcdd9; border-radius: 8px; padding: 12px 14px; background: #fff; color: #102b46; box-shadow: none; }
textarea { min-height: 150px; }
.glow-card { background: #f8fafc; border: 1px solid #dce5ed; border-radius: 12px; box-shadow: none; }
.glow-card h2 { color: #102b46; }
.wp-block-table { overflow-x: auto; }
.wp-block-table td, .wp-block-table th { padding: 14px; border-color: #dce5ed; }
.wp-block-table th { background: #eaf4fa; }
.page-pagination, .pagination { margin: 32px auto; text-align: center; }
.page-numbers { display: inline-block; padding: 8px 14px; border-radius: 6px; }
.page-numbers.current { background: #086ca8; color: #fff; }
.error-404 { padding: clamp(48px, 8vw, 100px) 0; }
.error-code { color: #086ca8; font-size: clamp(64px, 12vw, 120px); font-weight: 700; line-height: 1; margin: 0 0 24px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; } }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.theme-search-form { display: flex; flex-wrap: wrap; gap: 12px; max-width: 620px; margin-block: 24px; }
.theme-search-form label { flex: 1 1 200px; }
.theme-search-form input { width: 100%; }
.theme-search-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.theme-search-card { padding: 28px; border: 1px solid #dce5ed; border-radius: 12px; background: #f8fafc; }
.theme-search-card h2 { font-size: 24px; }
.theme-search-card img { border-radius: 8px; }
@media (max-width: 900px) { .theme-search-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .theme-search-grid { grid-template-columns: minmax(0, 1fr); } }/* Shared cards also work when used outside the homepage wrapper. */
.glow-card { padding: 26px 22px; transition: border-color .2s, box-shadow .2s; }
.glow-card:hover, .glow-card:focus-within { border-color: #78b8db; box-shadow: 0 12px 28px #102b460d; }
.mit-service-card { display: flex; flex-direction: column; min-width: 0; border: 1px solid #dce5ed; border-radius: 12px; }
.mit-service-card > a { margin-top: auto; }
@media (prefers-reduced-motion: reduce) { .glow-card { transition: none; } }
