@font-face{ font-family: 'Montserrat'; font-style: normal; font-weight: 200; font-display: swap;
  src: url('../fonts/montserrat-v25-latin-200.woff2') format('woff2'), url('../fonts/montserrat-v25-latin-200.woff') format('woff'); }
@font-face{ font-family: 'Montserrat'; font-style: normal; font-weight: 300; font-display: swap;
  src: url('../fonts/montserrat-v25-latin-300.woff2') format('woff2'), url('../fonts/montserrat-v25-latin-300.woff') format('woff'); }
@font-face{ font-family: 'Montserrat'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('../fonts/montserrat-v25-latin-regular.woff2') format('woff2'), url('../fonts/montserrat-v25-latin-regular.woff') format('woff'); }
@font-face{ font-family: 'Montserrat'; font-style: normal; font-weight: 500; font-display: swap;
  src: url('../fonts/montserrat-v25-latin-500.woff2') format('woff2'), url('../fonts/montserrat-v25-latin-500.woff') format('woff'); }
@font-face{ font-family: 'Montserrat'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('../fonts/montserrat-v25-latin-700.woff2') format('woff2'), url('../fonts/montserrat-v25-latin-700.woff') format('woff'); }
/* Montserrat (self-hosted, latin) – the brand typeface since the 2020 site. */
/* @ds-font-face-dropped: unresolvable src */
/* @ds-font-face-dropped: unresolvable src */
/* @ds-font-face-dropped: unresolvable src */
/* @ds-font-face-dropped: unresolvable src */
/* @ds-font-face-dropped: unresolvable src */

/*
 * Limberger design tokens.
 * Derived from the 2020 WordPress theme (Montserrat 300, accent #817312)
 * and sampled from the company logo (olive, dark brown, oak).
 */
:root {
  /* ---- Brand primitives ---------------------------------------------- */
  --lb-olive-50: #f7f5e8;
  --lb-olive-100: #ece7c6;
  --lb-olive-200: #d8cf93;
  --lb-olive-400: #a8971f;
  --lb-olive-600: #817312; /* logo + theme accent */
  --lb-olive-700: #6a5e0e;
  --lb-olive-800: #4e450a;

  --lb-brown-700: #4a3828;
  --lb-brown-800: #34261d; /* logo "Tischlerei" lettering */
  --lb-brown-900: #2a1b10; /* logo outline */

  --lb-oak-100: #f1e6d2;
  --lb-oak-300: #d6b98a;
  --lb-oak-500: #ad8c57; /* logo stair, mid oak */
  --lb-oak-700: #8a6233;

  --lb-ink: #0e1015;
  --lb-gray-700: #333333;
  --lb-gray-600: #57534c;
  --lb-gray-500: #77716a;
  --lb-gray-300: #cdc7bc;
  --lb-gray-200: #e6e1d8;
  --lb-sand-50: #fbf9f5;
  --lb-sand-100: #f4f0e8;
  --lb-white: #ffffff;

  /* ---- Semantic colors ------------------------------------------------ */
  --lb-color-bg: var(--lb-white);
  --lb-color-surface: var(--lb-white);
  --lb-color-surface-muted: var(--lb-sand-100);
  --lb-color-surface-dark: var(--lb-brown-900);
  --lb-color-heading: var(--lb-ink);
  --lb-color-text: var(--lb-gray-700);
  --lb-color-text-muted: var(--lb-gray-600);
  --lb-color-text-inverse: #f4efe6;
  --lb-color-text-inverse-muted: #cbbfae;
  --lb-color-accent: var(--lb-olive-600);
  --lb-color-accent-hover: var(--lb-olive-700);
  --lb-color-accent-contrast: var(--lb-white);
  --lb-color-accent-subtle: var(--lb-olive-50);
  --lb-color-wood: var(--lb-oak-500);
  --lb-color-wood-subtle: var(--lb-oak-100);
  --lb-color-border: var(--lb-gray-200);
  --lb-color-border-strong: var(--lb-gray-300);
  --lb-color-focus: var(--lb-olive-600);
  --lb-color-error: #a3321f;
  --lb-color-success: #4d6b1f;
  --lb-color-overlay: rgba(20, 13, 8, 0.38);

  /* ---- Typography ----------------------------------------------------- */
  --lb-font-sans: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
  --lb-weight-extralight: 200;
  --lb-weight-light: 300; /* default for body AND headings */
  --lb-weight-regular: 400;
  --lb-weight-medium: 500;
  --lb-weight-bold: 700;

  --lb-text-xs: 0.8125rem;  /* 13 */
  --lb-text-sm: 0.875rem;   /* 14 */
  --lb-text-md: 1rem;       /* 16 body */
  --lb-text-lg: 1.125rem;   /* 18 nav, lead */
  --lb-text-xl: 1.5rem;     /* 24 h4 */
  --lb-text-2xl: 2rem;      /* 32 h3 */
  --lb-text-3xl: 2.5rem;    /* 40 h2 */
  --lb-text-4xl: 3rem;      /* 48 h1 */
  --lb-text-5xl: 3.75rem;   /* 60 display */

  --lb-leading-tight: 1.15;
  --lb-leading-snug: 1.3;
  --lb-leading-normal: 1.7;
  --lb-tracking-normal: 0;
  --lb-tracking-wide: 0.06em;
  --lb-tracking-wider: 0.18em;

  /* ---- Space & layout ------------------------------------------------- */
  --lb-space-1: 4px;
  --lb-space-2: 8px;
  --lb-space-3: 12px;
  --lb-space-4: 16px;
  --lb-space-5: 24px;
  --lb-space-6: 32px;
  --lb-space-7: 48px;
  --lb-space-8: 64px;
  --lb-space-9: 96px;
  --lb-space-10: 128px;

  --lb-container-max: 1370px;
  --lb-container-narrow: 880px;
  --lb-container-gutter: max(16px, 2.5vw);
  --lb-section-py: var(--lb-space-9);
  --lb-header-height: 96px;

  /* ---- Shape, elevation, motion -------------------------------------- */
  --lb-radius-none: 0;
  --lb-radius-sm: 2px;
  --lb-radius-full: 999px;
  --lb-border-width: 1px;
  --lb-border-width-strong: 2px; /* buttons, accent rules */
  --lb-shadow-sm: 0 1px 2px rgba(42, 27, 16, 0.08);
  --lb-shadow-md: 0 10px 30px rgba(42, 27, 16, 0.12);
  --lb-shadow-lg: 0 24px 60px rgba(42, 27, 16, 0.18);
  --lb-duration-fast: 150ms;
  --lb-duration: 250ms;
  --lb-duration-slow: 600ms;
  --lb-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
}

