:root {
  --color-parliament: #002147;
  --color-parliament-800: #003366;
  --color-parliament-700: #0A3A6B;
  --color-accent: #1B4F72;
  --color-ice: #F4F7FB;
  --color-paper: #FFFFFF;
  --color-line: #D6DEE8;
  --color-ink: #1C2B3A;
  --color-muted: #5B6B7C;
  --color-mark: #C9A227;
  --color-whatsapp: #25D366;
  --color-whatsapp-dark: #128C7E;
  --color-danger: #9B1C1C;
  --topbar-h: 36px;
  --header-h: 72px;
  --nav-h: 52px;
  --bottombar-h: 64px;
  --radius: 12px;
  --radius-sm: 8px;
  --shadow: 0 8px 24px rgba(0, 33, 71, 0.08);
  --focus: 0 0 0 3px rgba(0, 33, 71, 0.22);
}

body {
  font-family: 'Source Sans 3', sans-serif;
  color: var(--color-ink);
  background-color: #F8FAFD;
}

h1, h2, h3, h4, .font-serif-heading {
  font-family: 'Playfair Display', Georgia, serif;
}

.bg-parliament { background-color: var(--color-parliament); }
.text-parliament { color: var(--color-parliament); }
.border-parliament { border-color: var(--color-parliament); }
.bg-ice { background-color: var(--color-ice); }
.text-ice { color: var(--color-ice); }
.bg-paper { background-color: var(--color-paper); }
.text-paper { color: var(--color-paper); }
.bg-line { background-color: var(--color-line); }
.border-line { border-color: var(--color-line); }
.text-ink { color: var(--color-ink); }
.text-muted { color: var(--color-muted); }
.bg-mark { background-color: var(--color-mark); }
.text-mark { color: var(--color-mark); }
.border-mark { border-color: var(--color-mark); }
.bg-accent { background-color: var(--color-accent); }
.text-accent { color: var(--color-accent); }
.border-accent { border-color: var(--color-accent); }
.shadow-subtle { box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.05); }
.shadow-card { box-shadow: var(--shadow); }
.shadow-elevated { box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -2px rgba(0, 0, 0, 0.04); }

@keyframes marqueeScroll {
  0% { transform: translate3d(0, 0, 0); }
  100% { transform: translate3d(-50%, 0, 0); }
}

.ticker-wrapper {
  position: relative;
  overflow: hidden;
  min-width: 0;
  flex: 1 1 0%;
  mask-image: linear-gradient(to right, transparent, black 16px, black calc(100% - 16px), transparent);
  -webkit-mask-image: linear-gradient(to right, transparent, black 16px, black calc(100% - 16px), transparent);
}

.ticker-track {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  width: max-content;
  white-space: nowrap;
  animation: marqueeScroll 22s linear infinite !important;
  will-change: transform;
}

.ticker-wrapper:hover .ticker-track {
  animation-play-state: paused;
}

input[type="text"],
input[type="tel"],
input[type="email"],
input[type="date"],
input[type="password"],
textarea,
select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}
