/* TTPSEC readable UI. Scoped to the recovered Astro build, without new fonts or JS.
   !important is limited to typography overrides of the compiled/scoped source CSS. */
html[data-ttpsec-ux] {
  --ux-ink:#292236;
  --ux-copy:#55485f;
  --ux-muted:#65546f;
  --ux-purple:#67408c;
  --ux-body:clamp(1.0625rem,1rem + .15vw,1.125rem);
  --ux-small:.875rem;
  font-size:100%;
  scroll-padding-top:8rem;
}
html[data-ttpsec-ux] body { font-size:var(--ux-body); line-height:1.6; }
html[data-ttpsec-ux] :is(main,footer) p { font-size:var(--ux-body)!important; line-height:1.7!important; }
html[data-ttpsec-ux] :is(main,footer) :is(li,dd,dt,td,th) { font-size:1rem!important; line-height:1.65!important; }
html[data-ttpsec-ux] :is(input,select,textarea,button) { font-family:inherit; }
html[data-ttpsec-ux] button { min-width:44px; min-height:44px; font-size:1rem!important; }
html[data-ttpsec-ux] :is(input,select,textarea) { font-size:1rem!important; }
html[data-ttpsec-ux] :is(h1,h2,h3) { overflow-wrap:break-word; }
html[data-ttpsec-ux] :is(p,li,dd) { overflow-wrap:break-word; }
html[data-ttpsec-ux] :is(.hero,.hero-bottom,.method-grid,.footer-invitation,.footer-directory,.service-guide,.decision-grid,.section-heading)>* { min-width:0; }
html[data-ttpsec-ux] .ux-bar { flex-wrap:wrap; }
html[data-ttpsec-ux] #ux-navigation { max-width:100%; min-width:0; flex-wrap:wrap; }

/* Preserve editorial display headings; improve the text people actually read. */
html[data-ttpsec-ux] :is(.hero-description,.section-heading>p,.service-card p,.iso-copy>p,.sector-copy>p,.method-step p,.guide-intro>p,.decision-card p,.research-description,.blog-description,.leadership-copy>p,.inner-content p,.inner-content li,.inner-content dd) { color:var(--ux-copy); }
html[data-ttpsec-ux] .hero-description { font-size:clamp(1.125rem,1rem + .35vw,1.25rem)!important; max-width:46ch; }
html[data-ttpsec-ux] .section-heading>p { max-width:42ch; }
html[data-ttpsec-ux] :is(.section-heading,.sector-copy,.method-heading) h2 em { color:var(--ux-purple); }
html[data-ttpsec-ux] :is(.service-card p,.r-card p) { max-width:60ch; }
html[data-ttpsec-ux] :is(.info-content p,.r-profile p,.r-detail-grid p) { max-width:70ch; }
html[data-ttpsec-ux] :is(.r-lead,.info-lead,.iso-lead) { font-size:clamp(1.125rem,1rem + .3vw,1.375rem)!important; max-width:65ch; }
html[data-ttpsec-ux] :is(.service-card,.r-card) h3 { font-size:clamp(1.5rem,1.25rem + .4vw,1.75rem)!important; line-height:1.3; letter-spacing:-.025em; }
html[data-ttpsec-ux] .service-card { display:flex; flex-direction:column; }
html[data-ttpsec-ux] .service-card .card-link { margin-top:auto; padding-top:1.5rem; }