@media (max-width: 767px) {
  :root {
    --lb-text-5xl: 2.5rem;
    --lb-text-4xl: 2.25rem;
    --lb-text-3xl: 1.875rem;
    --lb-text-2xl: 1.375rem;
    --lb-text-xl: 1.25rem;
    --lb-section-py: 56px;
    --lb-header-height: 72px;
  }
}

/* Limberger components. All classes are prefixed `lb-`; all values come from tokens.css. */

/* ---- Base -------------------------------------------------------------- */
.lb-container, .lb-section, .lb-hero, .lb-feature, .lb-header, .lb-footer, .lb-contact,
.lb-heading, .lb-text, .lb-button, .lb-project-card, .lb-gallery, .lb-team-card, .lb-partners,
.lb-jobs, .lb-field, .lb-check, .lb-form, .lb-claim, .lb-section-heading, .lb-social, .lb-highlight {
  font-family: var(--lb-font-sans);
  box-sizing: border-box;
}
.lb-container *, .lb-section *, .lb-hero *, .lb-feature *, .lb-header *, .lb-footer *, .lb-contact *,
.lb-project-card *, .lb-gallery *, .lb-team-card *, .lb-form *, .lb-field *, .lb-check * { box-sizing: border-box; }

.lb-container {
  width: 100%;
  max-width: calc(var(--lb-container-max) + 2 * var(--lb-container-gutter));
  margin-inline: auto;
  padding-inline: var(--lb-container-gutter);
}
.lb-container--narrow { max-width: calc(var(--lb-container-narrow) + 2 * var(--lb-container-gutter)); }
.lb-container--full { max-width: none; }

.lb-rule {
  display: block;
  width: 56px;
  height: var(--lb-border-width-strong);
  background: var(--lb-color-accent);
  margin: var(--lb-space-4) auto var(--lb-space-5);
}
.lb-rule--left { margin-left: 0; }

/* ---- Section ----------------------------------------------------------- */
.lb-section { color: var(--lb-color-text); background: var(--lb-color-bg); font-weight: var(--lb-weight-light); }
.lb-section--muted { background: var(--lb-color-surface-muted); }
.lb-section--dark { background: var(--lb-color-surface-dark); color: var(--lb-color-text-inverse); }
.lb-section--accent { background: var(--lb-color-accent); color: var(--lb-color-accent-contrast); }
.lb-section--space-none { padding-block: 0; }
.lb-section--space-sm { padding-block: calc(var(--lb-section-py) / 2); }
.lb-section--space-md { padding-block: var(--lb-section-py); }
.lb-section--space-lg { padding-block: calc(var(--lb-section-py) * 1.5); }
.lb-section--dark .lb-heading, .lb-section--accent .lb-heading { color: inherit; }
.lb-section--accent .lb-rule { background: var(--lb-color-accent-contrast); }
.lb-section--dark .lb-text, .lb-section--dark .lb-prose, .lb-section--dark .lb-section-heading__intro { color: var(--lb-color-text-inverse-muted); }
.lb-section--dark .lb-section-heading__eyebrow, .lb-section--dark .lb-text--eyebrow { color: var(--lb-oak-300); }
.lb-section--accent .lb-text, .lb-section--accent .lb-prose, .lb-section--accent .lb-section-heading__intro { color: rgba(255, 255, 255, 0.9); }
.lb-section--accent .lb-section-heading__eyebrow, .lb-section--accent .lb-text--eyebrow { color: var(--lb-white); }
.lb-section--dark .lb-heading--accent { color: var(--lb-oak-300); }

