/* =============================================================================
   itat.at — custom.css (Section 16 overrides)
   All custom rules live here. Luminary's style.css, aos.css, bootstrap.min.css
   stay untouched (Section D rule: "Never edit Luminary's original CSS files").
   custom.css is loaded LAST in <head> so it wins specificity ties.
   ========================================================================== */


/* -----------------------------------------------------------------------------
   Section 15.2 — self-hosted fonts (Section 16 #3)
   -------------------------------------------------------------------------- */

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../../fonts/Inter-Bold.woff2') format('woff2');
}

@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../../fonts/barlow-v13-latin_latin-ext-regular.woff2') format('woff2');
}
@font-face {
  font-family: 'Barlow';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../../fonts/barlow-v13-latin_latin-ext-italic.woff2') format('woff2');
}
@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../../fonts/barlow-v13-latin_latin-ext-700.woff2') format('woff2');
}
@font-face {
  font-family: 'Barlow';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url('../../fonts/barlow-v13-latin_latin-ext-700italic.woff2') format('woff2');
}

/* FA regular family: fa-regular-400.woff2 is placed but regular.css was not
   delivered alongside solid.css / brands.css. Mirror FA's solid.css pattern
   so the two regular icons in the approved mapping (fa-regular fa-clock,
   fa-regular fa-file-lines) render correctly. */
@font-face {
  font-family: 'Font Awesome 7 Pro';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url('../webfonts/fa-regular-400.woff2') format('woff2');
}
.far,
.fa-regular {
  font-family: 'Font Awesome 7 Pro';
  font-weight: 400;
}


/* -----------------------------------------------------------------------------
   Section 15.1 — locked color tokens
   Override Luminary's :root tokens so existing rules in style.css
   automatically pick up itat's palette without editing style.css.
   -------------------------------------------------------------------------- */

:root {
  --primary-grey: #3B2837;
  --primary-blue: #124E8D;
  --laser-lemon:  #EFB509;

  --black:        #000000;
  --white:        #FFFFFF;
  --charcoal:     #3B2837;
  --card-bg:      #3B2837;
  --gold:         #FFFFFF;
  --gold-light:   #FFFFFF;
  --gray:         rgba(255, 255, 255, 0.6);
  --red:          #B11226;
  --neon-red:     #FF4D4D;
  --border:       rgba(255, 255, 255, 0.15);

  --font-display: 'Inter', sans-serif;
  --font-hero:    'Inter', sans-serif;
  --font-serif:   'Barlow', sans-serif;
  --font-accent:  'Barlow', sans-serif;
  --font-body:    'Barlow', sans-serif;
}


/* -----------------------------------------------------------------------------
   Page bedrock — Section 15.3 (dark always, #3B2837 page bg)
   -------------------------------------------------------------------------- */

html, body {
  background-color: var(--primary-grey);
  color: var(--white);
}

/* Fließtext +20 % — only descriptive paragraph text, no headings/UI */
.about-text p,
.service-desc,
.industries-lead,
.contact-info-item p,
.parallax-attr {
  font-size: 1.08rem;   /* 0.9 rem × 1.2 */
}

.service-desc {
  font-size: 0.984rem;  /* 0.82 rem × 1.2 */
}


/* -----------------------------------------------------------------------------
   Typography overrides — Section 15.2 mapping
   Inter doesn't need Bebas-Neue's extra letter-spacing.
   -------------------------------------------------------------------------- */

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: 0;
}

.hero-title {
  font-family: var(--font-hero);
  font-weight: 700;
  letter-spacing: 0;
}

.hero-title .gold {
  font-size: 1.18em;
  display: block;
  line-height: 1.1;
}

.hero-sub-lines {
  font-size: 0.72em;
  line-height: 1.05;
  display: block;
  margin-top: 0.2em;
}

.hero-eyebrow {
  font-size: clamp(0.72rem, 0.55rem + 0.85vw, 1.05rem);
  font-weight: 700;
}

.hero-subtitle {
  font-size: clamp(1rem, 2vw, 1.2rem);
}

.parallax-quote,
blockquote,
.testimonial-quote,
em {
  font-family: var(--font-accent);
  font-style: italic;
  font-weight: 700;
}


