
/* Terra Vita Hub core-route family migration v501.2
   Visual-only compatibility layer for legacy Hub markup.
   Design authority: Terra Vita Global + FieldTrace 1 family.
*/
body.tv-family-page{
  margin:0!important;
  padding-top:76px!important;
  background:var(--paper)!important;
  color:var(--ink)!important;
  font-family:"DM Sans",ui-sans-serif,system-ui,sans-serif!important;
  font-size:15px!important;
  line-height:1.6!important;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.039 0 0 0 0 0.165 0 0 0 0 0.263 0 0 0 0.035 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")!important;
  background-attachment:fixed!important;
}
body.tv-family-page *,
body.tv-family-page *::before,
body.tv-family-page *::after{box-sizing:border-box}

body.tv-family-page h1,
body.tv-family-page h2,
body.tv-family-page h3,
body.tv-family-page h4{
  color:var(--ink)!important;
  font-family:"Fraunces",ui-serif,Georgia,serif!important;
  font-weight:500!important;
  letter-spacing:-.015em!important;
  line-height:1.08!important;
}
body.tv-family-page h1{font-size:clamp(42px,6vw,76px)!important}
body.tv-family-page h2{font-size:clamp(30px,4vw,48px)!important}
body.tv-family-page h3{font-size:24px!important}
body.tv-family-page p,
body.tv-family-page li,
body.tv-family-page td,
body.tv-family-page label{color:var(--ink-soft)!important}
body.tv-family-page strong,
body.tv-family-page b{color:var(--ink)!important}
body.tv-family-page a{color:var(--ink);text-decoration:none}
body.tv-family-page a:hover{color:var(--accent)}

