@font-face{font-family:"Liberation Sans";src:url("assets/fonts/LiberationSans-Regular.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Liberation Sans";src:url("assets/fonts/LiberationSans-Italic.ttf") format("truetype");font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:"Liberation Sans";src:url("assets/fonts/LiberationSans-Bold.ttf") format("truetype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"Liberation Sans";src:url("assets/fonts/LiberationSans-BoldItalic.ttf") format("truetype");font-style:italic;font-weight:700;font-display:swap}

/* Embedded design-system styles */
/* Classical — design-system tokens and component classes. This file is the source of truth for the system's look; retune it here and see readme.md. */

:root {
  --color-bg: #f3f2f2;
  --color-surface: #eae9e9;
  --color-text: #201f1d;
  --color-accent: #b68235;
  --color-accent-2: #ac803e;
  --color-divider: color-mix(in srgb, #201f1d 16%, transparent);

  /* Tonal ramps — generated in OKLCH on one shared lightness scale, so the
     same step of any role matches the others in visual value. */
  --color-neutral-100: #f8f4f4;
  --color-neutral-200: #eae7e7;
  --color-neutral-300: #d7d3d3;
  --color-neutral-400: #bab6b6;
  --color-neutral-500: #9b9797;
  --color-neutral-600: #7d7979;
  --color-neutral-700: #605d5d;
  --color-neutral-800: #444141;
  --color-neutral-900: #2d2b2b;

  --color-accent-100: #fff3e4;
  --color-accent-200: #ffe3bf;
  --color-accent-300: #facb8d;
  --color-accent-400: #e1ad66;
  --color-accent-500: #c28d41;
  --color-accent-600: #a06f24;
  --color-accent-700: #7d5411;
  --color-accent-800: #5a3b0a;
  --color-accent-900: #3a270d;

  --color-accent-2-100: #fff3e4;
  --color-accent-2-200: #ffe3be;
  --color-accent-2-300: #f5cd96;
  --color-accent-2-400: #dbaf70;
  --color-accent-2-500: #bc8f4e;
  --color-accent-2-600: #9b7232;
  --color-accent-2-700: #79561f;
  --color-accent-2-800: #573d14;
  --color-accent-2-900: #382810;

  --font-heading: "Liberation Sans", system-ui, sans-serif;
  --font-heading-weight: 600; /* review round 3: bold retired — semibold is the
     interface headings' ceiling (they need the weight at small sizes); display
     text goes lighter still, to the normal cut (see the deck) */
  --font-body: "Liberation Sans", system-ui, sans-serif;

  --space-1: 4.6px;
  --space-2: 9.2px;
  --space-3: 13.8px;
  --space-4: 18.4px;
  --space-6: 27.6px;
  --space-8: 36.8px;

  --radius-sm: 2px;
  --radius-md: 4px;
  --radius-lg: 7px;

  /* Elevation — derived from the ground: soft ink-tinted shadows on a
     light theme, a hairline edge + ambient darkness on a dark one. */
  --shadow-sm: 0 1px 2px color-mix(in srgb, #2d2b2b 14%, transparent);
  --shadow-md: 0 3px 10px color-mix(in srgb, #2d2b2b 16%, transparent);
  --shadow-lg: 0 12px 32px color-mix(in srgb, #2d2b2b 22%, transparent);
}

body {
  /* Temporarily disabled: background: var(--color-bg); */
  color: var(--color-text);
  font-family: var(--font-body);
}
h1, h2, h3, h4 { font-family: var(--font-heading); font-weight: var(--font-heading-weight); }

.plate{filter:sepia(0.22) saturate(0.82) contrast(1.05);box-sizing:border-box;
  border:6px solid var(--color-surface);outline:1px solid var(--color-divider)}

/* ══════════════════════════════════════════════════════════════════════════
   Components — built with the tokens above. Plain CSS
   on plain HTML: no JavaScript, no build step. Each class is documented in
   readme.md and demonstrated in foundations/ and components/.
   ══════════════════════════════════════════════════════════════════════ */

*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-size: 17px; line-height: 1.55; font-weight: 400; }
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading); font-weight: var(--font-heading-weight);
  line-height: 1.12; letter-spacing: -0.015em; margin: 0 0 var(--space-2);
}
h1 { font-size: 43px; }
h2 { font-size: 33px; }
h3 { font-size: 26px; }
h4 { font-size: 21px; }
h5 { font-size: 17px; }
h6 { font-size: 14px; }
h6 { letter-spacing: 0.08em; text-transform: uppercase; }
p { margin: 0 0 var(--space-3); }
a { color: var(--color-accent); text-underline-offset: 3px; }
img { display: block; max-width: 100%; }
figure { margin: 0; }
figcaption {
  font-size: 12px; margin-top: var(--space-1);
  color: color-mix(in srgb, var(--color-text) 55%, transparent);
}
.text-muted { color: color-mix(in srgb, var(--color-text) 55%, transparent); }
:focus { outline: none; }
:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
::selection { /* Temporarily disabled: background: color-mix(in srgb, var(--color-accent) 30%, transparent); */ }

/* — rules — */
.hr {
  height: 1px; border: 0; margin: var(--space-4) 0;
  /* Temporarily disabled: background: var(--color-divider); */
}

/* — buttons — */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  cursor: pointer; text-decoration: none;
  font-family: var(--font-heading); font-weight: var(--font-heading-weight);
  font-size: 15px; line-height: 1.2; color: var(--color-text); /* matches the .input's 14px —
     the pair sits side by side in sign-up rows */
  background: transparent; border: 1px solid transparent;
  padding: var(--space-2) calc(var(--space-3) * 1.2);
  border-radius: var(--radius-md);
}
.btn svg { display: block; }
.btn:disabled { opacity: 0.45; cursor: not-allowed; }
.btn-primary { color: var(--color-accent); border-color: var(--color-accent); }
.btn-primary:hover { /* Temporarily disabled: background: color-mix(in srgb, var(--color-accent) 12%, transparent); */ }
.btn-primary:active { /* Temporarily disabled: background: color-mix(in srgb, var(--color-accent) 22%, transparent); */ }
.btn-secondary { border-color: var(--color-divider); }
.btn-secondary:hover { /* Temporarily disabled: background: color-mix(in srgb, var(--color-text) 7%, transparent); */ }
.btn-secondary:active { /* Temporarily disabled: background: color-mix(in srgb, var(--color-text) 14%, transparent); */ }
.btn-ghost { color: var(--color-accent); padding-inline: var(--space-1); }
.btn-ghost:hover { /* Temporarily disabled: background: color-mix(in srgb, var(--color-accent) 10%, transparent); */ }
.btn-ghost:active { /* Temporarily disabled: background: color-mix(in srgb, var(--color-accent) 18%, transparent); */ }
.btn-icon { width: 36px; height: 36px; padding: 0; }
.btn-block { width: 100%; margin-top: var(--space-2); }

/* — forms — */
.field > label {
  display: block; font-size: 13px; margin-bottom: 5px;
  color: color-mix(in srgb, var(--color-text) 70%, transparent);
}
.input {
  width: 100%; min-height: 36px; padding: 6px 10px; font: inherit;
  font-size: 15px; color: var(--color-text); caret-color: var(--color-accent);
  background: transparent;
  border: 1px solid var(--color-divider); border-radius: var(--radius-md);
}
.input:hover { border-color: color-mix(in srgb, var(--color-text) 45%, transparent); }
.input:focus-visible { border-color: var(--color-accent); outline-offset: 0; }
textarea.input { min-height: 90px; resize: vertical; }
.radio { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font-size: 15px; }
.radio input, .seg-opt input {
  position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none;
}
.radio .dot {
  width: 16px; height: 16px; flex: none; border-radius: 50%;
  border: 1.5px solid var(--color-divider);
}
.radio:hover .dot { border-color: var(--color-accent); }
.radio input:checked + .dot {
  border-color: var(--color-accent); /* Temporarily disabled: background: var(--color-accent); */
  box-shadow: inset 0 0 0 4px var(--color-bg);
}
.radio input:focus-visible + .dot { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.seg {
  display: inline-flex; overflow: hidden;
  border: 1px solid var(--color-divider); border-radius: var(--radius-md);
}
.seg-opt {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 12px; font-size: 14px; cursor: pointer;
}
.seg-opt + .seg-opt { border-left: 1px solid var(--color-divider); }
.seg-opt:has(input:checked) { color: var(--color-accent); box-shadow: inset 0 0 0 1px var(--color-accent); }
.seg-opt:not(:has(input:checked)):hover { /* Temporarily disabled: background: color-mix(in srgb, var(--color-text) 7%, transparent); */ }
.seg-opt:has(input:focus-visible) { outline: 2px solid var(--color-accent); outline-offset: -2px; }

/* — cards — */
.card {
  display: flex; flex-direction: column; gap: var(--space-2);
  padding: var(--space-3); border-radius: var(--radius-md); background: transparent; border: 1px solid var(--color-divider);
}
.card-kicker { font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-accent); }
.card-title {
  font-family: var(--font-heading); font-weight: var(--font-heading-weight);
  font-size: 18px; line-height: 1.2;
}
.card-body { margin: 0; font-size: 14px; opacity: 0.8; flex: 1; }
.card-meta {
  display: flex; align-items: center; gap: 6px; font-size: 12px;
  color: color-mix(in srgb, var(--color-text) 50%, transparent);
}
.elev-sm { box-shadow: var(--shadow-sm); }
.elev-md { box-shadow: var(--shadow-md); }
.elev-lg { box-shadow: var(--shadow-lg); }

/* — tags — */
.tag {
  display: inline-flex; align-items: center; font-size: 12px;
  letter-spacing: 0.02em; padding: 3px 10px;
  border-radius: calc(var(--radius-md) * 0.75);
}
.tag-accent { /* Temporarily disabled: background: var(--color-accent-100); */ color: var(--color-accent-800); }
.tag-accent-2 { /* Temporarily disabled: background: var(--color-accent-2-100); */ color: var(--color-accent-2-800); }
.tag-neutral { /* Temporarily disabled: background: var(--color-neutral-100); */ color: var(--color-neutral-800); }
.tag-outline { border: 1px solid var(--color-accent); color: var(--color-accent); }

/* — navigation — */
.nav {
  display: flex; align-items: center; gap: var(--space-4);
  padding: var(--space-3) var(--space-4);
  border-bottom: 1px solid var(--color-divider);
}
.nav-brand {
  font-family: var(--font-heading); font-weight: var(--font-heading-weight);
  font-size: 19px; margin-right: auto;
}
.nav a { color: inherit; text-decoration: none; font-size: 15px; }
.nav a:hover, .nav a[aria-current='page'] { color: var(--color-accent); }

/* — tables — */
.table { width: 100%; border-collapse: collapse; font-size: 15px; }
.table th {
  text-align: left; font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase;
  color: color-mix(in srgb, var(--color-text) 60%, transparent);
  padding: var(--space-2); border-bottom: 1px solid var(--color-divider);
}
.table td {
  padding: var(--space-2);
  border-bottom: 1px solid var(--color-divider);
}
.table tbody tr:hover { /* Temporarily disabled: background: color-mix(in srgb, var(--color-text) 4%, transparent); */ }

/* — dialog — */
.dialog-backdrop {
  position: fixed; inset: 0; display: grid; place-items: center;
  padding: var(--space-4);
  /* Temporarily disabled: background: color-mix(in srgb, var(--color-neutral-900) 50%, transparent); */
}
.dialog {
  width: min(440px, 100%); display: flex; flex-direction: column; gap: var(--space-3);
  padding: var(--space-4); border-radius: var(--radius-lg);
  /* Temporarily disabled: background: var(--color-surface); */ box-shadow: var(--shadow-lg); border: 1px solid var(--color-divider);
}
.dialog-title {
  font-family: var(--font-heading); font-weight: var(--font-heading-weight);
  font-size: 21px;
}
.dialog-body { font-size: 15px; opacity: 0.85; }
.dialog-actions { display: flex; justify-content: flex-end; gap: var(--space-2); margin-top: var(--space-2); }

/* Site page styles */
:root{--leading:28px;--half:14px;--edge:clamp(20px,5vw,72px);--measure:62ch;--font-heading:"Liberation Sans",system-ui,sans-serif;--font-body:"Liberation Sans",system-ui,sans-serif}
html{scroll-behavior:smooth;overflow-x:hidden}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden;text-wrap:pretty;font-family:var(--font-body);font-size:17px}
.wrap{flex:1;display:flex;flex-direction:column;max-width:1440px;width:100%;margin:0 auto;padding:0 var(--edge)}
.muted{color:color-mix(in srgb,var(--color-text) 72%,transparent)}
.justify{text-align:justify;hyphens:auto;hyphenate-limit-chars:6 3 3}
.kicker{display:block;font-size:15px;letter-spacing:.09em;text-transform:uppercase;color:var(--color-accent-700);margin:0 0 var(--space-2)}

/* — masthead — */
.masthead{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;padding:var(--space-4) var(--edge)}
.brand{display:flex;align-items:center;gap:var(--space-3)}
.brand-copy{color:inherit;text-decoration:none}
.menu-toggle{display:inline-flex;flex:none;align-items:center;justify-content:center;padding:0;border:0;background:transparent;color:inherit}
.menu-toggle-text{display:none}
.menu-close{display:none}
.menu-backdrop{display:none}
.brand-mark{color:var(--color-text);flex:none;display:block;object-fit:contain}
.brand-name{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:23px;line-height:1.2;margin:0}
.brand-tag{font-size:15px;margin:2px 0 0;color:color-mix(in srgb,var(--color-text) 65%,transparent)}
.masthead-nav{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}
.masthead-nav a{color:inherit;text-decoration:none;font-size:18px;font-weight:700;white-space:nowrap}
.masthead-nav a:hover{color:var(--color-accent)}
.masthead-nav a.legal{padding-left:var(--space-4);margin-left:2px;border-left:1px solid var(--color-divider);font-size:17px;font-weight:400;color:color-mix(in srgb,var(--color-text) 58%,transparent)}
.masthead-nav a.legal:hover{color:var(--color-accent)}
@media (max-width:767px){.masthead-nav{width:100%;justify-content:flex-start}}

@media (max-width:767px){
  .brand{min-width:0}
  .brand-tag{display:none}
  .brand-name{max-width:15ch}
  .menu-toggle{
    flex-direction:column;
    gap:2px;width:66px;min-height:66px;padding:6px 7px;
    color:var(--color-text);background:var(--color-surface);border:2px solid var(--color-accent);
    border-radius:var(--radius-md);cursor:pointer;font:inherit;
  }
  .menu-toggle .brand-mark{width:36px;height:39px}
  .menu-toggle-text{display:block;font-size:10px;line-height:1;letter-spacing:.08em;text-transform:uppercase;font-weight:700}
  .menu-toggle:hover,.menu-toggle:focus-visible{background:var(--color-accent-100)}
  .menu-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}
  .masthead-nav{
    position:fixed;z-index:20;inset:0 auto 0 0;width:min(82vw,320px);height:100vh;
    display:flex;flex-direction:column;align-items:stretch;gap:0;padding:var(--space-8) var(--edge) var(--space-6);
    background:var(--color-bg);box-shadow:var(--shadow-lg);transform:translateX(-105%);
    visibility:hidden;transition:transform .24s ease,visibility .24s ease;
  }
  .masthead-nav.is-open{transform:translateX(0);visibility:visible}
  .masthead-nav a{display:block;padding:14px 0;border-bottom:1px solid var(--color-divider);font-size:20px}
  .masthead-nav a.legal{padding:14px 0;margin:var(--space-3) 0 0;border-left:0;font-size:18px}
  .menu-close{display:inline-flex;align-self:flex-end;margin:0 0 var(--space-4);padding:8px 0;border:0;background:transparent;color:var(--color-text);font:inherit;font-size:15px;cursor:pointer}
  .menu-close:hover{color:var(--color-accent)}
  .menu-close:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}
  .menu-backdrop{position:fixed;z-index:19;inset:0;border:0;background:rgba(32,31,29,.28);cursor:pointer}
  body.menu-open{overflow:hidden}
  body.menu-open .menu-backdrop{display:block}
}
@media (prefers-reduced-motion:reduce){.masthead-nav{transition:none}}