/* A real label scale instead of the previous 6–11px microtype. */
html[data-ttpsec-ux] :is(.eyebrow,.r-kicker,.section-label,.iso-eyebrow,.service-category,.card-head>span,.footer-kicker) { font-size:.8125rem!important; line-height:1.6!important; letter-spacing:.08em; color:var(--ux-purple); }
html[data-ttpsec-ux] :is(.hero-note,.hero-orientation,.hero-bottom p,.hero-bottom small,.iso-fine,.guide-question-hint,.guide-aside-note p,.decision-caption,.leadership-source,.projects-footnote,.research-access,.blog-post-meta,.blog-order-note,.privacy-footnote,.r-disclaimer,.r-print-note,.r-hero-image figcaption,.ux-editorial figcaption,.footer-location,.footer-legal,.contact-feedback) { font-size:var(--ux-small)!important; line-height:1.65!important; }
html[data-ttpsec-ux] :is(.hero-note,.hero-bottom p,.hero-bottom small,.guide-question-hint,.guide-aside-note p,.decision-caption,.leadership-source,.projects-footnote,.research-access,.blog-post-meta,.blog-order-note,.footer-location,.footer-legal,.r-disclaimer) { color:var(--ux-muted); }
html[data-ttpsec-ux] .hero-bottom small { max-width:15ch; letter-spacing:.035em; }
html[data-ttpsec-ux] :is(.hero-bottom small,.service-category,.hero-photograph figcaption small) { white-space:normal; overflow-wrap:anywhere; }
html[data-ttpsec-ux] .hero-photograph figcaption>* { min-width:0; }
html[data-ttpsec-ux] .hero-bottom>div { align-items:flex-start; flex-direction:column; gap:.5rem; }
html[data-ttpsec-ux] .hero-photograph figcaption>span { font-size:1rem; }
html[data-ttpsec-ux] .hero-photograph figcaption small { font-size:.75rem; max-width:10ch; opacity:1; }
html[data-ttpsec-ux] :is(.floating-card small,.photo-hero small) { font-size:.8125rem; }

/* Navigation and primary actions: readable labels and generous hit areas. */
html[data-ttpsec-ux] :is(.ux-home,.ux-dropdown summary,.ux-contact,.ux-toggle,.ux-links a,.button,.text-link,.card-link,.r-button,.iso-button,.info-cta>a,.r-jump a,.r-link-row a,.info-back,.contact-compose,.contact-copy) {
  font-size:1rem!important; line-height:1.5!important; min-height:48px; font-weight:600;
}
html[data-ttpsec-ux] :is(.ux-home,.ux-dropdown summary,.ux-links a) { color:var(--ux-ink); }
html[data-ttpsec-ux] .ux-panel-title { font-size:.8125rem!important; line-height:1.5!important; color:var(--ux-muted); }
html[data-ttpsec-ux] .ux-brand small { font-size:.625rem; letter-spacing:.035em; line-height:1.5; }
html[data-ttpsec-ux] :is(.button,.text-link,.card-link,.r-button,.iso-button,.info-cta>a) { white-space:normal; }
html[data-ttpsec-ux] .hero-actions { gap:1rem 1.5rem; }
html[data-ttpsec-ux] .text-link { color:var(--ux-purple); }
html[data-ttpsec-ux] :is(button,summary,a,input,label) { touch-action:manipulation; }
html[data-ttpsec-ux] :is(a,button,summary,input,select,textarea):focus-visible { outline:3px solid var(--ux-purple); outline-offset:4px; }
html[data-ttpsec-ux] .contact-channel :is(a,button):focus-visible { outline-color:var(--contact-gold); }
html[data-ttpsec-ux] :is(button,.button,.ux-contact,.text-link):active { filter:brightness(.94); }