/* -----------------------------------------------------------------------------
   Section 16 #6 — replace external image URLs in inherited CSS
   Luminary's style.css points .hero-bg and #parallax at unsplash.com URLs.
   We can't edit style.css; we override here.
   -------------------------------------------------------------------------- */

.hero-bg {
  background-image: url('../../media/parallax-bg.jpg');
}

#parallax {
  background-image: url('../../media/parallax-bg.jpg');
}

#trigger {
  background-image: linear-gradient(rgba(10,10,10,0.75), rgba(10,10,10,0.75)), url('../../media/parallax-bg.jpg');
  background-size: cover;
  background-position: center;
}

.eyebrow::before {
  content: none;
}

.service-icon {
  display: block;
  width: auto;
  text-align: center;
  color: var(--primary-blue);   /* V6: white icons -> itat blue (lemon/red sections override) */
}

.service-card {
  text-align: center;
}

@media (min-width: 1400px) {
  #trigger .service-card {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

#trigger .service-icon {
  color: var(--laser-lemon);
}

.service-card::before {
  background: var(--primary-blue);
}

.gold-line {
  width: 288px;
  background: var(--primary-blue);
  background-image: none;
  box-shadow: none;
}


/* -----------------------------------------------------------------------------
   Section 16 #7 — hero video styling (homepage only)
   Section 16 #8 — kill heroScale animation (video doesn't zoom)
   -------------------------------------------------------------------------- */

@keyframes heroScale {
  from, to { transform: none; }
}

video.hero-bg {
  position: absolute;
  inset: 0;
  filter: brightness(0.90) saturate(1);
  transform: scale(1.00);
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
  background-image: none;
  animation: none;
  transform: none;
}

.hero-content {
  animation: heroFadeIn 1.25s 0.7s ease both;
}


/* -----------------------------------------------------------------------------
   Section 16 #11 — hide every blog-related CSS hook
   Pages are physically removed; these rules neutralize any leftover
   class hooks in style.css if a future page references them.
   -------------------------------------------------------------------------- */

.featured-post,
.blog-link,
.category-filter,
.article-meta,
.article-tag,
.article-tags,
.article-content,
.article-image,
.author-bio {
  display: none;
}


/* -----------------------------------------------------------------------------
   Section 16 #12 — skip-to-content link
   -------------------------------------------------------------------------- */

.skip-to-content {
  position: absolute;
  left: -9999px;
  top: -9999px;
  background: var(--primary-blue);
  color: var(--white);
  padding: 0.75rem 1rem;
  z-index: 9999;
  text-decoration: none;
  font-family: var(--font-body);
  font-weight: 700;
  letter-spacing: 0.02em;
}
.skip-to-content:focus,
.skip-to-content:focus-visible {
  left: 1rem;
  top: 1rem;
  outline: 2px solid var(--laser-lemon);
  outline-offset: 2px;
}


/* -----------------------------------------------------------------------------
   Section 16 — .gold / .text-gold accent color
   itat brand gold = laser lemon everywhere (no other gold/yellow shade).
   -------------------------------------------------------------------------- */

.hero-title .gold,
.gold,
.text-gold {
  color: var(--laser-lemon);
}


/* -----------------------------------------------------------------------------
   CTA buttons — shared base + per-service brand colors (site-wide)
   -------------------------------------------------------------------------- */

[data-cta] {
  font-size: 0.84rem;   /* V10: all CTA buttons +20% (0.7rem × 1.2) */
  font-weight: 700;
  flex: 1 1 0;
  text-align: center;
  justify-content: center;
  white-space: nowrap;
  padding: 0.7rem 1.75rem;
  border-radius: 28px;
}

[data-cta] i {
  margin-right: 0.4em;
  font-size: 1.5em;
  vertical-align: middle;
}

[data-cta="whatsapp"] i {
  -webkit-text-stroke: 0.5px currentColor;
}

[data-cta="signal"] {
  background: #3A76F0;
  color: #FFFFFF;
}
[data-cta="signal"]:hover {
  background: #6096F5;
  color: #FFFFFF;
}

