/* Hallmann's current local webfonts, captured from hallmann.cards. */
@font-face {
  font-family: "Plus Jakarta Sans";
  src: url("/assets/hallmann-fonts/jakarta-400.woff2") format("woff2");
  font-display: swap;
  font-style: normal;
  font-weight: 400;
}

@font-face {
  font-family: "Plus Jakarta Sans";
  src: url("/assets/hallmann-fonts/jakarta-500.woff2") format("woff2");
  font-display: swap;
  font-style: normal;
  font-weight: 500;
}

@font-face {
  font-family: "Plus Jakarta Sans";
  src: url("/assets/hallmann-fonts/jakarta-600.woff2") format("woff2");
  font-display: swap;
  font-style: normal;
  font-weight: 600;
}

@font-face {
  font-family: "Plus Jakarta Sans";
  src: url("/assets/hallmann-fonts/jakarta-700.woff2") format("woff2");
  font-display: swap;
  font-style: normal;
  font-weight: 700;
}

@font-face {
  font-family: "Plus Jakarta Sans";
  src: url("/assets/hallmann-fonts/jakarta-800.woff2") format("woff2");
  font-display: swap;
  font-style: normal;
  font-weight: 800;
}

@font-face {
  font-family: "Figtree";
  src: url("/assets/hallmann-fonts/figtree-400.woff2") format("woff2");
  font-display: swap;
  font-style: normal;
  font-weight: 400;
}

@font-face {
  font-family: "Figtree";
  src: url("/assets/hallmann-fonts/figtree-500.woff2") format("woff2");
  font-display: swap;
  font-style: normal;
  font-weight: 500;
}

@font-face {
  font-family: "Figtree";
  src: url("/assets/hallmann-fonts/figtree-600.woff2") format("woff2");
  font-display: swap;
  font-style: normal;
  font-weight: 600;
}

@font-face {
  font-family: "Figtree";
  src: url("/assets/hallmann-fonts/figtree-700.woff2") format("woff2");
  font-display: swap;
  font-style: normal;
  font-weight: 700;
}

@font-face {
  font-family: "Fragment Mono";
  src: url("/assets/hallmann-fonts/fragment-mono-400.woff2") format("woff2");
  font-display: swap;
  font-style: normal;
  font-weight: 400;
}

:root {
  --hallmann-red: #ff2a22;
  --hallmann-red-hover: #d91f1a;
  --hallmann-ink: #ffffff;
  --hallmann-typeface: "Plus Jakarta Sans", "Plus Jakarta Sans Variable", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
}

/* Keep the fixed site header above the embedded card hero. The Framer export
   puts the header in a z-index:1 wrapper while the interactive iframe uses
   z-index:5, so the wrapper itself must be lifted. */
#main div:has(> header[data-framer-name]) {
  z-index: 20 !important;
}

#main header[data-framer-name] {
  z-index: 21 !important;
}

/* Native hash navigation and Framer's own scroll restoration both respect
   scroll-margin. This keeps section headings clear of the fixed navbar. */
#services,
#projects,
#faq {
  scroll-margin-top: 116px !important;
}

@media (max-width: 809px) {
  #services,
  #projects,
  #faq {
    scroll-margin-top: 88px !important;
  }
}

/* The collaboration chapter is intentionally hidden on the homepage. Hide
   its navigation item in CSS during the first render as well, so the SSR
   label cannot flash briefly before hallmann-projects.js removes it. */
#main nav[data-framer-name="container Navbar"] > div:has(a[href$="#pricing"]),
#main nav[data-framer-name="container Navbar"] > div:has(a[href*="#pricing?"]) {
  display: none !important;
}

/* Match the typography used by the live Hallmann site, including Framer's
   generated text nodes and inline font declarations. */
html,
body,
body input,
body textarea,
body select,
body button,
body a,
body h1,
body h2,
body h3,
body h4,
body h5,
body h6,
body p,
body li,
body [data-framer-component-type="Text"] * {
  font-family: var(--hallmann-typeface) !important;
}

