/* Approved original red branding. Neutral utilities and red task actions are separate. */
:root {
  --brand-red: #ff003f;
  --brand-red-text: #b31631;
  --cta-red: #d90b2b;
  --cta-red-hover: #b70824;
  --cta-red-active: #9e061e;
  --brand-tint: #f6f6f6;
  --accent: #b31631;
  --action: #ffffff;
  --action-hover: #f2f2f2;
  --accent-2: #d8d8d8;
  --button-primary-bg: #ffffff;
  --button-primary-bg-hover: #f2f2f2;
  --button-primary-bg-active: #e8e8e8;
  --button-primary-border: rgba(32,33,36,.3);
  --button-primary-text: #202124;
  --button-focus-ring: #767676;
  --button-secondary-text: #202124;
  --button-secondary-border: rgba(32,33,36,.3);
  --button-secondary-bg-hover: #f2f2f2;
  --scroll-cue-bg: #ffffff;
  --scroll-cue-bg-hover: #f2f2f2;
  --scroll-cue-bg-active: #e8e8e8;
  --scroll-cue-border: #d0d0d0;
  --button-gradient: linear-gradient(#fff,#fff);
  --button-gradient-hover: linear-gradient(#f2f2f2,#f2f2f2);
  --button-shadow: 0 14px 34px rgba(32,33,36,.12);
  --select-shadow-focus: inset 0 0 0 1px rgba(32,33,36,.3),0 0 0 2px rgba(32,33,36,.2),0 10px 24px rgba(32,33,36,.08);
}

/* Text selection deliberately uses the browser / operating-system default. */
.nav-link::after, .eyebrow::before { background:var(--brand-red); }
.hero-type-cursor { background:var(--brand-red); }
.home-hero .signal-dot {
  border-color:#dfb5bd;
  background:radial-gradient(circle,var(--brand-red-text) 0 3px,transparent 4px),rgba(255,255,255,.7);
}
.hero-search:focus-within { border-color:var(--button-secondary-text); }
.hero-search-tags a:hover, .hero-search-tags a:focus-visible,
.search-suggestion:hover, .search-suggestion:focus-visible {
  border-color:var(--button-primary-border);
  background:var(--button-secondary-bg-hover);
  color:var(--button-secondary-text);
}
/* An inset outline gives previously borderless buttons the secondary-button look
   without changing their measured width, height or text position. */
.button:not(.button-secondary),
.hero-search button,
.ticket-open-submit,
.ticket-payment-clear {
  box-shadow:inset 0 0 0 1px var(--button-primary-border)!important;
}
.button:not(.button-secondary):hover,
.button:not(.button-secondary):focus-visible,
.hero-search button:hover,
.hero-search button:focus-visible,
.ticket-open-submit:hover,
.ticket-open-submit:focus-visible,
.ticket-payment-clear:hover,
.ticket-payment-clear:focus-visible {
  box-shadow:inset 0 0 0 1px #aaa!important;
}
/* Icon-only navigation search. Transparent backgrounds and borders retain the
   existing hit area and alignment; keyboard focus keeps a visible outline. */
.nav-search-link,
.topbar.is-scrolled .nav-search-link,
.nav-open .nav-search-link,
.nav-search-link.active,
.topbar.is-scrolled .nav-search-link.active,
.nav-open .nav-search-link.active {
  background:transparent;
  color:var(--button-secondary-text);
  border-color:transparent;
  box-shadow:none;
}
.nav-search-link:hover,
.nav-search-link:focus-visible,
.nav-search-link:active,
.topbar.is-scrolled .nav-search-link:hover,
.topbar.is-scrolled .nav-search-link:focus-visible,
.topbar.is-scrolled .nav-search-link:active,
.nav-open .nav-search-link:hover,
.nav-open .nav-search-link:focus-visible,
.nav-open .nav-search-link:active {
  background:transparent;
  color:var(--button-secondary-text);
  border-color:transparent;
  box-shadow:none;
}
.nav-search-link:focus-visible,
.topbar.is-scrolled .nav-search-link:focus-visible,
.nav-open .nav-search-link:focus-visible {
  outline:2px solid #767676;
  outline-offset:2px;
}
/* The light scroll cue retains dark ink in every interaction state. */
.home-hero .hero-scroll-cue,
.home-hero .hero-scroll-cue:hover,
.home-hero .hero-scroll-cue:focus-visible,
.home-hero .hero-scroll-cue:active { color:var(--button-secondary-text); }
.button-secondary:hover, .button-secondary:focus-visible,
.section:not(.section-dark) .button-secondary:hover,
.section:not(.section-dark) .button-secondary:focus-visible,
.ticket-shell .button-secondary:hover, .ticket-shell .button-secondary:focus-visible,
.analysis-tool-light-shell .button-secondary:hover,
.analysis-tool-light-shell .button-secondary:focus-visible,
.cookie-manage:hover, .cookie-manage:focus-visible,
.cookie-reject:hover, .cookie-reject:focus-visible { border-color:#aaa; }
.text-link:hover, .text-link:focus-visible,
.footer a:hover, .footer a:focus-visible, .footer-cookie:hover,
.remote-links a:hover, .remote-links a:focus-visible {
  color:var(--brand-red-text);
}
.form-row input:focus, .form-row textarea:focus,
.ticket-field input:focus, .ticket-field textarea:focus,
.search-input-row input:focus,
.analysis-form input:focus, .analysis-form textarea:focus {
  outline-color:var(--button-focus-ring);
  border-color:var(--button-secondary-text);
}
input[type="checkbox"], input[type="radio"],
.checkbox-row input, .ticket-privacy input, .cookie-toggle-card input,
.ticket-package-card input { accent-color:var(--button-secondary-text); }
.hold-button .hold-progress { background:var(--button-secondary-text); }
.cookie-preference-badge { color:var(--button-secondary-text); }
.ticket-upload-box { background:linear-gradient(180deg,#fff,var(--brand-tint)); }
.ticket-upload-box:hover, .ticket-upload-box:focus-within,
.ticket-attachment-link:hover, .ticket-attachment-link:focus-visible,
.ticket-package-card:hover, .ticket-package-card:focus-within,
.ticket-package-card:has(input:checked) {
  border-color:#aaa;
  background:var(--brand-tint);
}
.ticket-attachment-preview span { background:var(--brand-tint); color:var(--button-secondary-text); }
.ticket-note.is-agent, .ticket-payment-inline {
  border-left-color:var(--brand-red);
  background:var(--brand-tint);
}
.ticket-payment, .ticket-payment-inline { border-color:#d3d3d3; }
.ticket-payment-inline { border-left-color:var(--brand-red); }

/* Neutral service-area tags and city links, including their interaction states. */
.seo-hero-tags span,
.service-city-list a {
  background:#f6f6f6;
  border-color:rgba(32,33,36,.14);
  color:#333;
}
.service-city-group summary small { color:#666; }
.service-city-list a:hover,
.service-city-list a:focus-visible,
.service-city-list a:active {
  background:#f2f2f2;
  border-color:#aaa;
  color:var(--button-secondary-text);
}
.service-city-list a:focus-visible {
  outline:2px solid #767676;
  outline-offset:2px;
}

/* Remove the legacy green-tinted gradients from intelligence and result cards.
   These are surface colours, not the separate semantic risk/status indicators. */
.analysis-overview-shell .analysis-live-card,
.analysis-tool-light-shell .analysis-result-placeholder,
.analysis-tool-light-shell .analysis-result {
  background:#fff;
}
.analysis-overview-shell .analysis-live-item,
.analysis-overview-shell .analysis-kev-meta div,
.analysis-tool-light-shell .analysis-columns > div,
.analysis-tool-light-shell .analysis-stat-grid div,
.analysis-tool-light-shell .phase-list li,
.analysis-tool-light-shell .analysis-score,
.analysis-tool-light-shell .analysis-table-wrap {
  background:#f6f6f6;
  border-color:rgba(32,33,36,.12);
}
.analysis-overview-shell .analysis-live-tags span {
  background:#f3f3f3;
  color:#333;
}
.analysis-overview-shell .analysis-live-head p,
.analysis-overview-shell .analysis-live-item p,
.analysis-overview-shell .analysis-live-item-head span,
.analysis-overview-shell .analysis-kev-meta dt,
.analysis-overview-shell .analysis-kev-meta dd,
.analysis-tool-light-shell .analysis-result-placeholder p,
.analysis-tool-light-shell .analysis-result p,
.analysis-tool-light-shell .analysis-table th,
.analysis-tool-light-shell .analysis-score span,
.analysis-tool-light-shell .analysis-stat-grid span {
  color:#5a5a5a;
}
.analysis-overview-shell .analysis-live-item-head a:hover,
.analysis-overview-shell .analysis-live-item-head a:focus-visible,
.analysis-overview-shell .analysis-news-card h4 a:hover,
.analysis-overview-shell .analysis-news-card h4 a:focus-visible {
  color:var(--brand-red-text);
  text-decoration-color:currentColor;
}
.analysis-tool-light-shell .analysis-copy:hover,
.analysis-tool-light-shell .analysis-copy:focus-visible,
.analysis-tool-light-shell .button-secondary:hover,
.analysis-tool-light-shell .button-secondary:focus-visible {
  background:#f2f2f2;
  border-color:#aaa;
  color:var(--button-secondary-text);
}

/* Brand colour is not a warning: keep semantic success / low-risk colours green. */
.analysis-risk-low strong { color:#2f7d44; }

/* Full-site audit: neutral input surfaces and readable, explicitly neutral
   placeholders. Dimensions, validation, hold-to-send and autocomplete stay intact. */
.form-row input, .form-row textarea { background:#fafafa; }
.form-row input:focus, .form-row textarea:focus { background:#fff; }
input::placeholder, textarea::placeholder { color:#737373; opacity:1; }
.form-row input:focus-visible, .form-row textarea:focus-visible,
.ticket-field input:focus-visible, .ticket-field textarea:focus-visible,
.search-input-row input:focus-visible,
.analysis-form input:focus-visible, .analysis-form textarea:focus-visible,
select:focus-visible {
  outline:2px solid #767676;
  outline-offset:2px;
}

/* Legacy decorative illustrations contain baked-in lime accents. Desaturate
   only these identified artwork backgrounds, not photos or partner logos. */
.not-found-hero .page-hero-bg,
.page-hero-bg[style*="agb-hero.jpg"],
.page-hero-bg[style*="impressum-hero.jpg"],
.page-hero-bg[style*="entra-id-conditional-access-mfa-hero.jpg"],
.page-hero-bg[style*="microsoft-365-konto-kompromittiert-hero.jpg"],
.page-hero-bg[style*="phishing-mails-erkennen-hero.jpg"],
.page-hero-bg[style*="sharepoint-migration-governance-hero.jpg"] {
  filter:grayscale(1);
}

/* Approved red actions, 2026-09-16. Do not recolour search, scroll, copy or
   consent utilities through the shared neutral tokens above. */
html :is(.button:not(.button-secondary),.ticket-open-submit,.nav .nav-cta):not([data-cookie-accept]):not([data-cookie-save]):not(.cookie-manage):not(.cookie-reject){
  background:var(--cta-red)!important;
  border-color:var(--cta-red)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  box-shadow:inset 0 0 0 1px var(--cta-red)!important;
}
html :is(.button:not(.button-secondary),.ticket-open-submit,.nav .nav-cta):not([data-cookie-accept]):not([data-cookie-save]):not(.cookie-manage):not(.cookie-reject):is(:hover,:focus-visible,.is-holding){
  background:var(--cta-red-hover)!important;
  border-color:var(--cta-red-hover)!important;
  box-shadow:inset 0 0 0 1px var(--cta-red-hover)!important;
}
html :is(.button:not(.button-secondary),.ticket-open-submit,.nav .nav-cta):not([data-cookie-accept]):not([data-cookie-save]):not(.cookie-manage):not(.cookie-reject):active{
  background:var(--cta-red-active)!important;
  border-color:var(--cta-red-active)!important;
  box-shadow:inset 0 0 0 1px var(--cta-red-active)!important;
}
html .button-secondary:not(.cookie-manage):not(.cookie-reject){
  background:#fff!important;
  color:var(--brand-red-text)!important;
  -webkit-text-fill-color:var(--brand-red-text)!important;
  border-color:var(--cta-red)!important;
  box-shadow:none!important;
}
html .button-secondary:not(.cookie-manage):not(.cookie-reject):is(:hover,:focus-visible){
  background:#fff1f3!important;
  border-color:var(--brand-red-text)!important;
}
html :is(.button,.ticket-open-submit):focus-visible{
  outline:2px solid var(--brand-red-text)!important;
  outline-offset:3px!important;
}
.hold-button .hold-progress{background:rgba(255,255,255,.32);}
html :is(.button,.ticket-open-submit):disabled{opacity:.6;cursor:not-allowed;}
