/* Pattenmakers — global site styles (design tokens live inline in templates) */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: 'Source Sans 3', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;
  color: #20242c; background: #f7f4ee; -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4 {
  font-family: 'Palatino Linotype', 'Book Antiqua', Palatino, 'URW Palladio L', Georgia, serif;
  font-weight: 500;
}
a { color: #16284b; text-decoration: none; }
a:hover { color: #9c2b2e; }
.nav-link:hover { color: #9c2b2e !important; }
.nav-link::after { content: ''; display: block; height: 2px; background: #9c2b2e; width: 0; transition: width .22s ease; margin-top: 3px; }
.nav-link:hover::after { width: 100%; }
.card-lift { transition: transform .25s ease, box-shadow .25s ease; }
.card-lift:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -18px rgba(15,29,56,.35); }

/* main navigation with 2 levels of sub-menus */
.mainnav { display:flex; align-items:center; gap:26px; font-size:.82rem; text-transform:uppercase; letter-spacing:.1em; font-weight:600; }
.mainnav .navitem { position:relative; }
.mainnav > .navitem > a { color:#16284b; display:inline-flex; align-items:center; }
.mainnav > .navitem > a:hover { color:#9c2b2e; }
.mainnav .caret { font-size:.7em; margin-left:5px; opacity:.55; }
.mainnav .navitem:hover > .submenu { display:block; }
.submenu { display:none; position:absolute; top:100%; left:0; background:#fff; border:1px solid #e4ddcf; box-shadow:0 18px 40px -18px rgba(15,29,56,.35); min-width:220px; padding:6px 0; z-index:80; text-transform:none; letter-spacing:0; }
.submenu .navitem > a { display:block; padding:10px 20px; font-weight:500; font-size:.9rem; color:#16284b; white-space:nowrap; }
.submenu .navitem > a:hover { background:#f2ede2; color:#9c2b2e; }
.submenu .submenu { top:-6px; left:100%; }
.submenu .navitem > a .caret { transform:rotate(-90deg); display:inline-block; }
.btn-red:hover { background: #851f22 !important; }
.btn-ghost:hover { background: #16284b !important; color: #fff !important; }
.body-copy p { font-size: 1.06rem; line-height: 1.78; color: #3c4350; margin: 0 0 18px; }
@media (max-width: 860px) {
  .desktop-nav { display: none !important; }
  .hero-h1 { font-size: 2.4rem !important; }
  .two-col { grid-template-columns: 1fr !important; }
  .pillars { grid-template-columns: 1fr 1fr !important; }
}
@media (max-width: 560px) {
  .pillars { grid-template-columns: 1fr !important; }
  .timeline-row { grid-template-columns: 1fr 1fr !important; }
}
