@font-face {
  font-family: "Source Sans 3";
  src: url("/assets/fonts/source-sans-3-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
}

@font-face {
  font-family: "Source Serif 4";
  src: url("/assets/fonts/source-serif-4-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 600 700;
  font-display: swap;
}

@font-face {
  font-family: "JetBrains Mono";
  src: url("/assets/fonts/jetbrains-mono-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
}

:root {
  --tn-serif: "Source Serif 4", "Source Serif Pro", Georgia, serif;
  --tn-sans: "Source Sans 3", "Segoe UI", sans-serif;
  --tn-mono: "JetBrains Mono", ui-monospace, monospace;
  --tn-paper: #faf6ee;
  --tn-paper-deep: #f1eadb;
  --tn-ink-new: #102a25;
  --tn-copy-new: #344a43;
  --tn-green-new: #1d5b50;
  --tn-green-dark: #123b34;
  --tn-gold-new: #9a7920;
  --tn-line-new: rgba(16, 42, 37, .17);
  --tn-max-new: 1280px;
}

html { scroll-padding-top: 112px; }
body,
body[data-page] {
  color: var(--tn-ink-new) !important;
  background: var(--tn-paper) !important;
  font-family: var(--tn-sans) !important;
  font-size: 17px;
  line-height: 1.65;
}
body::before { content: none !important; }
body h1, body h2, body h3, .brand-copy strong {
  font-family: var(--tn-serif) !important;
  color: var(--tn-ink-new) !important;
  letter-spacing: 0 !important;
}
body p, body li, body dd { font-family: var(--tn-sans) !important; }
.shell { width: min(var(--tn-max-new), calc(100% - 48px)) !important; }
.site-aurora-container { opacity: .16 !important; mix-blend-mode: multiply !important; }
.topbar {
  position: relative !important;
  min-height: 32px !important;
  background: rgba(250,246,238,.94) !important;
  border-bottom: 1px solid rgba(16,42,37,.1) !important;
  backdrop-filter: none !important;
}
.topbar-row { min-height: 32px !important; padding: 0 !important; }
.topbar-copy, .topbar-copy a, .lang-switcher, .lang-switcher a {
  color: #416159 !important;
  font: 600 11px/1 var(--tn-sans) !important;
  letter-spacing: .13em !important;
}
.site-header,
body[data-page="home"] .site-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 80 !important;
  padding: 0 !important;
  background: rgba(250,246,238,.94) !important;
  border-bottom: 1px solid rgba(16,42,37,.14) !important;
  box-shadow: none !important;
  backdrop-filter: blur(14px) !important;
}
.header-row,
body[data-page="home"] .header-row {
  min-height: 84px !important;
  display: flex !important;
  flex-direction: row !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 28px !important;
  padding: 0 !important;
  text-align: left !important;
}
.brand, body[data-page="home"] .brand { gap: 11px !important; margin: 0 !important; min-width: max-content; }
.brand::before { width: 29px !important; height: 29px !important; flex-basis: 29px !important; }
.brand-copy strong,
body[data-page="home"] .brand-copy strong {
  color: var(--tn-ink-new) !important;
  font-size: clamp(36px, 3.2vw, 48px) !important;
  font-weight: 700 !important;
  line-height: .9 !important;
  letter-spacing: 0 !important;
}
.nav, body[data-page="home"] .nav {
  width: auto !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: clamp(12px, 1.4vw, 22px) !important;
  align-items: center !important;
  justify-content: flex-end !important;
  padding: 0 !important;
}
.nav a, body[data-page="home"] .nav a {
  min-height: 42px !important;
  padding: 0 !important;
  color: #36534c !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  font: 600 14px/1 var(--tn-sans) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  white-space: nowrap;
}
.nav a::after { bottom: 3px !important; height: 2px !important; }
.nav a:hover, .nav a[aria-current="page"] { color: var(--tn-ink-new) !important; }
.nav a:hover::after, .nav a[aria-current="page"]::after { background: var(--tn-gold-new) !important; }
.nav a[href$="/contact/"] {
  min-height: 44px !important;
  padding: 0 17px !important;
  color: #fff !important;
  background: var(--tn-green-dark) !important;
  border: 1px solid var(--tn-green-dark) !important;
  border-radius: 5px !important;
}
.nav a[href$="/contact/"]::after { display: none !important; }
#nav-toggle { color: var(--tn-green-dark) !important; background: transparent !important; border-color: rgba(16,42,37,.25) !important; }

.nav button,
body[data-page="home"] .nav button {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  min-height: 42px !important;
  padding: 0 !important;
  color: #36534c !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  font: 600 14px/1 var(--tn-sans) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  white-space: nowrap !important;
  cursor: pointer !important;
}
.nav button::after {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 3px !important;
  height: 2px !important;
  transform: scaleX(0) !important;
  transform-origin: left !important;
  background: var(--tn-gold-new) !important;
  transition: transform .18s ease !important;
}
.nav button:hover,
.nav button[aria-current="page"],
.nav button[aria-expanded="true"] { color: var(--tn-ink-new) !important; }
.nav button:hover::after,
.nav button[aria-current="page"]::after,
.nav button[aria-expanded="true"]::after { transform: scaleX(1) !important; }
.nav-group { position: relative !important; }
.nav-menu {
  position: absolute !important;
  top: calc(100% + 8px) !important;
  left: 50% !important;
  min-width: 280px !important;
  padding: 10px !important;
  transform: translate(-50%, 8px) !important;
  opacity: 0 !important;
  pointer-events: none !important;
  background: #fffdf8 !important;
  border: 1px solid rgba(16,42,37,.14) !important;
  box-shadow: 0 18px 42px rgba(16,42,37,.14) !important;
  transition: opacity .16s ease, transform .16s ease !important;
}
.nav-group:hover .nav-menu,
.nav-group.is-open .nav-menu {
  opacity: 1 !important;
  pointer-events: auto !important;
  transform: translate(-50%, 0) !important;
}
.nav-menu a,
body[data-page="home"] .nav-menu a {
  display: block !important;
  min-height: auto !important;
  padding: 10px 12px !important;
  border-radius: 6px !important;
  color: var(--tn-ink-new) !important;
  font-size: 14px !important;
  line-height: 1.2 !important;
  white-space: normal !important;
}
.nav-menu a::after { display: none !important; }
.nav-menu a span {
  display: block !important;
  margin-top: 3px !important;
  color: var(--tn-muted-new) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
}

.tn-page { position: relative; z-index: 1; overflow: clip; background: transparent !important; }
.tn-hero {
  min-height: 0 !important;
  padding: clamp(64px, 7vw, 108px) 0 !important;
  background: linear-gradient(135deg, rgba(250,246,238,.88), rgba(236,242,223,.68)) !important;
  border-bottom: 1px solid var(--tn-line-new);
}
.tn-hero::before, .tn-hero::after { display: none !important; }
.tn-hero-grid { display: grid; grid-template-columns: minmax(0,.92fr) minmax(420px,1.08fr); gap: clamp(44px,7vw,100px); align-items: center; }
.tn-hero-copy { max-width: 690px; }
.tn-hero h1,
body[data-page] .tn-hero h1 {
  max-width: 11.5ch !important;
  margin: 14px 0 24px !important;
  color: var(--tn-ink-new) !important;
  font-size: clamp(3.2rem, 5.2vw, 5.25rem) !important;
  font-weight: 700 !important;
  line-height: .98 !important;
  letter-spacing: 0 !important;
  text-wrap: balance;
}
.tn-hero .tn-lead,
body[data-page] .tn-hero .tn-lead {
  max-width: 58ch;
  margin: 0;
  color: var(--tn-copy-new) !important;
  font: 400 clamp(1.08rem,1.4vw,1.3rem)/1.58 var(--tn-sans) !important;
}
.tn-kicker {
  margin: 0 0 10px;
  color: #7b621c !important;
  font: 700 .74rem/1.2 var(--tn-sans) !important;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.tn-actions { display: flex; flex-wrap: wrap; gap: 12px 18px; align-items: center; margin-top: 28px; }
.tn-actions .button, .tn-cta .button, .tn-page .button {
  min-height: 48px !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto !important;
  padding: 0 20px !important;
  border-radius: 4px !important;
  font: 700 .95rem/1 var(--tn-sans) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
.tn-page .button-primary { color: #fff !important; background: var(--tn-green-new) !important; border-color: var(--tn-green-new) !important; }
.tn-page .button-secondary { color: var(--tn-green-dark) !important; background: transparent !important; border: 1px solid rgba(18,59,52,.38) !important; }
.tn-text-link { color: var(--tn-green-new) !important; font-weight: 700; text-decoration: underline; text-decoration-color: rgba(29,91,80,.32); text-underline-offset: 4px; }
.tn-media { margin: 0; }
.tn-media img { height: auto; aspect-ratio: 4/3; object-fit: cover; border-radius: 2px; filter: saturate(.88) contrast(.98); }
.tn-media figcaption { display: flex; justify-content: space-between; gap: 18px; padding-top: 9px; color: #65756e; font: 600 .66rem/1.35 var(--tn-sans); letter-spacing: .06em; text-transform: uppercase; }
.tn-media figcaption a { color: inherit !important; }
.tn-proof-strip { background: rgba(250,246,238,.76); border-bottom: 1px solid var(--tn-line-new); }
.tn-proof-grid { display: grid; grid-template-columns: minmax(230px,1.25fr) repeat(3,minmax(150px,.75fr)); }
.tn-proof-grid p { min-width: 0; min-height: 104px; display: flex; flex-direction: column; justify-content: center; gap: 8px; margin: 0; padding: 20px 24px; border-right: 1px solid var(--tn-line-new); }
.tn-proof-grid p:first-child { padding-left: 0; }
.tn-proof-grid p:last-child { padding-right: 0; border-right: 0; }
.tn-proof-grid span { color: var(--tn-gold-new); font: 700 .68rem/1.2 var(--tn-mono); letter-spacing: .05em; text-transform: uppercase; }
.tn-proof-grid strong { color: var(--tn-ink-new); font: 700 1rem/1.25 var(--tn-sans); }
.tn-proof-grid p:first-child strong { max-width: 20ch; font-family: var(--tn-serif); font-size: 1.18rem; line-height: 1.15; }

/* Keep the complete home proposition visible in the first desktop viewport. */
@media (min-width: 821px) {
  .tn-home .tn-hero { padding: clamp(54px, 5.5vw, 82px) 0 !important; }
  .tn-home .tn-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(420px, 1fr); }
  .tn-home .tn-hero h1,
  body[data-page="home"] .tn-home .tn-hero h1 {
    max-width: 14ch !important;
    font-size: clamp(3.15rem, 4.45vw, 4.7rem) !important;
  }
}

.tn-section { padding: clamp(72px,8vw,118px) 0 !important; background: transparent !important; }
.tn-section-tint { background: rgba(230,235,216,.42) !important; border-block: 1px solid rgba(16,42,37,.1); }
.tn-engagement { background: rgba(241,234,219,.55) !important; border-block: 1px solid rgba(16,42,37,.1); }
.tn-section-head { max-width: 790px; margin-bottom: 42px; }
.tn-section-head h2, .tn-copy-grid h2, .tn-cta h2 {
  max-width: 17ch !important;
  margin: 8px 0 16px !important;
  font-size: clamp(2.25rem,4vw,4.25rem) !important;
  line-height: 1.02 !important;
}
.tn-section-head > p:last-child, .tn-section-head-split > p { max-width: 62ch; color: var(--tn-copy-new) !important; font-size: 1.06rem; }
.tn-section-head-split { max-width: none; display: grid; grid-template-columns: minmax(0,.85fr) minmax(320px,.55fr); gap: 50px; align-items: end; }
.tn-card-grid { display: grid; gap: 28px; }
.tn-card-grid-3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
.tn-card { padding-top: 22px; border-top: 2px solid rgba(154,121,32,.52); }
.tn-card > span { color: var(--tn-gold-new); font: 600 .72rem/1 var(--tn-mono); }
.tn-card h3 { margin: 24px 0 12px; font-size: clamp(1.55rem,2.2vw,2.2rem) !important; line-height: 1.05 !important; }
.tn-card p { color: var(--tn-copy-new) !important; }
.tn-card a { display: inline-block; margin-top: 18px; color: var(--tn-green-new) !important; font-weight: 700; }
.tn-project-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; background: var(--tn-line-new); border: 1px solid var(--tn-line-new); }
.tn-project { min-height: 330px; display: flex; flex-direction: column; padding: clamp(26px,3vw,42px); background: rgba(250,246,238,.9); }
.tn-project span { color: var(--tn-gold-new); font: 700 .72rem/1.2 var(--tn-sans); letter-spacing: .09em; text-transform: uppercase; }
.tn-project h3 { margin: auto 0 18px; font-size: clamp(1.65rem,2.4vw,2.35rem) !important; line-height: 1.03 !important; }
.tn-project p { margin: 0; color: var(--tn-copy-new) !important; }
.tn-stat-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-block: 1px solid var(--tn-line-new); }
.tn-stat-grid > div { padding: 26px 24px 28px 0; border-right: 1px solid var(--tn-line-new); }
.tn-stat-grid > div + div { padding-left: 24px; }
.tn-stat-grid > div:last-child { border-right: 0; }
.tn-stat-grid strong { display: block; color: var(--tn-green-dark) !important; font: 700 clamp(2.4rem,4vw,4rem)/1 var(--tn-mono) !important; }
.tn-stat-grid span { display: block; margin-top: 11px; color: var(--tn-copy-new); font-size: .9rem; }
.tn-hydrorisk { color: #f8f5ec !important; background: var(--tn-green-dark) !important; }
.tn-hydrorisk h2, .tn-hydrorisk .tn-kicker { color: #f8f5ec !important; }
.tn-hydrorisk .tn-lead { color: rgba(255,255,255,.78) !important; }
.tn-hydrorisk .tn-text-link { color: #fff !important; }
body.tn-institutional[data-page="home"] .tn-hydrorisk h2 { margin: 12px 0 22px !important; color: #f8f5ec !important; -webkit-text-fill-color: #f8f5ec !important; font-size: clamp(2.7rem,4.4vw,4.6rem) !important; line-height: .96 !important; letter-spacing: 0 !important; }
body.tn-institutional[data-page="home"] .tn-hydrorisk .tn-kicker { color: #d9bd67 !important; -webkit-text-fill-color: #d9bd67 !important; }
body.tn-institutional[data-page="home"] .tn-hydrorisk .tn-lead { max-width: 38ch; color: rgba(255,255,255,.78) !important; -webkit-text-fill-color: rgba(255,255,255,.78) !important; }
body.tn-institutional[data-page="home"] .tn-hydrorisk .button-primary { color: var(--tn-green-dark) !important; -webkit-text-fill-color: var(--tn-green-dark) !important; background: #f8f5ec !important; border-color: #f8f5ec !important; }
body.tn-institutional[data-page="home"] .tn-hydrorisk .button-primary:hover { color: var(--tn-green-dark) !important; background: #e9dfca !important; border-color: #e9dfca !important; }
body.tn-institutional[data-page="home"] .tn-hydrorisk .tn-text-link { color: #fff !important; -webkit-text-fill-color: #fff !important; text-decoration-color: rgba(255,255,255,.5) !important; }
.tn-feature-grid { display: grid; grid-template-columns: minmax(280px,.75fr) minmax(0,1.25fr); gap: clamp(46px,8vw,110px); align-items: center; }
.tn-product-frame { display: block; overflow: hidden; color: #f8f5ec !important; background: #081713; border: 1px solid rgba(255,255,255,.2); box-shadow: 0 24px 70px rgba(0,0,0,.25); transition: transform .35s ease, border-color .35s ease, box-shadow .35s ease; }
body.tn-institutional[data-page="home"] a.tn-product-frame { color: #f8f5ec !important; -webkit-text-fill-color: currentColor !important; text-decoration: none !important; }
.tn-product-frame:hover { color: #f8f5ec !important; border-color: rgba(255,255,255,.42); box-shadow: 0 30px 82px rgba(0,0,0,.34); transform: translateY(-4px); }
.tn-product-frame:focus-visible { outline: 3px solid #e5c86a; outline-offset: 5px; }
.tn-preview-bar { min-height: 54px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 20px; border-bottom: 1px solid rgba(255,255,255,.12); }
.tn-preview-bar > strong { color: #fff !important; font: 700 1.05rem/1 var(--tn-sans) !important; letter-spacing: 0; }
body.tn-institutional[data-page="home"] .tn-product-frame .tn-preview-bar > strong { color: #fff !important; -webkit-text-fill-color: #fff !important; }
.tn-preview-status { display: inline-flex; align-items: center; gap: 8px; color: rgba(255,255,255,.7); font: 600 .63rem/1 var(--tn-mono); letter-spacing: .08em; text-transform: uppercase; }
.tn-preview-status i { width: 7px; height: 7px; display: inline-block; background: #89c7a2; border-radius: 50%; box-shadow: 0 0 0 4px rgba(137,199,162,.12); }
.tn-preview-grid { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(245px,.92fr); min-height: 400px; }
.tn-preview-map { min-width: 0; position: relative; overflow: hidden; background: #07101d; }
.tn-preview-map picture, .tn-preview-map img { width: 100%; height: 100%; display: block; }
.tn-preview-map img { position: absolute; inset: 0; object-fit: cover; object-position: center; transition: transform .6s ease, filter .4s ease; }
.tn-product-frame:hover .tn-preview-map img { filter: saturate(1.08) contrast(1.04); transform: scale(1.025); }
.tn-preview-map::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg,rgba(4,12,21,.08) 40%,rgba(4,12,21,.75) 100%); pointer-events: none; }
.tn-map-layer, .tn-map-marker { position: absolute; z-index: 1; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.tn-map-layer { top: 18px; left: 18px; display: flex; flex-direction: column; gap: 4px; padding: 11px 13px; color: rgba(255,255,255,.68); background: rgba(4,12,21,.72); border: 1px solid rgba(255,255,255,.12); font: 600 .61rem/1.2 var(--tn-mono); letter-spacing: .06em; text-transform: uppercase; }
.tn-map-layer b { color: #fff !important; font: 700 .84rem/1.15 var(--tn-sans) !important; letter-spacing: 0; text-transform: none; }
.tn-map-marker { right: 18px; bottom: 18px; display: inline-flex; align-items: center; gap: 8px; padding: 9px 12px; color: #fff; background: rgba(4,12,21,.76); border: 1px solid rgba(255,255,255,.12); font: 700 .7rem/1 var(--tn-sans); }
.tn-map-marker i { width: 8px; height: 8px; background: #efb94d; border: 2px solid #fff; border-radius: 50%; box-shadow: 0 0 0 4px rgba(239,185,77,.2); }
.tn-preview-panel { min-width: 0; display: flex; flex-direction: column; padding: 24px; color: var(--tn-green-dark); background: #f1ede3; }
.tn-preview-eyebrow { color: var(--tn-gold-new); font: 700 .62rem/1 var(--tn-mono); letter-spacing: .1em; text-transform: uppercase; }
.tn-preview-title { max-width: 11ch; display: block; margin: 17px 0 20px; color: var(--tn-green-dark) !important; font: 700 clamp(1.55rem,2.2vw,2.25rem)/.98 var(--tn-serif) !important; letter-spacing: 0; }
.tn-preview-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); padding: 13px 0; border-block: 1px solid rgba(16,55,48,.15); }
.tn-preview-metrics > span { min-width: 0; color: #61716c; font: 600 .55rem/1.25 var(--tn-sans); text-transform: uppercase; }
.tn-preview-metrics > span + span { padding-left: 8px; border-left: 1px solid rgba(16,55,48,.13); }
.tn-preview-metrics b { display: block; margin-bottom: 4px; color: var(--tn-green-dark) !important; font: 700 clamp(.76rem,1.1vw,1rem)/1 var(--tn-mono) !important; letter-spacing: 0; }
.tn-preview-chart { position: relative; overflow: hidden; display: block; margin-top: auto; padding-top: 18px; }
.tn-preview-chart > span { display: block; margin-bottom: 7px; color: #61716c; font: 600 .58rem/1 var(--tn-mono); letter-spacing: .06em; text-transform: uppercase; }
.tn-preview-chart img { width: 100%; height: auto; aspect-ratio: 3.1/1; display: block; object-fit: cover; object-position: center; background: #07101d; }
.tn-preview-route { display: flex; align-items: center; gap: 12px; margin-top: 18px; color: #61716c; font: 700 .62rem/1 var(--tn-sans); }
.tn-preview-route > span { padding-right: 12px; border-right: 1px solid rgba(16,55,48,.17); }
.tn-preview-route b { margin-left: auto; color: var(--tn-green-dark) !important; font: 400 1.2rem/1 var(--tn-sans) !important; transition: transform .3s ease; }
.tn-product-frame:hover .tn-preview-route b { transform: translateX(5px); }
.tn-link-list { display: grid; border-top: 1px solid var(--tn-line-new); }
.tn-link-list a { display: grid; grid-template-columns: minmax(100px,.25fr) minmax(0,1fr); gap: 28px; padding: 22px 0; border-bottom: 1px solid var(--tn-line-new); }
.tn-link-list span { color: var(--tn-gold-new); font-size: .75rem; font-weight: 700; text-transform: uppercase; }
.tn-link-list strong { font-family: var(--tn-serif); font-size: clamp(1.2rem,1.8vw,1.65rem); }
.tn-cta { padding: clamp(64px,7vw,96px) 0; color: #fff; background: #0f352f; }
.tn-cta-inner { display: grid; grid-template-columns: minmax(0,.95fr) minmax(300px,.55fr); gap: 50px; align-items: end; }
.tn-cta h2, .tn-cta .tn-kicker { color: #fff !important; }
.tn-cta p { color: rgba(255,255,255,.76) !important; }
.tn-cta .button-primary { color: var(--tn-green-dark) !important; background: #fff !important; border-color: #fff !important; }
body.tn-institutional .tn-cta { color: #f8f5ec !important; background: #0f352f !important; }
body.tn-institutional .tn-cta h2 { color: #f8f5ec !important; -webkit-text-fill-color: #f8f5ec !important; }
body.tn-institutional .tn-cta .tn-kicker { color: #d9bd67 !important; -webkit-text-fill-color: #d9bd67 !important; }
body.tn-institutional .tn-cta p { color: rgba(248,245,236,.82) !important; -webkit-text-fill-color: rgba(248,245,236,.82) !important; }
body.tn-institutional .tn-cta .button-primary { color: var(--tn-green-dark) !important; -webkit-text-fill-color: var(--tn-green-dark) !important; background: #f8f5ec !important; border-color: #f8f5ec !important; }
body.tn-institutional .tn-cta .button-primary:hover { color: var(--tn-green-dark) !important; background: #e9dfca !important; border-color: #e9dfca !important; }
body.tn-institutional[data-page="home"] .tn-cta { color: #f8f5ec !important; background: #0f352f !important; }
body.tn-institutional[data-page="home"] .tn-cta h2 { color: #f8f5ec !important; -webkit-text-fill-color: #f8f5ec !important; }
body.tn-institutional[data-page="home"] .tn-cta .tn-kicker { color: #d9bd67 !important; -webkit-text-fill-color: #d9bd67 !important; }
body.tn-institutional[data-page="home"] .tn-cta p { color: rgba(248,245,236,.82) !important; -webkit-text-fill-color: rgba(248,245,236,.82) !important; }
body.tn-institutional[data-page="home"] .tn-cta .button-primary { color: var(--tn-green-dark) !important; -webkit-text-fill-color: var(--tn-green-dark) !important; background: #f8f5ec !important; border-color: #f8f5ec !important; }
body.tn-institutional[data-page="home"] .tn-cta .button-primary:hover { color: var(--tn-green-dark) !important; background: #e9dfca !important; border-color: #e9dfca !important; }

.tn-copy-grid { display: grid; grid-template-columns: minmax(280px,.78fr) minmax(0,1.22fr); gap: clamp(46px,8vw,120px); align-items: start; }
.tn-prose { max-width: 720px; }
.tn-prose p { margin: 0 0 20px; color: var(--tn-copy-new) !important; font-size: 1.08rem; }
.tn-principles { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 54px; border-top: 1px solid var(--tn-line-new); }
.tn-principles > div { padding: 24px 0; border-bottom: 1px solid var(--tn-line-new); }
.tn-principles strong { display: block; margin-bottom: 8px; font-family: var(--tn-serif); font-size: 1.45rem; }
.tn-principles p { color: var(--tn-copy-new) !important; }
.tn-profile { border-top: 1px solid var(--tn-line-new); }
.tn-program-list { display: grid; }
.tn-program-list article { display: grid; grid-template-columns: 72px minmax(0,1fr); gap: clamp(28px,5vw,76px); padding: 42px 0; border-top: 1px solid var(--tn-line-new); }
.tn-program-list article > span { color: var(--tn-gold-new); font: 600 .78rem/1 var(--tn-mono); }
.tn-program-list h3 { margin: 0 0 14px; font-size: clamp(1.9rem,3vw,3rem) !important; }
.tn-program-list p { max-width: 720px; color: var(--tn-copy-new) !important; }
.tn-program-list ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px 28px; max-width: 720px; margin: 20px 0 0; padding-left: 1.1rem; color: var(--tn-copy-new); }
.tn-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 30px; margin: 0; padding: 0; list-style: none; }
.tn-steps li { padding-top: 20px; border-top: 2px solid rgba(154,121,32,.45); }
.tn-steps span { color: var(--tn-gold-new); font: 600 .74rem/1 var(--tn-mono); }
.tn-steps strong { display: block; margin: 26px 0 9px; font-family: var(--tn-serif); font-size: 1.45rem; }
.tn-steps p { color: var(--tn-copy-new) !important; }
.tn-case-list { display: grid; }
.tn-case-list article { display: grid; grid-template-columns: minmax(190px,.36fr) minmax(0,1fr); gap: clamp(34px,7vw,110px); padding: clamp(44px,6vw,82px) 0; border-top: 1px solid var(--tn-line-new); }
.tn-case-list article h2 { max-width: 19ch !important; margin: 0 0 16px; font-size: clamp(2rem,3.5vw,3.7rem) !important; line-height: 1.03 !important; }
.tn-case-list article p { max-width: 720px; color: var(--tn-copy-new) !important; }
.tn-case-meta { display: flex; flex-direction: column; gap: 8px; color: var(--tn-gold-new); font-size: .75rem; font-weight: 700; text-transform: uppercase; }
.tn-case-meta strong { color: var(--tn-green-new) !important; font-family: var(--tn-sans) !important; }
.tn-resource-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; background: var(--tn-line-new); border: 1px solid var(--tn-line-new); }
.tn-resource-grid a { min-height: 260px; display: flex; flex-direction: column; padding: 30px; background: rgba(250,246,238,.95); }
.tn-resource-grid span { color: var(--tn-gold-new); font-size: .73rem; font-weight: 700; text-transform: uppercase; }
.tn-resource-grid h3 { margin: auto 0 12px; font-size: 2rem !important; }
.tn-resource-grid p { color: var(--tn-copy-new) !important; }
.tn-contact-layout { display: grid; grid-template-columns: minmax(260px,.62fr) minmax(0,1.38fr); gap: clamp(46px,8vw,120px); align-items: start; }
.tn-contact-aside { position: sticky; top: 120px; }
.tn-contact-aside h2 { margin: 9px 0 16px; font-size: clamp(2.1rem,3.4vw,3.5rem) !important; }
.tn-contact-aside dl { margin-top: 34px; border-top: 1px solid var(--tn-line-new); }
.tn-contact-aside dl > div { padding: 17px 0; border-bottom: 1px solid var(--tn-line-new); }
.tn-contact-aside dt { color: var(--tn-gold-new); font-size: .72rem; font-weight: 700; text-transform: uppercase; }
.tn-contact-aside dd { margin: 5px 0 0; color: var(--tn-ink-new); }
.tn-contact-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px 24px; padding: clamp(26px,4vw,48px) !important; background: rgba(240,234,219,.62) !important; border: 1px solid var(--tn-line-new) !important; }
.tn-contact-form .form-row { margin: 0; }
.tn-contact-form .form-row:nth-last-of-type(-n+3), .tn-contact-form .form-actions, .tn-contact-form .form-feedback { grid-column: 1/-1; }
.tn-contact-form label { display: block; margin-bottom: 7px; color: var(--tn-ink-new); font-size: .87rem; font-weight: 700; }
.tn-contact-form input:not([type="checkbox"]), .tn-contact-form select, .tn-contact-form textarea {
  width: 100%; min-height: 48px; padding: 11px 13px; color: var(--tn-ink-new); background: rgba(255,255,255,.72) !important; border: 1px solid rgba(16,42,37,.24) !important; border-radius: 2px !important; font: 400 1rem/1.4 var(--tn-sans) !important;
}
.tn-contact-form textarea { min-height: 160px; resize: vertical; }
.form-check-label { display: flex !important; gap: 10px; align-items: flex-start; font-weight: 400 !important; }
.form-check-label input { margin-top: 5px; }
.site-footer { position: relative; z-index: 2; padding: 46px 0 !important; color: #dce8e4 !important; background: #0a2924 !important; border: 0 !important; }
.site-footer .footer-row { display: grid; grid-template-columns: minmax(260px,.72fr) minmax(0,1.28fr); gap: 44px; align-items: start; }
.site-footer p, .site-footer a { color: rgba(255,255,255,.78) !important; font-family: var(--tn-sans) !important; }
.site-footer p { max-width: 38ch; }
.site-footer .footer-links { display: flex !important; flex-wrap: wrap; justify-content: flex-end; gap: 11px 24px; }
.site-footer .footer-links a { font-size: .88rem; }

body:not(.tn-institutional) .hero h1,
body:not(.tn-institutional) .page-title { font-family: var(--tn-serif) !important; }
body:not(.tn-institutional) .hero .lead,
body:not(.tn-institutional) .section p { font-family: var(--tn-sans) !important; }

@media (max-width: 1120px) {
  .header-row, body[data-page="home"] .header-row { min-height: 76px !important; }
  #nav-toggle { display: inline-flex !important; }
  .nav, body[data-page="home"] .nav { order: 3 !important; width: 100% !important; display: none !important; flex: 0 0 100% !important; flex-direction: column !important; align-items: stretch !important; gap: 0 !important; padding: 8px 0 16px !important; }
  .site-header.nav-open .nav { display: flex !important; }
  .nav-group { width: 100% !important; }
  .nav button, body[data-page="home"] .nav button { width: 100% !important; min-height: 46px !important; justify-content: flex-start !important; border-bottom: 1px solid rgba(16,42,37,.1) !important; }
  .nav-menu { position: static !important; min-width: 0 !important; width: 100% !important; padding: 0 0 8px 14px !important; transform: none !important; opacity: 1 !important; pointer-events: auto !important; background: transparent !important; border: 0 !important; box-shadow: none !important; display: none !important; }
  .nav-group.is-open .nav-menu { display: block !important; transform: none !important; }
  .nav-menu a, body[data-page="home"] .nav-menu a { min-height: 40px !important; border-bottom: 0 !important; padding: 8px 10px !important; }
  .nav a, body[data-page="home"] .nav a { width: 100% !important; min-height: 46px !important; justify-content: flex-start !important; border-bottom: 1px solid rgba(16,42,37,.1) !important; }
  .nav a[href$="/contact/"] { margin-top: 8px; justify-content: center !important; border-bottom: 0 !important; }
  .tn-hero-grid { grid-template-columns: minmax(0,.92fr) minmax(340px,.78fr); gap: 42px; }
}
@media (max-width: 820px) {
  .shell { width: min(100% - 32px, var(--tn-max-new)) !important; }
  .topbar { display: none !important; }
  .tn-hero { padding: 54px 0 62px !important; }
  .tn-hero-grid, .tn-section-head-split, .tn-feature-grid, .tn-copy-grid, .tn-cta-inner, .tn-contact-layout { grid-template-columns: 1fr; }
  .tn-feature-grid { gap: 42px; }
  .tn-preview-grid { min-height: 0; grid-template-columns: minmax(0,1.05fr) minmax(230px,.95fr); }
  .tn-hero h1, body[data-page] .tn-hero h1 { max-width: 13ch !important; font-size: clamp(2.8rem,10vw,4.5rem) !important; }
  .tn-media { margin-top: 10px; }
  .tn-proof-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .tn-proof-grid p { min-height: 96px; padding: 18px 20px; border-bottom: 1px solid var(--tn-line-new); }
  .tn-proof-grid p:first-child { padding-left: 0; }
  .tn-proof-grid p:nth-child(2) { padding-right: 0; border-right: 0; }
  .tn-proof-grid p:nth-child(n+3) { border-bottom: 0; }
  .tn-proof-grid p:nth-child(3) { padding-left: 0; }
  .tn-card-grid-3, .tn-project-grid, .tn-resource-grid, .tn-steps { grid-template-columns: 1fr; }
  .tn-project { min-height: 250px; }
  .tn-stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .tn-stat-grid > div:nth-child(2) { border-right: 0; }
  .tn-stat-grid > div:nth-child(-n+2) { border-bottom: 1px solid var(--tn-line-new); }
  .tn-contact-aside { position: static; }
  .site-footer .footer-row { grid-template-columns: 1fr; }
  .site-footer .footer-links { justify-content: flex-start; }
}
@media (max-width: 560px) {
  body, body[data-page] { font-size: 16px; }
  .brand-copy strong, body[data-page="home"] .brand-copy strong { font-size: 37px !important; }
  .tn-section { padding: 62px 0 !important; }
  .tn-section-head h2, .tn-copy-grid h2, .tn-cta h2 { font-size: clamp(2rem,10vw,3rem) !important; }
  .tn-media figcaption { display: grid; }
  .tn-proof-grid { grid-template-columns: 1fr; }
  .tn-proof-grid p, .tn-proof-grid p:first-child, .tn-proof-grid p:nth-child(3), .tn-proof-grid p:last-child { min-height: 0; padding: 16px 0; border-right: 0; border-bottom: 1px solid var(--tn-line-new); }
  .tn-proof-grid p:last-child { border-bottom: 0; }
  .tn-actions { align-items: stretch; flex-direction: column; }
  .tn-actions .button, .tn-cta .button, .tn-page .button { width: 100% !important; }
  .tn-stat-grid { grid-template-columns: 1fr; }
  .tn-stat-grid > div, .tn-stat-grid > div + div { padding: 20px 0; border-right: 0; border-bottom: 1px solid var(--tn-line-new); }
  .tn-principles { grid-template-columns: 1fr; }
  .tn-program-list article, .tn-case-list article { grid-template-columns: 1fr; gap: 18px; }
  .tn-program-list ul { grid-template-columns: 1fr; }
  .tn-link-list a { grid-template-columns: 1fr; gap: 5px; }
  .tn-contact-form { grid-template-columns: 1fr; padding: 22px !important; }
  .tn-contact-form .form-row { grid-column: 1/-1; }
  .tn-product-frame { box-shadow: 0 18px 48px rgba(0,0,0,.24); }
  .tn-preview-bar { min-height: 50px; padding: 0 16px; }
  .tn-preview-status { font-size: .56rem; }
  .tn-preview-grid { grid-template-columns: 1fr; }
  .tn-preview-map { min-height: 245px; }
  .tn-preview-panel { padding: 22px 18px 18px; }
  .tn-preview-title { max-width: 13ch; margin: 15px 0 18px; font-size: 1.85rem !important; }
  .tn-preview-chart { margin-top: 18px; }
  .tn-preview-route { gap: 9px; }
  .tn-preview-route > span { padding-right: 9px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