/* ---- Typography -------------------------------------------------------- */
.lb-heading {
  margin: 0 0 var(--lb-space-4);
  color: var(--lb-color-heading);
  line-height: var(--lb-leading-tight);
  letter-spacing: var(--lb-tracking-normal);
  text-wrap: balance;
}
.lb-heading--display { font-size: var(--lb-text-5xl); }
.lb-heading--h1 { font-size: var(--lb-text-4xl); }
.lb-heading--h2 { font-size: var(--lb-text-3xl); }
.lb-heading--h3 { font-size: var(--lb-text-2xl); line-height: var(--lb-leading-snug); }
.lb-heading--h4 { font-size: var(--lb-text-xl); line-height: var(--lb-leading-snug); }
.lb-heading--light { font-weight: var(--lb-weight-light); }
.lb-heading--regular { font-weight: var(--lb-weight-regular); }
.lb-heading--medium { font-weight: var(--lb-weight-medium); }
.lb-heading--center { text-align: center; }
.lb-heading--inverse { color: var(--lb-color-text-inverse); }
.lb-heading--accent { color: var(--lb-color-accent); }
.lb-heading--upper { text-transform: uppercase; letter-spacing: var(--lb-tracking-wide); }

.lb-text { margin: 0 0 var(--lb-space-4); color: var(--lb-color-text); font-weight: var(--lb-weight-light); line-height: var(--lb-leading-normal); font-size: var(--lb-text-md); }
.lb-text--lead { font-size: var(--lb-text-lg); line-height: 1.75; }
.lb-text--small { font-size: var(--lb-text-sm); }
.lb-text--caption { font-size: var(--lb-text-xs); color: var(--lb-color-text-muted); }
.lb-text--eyebrow {
  display: inline-block;
  font-size: var(--lb-text-xs);
  font-weight: var(--lb-weight-medium);
  letter-spacing: var(--lb-tracking-wider);
  text-transform: uppercase;
  color: var(--lb-color-accent);
}
.lb-text--muted { color: var(--lb-color-text-muted); }
.lb-text--inverse { color: var(--lb-color-text-inverse); }
.lb-text--accent { color: var(--lb-color-accent); }
.lb-text--center { text-align: center; }
.lb-text strong, .lb-prose strong { font-weight: var(--lb-weight-medium); color: var(--lb-color-heading); }

.lb-prose { color: var(--lb-color-text); font-weight: var(--lb-weight-light); line-height: var(--lb-leading-normal); font-size: var(--lb-text-md); }
.lb-prose > * { margin: 0 0 var(--lb-space-4); }
.lb-prose > *:last-child { margin-bottom: 0; }
.lb-prose a, .lb-contact a, .lb-check a, .lb-team-card a { color: var(--lb-color-accent); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.lb-prose ul, .lb-prose ol { padding-left: 1.2em; }
.lb-prose li { margin-bottom: var(--lb-space-2); }
.lb-prose li::marker { color: var(--lb-color-accent); }

/* ---- Highlight (signature olive box) ----------------------------------- */
.lb-highlight {
  display: inline;
  padding: 0.08em 0.4em;
  line-height: 1.45;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  font-weight: var(--lb-weight-light);
}
.lb-highlight--accent { background: var(--lb-color-accent); color: var(--lb-color-accent-contrast); }
.lb-highlight--dark { background: var(--lb-brown-900); color: var(--lb-color-text-inverse); }
.lb-highlight--light { background: var(--lb-white); color: var(--lb-color-heading); }
.lb-highlight--title { font-size: var(--lb-text-4xl); letter-spacing: var(--lb-tracking-wide); }
.lb-highlight--subtitle { font-size: var(--lb-text-lg); letter-spacing: var(--lb-tracking-wider); padding: 0.3em 0.7em; }
.lb-highlight--inline { font-size: inherit; padding: 0.05em 0.3em; }
.lb-highlight--upper { text-transform: uppercase; }

/* ---- Section heading --------------------------------------------------- */
.lb-section-heading { margin-bottom: var(--lb-space-7); max-width: 760px; }
.lb-section-heading--center { margin-inline: auto; text-align: center; }
.lb-section-heading__eyebrow {
  display: block;
  margin-bottom: var(--lb-space-3);
  font-size: var(--lb-text-xs);
  font-weight: var(--lb-weight-medium);
  letter-spacing: var(--lb-tracking-wider);
  text-transform: uppercase;
  color: var(--lb-color-accent);
}
.lb-section-heading__title { margin: 0; }
.lb-section-heading--left .lb-rule { margin-left: 0; }
.lb-section-heading__intro { margin: 0; font-size: var(--lb-text-lg); line-height: 1.75; font-weight: var(--lb-weight-light); color: var(--lb-color-text-muted); }
.lb-section-heading--inverse .lb-section-heading__title { color: var(--lb-color-text-inverse); }
.lb-section-heading--inverse .lb-section-heading__intro { color: var(--lb-color-text-inverse-muted); }
.lb-section-heading--inverse .lb-section-heading__eyebrow { color: var(--lb-oak-300); }

/* ---- Button ------------------------------------------------------------ */
.lb-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--lb-space-3);
  border: var(--lb-border-width-strong) solid var(--lb-color-accent);
  border-radius: var(--lb-radius-none);
  font-size: var(--lb-text-md);
  font-weight: var(--lb-weight-regular);
  letter-spacing: 0.02em;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--lb-duration) var(--lb-ease), color var(--lb-duration) var(--lb-ease), border-color var(--lb-duration) var(--lb-ease);
  white-space: nowrap;
}
.lb-button--md { padding: 12px 26px; min-height: 48px; }
.lb-button--lg { padding: 18px 40px; min-height: 60px; font-size: var(--lb-text-lg); }
.lb-button--full { width: 100%; }
.lb-button--primary { background: var(--lb-color-accent); color: var(--lb-color-accent-contrast); }
.lb-button--primary:hover { background: var(--lb-color-accent-hover); border-color: var(--lb-color-accent-hover); }
.lb-button--outline { background: transparent; color: var(--lb-color-text); }
.lb-button--outline:hover { background: var(--lb-color-accent); color: var(--lb-color-accent-contrast); }
.lb-button--inverse { background: rgba(255, 255, 255, 0.04); color: var(--lb-white); border-color: var(--lb-white); }
.lb-button--inverse:hover { background: var(--lb-white); color: var(--lb-color-heading); }
.lb-button--link { border: 0; padding: 4px 0; min-height: 0; background: none; color: var(--lb-color-accent); font-weight: var(--lb-weight-medium); }
.lb-button--link:hover { color: var(--lb-color-accent-hover); }
.lb-button--link:hover .lb-button__arrow { transform: translateX(4px); }
.lb-button:focus-visible { outline: 2px solid var(--lb-color-focus); outline-offset: 3px; }
.lb-button:disabled { opacity: 0.55; cursor: not-allowed; }
.lb-button__arrow { width: 18px; height: 18px; flex: none; transition: transform var(--lb-duration) var(--lb-ease); }

