/* ==========================================================================
   Prepended by wp/build_gelb.py — NOT part of the client's reference files.

   Puts the browser's own defaults back for the reference markup, undoing
   Hello Elementor's reset.css. See the note in build_gelb.py for why this
   sits ahead of the reference CSS and why every selector is wrapped in
   :where(). Everything below the next banner is the client's file, verbatim.
   ========================================================================== */
:where(.rzg-raw,body.rzg-gold) h1,:where(.rzg-raw,body.rzg-gold) h2,:where(.rzg-raw,body.rzg-gold) h3,
:where(.rzg-raw,body.rzg-gold) h4,:where(.rzg-raw,body.rzg-gold) h5,:where(.rzg-raw,body.rzg-gold) h6{
  font-weight:revert; line-height:revert; font-size:revert;
  margin-block-start:revert; margin-block-end:revert;
}
:where(.rzg-raw,body.rzg-gold) p{ margin-block-start:revert; margin-block-end:revert; }
:where(.rzg-raw,body.rzg-gold) button{
  border-radius:revert; padding:revert; font-size:revert; font-weight:revert;
  text-align:revert; white-space:revert; transition:revert; -webkit-appearance:revert;
}
:where(.rzg-raw,body.rzg-gold) a:hover,:where(.rzg-raw,body.rzg-gold) a:active{ color:inherit; }

/* ==========================================================================
   Below: the client's index-gelb.html stylesheet, verbatim. Every other gold
   page's stylesheet is verified at build time to be a conflict-free subset of
   it, so this one file serves them all.
   ========================================================================== */