[data-cta="whatsapp"] {
  background:#25D366;
  color: #FFFFFF;
}
[data-cta="whatsapp"]:hover {
  background: #5FE08F;
  color: #FFFFFF;
}

[data-cta="email"] {
  background: var(--primary-blue);
  color: #FFFFFF;
}
[data-cta="email"]:hover {
  background: #1a6abf;
  color: #FFFFFF;
}


/* -----------------------------------------------------------------------------
   Section 16 #13 — language switcher (top-right of navbar)
   -------------------------------------------------------------------------- */

.lang-switcher {
  display: inline-flex;
  gap: 0.4rem;
  align-items: center;
  font-family: var(--font-body);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.8rem;
  margin-left: 1.25rem;
}
.lang-switcher a {
  color: rgba(255, 255, 255, 0.6);
  text-decoration: none;
  padding: 0.25rem 0.4rem;
  transition: color 0.2s ease;
}
.lang-switcher a:hover { color: var(--white); }
.lang-switcher a.active {
  color: var(--white);
  border-bottom: 2px solid var(--white);
}
.lang-switcher .sep { color: rgba(255, 255, 255, 0.25); }


/* -----------------------------------------------------------------------------
   Section 16 #14 — active-page underline for .nav-link-custom.active
   -------------------------------------------------------------------------- */

/* Navbar menu links → white (was rgba(245,245,240,0.7)) */
.nav-link-custom {
  color: var(--white) !important;
}

.nav-link-custom.active {
  color: var(--white);
  position: relative;
}
.nav-link-custom.active::after {
  content: '';
  position: absolute;
  left: 0.5rem;
  right: 0.5rem;
  bottom: 0.25rem;
  height: 2px;
  background: var(--laser-lemon);
}


/* -----------------------------------------------------------------------------
   Section 16 #16, #17 — SVG logo replaces text in preloader / nav / footer
   -------------------------------------------------------------------------- */

.preloader-logo,
.nav-brand,
.footer-brand {
  display: inline-flex;
  align-items: center;
}
.preloader-logo img,
.nav-brand img,
.footer-brand img {
  display: block;
  width: auto;
  max-width: 100%;
}
.nav-brand     img { height: clamp(42px,  6vw,  66px); } /* 150% of original size */
.footer-brand  img { height: clamp(48px,  7.5vw,  78px); } /* 150% of original size */
.preloader-logo img { height: clamp(64px, 14vw, 160px); }


/* -----------------------------------------------------------------------------
   Section 16 #10 — static Vienna map (replaces Google Maps iframe)
   -------------------------------------------------------------------------- */

.map-wrap {
  position: relative;
  overflow: hidden;
  border-radius: 4px;
  border: 1px solid var(--border);
}
.map-wrap img {
  display: block;
  width: 100%;
  height: auto;
}


/* -----------------------------------------------------------------------------
   Section 15.3 — focus-visible WCAG 2.2 AA + reduced-motion
   -------------------------------------------------------------------------- */

*:focus-visible {
  outline: 2px solid var(--laser-lemon);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  video.hero-bg { display: none; }
  section#hero  { background: var(--primary-grey); }
}


/* -----------------------------------------------------------------------------
   Services section — background image + buttons pinned to card bottom
   Background image file: media/services-section-bg.jpg
   -------------------------------------------------------------------------- */

#services {
  background-image:
    linear-gradient(rgba(10, 8, 16, 0.87), rgba(10, 8, 16, 0.87)),
    url('../../media/services-section-bg.jpg');
  background-size: cover;
  background-position: center;
}

#services .service-card {
  display: flex;
  flex-direction: column;
}

#services .service-card .btn-outline-gold {
  margin-top: auto;
  margin-bottom: 1.5rem;
  align-self: center;
}


/* -----------------------------------------------------------------------------
   Industries strip — dark background, centered grid, per-industry icons
   -------------------------------------------------------------------------- */

#industries-strip {
  background: #09090e;
}

.industries-lead {
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.6);
  max-width: 520px;
  margin: 0.5rem auto 0;
  line-height: 1.7;
}

.industry-grid-item {
  text-align: center;
  padding: 2rem 1.25rem 1.75rem;
  background: var(--card-bg);
  border: 1px solid var(--border);
  height: 100%;
  transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

.industry-grid-item:hover {
  transform: translateY(-5px);
  border-color: var(--primary-blue);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5);
}