body.tv-family-page main,
body.tv-family-page .main,
body.tv-family-page .page,
body.tv-family-page .wrap,
body.tv-family-page .container{
  width:min(1180px,calc(100% - 48px))!important;
  max-width:1180px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
body.tv-family-page main,
body.tv-family-page .main,
body.tv-family-page .page{padding-top:42px!important;padding-bottom:72px!important}

/* Neutralise legacy page headers so the shared family header becomes authoritative */
body.tv-family-page > header:not(.tvg-header),
body.tv-family-page .top,
body.tv-family-page .ias-page-header,
body.tv-family-page .gk-header{
  display:none!important;
}

/* Family surfaces */
body.tv-family-page .card,
body.tv-family-page .panel,
body.tv-family-page .tile,
body.tv-family-page article,
body.tv-family-page .box,
body.tv-family-page .route-card,
body.tv-family-page .kernel-card,
body.tv-family-page .criteria-card,
body.tv-family-page .output-card,
body.tv-family-page .room-card,
body.tv-family-page .download-card,
body.tv-family-page .register-card{
  background:rgba(255,253,246,.78)!important;
  color:var(--ink)!important;
  border:1px solid var(--rule-soft)!important;
  border-radius:0!important;
  box-shadow:0 20px 44px -34px rgba(10,42,67,.32)!important;
}
body.tv-family-page .card,
body.tv-family-page .panel,
body.tv-family-page .tile,
body.tv-family-page article,
body.tv-family-page .box{padding:22px!important}

body.tv-family-page .hero{
  background:transparent!important;
  color:var(--ink)!important;
  padding:54px 0 34px!important;
}
body.tv-family-page .hero h1,
body.tv-family-page .hero h2,
body.tv-family-page .hero p{color:var(--ink)!important}
body.tv-family-page .hero p{color:var(--ink-soft)!important;max-width:72ch}
body.tv-family-page .ey,
body.tv-family-page .eyebrow,
body.tv-family-page .kicker,
body.tv-family-page .label,
body.tv-family-page .meta-label,
body.tv-family-page .programme-code{
  color:var(--accent)!important;
  font:500 11px/1 "JetBrains Mono",monospace!important;
  text-transform:uppercase!important;
  letter-spacing:var(--track)!important;
}

/* Navigation and tabs inside pages */
body.tv-family-page nav:not(.tvg-nav-primary):not(.tvg-mobile-nav),
body.tv-family-page .tabs,
body.tv-family-page .subnav,
body.tv-family-page .route-tabs{
  background:rgba(255,253,246,.55)!important;
  border:1px solid var(--rule-soft)!important;
  border-radius:0!important;
}
body.tv-family-page nav:not(.tvg-nav-primary):not(.tvg-mobile-nav) a,
body.tv-family-page .tabs a,
body.tv-family-page .tab,
body.tv-family-page .subnav a{
  color:var(--ink-soft)!important;
  font:500 10px/1 "JetBrains Mono",monospace!important;
  text-transform:uppercase!important;
  letter-spacing:.08em!important;
}
body.tv-family-page nav:not(.tvg-nav-primary):not(.tvg-mobile-nav) a:hover,
body.tv-family-page nav:not(.tvg-nav-primary):not(.tvg-mobile-nav) a[aria-current="page"],
body.tv-family-page .tabs a:hover,
body.tv-family-page .tabs a.active,
body.tv-family-page .tab.active{
  background:var(--ink)!important;
  color:var(--cream)!important;
}

/* Buttons */
body.tv-family-page button,
body.tv-family-page .button,
body.tv-family-page .btn,
body.tv-family-page [role="button"]{
  min-height:44px!important;
  padding:12px 18px!important;
  border-radius:0!important;
  background:var(--ink)!important;
  color:var(--cream)!important;
  border:1px solid var(--ink)!important;
  box-shadow:none!important;
  font:500 10px/1 "JetBrains Mono",monospace!important;
  text-transform:uppercase!important;
  letter-spacing:.1em!important;
}
body.tv-family-page button:hover,
body.tv-family-page .button:hover,
body.tv-family-page .btn:hover{background:var(--ink-deep)!important}
body.tv-family-page .secondary,
body.tv-family-page .ghost,
body.tv-family-page .btn-secondary{
  background:transparent!important;
  color:var(--ink)!important;
  border-color:var(--rule-soft)!important;
}

/* Status is semantic, not brand green */
body.tv-family-page .status,
body.tv-family-page .pill,
body.tv-family-page .badge,
body.tv-family-page .tag{
  display:inline-flex!important;
  align-items:center!important;
  min-height:30px!important;
  padding:7px 10px!important;
  background:var(--paper-pure)!important;
  color:var(--ink)!important;
  border:1px solid var(--rule-soft)!important;
  border-radius:999px!important;
  font:500 10px/1 "JetBrains Mono",monospace!important;
  text-transform:uppercase!important;
  letter-spacing:.07em!important;
}
body.tv-family-page [data-state="accepted"],
body.tv-family-page [data-state="released"],
body.tv-family-page .status.accepted,
body.tv-family-page .status.released{color:#1d6d4a!important;border-color:#9cc9b2!important}
body.tv-family-page [data-state="pending"],
body.tv-family-page [data-state="configured"],
body.tv-family-page .status.pending{color:#8a6417!important;border-color:#dbc17b!important}
body.tv-family-page [data-state="blocked"],
body.tv-family-page .status.blocked{color:#9e3241!important;border-color:#dda6af!important}

/* Tables and forms */
body.tv-family-page table{
  width:100%!important;
  background:rgba(255,253,246,.7)!important;
  border-collapse:collapse!important;
}
body.tv-family-page th{
  color:var(--ink)!important;
  background:rgba(10,42,67,.04)!important;
  font:500 10px/1 "JetBrains Mono",monospace!important;
  text-transform:uppercase!important;
  letter-spacing:.08em!important;
}
body.tv-family-page th,
body.tv-family-page td{
  padding:13px 14px!important;
  border-bottom:1px solid var(--rule-soft)!important;
}
body.tv-family-page input,
body.tv-family-page select,
body.tv-family-page textarea{
  min-height:44px!important;
  background:var(--paper-pure)!important;
  color:var(--ink)!important;
  border:1px solid var(--rule-soft)!important;
  border-radius:0!important;
  padding:11px 13px!important;
  font-family:"DM Sans",sans-serif!important;
}
body.tv-family-page input:focus,
body.tv-family-page select:focus,
body.tv-family-page textarea:focus{
  outline:2px solid var(--accent)!important;
  outline-offset:2px!important;
}

/* Authority / protected boundaries */
body.tv-family-page .boundary,
body.tv-family-page .authority-boundary,
body.tv-family-page .protected-boundary,
body.tv-family-page .notice{
  background:rgba(255,253,246,.72)!important;
  color:var(--ink-soft)!important;
  border:1px solid var(--rule-soft)!important;
  border-left:3px solid var(--accent-warm)!important;
  border-radius:0!important;
  padding:18px 20px!important;
}
body.tv-family-page .boundary *,
body.tv-family-page .authority-boundary *,
body.tv-family-page .protected-boundary *{color:inherit!important}

/* Footer */
body.tv-family-page footer{
  background:var(--paper-pure)!important;
  color:var(--ink-soft)!important;
  border-top:1px solid var(--ink)!important;
}
body.tv-family-page footer a{color:var(--ink)!important}

/* Readability and accessibility */
body.tv-family-page :focus-visible{outline:2px solid var(--accent)!important;outline-offset:3px!important}
body.tv-family-page .skip-link,
body.tv-family-page .gk-skip{z-index:9999!important}
@media(max-width:760px){
  body.tv-family-page{padding-top:68px!important}
  body.tv-family-page main,
  body.tv-family-page .main,
  body.tv-family-page .page,
  body.tv-family-page .wrap,
  body.tv-family-page .container{width:min(100% - 28px,1180px)!important}
}