/* ---- Logo -------------------------------------------------------------- */
.lb-logo { display: block; max-width: 100%; }

/* ---- Social ------------------------------------------------------------ */
.lb-social { display: flex; gap: var(--lb-space-3); list-style: none; margin: 0; padding: 0; }
.lb-social a { display: inline-flex; align-items: center; gap: var(--lb-space-2); text-decoration: none; font-size: var(--lb-text-sm); transition: color var(--lb-duration) var(--lb-ease); }
.lb-social svg { width: 22px; height: 22px; }
.lb-social--default a { color: var(--lb-color-accent); }
.lb-social--default a:hover { color: var(--lb-color-accent-hover); }
.lb-social--inverse a { color: var(--lb-color-text-inverse); }
.lb-social--inverse a:hover { color: var(--lb-oak-300); }

/* ---- Header ------------------------------------------------------------ */
.lb-header { background: var(--lb-white); border-bottom: var(--lb-border-width) solid var(--lb-color-border); position: relative; z-index: 20; container-type: inline-size; container-name: lb-header; }
.lb-header--sticky { position: sticky; top: 0; }
.lb-header__bar { display: flex; align-items: center; justify-content: space-between; min-height: var(--lb-header-height); gap: var(--lb-space-6); }
.lb-header__brand { display: inline-flex; padding-block: var(--lb-space-3); }
.lb-header__nav { display: flex; align-items: center; gap: var(--lb-space-6); }
.lb-nav { display: flex; align-items: center; gap: var(--lb-space-1); list-style: none; margin: 0; padding: 0; }
.lb-nav__item { position: relative; }
.lb-nav__link {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 10px 14px;
  color: var(--lb-color-heading);
  font-size: var(--lb-text-lg);
  font-weight: var(--lb-weight-light);
  text-decoration: none;
  white-space: nowrap;
  transition: color var(--lb-duration-fast) var(--lb-ease);
}
.lb-nav__link::after {
  content: ''; position: absolute; left: 14px; right: 14px; bottom: 2px; height: 2px;
  background: var(--lb-color-accent); transform: scaleX(0); transform-origin: left; transition: transform var(--lb-duration) var(--lb-ease);
}
.lb-nav__item:hover > .lb-nav__link, .lb-nav__item--active > .lb-nav__link, .lb-nav__item--open > .lb-nav__link { color: var(--lb-color-accent); }
.lb-nav__item--active > .lb-nav__link::after { transform: scaleX(1); }
.lb-nav__chevron { width: 12px; height: 12px; }
.lb-nav__dropdown {
  position: absolute; top: 100%; left: 0; min-width: 240px;
  list-style: none; margin: 0; padding: var(--lb-space-2) 0;
  background: var(--lb-white); border-top: var(--lb-border-width-strong) solid var(--lb-color-accent);
  box-shadow: var(--lb-shadow-md);
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity var(--lb-duration) var(--lb-ease), transform var(--lb-duration) var(--lb-ease), visibility var(--lb-duration);
}
.lb-nav__item:hover > .lb-nav__dropdown, .lb-nav__item:focus-within > .lb-nav__dropdown, .lb-nav__item--open > .lb-nav__dropdown { opacity: 1; visibility: visible; transform: none; }
.lb-nav__sublink { display: block; padding: 10px 20px; color: var(--lb-color-text); font-size: var(--lb-text-md); font-weight: var(--lb-weight-light); text-decoration: none; }
.lb-nav__sublink:hover, .lb-nav__sublink--active { color: var(--lb-color-accent); background: var(--lb-color-accent-subtle); }
.lb-header__burger { display: none; width: 44px; height: 44px; border: 0; background: none; padding: 10px; cursor: pointer; flex-direction: column; justify-content: center; gap: 6px; }
.lb-header__burger span { display: block; height: 2px; background: var(--lb-color-heading); transition: transform var(--lb-duration) var(--lb-ease), opacity var(--lb-duration); }
/* Container query: the header collapses by its own width, so it also works inside narrow frames/artboards. */
@container lb-header (max-width: 1100px) {
  .lb-header__bar { flex-wrap: wrap; }
  .lb-header__burger { display: inline-flex; }
  .lb-header__nav { display: none; width: 100%; flex-direction: column; align-items: stretch; gap: var(--lb-space-4); padding-bottom: var(--lb-space-5); }
  .lb-header--mobile-open .lb-header__nav { display: flex; }
  .lb-header--mobile-open .lb-header__burger span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
  .lb-header--mobile-open .lb-header__burger span:nth-child(2) { opacity: 0; }
  .lb-header--mobile-open .lb-header__burger span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
  .lb-nav { flex-direction: column; align-items: stretch; gap: 0; }
  .lb-nav__item { border-top: var(--lb-border-width) solid var(--lb-color-border); }
  .lb-nav__link { padding: 14px 0; width: 100%; justify-content: space-between; }
  .lb-nav__link::after { display: none; }
  .lb-nav__dropdown { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border-top: 0; padding: 0 0 var(--lb-space-3) var(--lb-space-4); display: none; }
  .lb-nav__item--open > .lb-nav__dropdown, .lb-nav__item--active > .lb-nav__dropdown { display: block; }
  .lb-nav__sublink { padding: 8px 0; }
}