/* — hero — */
.hero{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);grid-template-rows:auto auto;column-gap:clamp(24px,4vw,64px);row-gap:0;padding:calc(2.2*var(--leading)) 0;align-items:start}
.home-page .hero{padding-bottom:0}
.home-page .hero-figure{grid-column:1;grid-row:1 / span 2;position:relative;z-index:2}
.home-page .hero-content{grid-column:2;grid-row:1;position:relative;z-index:3}
@media (max-width:767px){.hero{grid-template-columns:1fr;grid-template-rows:auto auto auto;row-gap:var(--space-6)}.home-page .hero-figure{grid-column:1;grid-row:1}.home-page .hero-content{grid-column:1;grid-row:2}.home-page .about-area{grid-column:1;grid-row:3;display:block;margin-top:calc(var(--space-6) * -3 - 25px);margin-left:calc(-1 * var(--edge));margin-right:calc(-1 * var(--edge));padding-left:var(--edge);padding-right:var(--edge)}.home-page .about-area .about{grid-column:auto;max-width:52ch}}
.hero-figure{margin:0}
.hero-figure img{width:100%;height:auto;display:block;object-fit:contain}
.hero-content{display:flex;flex-direction:column}
.headline{font-family:var(--font-heading);font-weight:400;font-size:clamp(29px,3vw,39px);line-height:1.22;letter-spacing:-.005em;margin:0}
.lede{font-size:17px;line-height:var(--leading);margin:var(--space-3) 0 0;max-width:52ch;color:color-mix(in srgb,var(--color-text) 80%,transparent)}
.rule{height:1px;border:0;margin:var(--space-6) 0;/* Temporarily disabled: background:var(--color-divider) */}
.contact-card{display:flex;gap:var(--space-4)}
.contact-portrait{margin:0;width:104px;flex:none}
.contact-portrait img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block}
.contact-name{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:20px;margin:0}
.contact-role{font-size:14px;margin:2px 0 var(--space-2);color:color-mix(in srgb,var(--color-text) 65%,transparent)}
.contact-lines{font-size:15.5px;line-height:1.7;font-style:normal}
.contact-lines a{color:inherit;text-decoration:none;border-bottom:1px solid var(--color-divider)}
.contact-lines a:hover{color:var(--color-accent);border-color:var(--color-accent)}
.phone-btn{margin-top:var(--space-4);width:100%;font-size:17px;padding:var(--space-3) var(--space-4)}
.about h2{font-family:var(--font-heading);font-weight:400;font-size:25px;margin:0 0 var(--space-2)}
.home-page .about-area{grid-column:1 / -1;grid-row:2;display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);column-gap:clamp(24px,4vw,64px);background:var(--color-bg);margin-top:calc(var(--space-6) * -2 - 25px);margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding:calc(1.6*var(--leading)) max(var(--edge),calc((100vw - 1440px)/2 + var(--edge)));min-height:50vh;position:relative;z-index:1}
.home-page .about-area .about{grid-column:2;max-width:52ch}
.home-page .home-lower-fill{flex:1 1 auto;min-height:0;background:var(--color-bg);margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
.inner-page .wrap{position:relative;isolation:isolate}
.inner-page .wrap::before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:calc(50% - 50vw);right:calc(50% - 50vw);background:var(--color-bg)}
@media (min-width:768px) and (max-height:850px){
  .home-page .hero{padding-top:32px}
  .home-page .about-area{min-height:calc(50vh - 40px)}
  .home-page footer{padding-bottom:var(--space-3)}
}