.industry-icon {
  font-size: 2rem;
  color: var(--laser-lemon);
  margin-bottom: 0.85rem;
  display: block;
}

.industry-label {
  font-size: 0.73rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--white);
  font-family: var(--font-body);
  line-height: 1.45;
}


/* -----------------------------------------------------------------------------
   AI section — background image + centered "Mehr zur KI-Praxis" button
   Background image file: media/ai-section-bg.jpg
   -------------------------------------------------------------------------- */

#ai {
  background-image:
    linear-gradient(rgba(5, 10, 22, 0.73), rgba(5, 10, 22, 0.73)),
    url('../../media/ai_background.jpg');
  background-size: cover;
  background-position: center;
}

/* AI section body copy → white */
#ai .about-text,
#ai .about-text p { color: var(--white); }


/* =============================================================================
   Industries — flat (no-box) main layout
   ============================================================================ */

.ind-item-flat {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 2rem 1rem;
  text-align: center;
  cursor: default;
}

.ind-item-flat i {
  font-size: 2.2rem;
  color: var(--laser-lemon);
  display: block;
  margin-bottom: 0.8rem;
  transition: transform 0.35s ease, color 0.3s ease;
}

.ind-item-flat:hover i {
  transform: translateY(-4px);
  color: #FFFFFF;
}

.ind-item-flat span {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
  font-family: var(--font-body);
  line-height: 1.5;
  transition: color 0.3s ease;
  overflow-wrap: break-word;
  word-break: break-word;
  hyphens: auto;
  display: block;
  max-width: 100%;
}

.ind-item-flat:hover span {
  color: var(--white);
}

/* Per-section service-card icon colours (branchen.html).
   .icons-lemon → same laser-lemon as index.html "hier sind wir zuhause".
   .icons-red   → red for "Wo wir bewusst nicht zuhause sind". */
.icons-lemon .service-icon { color: var(--laser-lemon); }
.icons-red   .service-icon { color: var(--red); }

/* White social icons (branchen.html footer) */
.social-white .social-icon { color: var(--primary-blue); }

/* Footer X / LinkedIn icons at double size (was 38px box / 0.85rem glyph) */
.social-icon {
  width: 76px;
  height: 76px;
  font-size: 1.7rem;
  border-radius: 50%;
}

/* Alternating section backgrounds (branchen.html) — palette only:
   black + the grey used as page background across the subsites. */
.sect-darkgrey { background: var(--black); }
.sect-grey     { background: var(--primary-grey); }


/* =============================================================================
   Variant A — Accent-line list (two columns, horizontal rule per item)
   ============================================================================ */

.ind-va-section {
  background: #09090e;
}

.ind-va-item {
  display: flex;
  align-items: center;
  gap: 1.1rem;
  padding: 1.4rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
  transition: border-color 0.3s ease;
}

.ind-va-item:last-child {
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.ind-va-item:hover {
  border-color: var(--primary-blue);
}

.ind-va-item i {
  font-size: 1.35rem;
  color: var(--laser-lemon);
  width: 1.8rem;
  text-align: center;
  flex-shrink: 0;
  transition: transform 0.3s ease;
}

.ind-va-item:hover i {
  transform: scale(1.2);
}

.ind-va-item span {
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
  font-family: var(--font-body);
  transition: color 0.3s ease;
}

.ind-va-item:hover span {
  color: var(--white);
}

/* gap between the two columns */
.ind-va-col-left  { padding-right: 3rem; }
.ind-va-col-right { padding-left:  3rem; border-left: 1px solid rgba(255,255,255,0.06); }

@media (max-width: 767px) {
  .ind-va-col-left  { padding-right: 0; }
  .ind-va-col-right { padding-left: 0; border-left: none; }
}


/* =============================================================================
   Variant B — Icon wall (large icons, flex-wrap single flow)
   ============================================================================ */

.ind-vb-section {
  background: #0b0f1c;
}

.ind-vb-flow {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem 2.5rem;
}

.ind-vb-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 110px;
  text-align: center;
  padding: 1rem 0;
}