/* ---- Footer ------------------------------------------------------------ */
.lb-footer { background: var(--lb-color-surface-dark); color: var(--lb-color-text-inverse-muted); font-weight: var(--lb-weight-light); font-size: var(--lb-text-md); }
.lb-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: var(--lb-space-8); padding-block: var(--lb-space-8); }
.lb-footer__brand { display: flex; flex-direction: column; gap: var(--lb-space-5); align-items: flex-start; }
.lb-footer__tagline { margin: 0; max-width: 34ch; line-height: var(--lb-leading-normal); }
.lb-footer__heading { margin: 0 0 var(--lb-space-4); color: var(--lb-color-text-inverse); font-size: var(--lb-text-xs); font-weight: var(--lb-weight-medium); letter-spacing: var(--lb-tracking-wider); text-transform: uppercase; }
.lb-footer__address { display: flex; flex-direction: column; font-style: normal; line-height: 1.8; margin-bottom: var(--lb-space-4); }
.lb-footer__contact { display: flex; flex-direction: column; margin: 0; line-height: 1.8; }
.lb-footer a { color: var(--lb-color-text-inverse); text-decoration: none; transition: color var(--lb-duration-fast); }
.lb-footer a:hover { color: var(--lb-oak-300); }
.lb-footer__links { list-style: none; margin: 0; padding: 0; line-height: 2; }
.lb-footer__bottom { border-top: var(--lb-border-width) solid rgba(244, 239, 230, 0.14); font-size: var(--lb-text-sm); }
.lb-footer__bottom-inner { display: flex; justify-content: space-between; align-items: center; gap: var(--lb-space-4); padding-block: var(--lb-space-5); flex-wrap: wrap; }
.lb-footer__legal { display: flex; gap: var(--lb-space-5); list-style: none; margin: 0; padding: 0; }
@media (max-width: 900px) { .lb-footer__grid { grid-template-columns: 1fr; gap: var(--lb-space-6); } }

/* ---- Hero -------------------------------------------------------------- */
.lb-hero { position: relative; display: flex; align-items: center; overflow: hidden; background: var(--lb-brown-900); isolation: isolate; }
.lb-hero--home { min-height: clamp(520px, 82vh, 860px); }
.lb-hero--page { min-height: clamp(320px, 46vh, 460px); }
.lb-hero__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.lb-hero::before { content: ''; position: absolute; inset: 0; z-index: -1; }
.lb-hero--overlay-soft::before { background: linear-gradient(180deg, rgba(20, 13, 8, 0.12) 0%, rgba(20, 13, 8, 0.32) 100%); }
.lb-hero--overlay-strong::before { background: rgba(20, 13, 8, 0.5); }
.lb-hero__content { width: 100%; max-width: calc(var(--lb-container-max) + 2 * var(--lb-container-gutter)); margin-inline: auto; padding: var(--lb-space-8) var(--lb-container-gutter); display: flex; flex-direction: column; gap: var(--lb-space-4); }
.lb-hero--center .lb-hero__content { align-items: center; text-align: center; }
.lb-hero--left .lb-hero__content { align-items: flex-start; text-align: left; }
.lb-hero__title { margin: 0; font-weight: var(--lb-weight-light); line-height: 1.4; }
.lb-hero--page .lb-hero__title .lb-highlight--title { font-size: var(--lb-text-3xl); }
.lb-hero__subtitle { margin: 0; }
.lb-hero__actions { display: flex; flex-wrap: wrap; gap: var(--lb-space-4); margin-top: var(--lb-space-6); }
.lb-hero--center .lb-hero__actions { justify-content: center; }
.lb-hero__actions::before { content: ''; flex-basis: 100%; height: 0; }
.lb-hero--center .lb-hero__actions::before { display: none; }

/* ---- Feature section --------------------------------------------------- */
.lb-feature { padding-block: var(--lb-section-py); background: var(--lb-color-bg); }
.lb-feature--muted { background: var(--lb-color-surface-muted); }
.lb-feature__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 96px); align-items: center; }
.lb-feature--img-right .lb-feature__media { order: 2; }
.lb-feature__media { margin: 0; position: relative; overflow: hidden; }
.lb-feature__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.lb-feature__media--landscape { aspect-ratio: 4 / 3; }
.lb-feature__media--square { aspect-ratio: 1; }
.lb-feature__media--portrait { aspect-ratio: 4 / 5; }
.lb-feature__media::after { content: ''; position: absolute; inset: auto auto 0 0; width: 33%; height: 6px; background: var(--lb-color-accent); }
.lb-feature--img-right .lb-feature__media::after { inset: auto 0 0 auto; }
.lb-feature__title { margin: 0; }
.lb-feature__actions { margin-top: var(--lb-space-6); display: flex; gap: var(--lb-space-4); flex-wrap: wrap; }
@media (max-width: 860px) {
  .lb-feature__grid { grid-template-columns: 1fr; }
  .lb-feature--img-right .lb-feature__media { order: 0; }
}

