/* TriSovereign — shared site styles */
/* Common reset, base, navigation, and layout utilities used across every page. */
/* Page-specific rules remain in each page's own <style> block. */

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; background: #181D31; color: #FFFFFF; font-family: 'Barlow', system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
::selection { background: #FDBE10; color: #181D31; }
a { color: inherit; }
button { font-family: inherit; }

@keyframes fadeUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
.reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.8s ease, transform 0.8s cubic-bezier(.2,.8,.2,1); }
.reveal.in { opacity: 1; transform: translateY(0); }

nav a:hover { opacity: 1 !important; color: #FDBE10 !important; }
nav a.ts-nav-cta:hover { color: #181D31 !important; background: #E8AC0E !important; }

.ts-nav-row { display: flex; align-items: center; justify-content: space-between; padding: 18px 48px; max-width: 1440px; margin: 0 auto; gap: 24px; }
.ts-nav-links { display: flex; gap: 36px; align-items: center; }
.ts-nav-links a { white-space: nowrap; }
@media (max-width: 1180px) { .ts-nav-links { gap: 22px; } .ts-nav-links a { font-size: 12px !important; letter-spacing: 0.18em !important; } }
@media (max-width: 980px) { .ts-nav-row { padding: 16px 24px; } .ts-nav-links { display: none; } }
.ts-nav-hamburger { display: none; }
@media (max-width: 980px) { .ts-nav-hamburger { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 5px; } }

.ts-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: end; margin-bottom: 56px; }
@media (max-width: 980px) { .ts-2col { grid-template-columns: 1fr; gap: 28px; margin-bottom: 40px; } }
.ts-3col { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; }
@media (max-width: 980px) { .ts-3col { grid-template-columns: 1fr; } }

/* Mobile safeguards (apply site-wide) */
img { max-width: 100%; }
/* Tighter side padding on small phones so section content isn't squeezed by the 48px desktop gutter */
@media (max-width: 600px) {
  section { padding-left: 22px !important; padding-right: 22px !important; }
}
/* Force any inline multi-column grid (section headers, the contact block, etc.) to a single
   column on phones. Prevents horizontal overflow where components set grid-template-columns
   inline without their own mobile breakpoint. Class-based grids keep their own responsive rules. */
@media (max-width: 720px) {
  [style*="grid-template-columns"] { grid-template-columns: 1fr !important; }
}