.ind-vb-item i {
  font-size: 3.2rem;
  color: var(--laser-lemon);
  display: block;
  margin-bottom: 0.9rem;
  transition: transform 0.4s ease, color 0.35s ease;
}

.ind-vb-item:hover i {
  transform: translateY(-7px) scale(1.08);
  color: #FFFFFF;
}

.ind-vb-item span {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
  line-height: 1.5;
  transition: color 0.3s ease;
}

.ind-vb-item:hover span {
  color: rgba(255, 255, 255, 0.85);
}


/* =============================================================================
   Variant C — Numbered editorial (two columns, decorative numbers)
   ============================================================================ */

.ind-vc-section {
  background: #050508;
}

.ind-vc-item {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  transition: background 0.3s ease;
}

.ind-vc-item:first-child {
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.ind-vc-item:hover {
  background: rgba(18, 78, 141, 0.07);
}

.ind-vc-num {
  font-family: var(--font-display);
  font-size: 2.8rem;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.05);
  line-height: 1;
  flex-shrink: 0;
  width: 2.8rem;
  text-align: right;
  letter-spacing: -0.03em;
  user-select: none;
}

.ind-vc-item i {
  font-size: 1.25rem;
  color: var(--primary-blue);
  flex-shrink: 0;
  transition: color 0.3s ease, transform 0.3s ease;
}

.ind-vc-item:hover i {
  color: var(--laser-lemon);
  transform: scale(1.25);
}

.ind-vc-label {
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
  font-family: var(--font-body);
  transition: color 0.3s ease;
}

.ind-vc-item:hover .ind-vc-label {
  color: var(--white);
}


/* =============================================================================
   Founder section
   ============================================================================ */

#founder {
  background: #09090e;
}

/* Gold line explicitly left-aligned */
.founder-line {
  display: block;
  margin-left: 0;
  margin-right: 0;
}

.founder-img-wrap {
  position: relative;
  overflow: hidden;
}

.founder-img-wrap img {
  width: 100%;
  height: 520px;
  object-fit: cover;
  object-position: top center;
  display: block;
  transition: transform 0.7s ease;
}

.founder-img-wrap:hover img {
  transform: scale(1.04);
}

@media (max-width: 991px) {
  .founder-img-wrap img { height: 360px; }
}

@media (max-width: 575px) {
  .founder-img-wrap img { height: 280px; }
}

.founder-name {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
  color: var(--white);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  line-height: 1.05;
  margin-bottom: 0.4rem;
}

.founder-role {
  font-size: 0.68rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--laser-lemon);
  margin-bottom: 0;
  font-family: var(--font-body);
  font-weight: 600;
}

/* --- Square cert grid (2 × 2, middle column) --- */
.cert-grid-sq {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.55rem;
  width: 100%;
  max-width: 220px;   /* capped on mobile so tiles don't become huge */
}

@media (min-width: 992px) {
  .cert-grid-sq {
    max-width: 100%;   /* fills the col-lg-3 naturally on desktop */
  }
}

/* Square tile: height == width via aspect-ratio.
   Combined selector (0,2,0) beats .cert-logo-tile (0,1,0) → min-height: 76px never wins.
   padding:0 lets the logo span the full box edge-to-edge. */
.cert-logo-tile.cert-sq {
  aspect-ratio: 1 / 1;
  min-height: 0;
  padding: 0;
  overflow: hidden;
}

/* --- Shared cert logo tile styles --- */
.cert-logo-tile {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 76px;
  overflow: hidden;
  transition: border-color 0.3s ease, transform 0.3s ease;
}

.cert-logo-tile:hover {
  border-color: rgba(18, 78, 141, 0.55);
  transform: translateY(-2px);
}

/* Logos are full-colour and always fully visible.
   width/height 100% + object-fit:contain → fills the box without cropping. */
.cert-logo-tile img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  transition: transform 0.35s ease;
}

.cert-logo-tile:hover img {
  transform: scale(1.04);
}


/* =============================================================================
   Awards section
   ============================================================================ */

.awards-section {
  position: relative;
  overflow: hidden;
  background: #050812;          /* fallback behind the video */
  text-align: center;
}