/* ---- Quality claim ----------------------------------------------------- */
.lb-claim { color: var(--lb-color-heading); }
.lb-claim--band { display: flex; flex-direction: column; align-items: center; gap: var(--lb-space-4); text-align: center; padding-block: var(--lb-space-7); }
.lb-claim__mark { width: 56px; height: 28px; color: var(--lb-color-accent); }
.lb-claim__text { margin: 0; font-weight: var(--lb-weight-light); }
.lb-claim--band .lb-claim__text { font-size: var(--lb-text-2xl); letter-spacing: 0.01em; }
.lb-claim--inline .lb-claim__text { font-size: var(--lb-text-md); }
.lb-claim__text strong { font-weight: var(--lb-weight-bold); letter-spacing: 0.04em; }
.lb-claim__text em { font-style: normal; color: var(--lb-color-accent); font-weight: var(--lb-weight-medium); }
.lb-claim--inverse { color: var(--lb-color-text-inverse); }
.lb-claim--inverse .lb-claim__text em, .lb-claim--inverse .lb-claim__mark { color: var(--lb-oak-300); }

/* ---- Project card + grid ----------------------------------------------- */
.lb-project-card { position: relative; overflow: hidden; background: var(--lb-brown-900); }
.lb-project-card--landscape { aspect-ratio: 4 / 3; }
.lb-project-card--square { aspect-ratio: 1; }
.lb-project-card--portrait { aspect-ratio: 3 / 4; }
.lb-project-card__link { position: absolute; inset: 0; display: block; color: var(--lb-white); text-decoration: none; }
.lb-project-card__image { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform var(--lb-duration-slow) var(--lb-ease); }
.lb-project-card__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20, 13, 8, 0) 35%, rgba(20, 13, 8, 0.55) 70%, rgba(20, 13, 8, 0.85) 100%); transition: background var(--lb-duration) var(--lb-ease); }
.lb-project-card__caption { position: absolute; left: var(--lb-space-5); right: var(--lb-space-5); bottom: var(--lb-space-5); display: flex; flex-direction: column; gap: 6px; }
.lb-project-card__category { font-size: var(--lb-text-xs); font-weight: var(--lb-weight-medium); letter-spacing: var(--lb-tracking-wider); text-transform: uppercase; color: rgba(255, 255, 255, 0.85); }
.lb-project-card__title { font-size: var(--lb-text-xl); font-weight: var(--lb-weight-light); line-height: var(--lb-leading-snug); hyphens: auto; overflow-wrap: anywhere; }
.lb-project-card__line { display: block; width: 40px; height: 1px; background: currentColor; transition: width var(--lb-duration) var(--lb-ease); }
.lb-project-card:hover .lb-project-card__image { transform: scale(1.05); }
.lb-project-card:hover .lb-project-card__line { width: 100%; }
.lb-project-card:hover .lb-project-card__shade { background: linear-gradient(180deg, rgba(129, 115, 18, 0.15) 0%, rgba(20, 13, 8, 0.78) 100%); }

.lb-project-grid { display: grid; }
.lb-project-grid--gap-md { gap: var(--lb-space-6); }
.lb-project-grid--gap-sm { gap: var(--lb-space-3); }
.lb-project-grid--cols-2 { grid-template-columns: repeat(2, 1fr); }
.lb-project-grid--cols-3 { grid-template-columns: repeat(3, 1fr); }
.lb-project-grid--cols-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1024px) { .lb-project-grid--cols-3, .lb-project-grid--cols-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .lb-project-grid[class] { grid-template-columns: 1fr; } }

/* ---- Gallery ----------------------------------------------------------- */
.lb-gallery--grid { display: grid; gap: var(--lb-space-3); }
.lb-gallery--grid.lb-gallery--cols-2 { grid-template-columns: repeat(2, 1fr); }
.lb-gallery--grid.lb-gallery--cols-3 { grid-template-columns: repeat(3, 1fr); }
.lb-gallery--grid.lb-gallery--cols-4 { grid-template-columns: repeat(4, 1fr); }
.lb-gallery--grid .lb-gallery__item img { aspect-ratio: 4 / 3; object-fit: cover; }
.lb-gallery--masonry { column-gap: var(--lb-space-3); }
.lb-gallery--masonry.lb-gallery--cols-2 { columns: 2; }
.lb-gallery--masonry.lb-gallery--cols-3 { columns: 3; }
.lb-gallery--masonry.lb-gallery--cols-4 { columns: 4; }
.lb-gallery--masonry .lb-gallery__item { break-inside: avoid; margin-bottom: var(--lb-space-3); }
.lb-gallery__item { margin: 0; overflow: hidden; }
.lb-gallery__item img { display: block; width: 100%; height: auto; transition: transform var(--lb-duration-slow) var(--lb-ease); }
.lb-gallery__item:hover img { transform: scale(1.03); }
.lb-gallery__caption { display: flex; flex-direction: column; gap: 2px; padding: var(--lb-space-3) 0 var(--lb-space-2); }
.lb-gallery__title { font-size: var(--lb-text-sm); font-weight: var(--lb-weight-regular); color: var(--lb-color-heading); }
.lb-gallery__desc { font-size: var(--lb-text-xs); color: var(--lb-color-text-muted); font-weight: var(--lb-weight-light); }
@media (max-width: 760px) {
  .lb-gallery--grid.lb-gallery--cols-3, .lb-gallery--grid.lb-gallery--cols-4 { grid-template-columns: repeat(2, 1fr); }
  .lb-gallery--masonry.lb-gallery--cols-3, .lb-gallery--masonry.lb-gallery--cols-4 { columns: 2; }
}