/* Guidance, FAQ and dense content get their own readable hierarchy. */
html[data-ttpsec-ux] .guide-option strong { font-size:1rem; color:var(--ux-ink); line-height:1.5; }
html[data-ttpsec-ux] .guide-option small { font-size:var(--ux-small); color:var(--ux-muted); line-height:1.6; }
html[data-ttpsec-ux] .guide-option { min-height:88px; padding:1rem; gap:.75rem; }
html[data-ttpsec-ux] .guide-option input { width:20px; height:20px; }
html[data-ttpsec-ux] .guide-options { gap:.75rem; grid-template-columns:minmax(0,1fr); }
html[data-ttpsec-ux] .guide-options-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
html[data-ttpsec-ux] .guide-option { min-width:0; }
html[data-ttpsec-ux] .guide-option :is(strong,small) { overflow-wrap:anywhere; }
html[data-ttpsec-ux] .guide-navigation { flex-wrap:wrap; gap:.75rem; }
html[data-ttpsec-ux] .guide-navigation button { flex:1 1 8rem; justify-content:center; white-space:normal; }
html[data-ttpsec-ux] .projects-controls { flex-wrap:wrap; }
html[data-ttpsec-ux] :is(.guide-controls button,.project-play,.projects-picker button,.standards-pause) { min-height:44px; font-size:1rem!important; }
html[data-ttpsec-ux] .faq-items summary { min-height:56px; font-size:1.0625rem; line-height:1.5; gap:1rem; padding-block:1.25rem; }
html[data-ttpsec-ux] .faq-items summary>span:not(.faq-number) { min-width:0; flex:1; overflow-wrap:anywhere; }
html[data-ttpsec-ux] .faq-items summary>svg { flex:none; }
html[data-ttpsec-ux] .faq-number { font-size:.875rem; flex:0 0 2ch; }
html[data-ttpsec-ux] .standards-heading-row h2 { font-size:.875rem; line-height:1.5; }
html[data-ttpsec-ux] .standards-tools p { font-size:1rem!important; }
html[data-ttpsec-ux] .standards-group small { font-size:.875rem; color:var(--ux-muted); }
html[data-ttpsec-ux] :is(.r-breadcrumb,.iso-breadcrumb) { font-size:.875rem!important; }

/* Secondary labels remain readable without overpowering the content. */
html[data-ttpsec-ux] :is(.photo-index,.service-photo-label,.guide-progress>span,.sector-image>span,.decision-image>span) { font-size:.8125rem; line-height:1.5; overflow-wrap:anywhere; }
html[data-ttpsec-ux] :is(.standards-pause>span,.method-step>span,.decision-bottom>small,.leadership-specialties>span) { font-size:.875rem; line-height:1.6; }
html[data-ttpsec-ux] .projects-picker button small { font-size:.8125rem; }
html[data-ttpsec-ux] .sector-links { flex-wrap:wrap; gap:.5rem; }
html[data-ttpsec-ux] .sector-copy { min-width:0; }
html[data-ttpsec-ux] .sector-links>a { font-size:1rem; line-height:1.5; min-height:44px; max-width:100%; overflow-wrap:anywhere; white-space:normal; display:inline-flex; align-items:center; padding:.5rem .75rem; }
html[data-ttpsec-ux] .sector-links>a svg { flex:none; }
html[data-ttpsec-ux] .catalogue-link { font-size:1rem; line-height:1.6; color:var(--ux-copy); }
html[data-ttpsec-ux] .catalogue-link a { min-height:44px; display:inline-flex; align-items:center; color:var(--ux-purple); }

/* Footer remains useful navigation, not legal-sized microtext. */
html[data-ttpsec-ux] .footer-directory h3 { font-size:1rem; color:var(--ux-ink); margin-bottom:1rem; }
html[data-ttpsec-ux] :is(.footer-directory nav>a,.footer-contact>a,.footer-legal nav a,.privacy-contact,.privacy-links a) { font-size:1rem!important; line-height:1.5; min-height:44px; display:flex; align-items:center; color:var(--ux-purple); }
html[data-ttpsec-ux] .footer-directory nav>a { margin-bottom:.5rem; }
html[data-ttpsec-ux] .footer-invitation-copy>p { max-width:46ch; color:var(--ux-copy); }
html[data-ttpsec-ux] .footer-legal nav { flex-wrap:wrap; gap:.5rem 1.5rem; }
html[data-ttpsec-ux] .footer-privacy { grid-template-columns:48px minmax(0,1fr); }
html[data-ttpsec-ux] .footer-privacy>*:last-child { grid-column:2; }
html[data-ttpsec-ux] .contact-channel .contact-kicker { font-size:.875rem!important; color:var(--contact-gold); }
html[data-ttpsec-ux] .contact-channel .contact-caption { color:var(--contact-muted); }
html[data-ttpsec-ux] .contact-float.contact-email-float { font-size:1rem; }
html[data-ttpsec-ux] .contact-float.contact-email-float small { font-size:.875rem; }