/* Awards video background (homepage) */
.awards-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

.awards-overlay {
  position: absolute;
  inset: 0;
  background: rgba(5, 8, 18, 0.56);   /* keeps heading/logo readable */
  z-index: 1;
}

.awards-section .industries-lead {
  color: var(--white);
  font-size: 1.25rem;
}

.awards-section .container {
  position: relative;
  z-index: 2;
}

.award-logo-wrap {
  display: flex;
  justify-content: center;
  margin-top: 3.5rem;
}

.award-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
}

.award-item img {
  width: auto;
  max-width: 280px;
  height: auto;
  display: block;
  filter: drop-shadow(0 0 40px rgba(18, 78, 141, 0.35));
  transition: filter 0.4s ease, transform 0.4s ease;
}

.award-item:hover img {
  filter: drop-shadow(0 0 60px rgba(239, 181, 9, 0.25));
  transform: scale(1.04);
}

.award-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.7);
  font-family: var(--font-body);
}

.award-sub {
  font-size: 0.62rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--laser-lemon);
  font-family: var(--font-body);
  font-weight: 600;
}


/* =============================================================================
   CTA bridge — floats between services and industries, overlaps both
   ============================================================================ */

.cta-bridge {
  position: relative;
  z-index: 20;
  margin-top: -3rem;
  margin-bottom: -3rem;
  padding: 0 1rem;
}

.cta-bridge-inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  background: #0c1221;
  border: 1px solid rgba(18, 78, 141, 0.55);
  border-radius: 4px;
  padding: 1.75rem 2.5rem;
  max-width: 600px;
  margin: 0 auto;
  box-shadow: 0 16px 56px rgba(0, 0, 0, 0.75), 0 0 0 1px rgba(255, 255, 255, 0.05);
}

/* On narrow phones stack buttons vertically and reduce overlap */
@media (max-width: 575px) {
  .cta-bridge {
    margin-top: -1.75rem;
    margin-bottom: -1.75rem;
  }
  .cta-bridge-inner {
    flex-direction: column;
    padding: 1.5rem 1.25rem;
    gap: 0.75rem;
  }
  .cta-bridge-inner [data-cta] {
    width: 100%;
    max-width: 280px;
  }
}


/* =============================================================================
   Section backgrounds — image overlays + dark solids
   ============================================================================ */

#stack {
  background: #09090e;
}

#about {
  background-image:
    linear-gradient(rgba(9, 9, 14, 0.84), rgba(9, 9, 14, 0.84)),
    url('../../media/about-section-bg.jpg');
  background-size: cover;
  background-position: center;
}

#contact {
  background-image:
    linear-gradient(rgba(5, 8, 18, 0.88), rgba(5, 8, 18, 0.88)),
    url('../../media/contact-section-bg.jpg');
  background-size: cover;
  background-position: center;
}

/* Bottom CTA (#contact) — column pushed right (offset-lg-5) and centered.
   Center the body-copy block under the centered heading on all screen sizes. */
#contact .about-text p {
  margin-left: auto;
  margin-right: auto;
}

/* branchen.html — "Wo wir gut arbeiten": let the right-hand copy fill its
   column so it reads cleanly on every breakpoint (drop the 480px cap). */
#size-region .size-region-text p {
  max-width: none;
}

/* Equal-height "Sind Sie hier richtig" cards at every breakpoint (.trigger-cards) */
.trigger-cards .row{ display:grid; grid-template-columns:1fr; gap:1rem; grid-auto-rows:1fr; }
@media (min-width:768px){ .trigger-cards .row{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1400px){ .trigger-cards .row{ grid-template-columns:repeat(4,1fr); } }
.trigger-cards .row > [class*="col-"]{ width:100%; max-width:100%; padding:0; }
.trigger-cards .service-card{ height:100%; }




/* Index video hero — readability on small screens ONLY (<=480px).
   Wrapped in a max-width media query so larger screens are unaffected. */
@media (max-width: 480px) {
  #hero .hero-eyebrow {
    font-size: 0.72rem;
    letter-spacing: 0.15em;
  }
  #hero .hero-title {
    font-size: clamp(2.1rem, 8vw, 3.5rem);
    letter-spacing: 0.02em;
  }
}