/* ---- Team card --------------------------------------------------------- */
.lb-team-card { display: flex; flex-direction: column; background: var(--lb-color-surface); border: var(--lb-border-width) solid var(--lb-color-border); }
.lb-team-card__portrait { aspect-ratio: 4 / 5; background: var(--lb-color-wood-subtle); display: grid; place-items: center; overflow: hidden; }
.lb-team-card__portrait img { width: 100%; height: 100%; object-fit: cover; }
.lb-team-card__monogram { font-size: 56px; font-weight: var(--lb-weight-extralight); letter-spacing: 0.08em; color: var(--lb-oak-700); }
.lb-team-card__body { padding: var(--lb-space-5); border-top: 3px solid var(--lb-color-accent); }
.lb-team-card__name { margin: 0; font-size: var(--lb-text-xl); font-weight: var(--lb-weight-light); color: var(--lb-color-heading); }
.lb-team-card__role { margin: 4px 0 var(--lb-space-4); font-size: var(--lb-text-sm); color: var(--lb-color-text-muted); font-weight: var(--lb-weight-light); }
.lb-team-card__contact { display: grid; grid-template-columns: auto 1fr; gap: 4px var(--lb-space-3); margin: 0; font-size: var(--lb-text-sm); font-weight: var(--lb-weight-light); }
.lb-team-card__contact dt { color: var(--lb-color-text-muted); }
.lb-team-card__contact dd { margin: 0; }
.lb-team-card__contact a { text-decoration: none; }

/* ---- Partners ---------------------------------------------------------- */
.lb-partners { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); padding: 1px 0 0 1px; }
.lb-partners__item { display: grid; place-items: center; min-height: 104px; padding: var(--lb-space-4) var(--lb-space-3); margin: -1px 0 0 -1px; border: var(--lb-border-width) solid var(--lb-color-border); background: var(--lb-color-surface); }
.lb-partners__item img { max-width: 100%; max-height: 56px; object-fit: contain; transition: filter var(--lb-duration) var(--lb-ease), opacity var(--lb-duration); }
.lb-partners__name { font-size: var(--lb-text-sm); font-weight: var(--lb-weight-medium); letter-spacing: 0.03em; text-align: center; color: var(--lb-color-text-muted); transition: color var(--lb-duration); }
.lb-partners--mono img { filter: grayscale(1); opacity: 0.7; }
.lb-partners__item:hover img { filter: none; opacity: 1; }
.lb-partners__item:hover .lb-partners__name { color: var(--lb-color-accent); }
.lb-partners a { text-decoration: none; }

/* ---- Jobs -------------------------------------------------------------- */
.lb-jobs { list-style: none; margin: 0; padding: 0; border-top: var(--lb-border-width) solid var(--lb-color-border); }
.lb-jobs__item { display: flex; justify-content: space-between; align-items: center; gap: var(--lb-space-5); padding: var(--lb-space-5) 0; border-bottom: var(--lb-border-width) solid var(--lb-color-border); flex-wrap: wrap; }
.lb-jobs__title { margin: 0; font-size: var(--lb-text-xl); font-weight: var(--lb-weight-light); color: var(--lb-color-heading); }
.lb-jobs__type { display: inline-block; margin-top: 6px; font-size: var(--lb-text-xs); font-weight: var(--lb-weight-medium); letter-spacing: var(--lb-tracking-wider); text-transform: uppercase; color: var(--lb-color-accent); }
.lb-jobs__link { display: inline-flex; align-items: center; gap: var(--lb-space-2); color: var(--lb-color-accent); text-decoration: none; font-size: var(--lb-text-sm); font-weight: var(--lb-weight-medium); }
.lb-jobs__link svg { width: 18px; height: 18px; }
.lb-jobs__link:hover { color: var(--lb-color-accent-hover); text-decoration: underline; text-underline-offset: 3px; }

/* ---- Form fields ------------------------------------------------------- */
.lb-field { display: flex; flex-direction: column; gap: 6px; }
.lb-field__label { font-size: var(--lb-text-sm); font-weight: var(--lb-weight-regular); color: var(--lb-color-heading); }
.lb-field__required { color: var(--lb-color-accent); }
.lb-field__control {
  width: 100%;
  font: inherit;
  font-weight: var(--lb-weight-light);
  font-size: var(--lb-text-md);
  color: var(--lb-color-heading);
  background: var(--lb-color-surface);
  border: var(--lb-border-width) solid var(--lb-color-border-strong);
  border-radius: var(--lb-radius-none);
  padding: 12px 14px;
  min-height: 48px;
  transition: border-color var(--lb-duration-fast), box-shadow var(--lb-duration-fast);
}
.lb-field__control::placeholder { color: var(--lb-gray-500); }
.lb-field__control:hover { border-color: var(--lb-gray-500); }
.lb-field__control:focus { outline: none; border-color: var(--lb-color-accent); box-shadow: 0 0 0 3px rgba(129, 115, 18, 0.18); }
.lb-field__control:disabled { background: var(--lb-color-surface-muted); color: var(--lb-color-text-muted); border-color: var(--lb-color-border); cursor: not-allowed; }
.lb-field__control--textarea { resize: vertical; min-height: 140px; line-height: 1.6; }
.lb-field__msg { font-size: var(--lb-text-xs); color: var(--lb-color-text-muted); }
.lb-field--error .lb-field__control { border-color: var(--lb-color-error); }
.lb-field--error .lb-field__msg { color: var(--lb-color-error); }
.lb-field--light .lb-field__control { border-color: transparent; }