/* Hallmann styling for all real CTA/button components in the Framer export. */
a[data-framer-name="Primary"],
a[data-framer-name="Secondary"],
a[data-framer-name="Cta"],
a[data-framer-name="primary"],
a[data-framer-name="big primary"],
a[data-framer-name="Button"],
a[data-framer-name="Primary Button"],
button,
input[type="submit"],
input[type="button"],
[role="button"] {
  background-color: var(--hallmann-red) !important;
  border-color: var(--hallmann-red) !important;
  color: var(--hallmann-ink) !important;
  box-shadow: none !important;
}

/* The Hallmann font has a slightly different line box than the exported
   Biedo font. Reduce only the vertical CTA padding so labels stay optically
   centered without changing their horizontal proportions. */
a[data-framer-name="Primary"],
a[data-framer-name="Secondary"],
a[data-framer-name="Cta"],
a[data-framer-name="primary"],
a[data-framer-name="big primary"],
a[data-framer-name="Button"],
a[data-framer-name="Primary Button"],
button,
input[type="submit"],
input[type="button"],
[role="button"] {
  padding-top: 6px !important;
  padding-bottom: 6px !important;
  line-height: 1.2 !important;
}

a[data-framer-name="Primary"] *,
a[data-framer-name="Secondary"] *,
a[data-framer-name="Cta"] *,
a[data-framer-name="primary"] *,
a[data-framer-name="big primary"] *,
a[data-framer-name="Button"] *,
a[data-framer-name="Primary Button"] *,
button *,
input[type="submit"] *,
input[type="button"] *,
[role="button"] * {
  color: var(--hallmann-ink) !important;
}

a[data-framer-name="Primary"]:hover,
a[data-framer-name="Secondary"]:hover,
a[data-framer-name="Cta"]:hover,
a[data-framer-name="primary"]:hover,
a[data-framer-name="big primary"]:hover,
a[data-framer-name="Button"]:hover,
a[data-framer-name="Primary Button"]:hover,
button:hover,
input[type="submit"]:hover,
input[type="button"]:hover,
[role="button"]:hover {
  background-color: var(--hallmann-red-hover) !important;
  border-color: var(--hallmann-red-hover) !important;
}

/* Framer's CTA hover variant grows from 36px to 40px. Reserve a slightly
   larger, fixed motion area around every instance so that the button can
   expand from its centre without changing the surrounding layout. */
#main div[class$="-container"]:has(> a.framer-Wq64j.framer-15oafg4) {
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  overflow: visible !important;
}

#main div[class$="-container"]:has(> a.framer-Wq64j.framer-15oafg4) > a {
  flex: 0 0 auto !important;
  transform-origin: 50% 50% !important;
}

/* Replace the Biedo marks with the local Hallmann symbol and wordmark. */
a[data-framer-name="Logo"] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 9px !important;
  width: auto !important;
  min-width: 140px !important;
  height: auto !important;
  color: #111214 !important;
  text-decoration: none !important;
}

a[data-framer-name="Logo"] > * {
  display: none !important;
}

a[data-framer-name="Logo"]::before {
  content: "";
  display: block;
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  background: url("/assets/framer/images/hallmann-logo.png") center / contain no-repeat;
}

a[data-framer-name="Logo"]::after {
  content: "HALLMANN";
  display: block;
  color: currentColor;
  font: 800 16px/1 "Plus Jakarta Sans", "Plus Jakarta Sans Variable", Inter, Arial, sans-serif;
  letter-spacing: -0.04em;
}

/* Keep the wordmark legible on dark footer/section backgrounds. */
[data-framer-name="Footer"] a[data-framer-name="Logo"],
[data-framer-name="Footer"] a[data-framer-name="Logo"]::after {
  color: #ffffff !important;
}

/* German labels are wider than the original template labels. Give the
   desktop navigation enough room so long CTAs never get clipped by the
   rounded navbar wrapper. The mobile icon navigation keeps its original
   compact layout below the desktop breakpoint. */
@media (min-width: 810px) {
  #main [data-framer-name="Navbar Wrapper"] {
    width: min(820px, calc(100vw - 24px)) !important;
    max-width: 820px !important;
    overflow: visible !important;
  }

  #main [data-framer-name="Navbar Wrapper"] > [data-framer-name="Logo"] > a[data-framer-name="Logo"] {
    width: 170px !important;
    min-width: 170px !important;
    flex: 0 0 170px !important;
  }

  #main [data-framer-name="container Navbar"] {
    gap: 4px !important;
  }

  #main [data-framer-name="primary"] {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
  }
}