/* — services (leistungen) — */
.section{padding:calc(2.4*var(--leading)) 0}
.section h2.title{font-family:var(--font-heading);font-weight:400;font-size:clamp(27px,2.6vw,35px);margin:0 0 calc(var(--leading)*1.1);letter-spacing:-.005em}
.cols{position:relative;display:grid;grid-template-columns:repeat(3,1fr);--col-gap:calc(1.6*var(--leading));gap:calc(1.3*var(--leading)) var(--col-gap)}
.cols::before,.cols::after{content:"";position:absolute;top:0;bottom:0;width:1px;/* Temporarily disabled: background:var(--color-divider) */}
.cols::before{left:calc((100% - 2*var(--col-gap))/3 + var(--col-gap)/2 - .5px)}
.cols::after{left:calc(2*(100% - 2*var(--col-gap))/3 + 1.5*var(--col-gap) - .5px)}
.col h3{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:20px;margin:0 0 var(--space-2)}
.col ul{list-style:none;margin:0;padding:0}
.col li{font-size:15.5px;line-height:1.5;padding:var(--space-2) 0;border-top:1px solid var(--color-divider);color:color-mix(in srgb,var(--color-text) 82%,transparent)}
.col li:first-of-type{border-top:none;padding-top:0}
@media (max-width:1199px){.cols{grid-template-columns:1fr}.cols::before,.cols::after{content:none}}