@media(max-width:1100px) {
  html[data-ttpsec-ux] .ux-home,html[data-ttpsec-ux] .ux-dropdown summary { padding-block:1rem; }
  html[data-ttpsec-ux] .ux-links { gap:.5rem; }
  html[data-ttpsec-ux] .ux-mobile-open #ux-navigation { padding-bottom:max(1rem,env(safe-area-inset-bottom)); }
  html[data-ttpsec-ux] .service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; }
  html[data-ttpsec-ux] .service-grid>.service-card:last-child { grid-column:1/-1; }
}
@media(max-width:768px) {
  html[data-ttpsec-ux] :is(.section-heading,.hero-bottom,.footer-directory,.service-guide,.r-detail-grid,.r-section-heading,.decision-grid) { gap:1.5rem; }
  html[data-ttpsec-ux] .section-heading { display:block; }
  html[data-ttpsec-ux] .section-heading>p { margin-top:1.5rem; max-width:60ch; }
  html[data-ttpsec-ux] .service-grid { grid-template-columns:minmax(0,1fr); }
  html[data-ttpsec-ux] .service-grid>.service-card:last-child { grid-column:auto; }
  html[data-ttpsec-ux] .service-card { padding:0 1.5rem 1.5rem; }
  html[data-ttpsec-ux] .hero-bottom { grid-template-columns:repeat(2,minmax(0,1fr)); }
  html[data-ttpsec-ux] .hero-bottom>p { grid-column:1/-1; }
  html[data-ttpsec-ux] .hero-bottom>p br { display:none; }
  html[data-ttpsec-ux] .hero-bottom>a { display:none; }
  html[data-ttpsec-ux] .footer-invitation { grid-template-columns:minmax(0,1fr); }
  html[data-ttpsec-ux] .footer-directory { grid-template-columns:1fr 1fr; }
  html[data-ttpsec-ux] .footer-about,html[data-ttpsec-ux] .footer-contact { grid-column:1/-1; }
}
@media(max-width:480px) {
  html[data-ttpsec-ux] .guide-options-grid { grid-template-columns:minmax(0,1fr); }
  html[data-ttpsec-ux] .hero { grid-template-columns:minmax(0,1fr); }
  html[data-ttpsec-ux] .method-grid { grid-template-columns:minmax(0,1fr); }
  html[data-ttpsec-ux] .ux-brand small { display:none; }
  html[data-ttpsec-ux] .hero-actions { align-items:stretch; flex-direction:column; }
  html[data-ttpsec-ux] .hero-actions>a { justify-content:center; }
  html[data-ttpsec-ux] .hero .eyebrow { font-size:.75rem!important; letter-spacing:.045em; }
  html[data-ttpsec-ux] .footer-content { padding-inline:1.25rem; }
  html[data-ttpsec-ux] .footer-directory { grid-template-columns:minmax(0,1fr); gap:2rem; }
  html[data-ttpsec-ux] .footer-privacy { grid-template-columns:minmax(0,1fr); padding:1.25rem; }
  html[data-ttpsec-ux] .footer-privacy>*:last-child { grid-column:auto; }
  html[data-ttpsec-ux] .contact-channel { padding:1.125rem; }
  html[data-ttpsec-ux] .contact-channel .contact-email { font-size:clamp(1.0625rem,5.2vw,1.375rem); letter-spacing:-.025em; }
  html[data-ttpsec-ux] .contact-email svg { width:20px; height:20px; }
  html[data-ttpsec-ux] .contact-float.contact-email-float { width:56px; height:56px; padding:6px; border-radius:16px; justify-content:center; }
  html[data-ttpsec-ux] .contact-email-float>span:not(.contact-float-icon) { display:none; }
}
@media(prefers-reduced-motion:reduce) {
  html[data-ttpsec-ux] { scroll-behavior:auto!important; }
  html[data-ttpsec-ux] *,html[data-ttpsec-ux] *::before,html[data-ttpsec-ux] *::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
  html[data-ttpsec-ux] .reveal { opacity:1!important; transform:none!important; }
}
