:root {
  --tl-navy: #17365d;
  --tl-navy-dark: #0e2847;
  --tl-teal: #168c9e;
  --tl-teal-dark: #0b6572;
  --tl-orange: #d96d13;
  --tl-ink: #17212b;
  --tl-mist: #eef5f7;
  --tl-sand: #f7f2ea;
  --tl-line: #c9d6db;
  --tl-white: #fff;
  --tl-radius-sm: 0.4rem;
  --tl-radius-md: 0.85rem;
  --tl-radius-lg: 1.4rem;
}

html { scroll-behavior: smooth; }
body { overflow-wrap: break-word; }

*:focus-visible {
  outline: 3px solid var(--tl-orange);
  outline-offset: 4px;
}

.tl-skip-link {
  background: var(--tl-white);
  color: var(--tl-ink);
  font-weight: 700;
  left: 1rem;
  padding: 0.75rem 1rem;
  position: fixed;
  top: -8rem;
  z-index: 100000;
}
.tl-skip-link:focus { top: 1rem; }

.tl-site-header {
  background: rgba(255, 255, 255, 0.98);
  border-bottom: 1px solid var(--tl-line);
  position: relative;
  z-index: 20;
}

@supports (backdrop-filter: blur(10px)) {
  .tl-site-header { backdrop-filter: blur(10px); background: rgba(255, 255, 255, 0.92); }
}

.tl-wordmark { letter-spacing: -0.025em; line-height: 1; }
.tl-wordmark strong { color: var(--tl-navy); }
.tl-wordmark em { color: var(--tl-orange); font-style: normal; }

.wp-block-navigation a { text-underline-offset: 0.22em; }
.wp-block-navigation a:hover { color: var(--tl-teal-dark); }

.wp-element-button,
.wp-block-button__link {
  transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
}
.wp-element-button:hover,
.wp-block-button__link:hover { background: var(--tl-navy-dark); transform: translateY(-1px); }

.is-style-outline > .wp-block-button__link {
  background: transparent;
  border: 2px solid currentColor;
  color: var(--tl-navy);
}

.tl-hero {
  background: linear-gradient(115deg, var(--tl-navy) 0%, var(--tl-navy-dark) 66%, #12324f 100%);
  color: var(--tl-white);
  overflow: hidden;
}
.tl-hero h1, .tl-hero h2, .tl-hero p { color: inherit; }
.tl-hero-media img { border-radius: var(--tl-radius-lg); min-height: 26rem; object-fit: cover; width: 100%; }
.tl-eyebrow { font-size: 0.82rem; font-weight: 800; letter-spacing: 0.11em; text-transform: uppercase; }
.tl-eyebrow::before { background: var(--tl-orange); content: ""; display: inline-block; height: 0.65rem; margin-right: 0.55rem; width: 0.65rem; border-radius: 50%; }

.tl-card {
  background: var(--tl-white);
  border: 1px solid var(--tl-line);
  border-radius: var(--tl-radius-md);
  height: 100%;
  padding: clamp(1.1rem, 2.5vw, 2rem);
}
.tl-card h3 { margin-top: 0; }
.tl-card a { font-weight: 700; }

.tl-status {
  background: var(--tl-mist);
  border-left: 0.45rem solid var(--tl-teal);
  border-radius: var(--tl-radius-sm);
  padding: clamp(1.25rem, 3vw, 2.25rem);
}
.tl-status__meta { color: #344d58; font-size: 0.92rem; font-weight: 700; }

.tl-section { padding-block: clamp(3rem, 7vw, 6rem); }
.tl-section--compact { padding-block: clamp(2rem, 5vw, 4rem); }
.tl-section--mist { background: var(--tl-mist); }
.tl-section--sand { background: var(--tl-sand); }

.tl-image-rounded img { border-radius: var(--tl-radius-lg); }
.tl-image-source { color: #425561; font-size: 0.82rem; }

.tl-event-card time { color: var(--tl-teal-dark); display: block; font-weight: 800; margin-bottom: 0.35rem; }
.tl-meta-list { display: grid; gap: 0.35rem; list-style: none; padding: 0; }

.tl-document-list { list-style: none; padding: 0; }
.tl-document-list li { border-bottom: 1px solid var(--tl-line); padding: 1rem 0; }
.tl-document-list a { font-weight: 750; }

.tl-placeholder-warning {
  background: #fff3cd;
  border: 2px solid #8a5a00;
  color: #3d2a00;
  font-weight: 700;
  padding: 1rem;
}

.tl-site-footer a { color: inherit; }
.tl-site-footer .wp-block-navigation { align-items: flex-start; }

@media (min-width: 900px) {
  .tl-site-header { position: sticky; top: 0; }
}

@media (max-width: 781px) {
  .tl-hero-media img { min-height: 18rem; }
  .tl-stack-mobile { flex-direction: column !important; }
  .tl-site-header .wp-block-site-logo { max-width: 12rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
}

@media print {
  .tl-site-header, .tl-site-footer, .wp-block-button, .tl-skip-link { display: none !important; }
  a { color: #000; text-decoration: underline; }
  a[href]::after { content: " (" attr(href) ")"; font-size: 0.8em; }
}