/* =============================================================================
   V8 revision — 2026-06-09 (request batch 2)
   ============================================================================ */

/* 1. Card background: all boxes use the dark-plum #17111A (V10). */
:root { --card-bg: rgb(59, 40, 55); }
.service-card { background: #17111A; }

/* 2. Header "Kontakt / Contact" button — itat blue, bold, white text */
.nav-cta {
  background: var(--primary-blue);
  color: #FFFFFF !important;
  font-weight: 700;
}
.nav-cta:hover {
  background: #1A6ABF !important;
  color: #FFFFFF !important;
}

/* 3. Footer social circles (X / LinkedIn) light up yellow on hover */
.social-icon:hover {
  border-color: var(--laser-lemon);
  color: var(--laser-lemon);
  box-shadow: 0 0 16px rgba(239, 181, 9, 0.45);
}
.social-white .social-icon:hover { color: var(--laser-lemon); }

/* 4. FAQ horizontal separators in itat blue */
.faq-item { border-bottom-color: var(--primary-blue); }
.faq-item:last-child { border-bottom: none; }

/* 5. Lemon text accent (matches the nav active underline, --laser-lemon #EFB509) */
.text-lemon { color: var(--laser-lemon); }

/* 6. branchen/industries "Wo wir gut arbeiten" — more air between the
      two heading lines ("Größe und Region" / "bewusst gewählt") at every
      breakpoint (em-based, so it scales with the clamp()ed font size). */
#size-region .section-title .text-gold {
  display: block;
  margin-top: 0.5em;
}

/* -----------------------------------------------------------------------------
   7. Stack page — tool logo wall + category accordion (de/en stack.html)
   Logos: media/logos/*.svg (Simple Icons / selfh.st, self-hosted) are
   normalized to white via brightness(0) invert(1); FA Pro icons fill the
   gaps where no usable brand SVG exists.
   -------------------------------------------------------------------------- */

.logo-wall {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(118px, 1fr));
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
}
a.tool-tile {
  text-decoration: none;
  color: inherit;
}

/* Erklärtext unter "13 Kategorien" — style.css caps .about-text p at 480px
   without auto margins, which pins it to the left edge of its wrapper.
   Center it at every breakpoint. */
#categories .about-text p {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.tool-tile {
  background: var(--black);
  padding: 1.4rem 0.5rem 1.1rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 0.7rem;
  text-align: center;
  transition: background 0.3s ease;
}
.tool-tile img {
  width: 36px;
  height: 36px;
  object-fit: contain;
  filter: brightness(0) invert(1);
  opacity: 0.88;
}
.tool-tile i {
  font-size: 30px;
  line-height: 36px;
  height: 36px;
  color: var(--white);
  opacity: 0.88;
}
.tool-tile .tool-name {
  font-size: 0.7rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--gray);
}
.tool-tile:hover { background: var(--primary-grey); }
.tool-tile:hover .tool-name { color: var(--laser-lemon); }

.stack-acc { max-width: 980px; margin: 0 auto; }
.stack-cat {
  border: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.02);
  margin-bottom: 0.75rem;
}
.stack-cat summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.1rem 1.4rem;
}
.stack-cat summary::-webkit-details-marker { display: none; }
.stack-cat .cat-icon {
  color: var(--laser-lemon);
  width: 1.6rem;
  text-align: center;
  font-size: 1.1rem;
}
.stack-cat .cat-title {
  flex: 1;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--white);
}
.stack-cat .cat-count {
  color: var(--gray);
  font-size: 0.8rem;
  white-space: nowrap;
}
.stack-cat .cat-chevron {
  color: var(--gray);
  font-size: 0.85rem;
  transition: transform 0.3s ease;
}
.stack-cat[open] .cat-chevron { transform: rotate(180deg); }
.stack-cat summary:hover .cat-title { color: var(--laser-lemon); }
.stack-rows { padding: 0 1.4rem 1.2rem; }
.stack-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.25rem 1.5rem;
  padding: 0.65rem 0;
  border-top: 1px solid var(--border);
  font-size: 0.92rem;
}
.stack-row .req { color: rgba(255, 255, 255, 0.82); }
.stack-row .tools {
  color: var(--white);
  font-weight: 700;
  text-align: right;
  margin-left: auto;
}
@media (max-width: 575.98px) {
  .stack-row { flex-direction: column; }
  .stack-row .tools { text-align: left; margin-left: 0; }
}


