/* Local audit improvements, following the approved preferences release. */
html { scroll-padding-top:calc(var(--tg-header,90px) + 18px); scroll-padding-bottom:84px; }
.tg-theme :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
  outline:3px solid #5d9eff; outline-offset:4px;
}
.tg-theme.light-mode :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible {outline-color:#1758b2}
.tg-theme :is(.tg-dark,.tg-final-cta,.tg-inner-hero,.tg-menu-overlay,.tg-footer) :is(a,button,summary):focus-visible {outline-color:#fff}
.tg-theme :is(input,select,textarea,button,a,summary) {scroll-margin-block:12px}
.tg-theme main:focus {outline:none}
.tg-theme .tg-rebuild-form .tg-form-grid>label {font-size:16px;line-height:1.4;gap:8px;margin-top:24px}
.tg-theme .tg-rebuild-form input:not([type=checkbox]),.tg-theme .tg-rebuild-form textarea,.tg-theme .tg-rebuild-form select {font-size:clamp(18px,1.6vw,24px);line-height:1.4}
.tg-theme .tg-rebuild-form input::placeholder,.tg-theme .tg-rebuild-form textarea::placeholder {opacity:.8}
.tg-theme .tg-rebuild-form select:invalid {color:inherit}
.tg-theme .tg-rebuild-form :is(input,select,textarea):focus-visible {outline:3px solid #5d9eff;outline-offset:3px}
.tg-theme.light-mode .tg-rebuild-form :is(input,select,textarea):focus-visible {outline-color:#1758b2}
.tg-theme .tg-rebuild-form .tg-form-required {font-size:15px;line-height:1.5;margin:0 0 8px}
.tg-theme .tg-rebuild-form .tg-field-error {color:#ffb9c6;font-size:16px;line-height:1.4;margin:8px 0 16px;grid-column:1/-1}
.tg-theme.light-mode .tg-rebuild-form .tg-field-error {color:#a11532}
.tg-theme .tg-rebuild-form [aria-invalid=true] {border-color:#ffb9c6}
.tg-theme.light-mode .tg-rebuild-form [aria-invalid=true] {border-color:#a11532}
.tg-theme .tg-error-summary {padding:22px;margin:0 0 24px;border:2px solid #ffb9c6;border-radius:14px;background:#23141a;color:#fff}
.tg-theme .tg-error-summary[hidden] {display:none}
.tg-theme.light-mode .tg-error-summary {background:#fff5f7;color:#651025;border-color:#a11532}
.tg-theme .tg-error-summary h2 {font-size:23px;line-height:1.25;margin:0 0 14px}
.tg-theme .tg-error-summary ul {padding-left:20px;margin:0;display:grid;gap:12px}
.tg-theme .tg-error-summary a {font-size:16px;line-height:1.5;text-decoration:underline;text-underline-offset:3px}
.tg-theme .tg-error-summary:focus,.tg-theme .tg-form-notice:focus {outline:3px solid #5d9eff;outline-offset:4px}
.tg-theme.light-mode .tg-error-summary:focus,.tg-theme.light-mode .tg-form-notice:focus {outline-color:#1758b2}
.tg-theme .tg-final-cta,.tg-theme .tg-inline-contact {background:#286ad6;color:#fff}
.tg-theme.home.light-mode .tg-hamburger img,.tg-theme.light-mode .tg-header.is-scrolled .tg-hamburger img {filter:brightness(0)}
.tg-theme .tg-inline-contact .tg-field-error {color:#fff}
.tg-theme .tg-inline-contact [aria-invalid=true] {border-color:#fff}
.tg-theme .tg-inline-contact :is(input,textarea,select):focus-visible {outline-color:#fff}
html.tg-a11y-motion iframe.tg-video-frame:not([tabindex="-1"]) {pointer-events:auto}
html.tg-a11y-motion :is(.tg-service__media,.tg-inner-service-media,.tg-showreel) .tg-video-frame:not([tabindex="-1"]) {width:100%;height:100%;min-width:0;min-height:0;left:0;top:0;transform:none}
@media(max-width:480px) {
  .tg-theme .tg-header__inner {gap:12px}
  .tg-theme .tg-mode,.tg-theme .tg-language,.tg-theme .tg-hamburger {margin-left:0;margin-right:0}
  body.tg-theme.home .tg-home-hero h1 {font-size:10vw;line-height:1.02;overflow-wrap:anywhere}
  .tg-theme .tg-rebuild-form .tg-form-grid>label {font-size:16px}
  .tg-theme .tg-project-caption {position:relative;inset:auto;background:#111820;padding:18px;color:#fff}
  .tg-theme .tg-project-caption :is(h2,h3) {font-size:22px;line-height:1.2;overflow-wrap:anywhere}
}
@media(forced-colors:active) {
  .tg-theme :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible {outline-color:Highlight}
  .tg-theme .tg-error-summary {border-color:CanvasText;background:Canvas;color:CanvasText}
}

/* WCAG audit: preserve legibility when users enlarge text or alter spacing. */
.tg-theme .tg-value>* {min-width:0}
.tg-theme main :is(h1,h2,h3,h4),.tg-theme .tg-value h2 {overflow-wrap:anywhere}
.tg-theme .tg-service__heading h2,.tg-theme .tg-inner-service-heading h2 {min-width:0;overflow-wrap:anywhere}
.tg-theme .tg-nav-submenu a:is(:hover,:focus-visible) {color:#91b8ff}
.tg-theme.light-mode .tg-nav-submenu a:is(:hover,:focus-visible) {color:#235bbb}
.tg-theme.tg-brand-landing .tg-rebuild-form button[type=submit]:not(:hover) {background:#286ad6;border-color:#286ad6}
.tg-theme .tg-inner-shade {background:linear-gradient(180deg,rgba(13,17,22,.65),#0d1116)}
.tg-theme:is(.home,.tg-rebuild) .tg-work-card__image:after {background:linear-gradient(transparent 20%,rgba(0,0,0,.88) 76%)}
@media(min-width:481px) {.tg-theme .tg-project-caption {background:linear-gradient(transparent 20%,rgba(0,0,0,.88) 76%)}}
@media(max-width:767px) {
  .tg-theme .tg-home-hero h1>span,.tg-theme .tg-inner-title,.tg-theme .tg-inner-title>span {white-space:normal;overflow-wrap:anywhere}
  .tg-theme .tg-value h2 {overflow-wrap:anywhere}
  .tg-campaign-page .tg-shell>* {min-width:0;max-width:100%}
  .tg-campaign-page .tg-pill {max-width:100%;white-space:normal;overflow-wrap:anywhere}
}