.lb-check { display: flex; flex-direction: column; gap: 6px; }
.lb-check__input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.lb-check__label { display: flex; gap: var(--lb-space-3); align-items: flex-start; font-size: var(--lb-text-sm); font-weight: var(--lb-weight-light); line-height: 1.6; color: var(--lb-color-text); cursor: pointer; }
.lb-check__box { flex: none; width: 22px; height: 22px; margin-top: 1px; display: grid; place-items: center; border: var(--lb-border-width-strong) solid var(--lb-color-border-strong); background: var(--lb-color-surface); color: transparent; transition: background var(--lb-duration-fast), border-color var(--lb-duration-fast); }
.lb-check__box svg { width: 14px; height: 14px; }
.lb-check__input:checked + .lb-check__label .lb-check__box { background: var(--lb-color-accent); border-color: var(--lb-color-accent); color: var(--lb-white); }
.lb-check__input:focus-visible + .lb-check__label .lb-check__box { outline: 2px solid var(--lb-color-focus); outline-offset: 2px; }
.lb-check--error .lb-check__box { border-color: var(--lb-color-error); }
.lb-check--error .lb-field__msg { color: var(--lb-color-error); }

/* ---- Contact form ------------------------------------------------------ */
.lb-form { display: flex; flex-direction: column; gap: var(--lb-space-5); }
.lb-form__intro { margin: 0; font-weight: var(--lb-weight-light); line-height: var(--lb-leading-normal); color: var(--lb-color-text); }
.lb-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--lb-space-5); }
.lb-form__actions { display: flex; align-items: center; gap: var(--lb-space-5); flex-wrap: wrap; }
.lb-form__note { font-size: var(--lb-text-xs); color: var(--lb-color-text-muted); }
.lb-form__error { margin: 0; padding: var(--lb-space-3) var(--lb-space-4); border-left: 3px solid var(--lb-color-error); background: #fbeeea; color: var(--lb-color-error); font-size: var(--lb-text-sm); }
.lb-form--success { align-items: center; text-align: center; padding: var(--lb-space-8) var(--lb-space-5); background: var(--lb-color-surface); border-top: 3px solid var(--lb-color-accent); }
.lb-form__success-icon { width: 56px; height: 56px; color: var(--lb-color-accent); }
.lb-form__success { margin: 0; max-width: 40ch; font-size: var(--lb-text-lg); font-weight: var(--lb-weight-light); line-height: 1.6; color: var(--lb-color-heading); }
@media (max-width: 640px) { .lb-form__row { grid-template-columns: 1fr; } }

/* ---- Contact block ----------------------------------------------------- */
.lb-contact { padding-block: var(--lb-section-py); background: var(--lb-color-bg); color: var(--lb-color-text); }
.lb-contact--muted { background: var(--lb-color-surface-muted); }
.lb-contact--dark { background: var(--lb-color-surface-dark); color: var(--lb-color-text-inverse-muted); }
.lb-contact--dark .lb-contact__title, .lb-contact--dark .lb-contact__list dd, .lb-contact--dark .lb-contact__list a, .lb-contact--dark .lb-contact__text { color: var(--lb-color-text-inverse); }
.lb-contact__grid { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.lb-contact__grid--single { grid-template-columns: 1fr; max-width: 640px; }
.lb-contact__title { margin: 0; }
.lb-contact__text { margin: 0 0 var(--lb-space-6); font-size: var(--lb-text-lg); font-weight: var(--lb-weight-light); line-height: 1.7; }
.lb-contact__list { margin: 0 0 var(--lb-space-6); display: flex; flex-direction: column; gap: var(--lb-space-4); }
.lb-contact__list dt { font-size: var(--lb-text-xs); font-weight: var(--lb-weight-medium); letter-spacing: var(--lb-tracking-wider); text-transform: uppercase; color: var(--lb-color-accent); margin-bottom: 4px; }
.lb-contact--dark .lb-contact__list dt { color: var(--lb-oak-300); }
.lb-contact__list dd { margin: 0; display: flex; flex-direction: column; font-weight: var(--lb-weight-light); line-height: 1.7; color: var(--lb-color-heading); }
.lb-contact__list a { text-decoration: none; }
.lb-contact__form { background: var(--lb-color-surface); padding: clamp(24px, 4vw, 48px); box-shadow: var(--lb-shadow-sm); }
.lb-contact--dark .lb-contact__form { color: var(--lb-color-text); }
.lb-contact--dark .lb-contact__form a { color: var(--lb-color-accent); }
@media (max-width: 900px) { .lb-contact__grid { grid-template-columns: 1fr; } }