/* =============================================================================
   V9 revision — 2026-06-14
   ============================================================================ */

/* Gold accent = laser lemon everywhere. The only remaining warm-gold shade was
   the .btn-*-gold hover border in Luminary's style.css (#C8A84B); override it
   here so no gold/yellow other than laser lemon survives. */
.btn-primary-gold:hover,
.btn-outline-gold:hover {
  border-color: var(--laser-lemon);
}

/* "Sind Sie hier richtig" equal-height cards: white icons + brightened copy
   (the .trigger-cards section is also tagged .box-style-1). */
.trigger-cards .service-icon { color: #FFFFFF; }
.trigger-cards .service-desc { color: rgba(255, 255, 255, 0.85); }


/* =============================================================================
   V10 — full-site rollout — 2026-06-14
   ============================================================================ */

/* --- Two box styles + a negative variant (tag the box SECTION) ------------- */

/* Style 1 ("Sind Sie hier richtig" type): laser-lemon left effect line, white icons. */
.box-style-1 .service-card::before { background: var(--laser-lemon); }
.box-style-1 .service-icon { color: #FFFFFF; }

/* Style 2 ("Unsere Leistungen" type): itat-blue icons + itat-blue left line
   (the default), and the button light-up (hover border) recoloured to itat blue. */
.box-style-2 .service-icon { color: var(--primary-blue); }
.box-style-2 .btn-outline-gold:hover,
.box-style-2 .btn-primary-gold:hover { border-color: var(--primary-blue); }

/* Negative-positioning sections ("…bewusst nicht zuhause / nicht tun"):
   light neon-red left effect line + neon-red icons. */
.box-negative .service-card::before { background: var(--neon-red); }
.box-negative .service-icon { color: var(--neon-red); }

/* Brightened body copy in every tagged box section. */
.box-style-1 .service-desc,
.box-style-2 .service-desc,
.box-negative .service-desc { color: rgba(255, 255, 255, 0.85); }

/* --- Top navbar: never wrap the menu onto a second line -------------------- */
.navbar-nav { flex-wrap: nowrap; }
.nav-link-custom { white-space: nowrap; }
/* Between lg (992px) and xl (1200px) the full menu is tight — tighten the
   horizontal padding / letter-spacing / gap so all items stay on one line. */
@media (min-width: 992px) and (max-width: 1199.98px) {
  .nav-link-custom { padding-left: 0.55rem !important; padding-right: 0.55rem !important; letter-spacing: 0.1em; }
  .navbar-nav.gap-lg-1 { gap: 0 !important; }
  .lang-switcher { margin-left: 0.5rem; }
  .nav-item.ms-lg-3 { margin-left: 0.5rem !important; }
}


/* --- White line between ALL sections --------------------------------------- */
/* Uniform top border on every .section-pad section; the hero/page-header has no
   .section-pad so the page top stays clean. Legacy .divider divs are hidden to
   avoid doubles, and heading accent bars (.gold-line) go white to match. */
.section-pad { border-top: 1px solid #FFFFFF; }
.divider { display: none; }
.gold-line { background: #FFFFFF; background-image: none; }


/* Footer cookie note — sits just above the Impressum/Imprint legal links */
.footer-cookie-note {
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  color: rgba(245,245,240,0.72);
  margin-bottom: 0.5rem;
}
.footer-cookie-note i { color: var(--gold); }

/* Cookie icon in the footer note — a deliberately playful "funny" colour :) */
.footer-cookie-note .fa-cookie-bite { color: #ff5da2; }

/* CLS: width/height attrs are added to <img> for aspect-ratio. Paired with the
   global `img{width:100%}`, force height:auto so those attrs reserve space
   without distorting. Specific per-element heights (.founder-img-wrap img, etc.)
   still win via specificity. */
img { height: auto; }

/* <main> landmark wrapper — explicit block for older UAs; visually transparent (no box, no spacing) */
main { display: block; }