:root {
  --ink: #101114;
  --muted: #606776;
  --accent: #f5c518;
  --accent-dark: #9a6500;
  --accent-soft: #fff8d7;
  --line: #e4e4eb;
  --soft: #f7f7f9;
  --paper: #ffffff;
  --wrap: 1460px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 17px;
  line-height: 1.58;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
img { display: block; max-width: 100%; }
p, h1, h2, h3, blockquote { margin-top: 0; }
.wrap { width: min(var(--wrap), 88%); margin-inline: auto; }
.skip { position: fixed; left: 14px; top: -80px; z-index: 100; background: #fff; padding: 10px 16px; border: 2px solid var(--accent-dark); }
.skip:focus { top: 14px; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 3px solid var(--accent-dark); outline-offset: 4px; }

header { position: relative; z-index: 20; background: var(--accent); border-bottom: 1px solid rgba(16,17,20,.14); }
.header-inner { height: 76px; display: flex; align-items: center; gap: 46px; }
.brand { flex: 0 0 auto; }
.logo { width: 218px; height: auto; }
.nav { margin-left: auto; display: flex; align-items: stretch; gap: clamp(20px, 2.25vw, 43px); }
.nav a { position: relative; padding: 17px 0; font-size: 13px; font-weight: 700; line-height: 1; text-transform: uppercase; white-space: nowrap; }
.nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 8px; height: 3px; background: var(--ink); transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
.nav a:hover::after, .nav a.active::after { transform: scaleX(1); }
.menu { display: none; margin-left: auto; border: 1px solid rgba(16,17,20,.28); background: transparent; padding: 10px 14px; color: var(--ink); }

.home-hero, .page-hero { position: relative; isolation: isolate; overflow: hidden; background: #fff; }
.home-hero { min-height: 592px; }
.home-hero-picture, .page-hero-picture { position: absolute; z-index: -2; inset: 0 0 0 auto; width: 64%; }
.home-hero-picture img, .page-hero-picture img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.home-hero-picture { -webkit-mask-image: linear-gradient(90deg, transparent 0, rgba(0,0,0,.18) 10%, #000 30%); mask-image: linear-gradient(90deg, transparent 0, rgba(0,0,0,.18) 10%, #000 30%); }
.home-hero::after, .page-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(90deg, #fff 0%, #fff 31%, rgba(255,255,255,.94) 39%, rgba(255,255,255,.2) 58%, transparent 74%); }
.home-hero-content { padding: 52px 0 34px; max-width: none; }
.home-hero-content > * { max-width: 610px; }
.home-hero h1, .page-hero h1 { margin-bottom: 24px; line-height: .98; letter-spacing: -2.5px; font-size: clamp(42px, 4.25vw, 66px); }
.home-hero h1 strong, .page-hero h1 strong { display: block; font-size: 1em; font-weight: 800; }
.home-hero h1 span, .page-hero h1 span { display: block; margin-top: 12px; font-size: .885em; font-weight: 400; line-height: 1.15; letter-spacing: -.04em; text-wrap: balance; }
.home-hero-content > p, .page-hero-content > p { max-width: 560px; margin-bottom: 27px; color: var(--muted); font-size: 21px; line-height: 1.5; }
.button { min-width: 342px; min-height: 62px; display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; padding: 16px 28px; border: 0; border-radius: 0; background: linear-gradient(90deg, #edb900, #ffe16b); color: #111; cursor: pointer; font-size: 14px; font-weight: 800; letter-spacing: 1.05px; text-transform: uppercase; transition: transform .2s ease, box-shadow .2s ease; }
.button b { font-size: 25px; font-weight: 400; line-height: 1; }
.button:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(154,101,0,.22); }
.button.outline { min-width: 230px; background: #fff; border: 1px solid var(--accent-dark); }
.trust-row { display: flex; margin-top: 40px; max-width: 620px; }
.trust-row > div { min-width: 0; display: flex; align-items: center; gap: 12px; padding: 0 28px; border-right: 1px solid var(--accent); }
.trust-row > div:first-child { padding-left: 0; }
.trust-row > div:last-child { border: 0; padding-right: 0; }
.trust-row span { color: #4d5360; font-size: 11px; font-weight: 700; line-height: 1.25; text-transform: uppercase; }
.icon { width: 34px; height: 34px; flex: 0 0 auto; fill: none; stroke: var(--accent-dark); stroke-width: 1.45; }

.section { padding: 76px 0; }
.services-section { padding-top: 26px; }
.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 30px; }
.section-head > div { min-width: 0; }
.section-head > p { margin: 0 0 8px; max-width: 600px; color: var(--muted); font-size: 12px; font-weight: 700; letter-spacing: 1.65px; text-align: right; text-transform: uppercase; }
.eyebrow { display: inline-block; margin-bottom: 13px; color: var(--accent-dark); font-size: 12px; font-weight: 800; letter-spacing: 1.8px; text-transform: uppercase; }
.section-head h2 { position: relative; margin: 0; padding-bottom: 14px; font-size: clamp(31px, 3vw, 44px); line-height: 1.13; letter-spacing: -1.25px; }
.section-head h2::after { content: ""; position: absolute; left: 0; bottom: 0; width: 46px; height: 3px; background: var(--accent); }
h2 { font-size: clamp(31px, 3vw, 44px); line-height: 1.15; letter-spacing: -1.2px; }
h2 span { font-weight: 300; }
h3 { font-size: 21px; line-height: 1.25; }
.service-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.service-card { position: relative; min-height: 150px; display: grid; grid-template-columns: 46% 54%; border: 1px solid var(--line); background: #fff; box-shadow: 0 8px 28px rgba(20,21,28,.035); overflow: hidden; transition: transform .2s ease, box-shadow .2s ease; }
.service-card:hover { transform: translateY(-3px); box-shadow: 0 15px 34px rgba(20,21,28,.08); }
.service-card > img { width: 100%; height: 100%; object-fit: cover; }
.service-card > div { position: relative; display: flex; flex-direction: column; align-items: flex-start; padding: 20px 22px; }
.service-card .icon { width: 33px; height: 33px; }
.service-card h3 { margin: 12px 0 0; font-size: 18px; }
.service-card b { align-self: flex-end; margin-top: auto; font-size: 24px; font-weight: 400; }
.text-link { display: inline-block; padding: 7px 0 5px; border-bottom: 2px solid var(--accent); font-size: 14px; font-weight: 800; }
.all-services { margin-top: 23px; }

.value-strip { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.value-card { display: flex; gap: 16px; padding: 27px 28px; border-right: 1px solid var(--accent); }
.value-card:first-child { padding-left: 0; }
.value-card:last-child { border: 0; padding-right: 0; }
.value-card .icon { width: 37px; height: 37px; }
.value-card strong, .value-card span { display: block; }
.value-card strong { font-size: 12px; line-height: 1.3; text-transform: uppercase; }
.value-card span { margin-top: 5px; color: #7a808c; font-size: 11px; line-height: 1.35; text-transform: uppercase; }

.split-section { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: 78px; align-items: center; }
.split-section.reverse { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.split-image { position: relative; }
.split-image img { width: 100%; height: 460px; object-fit: cover; }
.split-image > span, .vehicle-image > span { position: absolute; left: 0; bottom: 0; padding: 13px 21px; background: var(--accent); color: #111; font-size: 11px; font-weight: 800; letter-spacing: 1.4px; text-transform: uppercase; }
.split-copy { max-width: 610px; }
.split-copy h2 { margin-bottom: 25px; }
.split-copy p { color: var(--muted); }
.split-copy .button { margin-top: 10px; }
.soft-section { background: var(--accent-soft); }
.vehicle-layout { min-height: 490px; display: grid; grid-template-columns: .78fr 1.22fr; align-items: center; gap: 64px; padding-block: 58px; }
.vehicle-copy p { color: var(--muted); }
.vehicle-image { position: relative; }
.vehicle-image img { width: 100%; height: 390px; object-fit: cover; }

.steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.panel { position: relative; min-height: 225px; padding: 30px; border: 1px solid var(--line); background: #fff; }
.panel::before { content: ""; position: absolute; left: -1px; top: -1px; width: 45px; height: 3px; background: var(--accent); }
.panel-number { color: var(--accent-dark); font-size: 13px; font-weight: 800; letter-spacing: 1.7px; }
.panel h3 { margin: 38px 0 12px; }
.panel p { margin: 0; color: var(--muted); font-size: 16px; }
.process-cards { gap: 22px; }
.step-card { overflow: hidden; border: 1px solid var(--line); background: #fff; box-shadow: 0 14px 34px rgba(48, 36, 0, .07); transition: transform .3s ease, box-shadow .3s ease; }
.step-card:hover { transform: translateY(-6px); box-shadow: 0 22px 48px rgba(48, 36, 0, .12); }
.step-photo { position: relative; overflow: hidden; aspect-ratio: 4 / 3; background: var(--accent-soft); }
.step-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.step-card:hover .step-photo img { transform: scale(1.035); }
.step-photo span { position: absolute; top: 0; left: 0; display: grid; place-items: center; width: 54px; height: 54px; background: var(--accent); color: #111; font-size: 13px; font-weight: 800; letter-spacing: 1.7px; }
.step-copy { min-height: 175px; padding: 24px 24px 28px; border-top: 3px solid var(--accent); }
.step-copy h3 { margin: 0 0 11px; font-size: 22px; }
.step-copy p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.65; }
.two-panels { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.three-panels { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }

.cta-section { margin-top: 10px; margin-bottom: 80px; display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; padding: 52px 56px; background: linear-gradient(105deg, #f0bd12, #ffe47a); }
.cta-section h2 { margin: 0; }
.cta-section .eyebrow { color: #654300; }
.cta-section p { max-width: 570px; margin-bottom: 22px; color: #403711; }
.cta-section .button { background: #fff; }

.page-hero { min-height: 520px; }
.page-hero-picture { width: 61%; -webkit-mask-image: linear-gradient(90deg, transparent 0, rgba(0,0,0,.22) 12%, #000 34%); mask-image: linear-gradient(90deg, transparent 0, rgba(0,0,0,.22) 12%, #000 34%); }
.page-hero::after { background: linear-gradient(90deg, #fff 0%, #fff 32%, rgba(255,255,255,.95) 40%, rgba(255,255,255,.16) 64%, transparent 78%); }
.page-hero-content { padding: 48px 0 40px; }
.page-hero-content > * { max-width: 650px; }
.page-hero h1 { margin-top: 12px; max-width: 700px; font-size: clamp(44px, 3.5vw, 52px); }
.page-hero h1 strong { font-size: 1em; }
.page-hero h1 span { font-size: .885em; }
.page-hero .button { min-width: 300px; }
.breadcrumb { display: flex; align-items: center; gap: 9px; margin-bottom: 23px; color: #777d88; font-size: 12px; text-transform: uppercase; }
.breadcrumb a { border-bottom: 1px solid var(--accent); }

.image-banner { position: relative; display: grid; grid-template-columns: 1.25fr .75fr; align-items: stretch; padding-top: 0; padding-bottom: 0; margin-top: 76px; margin-bottom: 76px; background: var(--accent-soft); }
.image-banner > img { width: 100%; height: 420px; object-fit: cover; }
.image-banner > div { padding: 55px 48px; align-self: center; }
.image-banner p { color: var(--muted); }
.intro-grid { display: grid; grid-template-columns: .55fr 1.1fr 1fr; gap: 42px; align-items: start; margin-bottom: 50px; }
.intro-grid h2 { margin: 0; }
.intro-grid p { color: var(--muted); }

.detail-list { border-top: 1px solid var(--line); }
.service-detail { display: grid; grid-template-columns: .95fr 1.05fr; gap: 66px; align-items: center; padding: 52px 0; border-bottom: 1px solid var(--line); scroll-margin-top: 25px; }
.service-detail:nth-child(even) > div { order: 2; }
.service-detail > div { position: relative; }
.service-detail > div img { width: 100%; height: 360px; object-fit: cover; }
.service-detail > div > span { position: absolute; top: 0; left: 0; padding: 12px 18px; background: var(--accent); font-size: 14px; font-weight: 800; }
.service-detail > section p { color: var(--muted); }
.checklist { margin: 22px 0 24px; padding: 0; list-style: none; }
.checklist li { position: relative; padding: 12px 0 12px 28px; border-top: 1px solid var(--line); }
.checklist li::before { content: "✓"; position: absolute; left: 2px; color: var(--accent-dark); font-weight: 800; }
.checklist.big li { padding-block: 17px; font-size: 17px; }
.note { margin-top: 27px; padding: 17px 21px; border-left: 3px solid var(--accent-dark); background: #fff; color: var(--muted); font-size: 15px; }
.warning { background: var(--accent-soft); }

.process-list { border-top: 1px solid var(--line); }
.process-row { display: grid; grid-template-columns: 90px .8fr 1.25fr; gap: 35px; align-items: center; min-height: 130px; border-bottom: 1px solid var(--line); }
.process-row > span { color: var(--accent-dark); font-size: 17px; font-weight: 800; }
.process-row h3, .process-row p { margin: 0; }
.process-row p { color: var(--muted); }

.contact-grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: 76px; align-items: start; }
.contact-grid aside { position: sticky; top: 30px; }
.contact-grid aside > p { color: var(--muted); }
form { padding: 42px; background: var(--accent-soft); border-top: 4px solid var(--accent); }
.fields { display: grid; grid-template-columns: repeat(2, 1fr); gap: 19px; }
label { display: block; color: #3d414b; font-size: 14px; font-weight: 700; }
label.full { grid-column: 1 / -1; }
input, select, textarea { width: 100%; margin-top: 7px; padding: 12px 13px; border: 1px solid #cccbd5; border-radius: 0; background: #fff; color: var(--ink); font-size: 16px; }
textarea { min-height: 145px; resize: vertical; }
.form-note { color: var(--muted); font-size: 14px; }
form .button { margin-top: 10px; }
.status { margin-top: 20px; padding: 15px 18px; border-left: 3px solid var(--accent-dark); background: #fff; color: var(--muted); }
.legal { max-width: 900px; }
.legal h2 { margin-top: 38px; font-size: 27px; }
.legal p { color: var(--muted); }

footer { margin-top: 50px; padding: 58px 0 0; border-top: 0; background: #000000; }
.footer-grid { display: grid; grid-template-columns: 1.5fr .8fr 1fr; gap: 65px; }
.footer-brand .logo { width: 180px; margin-bottom: 21px; }
.footer-grid h3 { margin-bottom: 18px; font-size: 16px; text-transform: uppercase; color: #ffffff; }
.footer-grid p, .footer-grid a { color: rgba(255,255,255,.72); font-size: 14px; }
.footer-links { display: grid; gap: 7px; }
.footer-bottom { display: flex; justify-content: space-between; gap: 24px; margin-top: 42px; padding-top: 21px; padding-bottom: 21px; border-top: 1px solid rgba(255,255,255,.16); color: rgba(255,255,255,.62); font-size: 12px; }
.footer-bottom div { display: flex; gap: 22px; }

.js-ready [data-reveal] { opacity: 0; transform: translateY(16px); transition: opacity .55s ease, transform .55s ease; }
.js-ready [data-reveal].visible { opacity: 1; transform: none; }

@media (max-width: 1220px) {
  .header-inner { gap: 25px; }
  .logo { width: 185px; }
  .nav { gap: 18px; }
  .nav a { font-size: 12px; }
  .home-hero h1 { font-size: 52px; }
  .home-hero h1 span { font-size: .885em; }
  .home-hero-content > * { max-width: 520px; }
  .service-card { grid-template-columns: 42% 58%; }
  .service-card > div { padding: 16px; }
  .service-card h3 { font-size: 16px; }
  .value-card { padding-inline: 16px; }
  .split-section { gap: 45px; }
}

@media (max-width: 930px) {
  .header-inner { height: 64px; }
  .menu { display: inline-flex; align-items: center; gap: 10px; }
  .nav { display: none; position: absolute; top: 64px; left: 0; right: 0; padding: 18px 6%; background: var(--accent); box-shadow: 0 12px 25px rgba(0,0,0,.08); }
  .nav.open { display: grid; gap: 1px; }
  .nav a { padding: 14px 0; font-size: 14px; }
  .nav a::after { bottom: 8px; right: auto; width: 42px; }
  .home-hero, .page-hero { padding-top: 320px; }
  .home-hero-picture, .page-hero-picture { inset: 0 0 auto; width: 100%; height: 350px; -webkit-mask-image: linear-gradient(0deg, transparent 0, #000 27%); mask-image: linear-gradient(0deg, transparent 0, #000 27%); }
  .home-hero::after, .page-hero::after { background: linear-gradient(0deg, #fff 0%, #fff 43%, rgba(255,255,255,.05) 70%, transparent 82%); }
  .home-hero-content, .page-hero-content { padding-top: 35px; }
  .home-hero-content > *, .page-hero-content > * { max-width: 650px; }
  .home-hero h1, .page-hero h1 { font-size: clamp(39px, 7vw, 56px); }
  .home-hero h1 strong, .page-hero h1 strong { font-size: 1em; }
  .home-hero h1 span, .page-hero h1 span { font-size: .885em; }
  .service-cards { grid-template-columns: 1fr; }
  .service-card { min-height: 175px; grid-template-columns: 40% 60%; }
  .service-card h3 { font-size: 20px; }
  .value-strip { grid-template-columns: 1fr 1fr; }
  .value-card:nth-child(2) { border-right: 0; }
  .value-card:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .value-card:nth-child(3) { padding-left: 0; }
  .split-section, .vehicle-layout, .image-banner, .contact-grid, .service-detail { grid-template-columns: 1fr; }
  .split-section { gap: 35px; }
  .vehicle-layout { gap: 30px; }
  .vehicle-image { order: -1; }
  .steps { grid-template-columns: 1fr 1fr; }
  .three-panels { grid-template-columns: 1fr; }
  .image-banner > div { padding: 36px; }
  .intro-grid { grid-template-columns: 1fr; gap: 13px; }
  .service-detail:nth-child(even) > div { order: 0; }
  .contact-grid aside { position: static; }
}

@media (max-width: 620px) {
  body { font-size: 16px; }
  .wrap { width: min(90%, var(--wrap)); }
  .logo { width: 166px; }
  .home-hero, .page-hero { padding-top: 245px; }
  .home-hero-picture, .page-hero-picture { height: 275px; }
  .home-hero-content, .page-hero-content { padding-top: 24px; }
  .home-hero-content > p, .page-hero-content > p { font-size: 18px; }
  .button { min-width: 0; width: 100%; padding-inline: 21px; }
  .trust-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: 28px; }
  .trust-row > div { display: grid; justify-items: center; gap: 7px; padding-inline: 10px; text-align: center; }
  .trust-row .icon { width: 28px; height: 28px; }
  .section { padding: 48px 0; }
  .section-head { display: block; }
  .section-head > p { margin-top: 17px; text-align: left; }
  .service-card { grid-template-columns: 42% 58%; min-height: 154px; }
  .service-card > div { padding: 14px; }
  .service-card h3 { margin-top: 8px; font-size: 17px; }
  .value-strip { grid-template-columns: 1fr; }
  .value-card, .value-card:first-child, .value-card:nth-child(3), .value-card:last-child { padding: 20px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .value-card:last-child { border-bottom: 0; }
  .split-image img, .vehicle-image img, .image-banner > img, .service-detail > div img { height: 280px; }
  .steps, .two-panels { grid-template-columns: 1fr; }
  .panel { min-height: 0; }
  .step-photo { aspect-ratio: 16 / 10; }
  .step-copy { min-height: 0; }
  .cta-section { grid-template-columns: 1fr; gap: 22px; padding: 34px 27px; margin-bottom: 50px; }
  .service-detail { gap: 25px; padding: 35px 0; }
  .process-row { grid-template-columns: 50px 1fr; gap: 15px; padding: 23px 0; }
  .process-row p { grid-column: 2; }
  form { padding: 27px 20px; }
  .fields { grid-template-columns: 1fr; }
  label.full { grid-column: auto; }
  .footer-grid { grid-template-columns: 1fr; gap: 30px; }
  .footer-bottom { display: block; }
  .footer-bottom div { margin-top: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
  .js-ready [data-reveal] { opacity: 1; transform: none; }
}


.card-flag { position: absolute; left: 0; bottom: 0; z-index: 2; width: 46%;
  padding: 8px 6px; background: var(--accent); color: var(--ink); font-size: 10px;
  font-weight: 800; letter-spacing: .06em; line-height: 1.2; text-transform: uppercase;
  text-align: center; }



.privat-section { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch;
  margin-top: 76px; margin-bottom: 76px; background: #0d0d10; }
.privat-copy { padding: 84px clamp(24px, 4.6vw, 86px); }
.privat-copy .eyebrow { color: var(--accent); }
.privat-copy h2 { color: #fff; }
.privat-copy h2 span { color: var(--accent); }
.privat-intro { margin-top: 18px; max-width: 620px; color: rgba(255,255,255,.76); }
.privat-points { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px; margin-top: 42px; }
.privat-point { padding-top: 15px; border-top: 1px solid rgba(255,255,255,.24); }
.privat-point strong { display: block; color: var(--accent); font-size: 19px; font-weight: 800; }
.privat-point span { display: block; margin-top: 9px; color: #fff; font-size: 14px;
  font-weight: 600; line-height: 1.45; }
.privat-cta { margin-top: 40px; }
.privat-media { position: relative; }
.privat-media > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.privat-card { position: absolute; left: 34px; right: 34px; bottom: 34px; max-width: 430px;
  padding: 26px 28px; background: #fff; box-shadow: 0 18px 40px rgba(0,0,0,.18); }
.privat-card h3 { margin: 0; font-size: 21px; }
.privat-card p { margin-top: 10px; color: var(--muted); font-size: 15px; }
.privat-note { display: flex; align-items: center; gap: 14px; margin-top: 18px;
  padding-top: 16px; border-top: 1px solid var(--line); }
.privat-note strong { font-size: 14px; font-weight: 700; }


.detail-eyebrow { display: flex; align-items: center; flex-wrap: wrap; gap: 11px; }
.detail-eyebrow .eyebrow { margin-bottom: 0; }
.flag-pill { display: inline-block; padding: 5px 9px; background: var(--accent);
  color: var(--ink); font-size: 11px; font-weight: 800; letter-spacing: .08em;
  text-transform: uppercase; }
.note-box { margin: 4px 0 24px; padding: 18px 20px; border: 1px solid var(--line);
  border-left: 3px solid var(--accent); background: #fff; }
.note-box strong { display: block; font-size: 15px; font-weight: 700; }
.note-box p { margin-top: 7px; color: var(--muted); font-size: 14px; }

.package-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.package-card { position: relative; display: flex; flex-direction: column;
  padding: 32px 30px 30px; background: #111114; }
.package-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0;
  height: 4px; background: var(--accent); }
.package-number { color: var(--accent); font-size: 13px; font-weight: 800; letter-spacing: 1.7px; }
.package-card h3 { margin: 16px 0 0; color: var(--accent); font-size: 30px; letter-spacing: -.4px; }
.package-lede { margin-top: 9px; color: rgba(255,255,255,.72); font-size: 15px; }
.package-intro { display: block; margin-top: 26px; padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,.18); color: #fff; font-size: 14px; font-weight: 700; }
.package-list { margin: 14px 0 26px; padding: 0; list-style: none; }
.package-list li { position: relative; padding: 9px 0 9px 34px; color: #fff;
  font-size: 15px; line-height: 1.45; }
.package-list li::before { content: "✓"; position: absolute; left: 0; top: 9px;
  width: 21px; height: 21px; border-radius: 50%; background: var(--accent);
  color: var(--ink); font-size: 11px; font-weight: 800; line-height: 21px; text-align: center; }
.package-cta { margin-top: auto; }
.package-cta.button, .package-cta .button { min-width: 0; width: 100%; }
.design-credit { color: rgba(255,255,255,.72); }

.system-section { padding: 84px 0; background: #0d0d10; }
.system-layout { display: grid; grid-template-columns: .82fr 1.6fr; gap: 64px; align-items: start; }
.system-copy .eyebrow { color: var(--accent); }
.system-copy h2 { position: relative; margin: 0; padding-bottom: 22px; color: #fff;
  font-size: clamp(31px, 3vw, 44px); line-height: 1.13; letter-spacing: -1.25px; }
.system-copy h2 span { color: rgba(255,255,255,.55); font-weight: 400; }
.system-copy h2::after { content: ""; position: absolute; left: 0; bottom: 0;
  width: 46px; height: 3px; background: var(--accent); }
.system-intro { margin-top: 24px; color: rgba(255,255,255,.66); font-size: 16px; line-height: 1.6; }
.system-rows { display: grid; border-bottom: 1px solid rgba(255,255,255,.16); }
.system-row { display: grid; grid-template-columns: 58px 1fr 1.3fr; gap: 26px;
  align-items: start; padding: 30px 0; border-top: 1px solid rgba(255,255,255,.16); }
.system-number { color: var(--accent); font-size: 13px; font-weight: 800; letter-spacing: 1.7px; }
.system-title { margin: 0; color: #fff; font-size: 19px; font-weight: 700; }
.system-text { margin: 0; color: rgba(255,255,255,.66); font-size: 15px; line-height: 1.55; }

.two-panels.person-feature { grid-template-columns: minmax(0, 260px) minmax(0, 460px);
  justify-content: center; align-items: center; gap: 32px; }
.person-photo img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover;
  background: var(--soft); }
.legal .elementor-widget-text-editor { max-width: 860px; }
.legal .elementor-widget-text-editor h2 { margin: 44px 0 14px; color: var(--ink);
  font-size: 27px; line-height: 1.25; letter-spacing: -.4px; }
.legal .elementor-widget-text-editor h3 { margin: 30px 0 10px; color: var(--ink);
  font-size: 19px; line-height: 1.3; }
.legal .elementor-widget-text-editor h4 { margin: 22px 0 8px; color: var(--ink);
  font-size: 16px; line-height: 1.35; }
.legal .elementor-widget-text-editor p, .legal .elementor-widget-text-editor li { color: var(--muted); }
.legal .elementor-widget-text-editor p { margin: 0 0 14px; }
.legal .elementor-widget-text-editor ul { margin: 0 0 18px; padding-left: 22px; }
.legal .elementor-widget-text-editor ul ul { margin: 8px 0 0; }
.legal .elementor-widget-text-editor li { margin: 0 0 8px; }
.legal .elementor-widget-text-editor a { color: var(--accent-dark); text-decoration: underline;
  text-underline-offset: 3px; overflow-wrap: anywhere; }
.legal .elementor-widget-text-editor .legal-summary { margin: 18px 0 22px; padding: 18px 22px;
  border-left: 3px solid var(--accent); background: var(--accent-soft); }
.legal .elementor-widget-text-editor .legal-summary ul { margin: 0; padding: 0; list-style: none; }
.legal .elementor-widget-text-editor .legal-summary li { margin: 0 0 6px; }
.legal .elementor-widget-text-editor .legal-summary p { margin: 0 0 10px; color: var(--ink); }
.legal .elementor-widget-text-editor .legal-caption { font-size: 14px; }
.footer-brand .footer-logo { width: fit-content; max-width: 100%;
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 12%, #000 88%, transparent 100%),
    linear-gradient(to bottom, transparent 0, #000 12%, #000 88%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(to right, transparent 0, #000 12%, #000 88%, transparent 100%),
    linear-gradient(to bottom, transparent 0, #000 12%, #000 88%, transparent 100%);
  mask-composite: intersect; }
.ai-label { position: absolute; top: auto; left: auto; right: 0; bottom: 0; z-index: 3;
  display: block; width: auto; max-width: 100%; margin: 0; padding: 4px 9px;
  background: rgba(16,17,20,.62); align-self: end; justify-self: end; pointer-events: none; }
.ai-label p { margin: 0; color: inherit; }
.service-card > .ai-label, .image-banner > .ai-label { grid-column: 1 / 2; grid-row: 1 / 2; }
.card-flag-stack { position: absolute; top: auto; left: 0; bottom: 0; z-index: 2; width: 46%;
  min-height: 0; display: flex; flex-direction: column; align-items: flex-end; gap: 0;
  margin: 0; padding: 0; pointer-events: none; }
.card-flag-stack > .card-flag { position: static; width: 100%; }
.card-flag-stack > .ai-label { position: static; }
.image-banner > .ai-label { top: 420px; bottom: auto; transform: translateY(-100%); }
.e-con > .elementor-shape, .e-con > .ui-resizable-handle { position: absolute; padding: 0; }

@media (max-width: 1220px) {
  .system-layout { gap: 42px; }
  .system-row { grid-template-columns: 48px 1fr 1.15fr; gap: 20px; }
  .card-flag { width: 42%; }
  .card-flag-stack { width: 42%; }
  .privat-copy { padding: 66px 6%; }
}
@media (max-width: 930px) {
  .system-layout { grid-template-columns: 1fr; gap: 34px; }
  .system-row { display: block; padding: 24px 0; }
  .system-title { margin-top: 10px; }
  .system-text { margin-top: 8px; }
  .package-cards { grid-template-columns: 1fr; }
  .card-flag { width: 40%; }
  .card-flag-stack { width: 40%; }
  .home-hero-picture .ai-label, .page-hero-picture .ai-label { bottom: 27%; }
  .split-section.reverse { grid-template-columns: 1fr; }
  .contact-grid { grid-template-columns: minmax(0, 1fr); }
  .privat-section { grid-template-columns: 1fr; }
  .privat-media > img { height: auto; }
  .privat-card { position: static; max-width: none; box-shadow: none;
    border-top: 3px solid var(--accent); }
  .two-panels.person-feature { grid-template-columns: minmax(0, 220px) minmax(0, 420px); gap: 24px; }
}
@media (max-width: 620px) {
  .two-panels.person-feature { grid-template-columns: minmax(0, 1fr); max-width: 420px; margin-inline: auto; }
  .person-feature .person-photo { width: 100%; max-width: 260px; margin-inline: auto; }
  .legal .elementor-widget-text-editor h2 { font-size: 23px; }
  .system-section { padding: 54px 0; }
  .card-flag { width: 42%; font-size: 9px; padding: 7px 4px; }
  .card-flag-stack { width: 42%; }
  .split-image > .ai-label, .vehicle-image > .ai-label { left: 0; right: auto; bottom: 52px; }
  .image-banner > .ai-label { top: 280px; }
  .contact-grid select { min-width: 0; max-width: 100%; }
  .contact-grid form, .contact-grid .elementor-form-fields-wrapper, .contact-grid .elementor-field-group { min-width: 0; }
  .privat-copy { padding: 48px 6%; }
  .privat-points { grid-template-columns: 1fr; gap: 16px; margin-top: 30px; }
}
@media (max-width: 380px) {
  .contact-grid .cf-turnstile { transform: scale(.82); transform-origin: left top; }
}
@media (max-width: 767px) {
  .elementor-hidden-mobile { display: none !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-hidden-tablet { display: none !important; }
}
@media (min-width: 1025px) {
  .elementor-hidden-desktop { display: none !important; }
}


/* ==========================================================================
   Appended by wp/build_gelb.py — NOT part of the client's reference files.
   Everything above this line is those files' stylesheet byte for byte.

   Elementor's own wrappers are removed from layout so the markup above
   behaves exactly as it does in the reference file. `display:contents`
   generates no box at all, so these wrappers contribute no padding, no gap,
   no flex context, and — importantly for the theme-builder header/footer,
   which are themselves <header>/<footer> tags — no background or border.
   ========================================================================== */
[data-elementor-type="header"],
[data-elementor-type="footer"],
body.rzg-gold [data-elementor-type="wp-page"],
.rzg-raw,
.rzg-raw > .elementor-widget-container{ display:contents !important; }

/* The header and footer templates' own `.e-con` containers used to be listed
   above as well, because each template held a single raw HTML widget and every
   Elementor container around it was pure packaging. They are NOT packaging any
   more: since wp/build_gelb_native.py rebuilt both templates from native
   elements, those containers ARE the header's flex row and the footer's grid.
   Collapsing them left the whole chrome stacked in a single column. Only the
   outermost <header>/<footer> Elementor emits around a template stays
   collapsed, above — that one is a duplicate of the reference's own tag and
   would take its background and border a second time. */

/* NOTE: page containers are deliberately NOT collapsed here. On a page still
   shipped as one HTML widget the containers are only scaffolding, and
   `.rzg-raw` above removes them. On a page transpiled into native Elementor
   elements the containers ARE the design — they carry the reference's own
   classes and tags — so collapsing them would erase the layout entirely.
   Elementor's container *defaults* are neutralised instead, in
   assets/gelb-native.css. */

/* Hello Elementor's own page shell adds a max-width and padding around the
   content area; the reference markup owns its own measure via .wrap. */
body.rzg-gold .site-main,
body.rzg-gold .page-content{ max-width:none; padding:0; margin:0; }
body.rzg-gold .site-header,
body.rzg-gold .site-footer{ display:none; }

/* In the reference files the closing CTA and the footer are adjacent
   siblings, so `.cta-section{margin-bottom:80px}` and `footer{margin-top:50px}`
   collapse into a single 80px gap. Here the footer is a separate theme-builder
   template, so the two margins sit either side of a template boundary, cannot
   collapse, and add up to 130px. Dropping the footer's own top margin on the
   gold pages restores the 80px the reference actually renders. Pages still on
   the cream direction end in padding rather than margin, so they keep the 50px
   and are deliberately left alone. */
body.rzg-gold .rzg-raw footer{ margin-block-start:0; }

/* The gold header carries the reference file's own skip link, pointing at
   #inhalt — an id that only exists on pages built from those files. The header
   is global, so on the pages still running the cream system that link would
   offer a dead target. Hiding it there leaves those pages exactly as they were
   before this migration began, and it comes back automatically as each one is
   converted. (The theme's own skip link on those pages is separately broken —
   it points at #content, which the elementor_header_footer page template never
   outputs. That predates this work; see the review notes in README.md.) */
body:not(.rzg-gold) .rzg-raw .skip{ display:none; }

/* Box shadows restated one class deeper — see build_gelb.py. */
:is(.rzg-raw,body.rzg-gold) .button:hover{ box-shadow:0 10px 26px rgba(154,101,0,.22); }
:is(.rzg-raw,body.rzg-gold) .service-card{ box-shadow:0 8px 28px rgba(20,21,28,.035); }
:is(.rzg-raw,body.rzg-gold) .service-card:hover{ box-shadow:0 15px 34px rgba(20,21,28,.08); }
:is(.rzg-raw,body.rzg-gold) .step-card{ box-shadow:0 14px 34px rgba(48, 36, 0, .07); }
:is(.rzg-raw,body.rzg-gold) .step-card:hover{ box-shadow:0 22px 48px rgba(48, 36, 0, .12); }
:is(.rzg-raw,body.rzg-gold) .privat-card{ box-shadow:0 18px 40px rgba(0,0,0,.18); }

/* Which navigation item is the current page.
   ---------------------------------------------------------------------------
   Each reference file hardcodes `class="active" aria-current="page"` on its own
   nav item, but here one shared header template serves every page, so the
   marker cannot live in the stored markup — build_gelb.py strips it out.

   It is NOT re-applied in PHP either. Elementor caches each widget's rendered
   HTML (`_elementor_element_cache` post meta), so anything a render filter
   writes into the header gets stored once and replayed on every other page —
   which is exactly how the first attempt ended up showing "Über uns" as the
   current page on the homepage. Keying off WordPress's own `page-id-N` body
   class instead is immune to that: the cached header HTML stays identical for
   every page and the body class does the choosing.

   The underline is painted here rather than by the companion script so it is
   correct in the very first frame, with none of the 0.2s slide the class's own
   transition would otherwise run on load. assets/gelb-nav.js adds the matching
   `class="active" aria-current="page"` afterwards, which changes nothing
   visually and restores the reference's own markup and screen-reader cue. */
body.page-id-12 .nav a[href="https://ruzic-facility.com/"]::after{ transform:scaleX(1); }
body.page-id-13 .nav a[href="https://ruzic-facility.com/ueber-uns/"]::after{ transform:scaleX(1); }
body.page-id-14 .nav a[href="https://ruzic-facility.com/leistungen/"]::after{ transform:scaleX(1); }