/* — projekte — */
.project-block{padding:calc(1.6*var(--leading)) 0}
.project-block+.project-block{border-top:1px solid var(--color-divider)}
.project-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-2)}
.project-head h3{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:23px;margin:0}
.project-meta{font-size:13px;letter-spacing:.07em;text-transform:uppercase;color:color-mix(in srgb,var(--color-text) 58%,transparent)}
.project-desc{font-size:16px;line-height:1.6;max-width:70ch;margin:0 0 var(--space-4);color:color-mix(in srgb,var(--color-text) 80%,transparent)}
.project-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--space-3)}
.project-gallery.g2{grid-template-columns:repeat(2,1fr);max-width:640px}
.project-gallery figure{margin:0}
.project-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.gallery-trigger{display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;cursor:zoom-in}
.gallery-trigger:focus-visible{outline:2px solid var(--color-accent);outline-offset:-3px}
.project-gallery figcaption{margin-top:var(--space-2);font-size:13.5px;color:color-mix(in srgb,var(--color-text) 60%,transparent)}
.lightbox{width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:clamp(24px,5vw,72px);border:0;background:rgba(32,31,29,.94);color:#fff}
.lightbox::backdrop{background:rgba(32,31,29,.86)}
.lightbox-frame{position:relative;width:min(1100px,100%);height:100%;margin:0 auto;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:minmax(0,1fr) auto;align-items:center;gap:var(--space-4)}
.lightbox-figure{grid-column:2;grid-row:1;min-width:0;min-height:0;height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto;align-items:center;gap:var(--space-2);margin:0}
.lightbox-image{width:100%;height:100%;min-height:0;object-fit:contain}
.lightbox-caption{font-size:15px;text-align:center;color:rgba(255,255,255,.82)}
.lightbox-close,.lightbox-prev,.lightbox-next{border:1px solid rgba(255,255,255,.6);background:transparent;color:#fff;cursor:pointer;font:inherit}
.lightbox-close{position:absolute;top:0;right:0;width:42px;height:42px;font-size:28px;line-height:1;border-radius:var(--radius-md)}
.lightbox-prev,.lightbox-next{grid-row:1;width:46px;height:64px;font-size:38px;line-height:1;border-radius:var(--radius-md)}
.lightbox-prev{grid-column:1}.lightbox-next{grid-column:3}
.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover{background:rgba(255,255,255,.14)}
.lightbox-close:focus-visible,.lightbox-prev:focus-visible,.lightbox-next:focus-visible{outline:2px solid var(--color-accent-300);outline-offset:3px}
.lightbox-counter{grid-column:2;grid-row:2;margin:0;text-align:center;font-size:14px;color:rgba(255,255,255,.78)}
.lightbox button:disabled{opacity:.35;cursor:default}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (max-width:600px){.lightbox{padding:64px 12px 24px}.lightbox-frame{grid-template-columns:40px minmax(0,1fr) 40px;gap:8px}.lightbox-prev,.lightbox-next{width:40px;height:56px}}

/* — kontakt (full) — */
.kontakt-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,72px)}
.kontakt-list{font-size:16px;line-height:1.9}
.kontakt-list dt{font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:color-mix(in srgb,var(--color-text) 55%,transparent);margin-top:var(--space-3)}
.kontakt-list dt:first-child{margin-top:0}
.kontakt-list dd{margin:0}
.kontakt-list a{color:inherit;text-decoration:none;border-bottom:1px solid var(--color-divider)}
.kontakt-list a:hover{color:var(--color-accent);border-color:var(--color-accent)}
.form-grid{display:grid;gap:var(--space-3)}
.form-row2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}
@media (max-width:767px){.kontakt-grid{grid-template-columns:1fr}.form-row2{grid-template-columns:1fr}}

/* — impressum & footer — */
.impressum h1.title,.impressum h2.title{font-family:var(--font-heading);font-weight:400;font-size:clamp(27px,2.6vw,35px);margin-bottom:var(--space-4)}
.impressum-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6);font-size:15px;line-height:1.75}
.impressum-grid h4{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:16px;margin:0 0 var(--space-1)}
.impressum-grid p{margin:0 0 var(--space-3)}
.legal-copy{max-width:76ch;font-size:15.5px;line-height:1.75}
.legal-copy h2{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:21px;margin:var(--space-6) 0 var(--space-2)}
.legal-copy p{margin:0 0 var(--space-3)}
@media (max-width:700px){.impressum-grid{grid-template-columns:1fr}}
footer{margin-top:auto;padding:var(--space-4) 0 calc(2*var(--leading));display:flex;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;font-size:15px;color:color-mix(in srgb,var(--color-text) 60%,transparent)}
.home-page footer{background:var(--color-bg);margin-top:0;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding-left:max(var(--edge),calc((100vw - 1440px)/2 + var(--edge)));padding-right:max(var(--edge),calc((100vw - 1440px)/2 + var(--edge)))}
footer a{color:inherit;text-decoration:none;border-bottom:1px solid var(--color-divider)}
footer a:hover{color:var(--color-accent);border-color:var(--color-accent)}
.foot-links{display:flex;gap:var(--space-4)}
@media (max-width:767px){
  footer{font-size:13px;padding-top:12px;padding-bottom:12px}
}
@media (max-width:360px){
  footer{flex-direction:column;align-items:flex-start}
  footer .foot-links{margin-left:0}
}
/* Shared link and section styling */
.brand-link{text-decoration:none;color:inherit}
.section-top{padding-top:calc(2.4*var(--leading))}
