/* ==========================================================================
   Innsbruck Tischler — main.css  (prefix: ib-)
   1  Tokens & base            6  Hölzer / Klima
   2  Buttons & headings       7  Objekte / Werkstatt / Ablauf
   3  Header, topbar, drawer   8  Referenzen / Vorher-nachher / Preise
   4  Hero                     9  Rechner / Planung / Fehler / Vorteile
   5  Auftakt / Leistungen    10  Qualität / Garantie / Gebiet / Team
                              11  Bewertungen / Ratgeber / FAQ / Kontakt
                              12  SEO / Footer / FAB
                              13  Responsive 1200 → 375
   ========================================================================== */

/* ---------- 1 · tokens & base ---------- */
:root {
    --ink: #16130F;
    --ink-2: #241F19;
    --ink-3: #3A332B;
    --body: #4E463C;
    --muted: #877C6E;

    --paper: #FDF9F4;
    --sand: #F4EDE3;
    --sand-2: #EBE2D4;
    --line: #E0D7C8;
    --line-2: #CDC2AE;

    --rot: #B23A2B;
    --rot-d: #8E2C1F;
    --rot-l: #FAEAE6;
    --tanne: #33513F;

    --r: 16px;
    --r-s: 10px;
    --r-p: 999px;

    --wrap: 1240px;
    --pad: 92px;

    --ff-d: 'Syne', 'Trebuchet MS', system-ui, sans-serif;
    --ff-b: 'Public Sans', -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    --ff-n: 'Public Sans', -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;

    --sh-s: 0 1px 2px rgba(22, 19, 15, .05);
    --sh: 0 1px 2px rgba(22, 19, 15, .04), 0 14px 34px rgba(22, 19, 15, .07);
    --sh-l: 0 2px 6px rgba(22, 19, 15, .06), 0 30px 60px rgba(22, 19, 15, .12);
}

*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
    margin: 0 auto;
    max-width: 1920px;
    min-width: 375px;
    overflow-x: clip;
    background: var(--paper);
    color: var(--body);
    font-family: var(--ff-b);
    font-size: 17px;
    line-height: 1.72;
    -webkit-font-smoothing: antialiased;
}

body.ib-locked { overflow: hidden; }

img { max-width: 100%; height: auto; display: block; border: 0; }

ul,
ol { list-style: none; margin: 0; padding: 0; }

a { color: var(--rot); text-decoration: none; }
a:hover { color: var(--rot-d); }

button { font: inherit; color: inherit; }

p { margin: 0 0 18px; }
p:last-child { margin-bottom: 0; }

b,
strong { color: var(--ink-2); font-weight: 600; }

h1, h2, h3, h4, h5 {
    font-family: var(--ff-d);
    color: var(--ink);
    font-weight: 700;
    line-height: 1.16;
    letter-spacing: -.015em;
    margin: 0 0 16px;
}

h1 { font-size: clamp(2rem, 1.35rem + 2.6vw, 3.35rem); letter-spacing: -.03em; }
h2 { font-size: clamp(1.6rem, 1.15rem + 1.7vw, 2.5rem); letter-spacing: -.025em; }
h3 { font-size: 1.22rem; }
h4 { font-size: 1.06rem; }

.ib-wrap {
    width: 100%;
    max-width: var(--wrap);
    margin: 0 auto;
    padding: 0 28px;
}

.ib-sec { padding: var(--pad) 0; position: relative; }
.ib-sec--sand { background: var(--sand); }
.ib-sec--dark { background: var(--ink); color: rgba(253, 249, 244, .82); }
.ib-sec--dark h2,
.ib-sec--dark h3,
.ib-sec--dark h4,
.ib-sec--dark b,
.ib-sec--dark strong { color: #fff; }

/* reveal */
.ib-up {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity .55s ease, transform .55s ease;
}
.ib-up.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
    .ib-up { opacity: 1; transform: none; transition: none; }
    html { scroll-behavior: auto; }
}

/* ---------- 2 · kickers, section heads, buttons ---------- */
.ib-kick {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--ff-d);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--rot);
    margin-bottom: 14px;
}
.ib-kick i { width: 30px; height: 2px; background: var(--rot); display: block; }
.ib-kick--w { color: #E9B4AB; }
.ib-kick--w i { background: #E9B4AB; }

.ib-shead { max-width: 780px; margin: 0 0 46px; }
.ib-shead h2 { margin-bottom: 14px; }
.ib-shead p { color: var(--muted); font-size: 1.03rem; margin: 0; }
.ib-shead--w p { color: rgba(253, 249, 244, .68); }

.ib-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 15px 28px;
    border-radius: var(--r-p);
    font-family: var(--ff-d);
    font-weight: 700;
    font-size: .95rem;
    letter-spacing: .01em;
    border: 1.5px solid transparent;
    cursor: pointer;
    transition: transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease;
    white-space: nowrap;
}
.ib-btn span { color: inherit; }
.ib-btn img { flex: none; }
.ib-btn:hover { transform: translateY(-2px); }

.ib-btn--rot { background: var(--rot); color: #fff; }
.ib-btn--rot:hover { background: var(--rot-d); color: #fff; }

.ib-btn--line { background: transparent; color: var(--ink); border-color: var(--line-2); }
.ib-btn--line:hover { background: var(--ink); border-color: var(--ink); color: #fff; }

.ib-btn--ghost-l { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .35); }
.ib-btn--ghost-l:hover { background: rgba(255, 255, 255, .1); color: #fff; border-color: rgba(255, 255, 255, .6); }

.ib-btn--full { width: 100%; }

.ib-more {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-family: var(--ff-d);
    font-weight: 700;
    font-size: .92rem;
    color: var(--ink);
    border-bottom: 2px solid var(--rot);
    padding-bottom: 4px;
}
.ib-more:hover { color: var(--rot); }

/* figures: Syne's numerals are too eccentric where the number IS the content */
.ib-hero__fact strong,
.ib-mtab dd,
.ib-calc__sum,
.ib-calc__out,
.ib-rev__score strong,
.ib-preis__p,
.ib-lst__g-no,
.ib-obj__no,
.ib-kost__n,
.ib-flow__n {
    font-family: var(--ff-n);
    font-feature-settings: "tnum" 1;
}
.ib-hero__fact strong { font-weight: 800; letter-spacing: -.03em; }
.ib-rev__score strong { font-weight: 800; letter-spacing: -.03em; }
.ib-calc__sum { font-weight: 800; letter-spacing: -.025em; }
.ib-mtab dd,
.ib-preis__p { font-weight: 700; }
.ib-lst__g-no,
.ib-obj__no,
.ib-kost__n,
.ib-flow__n { font-weight: 700; }

/* ---------- 3 · topbar, header, drawer ---------- */
.ib-top {
    background: var(--ink);
    color: rgba(253, 249, 244, .8);
    font-size: .82rem;
}
.ib-top__inner {
    max-width: var(--wrap);
    margin: 0 auto;
    padding: 0 28px;
    min-height: 38px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}
.ib-top__i { display: inline-flex; align-items: center; gap: 8px; }
.ib-top__i img { opacity: .8; }

.ib-head {
    position: sticky;
    top: 0;
    z-index: 900;
    background: rgba(253, 249, 244, .93);
    backdrop-filter: saturate(160%) blur(12px);
    -webkit-backdrop-filter: saturate(160%) blur(12px);
    border-bottom: 1px solid var(--line);
    overflow-x: clip;
    transition: box-shadow .2s ease;
}
.ib-head.is-stuck { box-shadow: 0 10px 28px rgba(22, 19, 15, .08); }

.ib-head__inner {
    max-width: var(--wrap);
    margin: 0 auto;
    padding: 0 28px;
    min-height: 76px;
    display: flex;
    align-items: center;
    gap: 26px;
}

.ib-head__brand { display: flex; align-items: center; gap: 12px; color: inherit; }
.ib-head__mark {
    position: relative;
    width: 42px;
    height: 42px;
    flex: none;
    border-radius: 12px;
    background: var(--rot);
}
.ib-head__mark img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
.ib-head__brand-txt { display: flex; flex-direction: column; line-height: 1.15; }
.ib-head__brand-txt strong {
    font-family: var(--ff-d);
    font-size: 1.12rem;
    font-weight: 800;
    letter-spacing: -.02em;
    color: var(--ink);
}
.ib-head__brand-txt strong span { color: var(--rot); margin-left: 4px; }
.ib-head__brand-txt small { font-size: .74rem; color: var(--muted); letter-spacing: .04em; }

.ib-menu { display: flex; align-items: center; gap: 26px; margin-left: auto; }
.ib-menu__l {
    position: relative;
    font-size: .95rem;
    font-weight: 500;
    color: var(--ink-3);
    padding: 6px 0;
}
.ib-menu__l::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 0;
    height: 2px;
    background: var(--rot);
    transition: width .2s ease;
}
.ib-menu__l:hover { color: var(--ink); }
.ib-menu__l:hover::after { width: 100%; }

.ib-head__tel {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 11px 18px;
    border: 1.5px solid var(--line-2);
    border-radius: var(--r-p);
    font-family: var(--ff-d);
    font-weight: 700;
    font-size: .92rem;
    color: var(--ink);
    white-space: nowrap;
}
.ib-head__tel:hover { border-color: var(--rot); color: var(--rot); }

.ib-burger {
    display: none;
    width: 46px;
    height: 46px;
    border: 1.5px solid var(--line-2);
    border-radius: 12px;
    background: transparent;
    cursor: pointer;
    padding: 0;
    position: relative;
}
.ib-burger span {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 20px;
    height: 2px;
    background: var(--ink);
    border-radius: 2px;
}
.ib-burger span:nth-child(1) { top: 15px; }
.ib-burger span:nth-child(2) { top: 22px; }
.ib-burger span:nth-child(3) { top: 29px; }

.ib-drawer {
    position: fixed;
    top: 0;
    right: 0;
    width: min(360px, 88vw);
    height: 100%;
    background: var(--paper);
    z-index: 1200;
    transform: translateX(105%);
    transition: transform .3s cubic-bezier(.4, 0, .2, 1);
    display: flex;
    flex-direction: column;
    box-shadow: var(--sh-l);
}
.ib-drawer.is-open { transform: none; }
.ib-drawer__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 22px 24px;
    border-bottom: 1px solid var(--line);
}
.ib-drawer__title {
    font-family: var(--ff-d);
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    font-size: .74rem;
    color: var(--muted);
}
.ib-drawer__x {
    width: 40px;
    height: 40px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: transparent;
    display: grid;
    place-items: center;
    cursor: pointer;
}
.ib-drawer__nav { display: flex; flex-direction: column; padding: 12px 24px; overflow-y: auto; flex: 1; }
.ib-drawer__nav a {
    padding: 14px 0;
    border-bottom: 1px solid var(--line);
    color: var(--ink);
    font-family: var(--ff-d);
    font-weight: 600;
    font-size: 1.02rem;
}
.ib-drawer__nav a:hover { color: var(--rot); }
.ib-drawer__foot { padding: 20px 24px 28px; display: flex; flex-direction: column; gap: 12px; }
.ib-drawer__tel {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 14px;
    border-radius: var(--r-p);
    background: var(--ink);
    color: #fff;
    font-family: var(--ff-d);
    font-weight: 700;
}
.ib-drawer__tel:hover { color: #fff; background: var(--ink-2); }
.ib-drawer__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px;
    border-radius: var(--r-p);
    background: var(--rot);
    color: #fff;
    font-family: var(--ff-d);
    font-weight: 700;
}
.ib-drawer__cta:hover { background: var(--rot-d); color: #fff; }

.ib-scrim {
    position: fixed;
    inset: 0;
    background: rgba(22, 19, 15, .45);
    opacity: 0;
    visibility: hidden;
    transition: opacity .3s ease;
    z-index: 1100;
}
.ib-scrim.is-on { opacity: 1; visibility: visible; }

/* ---------- 4 · hero ---------- */
.ib-hero { padding: 0 0 var(--pad); }

.ib-hero__band {
    position: relative;
    width: 100%;
    height: clamp(300px, 40vw, 520px);
    overflow: hidden;
    background: var(--sand-2);
}
.ib-hero__band > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.ib-hero__band::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(22, 19, 15, .34) 0%, rgba(22, 19, 15, .1) 45%, rgba(253, 249, 244, .2) 100%);
}

.ib-hero__card {
    position: relative;
    z-index: 2;
    margin-top: -132px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--r);
    box-shadow: var(--sh-l);
    padding: 44px 48px 40px;
    max-width: 1000px;
}
.ib-hero__kick {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-family: var(--ff-d);
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--rot);
    background: var(--rot-l);
    border-radius: var(--r-p);
    padding: 8px 16px;
    margin-bottom: 20px;
}
.ib-hero h1 { margin-bottom: 18px; }
.ib-hero h1 span { color: var(--rot); display: block; }
.ib-hero__lead { font-size: 1.1rem; max-width: 720px; color: var(--ink-3); }

.ib-hero__act { display: flex; flex-wrap: wrap; gap: 14px; margin: 26px 0 26px; }

.ib-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 28px;
    padding-top: 22px;
    border-top: 1px solid var(--line);
}
.ib-hero__meta li {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: .92rem;
    color: var(--muted);
}

.ib-hero__strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    background: var(--line);
    border: 1px solid var(--line);
    border-radius: var(--r);
    overflow: hidden;
    margin-top: 26px;
}
.ib-hero__fact {
    background: var(--sand);
    padding: 26px 24px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}
.ib-hero__fact strong {
    font-family: var(--ff-d);
    font-size: 1.75rem;
    font-weight: 800;
    color: var(--ink);
    letter-spacing: -.02em;
    line-height: 1;
}
.ib-hero__fact span { font-size: .88rem; color: var(--muted); line-height: 1.5; }

/* ---------- 5 · auftakt & leistungen ---------- */
.ib-intro {
    display: grid;
    grid-template-columns: 1.35fr 1fr;
    gap: 60px;
    align-items: start;
}
.ib-intro__txt { min-width: 0; }
.ib-lead-p { font-size: 1.06rem; }
.ib-lead-p::first-letter {
    float: left;
    font-family: var(--ff-d);
    font-size: 3.6rem;
    line-height: .86;
    font-weight: 800;
    color: var(--rot);
    padding: 6px 12px 0 0;
}
.ib-intro__sign {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 26px;
    padding-top: 20px;
    border-top: 1px solid var(--line);
    font-family: var(--ff-d);
    font-weight: 700;
    color: var(--ink);
    font-size: .95rem;
}

.ib-intro__tab {
    min-width: 0;
    background: var(--sand);
    border: 1px solid var(--line);
    border-radius: var(--r);
    padding: 30px 30px 26px;
}
.ib-intro__tab-h { font-size: 1.05rem; margin-bottom: 18px; }
.ib-mtab { margin: 0; }
.ib-mtab__row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 14px;
    padding: 12px 0;
    border-bottom: 1px dashed var(--line-2);
}
.ib-mtab__row:last-child { border-bottom: 0; }
.ib-mtab dt { font-size: .93rem; color: var(--body); min-width: 0; }
.ib-mtab dd {
    margin: 0;
    font-family: var(--ff-d);
    font-weight: 700;
    color: var(--ink);
    white-space: nowrap;
    font-size: .95rem;
}
.ib-intro__tab-n { margin-top: 16px; font-size: .86rem; color: var(--muted); font-style: italic; }

.ib-lst { display: flex; flex-direction: column; gap: 18px; }
.ib-lst__g {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--r);
    padding: 30px 32px;
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 34px;
    transition: box-shadow .22s ease, border-color .22s ease;
}
.ib-lst__g:hover { box-shadow: var(--sh); border-color: var(--line-2); }
.ib-lst__g-head { min-width: 0; }
.ib-lst__g-no {
    display: block;
    font-family: var(--ff-d);
    font-size: .8rem;
    font-weight: 800;
    letter-spacing: .16em;
    color: var(--rot);
    margin-bottom: 10px;
}
.ib-lst__g-head h3 { margin-bottom: 10px; font-size: 1.3rem; }
.ib-lst__g-head p { font-size: .92rem; color: var(--muted); margin: 0; }

.ib-lst__g-img {
    position: relative;
    margin-top: 16px;
    aspect-ratio: 4 / 3;
    border-radius: var(--r-s);
    overflow: hidden;
    background: var(--sand-2);
}
.ib-lst__g-img > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ib-lst__items {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 26px;
    min-width: 0;
}
.ib-lst__i {
    display: grid;
    grid-template-columns: 20px 1fr;
    grid-template-rows: auto auto;
    column-gap: 12px;
    row-gap: 4px;
    min-width: 0;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--line);
}
.ib-lst__i img { grid-row: 1 / 2; margin-top: 3px; }
.ib-lst__i b {
    grid-column: 2;
    font-family: var(--ff-d);
    font-size: 1rem;
    font-weight: 700;
    color: var(--ink);
}
.ib-lst__i span {
    grid-column: 2;
    font-size: .88rem;
    line-height: 1.55;
    color: var(--muted);
}

.ib-lst__foot {
    margin-top: 30px;
    background: var(--ink);
    border-radius: var(--r);
    padding: 30px 36px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 26px;
    flex-wrap: wrap;
}
.ib-lst__foot p { color: rgba(253, 249, 244, .82); margin: 0; max-width: 640px; }

/* ---------- 6 · hölzer & klima ---------- */
.ib-holz {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 18px;
}
.ib-holz__c {
    position: relative;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--r);
    overflow: hidden;
    min-width: 0;
    display: flex;
    flex-direction: column;
    transition: transform .22s ease, box-shadow .22s ease;
}
.ib-holz__c:hover { transform: translateY(-4px); box-shadow: var(--sh); }
.ib-holz__c--star { border-color: var(--rot); }
.ib-holz__flag {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 2;
    background: var(--rot);
    color: #fff;
    font-family: var(--ff-d);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: 6px 12px;
    border-radius: var(--r-p);
}
.ib-holz__media { position: relative; aspect-ratio: 4 / 3; background: var(--sand-2); }
.ib-holz__media > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.ib-holz__body { padding: 20px 22px 22px; display: flex; flex-direction: column; flex: 1; }
.ib-holz__body h3 { font-size: 1.15rem; margin-bottom: 8px; }
.ib-holz__body p { font-size: .89rem; color: var(--muted); line-height: 1.6; }
.ib-holz__specs { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--line); }
.ib-holz__specs li {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 5px 0;
    font-size: .82rem;
}
.ib-holz__specs span { color: var(--muted); }
.ib-holz__specs b { font-family: var(--ff-d); font-size: .82rem; text-align: right; }

.ib-holz__note {
    margin-top: 26px;
    display: flex;
    gap: 16px;
    align-items: flex-start;
    background: var(--rot-l);
    border-radius: var(--r);
    padding: 22px 26px;
}
.ib-holz__note img { flex: none; margin-top: 3px; }
.ib-holz__note p { margin: 0; font-size: .95rem; color: var(--ink-3); }

.ib-klima { display: grid; grid-template-columns: 1.25fr 1fr; gap: 56px; align-items: start; }
.ib-klima__txt { min-width: 0; }
.ib-klima__cards { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.ib-klima__c {
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: var(--r);
    padding: 22px 24px;
    display: grid;
    grid-template-columns: 22px 1fr;
    column-gap: 14px;
    row-gap: 6px;
}
.ib-klima__c img { grid-row: 1; margin-top: 3px; }
.ib-klima__c b { grid-column: 2; font-family: var(--ff-d); font-size: 1rem; }
.ib-klima__c span { grid-column: 2; font-size: .89rem; color: rgba(253, 249, 244, .68); line-height: 1.6; }

/* ---------- 7 · objekte, werkstatt, ablauf ---------- */
.ib-obj {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}
.ib-obj__c {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--r);
    overflow: hidden;
    min-width: 0;
    display: flex;
    flex-direction: column;
    transition: box-shadow .22s ease;
}
.ib-obj__c:hover { box-shadow: var(--sh); }
.ib-obj__media { position: relative; aspect-ratio: 4 / 3; background: var(--sand-2); }
.ib-obj__media > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.ib-obj__body { padding: 24px 26px 28px; }
.ib-obj__no {
    display: inline-block;
    font-family: var(--ff-d);
    font-size: .74rem;
    font-weight: 800;
    letter-spacing: .16em;
    color: var(--rot);
    margin-bottom: 8px;
}
.ib-obj__body h3 { font-size: 1.16rem; margin-bottom: 10px; }
.ib-obj__body p { font-size: .92rem; margin: 0; }

.ib-shop { display: grid; grid-template-columns: 1fr 1.05fr; gap: 56px; align-items: center; }
.ib-shop__media { min-width: 0; display: grid; gap: 16px; }
.ib-shop__big,
.ib-shop__small {
    position: relative;
    border-radius: var(--r);
    overflow: hidden;
    background: var(--sand-2);
}
.ib-shop__big { aspect-ratio: 4 / 3; }
.ib-shop__small { aspect-ratio: 16 / 9; width: 78%; margin-left: auto; }
.ib-shop__big > img,
.ib-shop__small > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.ib-shop__txt { min-width: 0; }
.ib-shop__list { margin-top: 26px; display: flex; flex-direction: column; gap: 12px; }
.ib-shop__li { display: flex; align-items: flex-start; gap: 12px; font-size: .93rem; }
.ib-shop__li img { flex: none; margin-top: 4px; }

.ib-flow {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 26px 30px;
}
.ib-flow__s {
    position: relative;
    min-width: 0;
    padding-top: 26px;
    border-top: 2px solid var(--line);
}
.ib-flow__s::before {
    content: "";
    position: absolute;
    top: -6px;
    left: 0;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--rot);
}
.ib-flow__n {
    display: block;
    font-family: var(--ff-d);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .18em;
    color: var(--rot);
    margin-bottom: 8px;
}
.ib-flow__s h3 { font-size: 1.12rem; margin-bottom: 8px; }
.ib-flow__s p { font-size: .92rem; color: var(--muted); margin: 0; }

/* ---------- 8 · referenzen, vorher/nachher, preise ---------- */
.ib-ref { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.ib-ref__c {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--r);
    overflow: hidden;
    min-width: 0;
    display: flex;
    flex-direction: column;
}
.ib-ref__media { position: relative; aspect-ratio: 4 / 3; background: var(--sand-2); }
.ib-ref__media > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.ib-ref__body { padding: 24px 26px 26px; display: flex; flex-direction: column; flex: 1; }
.ib-ref__body h3 { font-size: 1.12rem; }
.ib-ref__body p { font-size: .92rem; }
.ib-ref__meta { margin: 4px 0 0; padding-top: 14px; border-top: 1px solid var(--line); }
.ib-ref__meta > div {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding: 6px 0;
    font-size: .84rem;
}
.ib-ref__meta dt { color: var(--muted); flex: none; }
.ib-ref__meta dd { margin: 0; text-align: right; color: var(--ink-3); font-weight: 500; min-width: 0; }

.ib-va { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.ib-va__c {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--r);
    overflow: hidden;
    min-width: 0;
}
.ib-va__pair { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; background: var(--line); }
.ib-va__f { position: relative; margin: 0; aspect-ratio: 1 / 1; background: var(--sand-2); overflow: hidden; }
.ib-va__f > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.ib-va__tag {
    position: absolute;
    z-index: 2;
    top: 10px;
    left: 10px;
    background: rgba(22, 19, 15, .78);
    color: #fff;
    font-family: var(--ff-d);
    font-size: .64rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    padding: 5px 10px;
    border-radius: var(--r-p);
}
.ib-va__tag--b { background: var(--rot); }
.ib-va__body { padding: 22px 24px 24px; }
.ib-va__body h3 { font-size: 1.08rem; margin-bottom: 8px; }
.ib-va__body p { font-size: .9rem; color: var(--muted); margin: 0; }

.ib-preis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.ib-preis__g {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--r);
    padding: 28px 30px 24px;
    min-width: 0;
}
.ib-preis__g-h {
    display: flex;
    align-items: center;
    gap: 11px;
    font-size: 1.1rem;
    padding-bottom: 14px;
    margin-bottom: 6px;
    border-bottom: 2px solid var(--ink);
}
.ib-preis__rows li {
    display: flex;
    align-items: baseline;
    gap: 8px;
    padding: 11px 0;
    border-bottom: 1px solid var(--line);
    font-size: .93rem;
}
.ib-preis__rows li:last-child { border-bottom: 0; }
.ib-preis__n { min-width: 0; }
.ib-preis__d {
    flex: 1 1 auto;
    min-width: 14px;
    border-bottom: 1px dotted var(--line-2);
    transform: translateY(-4px);
}
.ib-preis__p {
    flex: none;
    font-family: var(--ff-d);
    font-weight: 700;
    color: var(--ink);
    white-space: nowrap;
}
.ib-preis__note {
    margin-top: 24px;
    display: flex;
    gap: 16px;
    align-items: flex-start;
    background: var(--paper);
    border: 1px dashed var(--line-2);
    border-radius: var(--r);
    padding: 22px 26px;
}
.ib-preis__note img { flex: none; margin-top: 3px; }
.ib-preis__note p { margin: 0; font-size: .93rem; }

/* ---------- 9 · kosten, rechner, planung, fehler, vorteile ---------- */
.ib-kost { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.ib-kost__c {
    background: var(--sand);
    border-radius: var(--r);
    padding: 28px 28px 26px;
    min-width: 0;
    border-left: 3px solid var(--rot);
}
.ib-kost__n {
    display: block;
    font-family: var(--ff-d);
    font-size: .74rem;
    font-weight: 800;
    letter-spacing: .16em;
    color: var(--rot);
    margin-bottom: 8px;
}
.ib-kost__c h3 { font-size: 1.1rem; margin-bottom: 10px; }
.ib-kost__c p { font-size: .92rem; margin: 0; }

.ib-calc {
    display: grid;
    grid-template-columns: 1.15fr 1fr;
    gap: 0;
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: var(--r);
    overflow: hidden;
}
.ib-calc__form { padding: 34px 36px; display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.ib-calc__f { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.ib-calc__f label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    font-family: var(--ff-d);
    font-weight: 700;
    font-size: .9rem;
    color: #fff;
}
.ib-calc__out {
    font-family: var(--ff-d);
    font-weight: 700;
    color: #E9B4AB;
    font-size: .88rem;
}
.ib-calc__sel {
    width: 100%;
    min-width: 0;
    padding: 13px 16px;
    border-radius: var(--r-s);
    border: 1px solid rgba(255, 255, 255, .2);
    background: rgba(22, 19, 15, .5);
    color: #fff;
    font-family: var(--ff-b);
    font-size: .93rem;
    appearance: none;
    cursor: pointer;
}
.ib-calc__sel:focus { outline: 2px solid var(--rot); outline-offset: 1px; }
.ib-calc__sel option { color: #16130F; background: #fff; }

.ib-calc__range {
    width: 100%;
    appearance: none;
    height: 4px;
    border-radius: 4px;
    background: rgba(255, 255, 255, .22);
    cursor: pointer;
}
.ib-calc__range::-webkit-slider-thumb {
    appearance: none;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--rot);
    border: 3px solid #fff;
    cursor: pointer;
}
.ib-calc__range::-moz-range-thumb {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--rot);
    border: 3px solid #fff;
    cursor: pointer;
}

.ib-calc__res {
    padding: 34px 36px;
    background: rgba(178, 58, 43, .14);
    border-left: 1px solid rgba(255, 255, 255, .14);
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.ib-calc__res-k {
    font-family: var(--ff-d);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #E9B4AB;
}
.ib-calc__sum {
    font-family: var(--ff-d);
    font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.1rem);
    font-weight: 800;
    color: #fff;
    line-height: 1.15;
    margin: 8px 0 4px;
    letter-spacing: -.02em;
}
.ib-calc__unit { font-size: .86rem; color: rgba(253, 249, 244, .6); }
.ib-calc__lines { margin: 20px 0 22px; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .16); }
.ib-calc__lines > div {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding: 6px 0;
    font-size: .88rem;
}
.ib-calc__lines dt { color: rgba(253, 249, 244, .6); flex: none; }
.ib-calc__lines dd { margin: 0; color: #fff; text-align: right; min-width: 0; }
.ib-calc__hint { margin: 14px 0 0; font-size: .82rem; color: rgba(253, 249, 244, .55); }

.ib-plan { display: grid; grid-template-columns: 1.2fr 1fr; gap: 56px; align-items: start; }
.ib-plan__txt { min-width: 0; }
.ib-plan__q {
    margin-top: 24px;
    display: flex;
    gap: 14px;
    align-items: flex-start;
    background: var(--rot-l);
    border-radius: var(--r);
    padding: 20px 24px;
}
.ib-plan__q img { flex: none; margin-top: 3px; }
.ib-plan__q p { margin: 0; font-size: .93rem; color: var(--ink-3); }

.ib-plan__check {
    min-width: 0;
    background: var(--ink);
    border-radius: var(--r);
    padding: 32px 34px;
}
.ib-plan__check h3 { color: #fff; font-size: 1.15rem; margin-bottom: 18px; }
.ib-plan__list { display: flex; flex-direction: column; gap: 14px; }
.ib-plan__list li {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    font-size: .92rem;
    color: rgba(253, 249, 244, .78);
    line-height: 1.6;
}
.ib-plan__list li img { flex: none; margin-top: 4px; }
.ib-plan__list b { color: #fff; }

.ib-fehl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.ib-fehl__c {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--r);
    padding: 28px 28px 26px;
    min-width: 0;
}
.ib-fehl__c img { margin-bottom: 14px; }
.ib-fehl__c h3 { font-size: 1.08rem; margin-bottom: 10px; }
.ib-fehl__c p { font-size: .91rem; margin: 0; }

.ib-adv { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.ib-adv__c { min-width: 0; padding: 4px 0 0; }
.ib-adv__ic {
    position: relative;
    display: block;
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background: var(--rot-l);
    margin-bottom: 16px;
}
.ib-adv__ic img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
.ib-adv__c h3 { font-size: 1.1rem; margin-bottom: 10px; }
.ib-adv__c p { font-size: .92rem; margin: 0; }

/* ---------- 10 · qualität, garantie, gebiet, team ---------- */
.ib-qual { display: grid; grid-template-columns: 1fr 1.1fr; gap: 56px; align-items: center; }
.ib-qual__media { min-width: 0; position: relative; }
.ib-qual__shot {
    position: relative;
    border-radius: var(--r);
    overflow: hidden;
    aspect-ratio: 4 / 3;
    background: var(--sand-2);
}
.ib-qual__shot > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.ib-qual__shot--sm {
    aspect-ratio: 3 / 2;
    width: 58%;
    margin: -70px 0 0 auto;
    border: 6px solid var(--sand);
    position: relative;
    z-index: 2;
}
.ib-qual__txt { min-width: 0; }
.ib-qual__tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.ib-qual__tags span {
    background: var(--paper);
    border: 1px solid var(--line-2);
    border-radius: var(--r-p);
    padding: 7px 15px;
    font-family: var(--ff-d);
    font-size: .82rem;
    font-weight: 600;
    color: var(--ink-3);
}

.ib-gar { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.ib-gar__c {
    background: var(--sand);
    border-radius: var(--r);
    padding: 28px 26px 26px;
    min-width: 0;
}
.ib-gar__c img { margin-bottom: 14px; }
.ib-gar__c h3 { font-size: 1.05rem; margin-bottom: 10px; }
.ib-gar__c p { font-size: .9rem; margin: 0; }

.ib-geo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 26px; }
.ib-geo__r {
    display: grid;
    grid-template-columns: 44px 1fr;
    gap: 16px;
    align-items: start;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--r);
    padding: 22px 24px;
    min-width: 0;
}
.ib-geo__ic {
    position: relative;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: var(--rot-l);
}
.ib-geo__ic img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
.ib-geo__r h3 { font-size: 1.02rem; margin-bottom: 6px; }
.ib-geo__r p { font-size: .9rem; color: var(--muted); margin: 0; }
.ib-geo__note {
    margin-top: 22px;
    display: flex;
    gap: 16px;
    align-items: flex-start;
    background: var(--ink);
    border-radius: var(--r);
    padding: 24px 28px;
}
.ib-geo__note img { flex: none; margin-top: 3px; }
.ib-geo__note p { margin: 0; color: rgba(253, 249, 244, .82); font-size: .95rem; }

.ib-team { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.ib-team__c { min-width: 0; }
.ib-team__ph {
    position: relative;
    aspect-ratio: 1 / 1;
    border-radius: var(--r);
    overflow: hidden;
    background: var(--sand-2);
    margin-bottom: 16px;
}
.ib-team__ph > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.ib-team__c h3 { font-size: 1.08rem; margin-bottom: 2px; }
.ib-team__role {
    display: block;
    font-size: .82rem;
    color: var(--rot);
    font-weight: 600;
    margin-bottom: 10px;
}
.ib-team__c p { font-size: .89rem; color: var(--muted); margin: 0; }

/* ---------- 11 · bewertungen, ratgeber, faq, kontakt ---------- */
.ib-rev__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--r);
    padding: 20px 28px;
    margin-bottom: 22px;
}
.ib-rev__score { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; min-width: 0; }
.ib-rev__score strong {
    font-family: var(--ff-d);
    font-size: 2rem;
    font-weight: 800;
    color: var(--ink);
    line-height: 1;
}
.ib-rev__stars { color: var(--rot); letter-spacing: .12em; font-size: 1.05rem; }
.ib-rev__cnt { color: var(--muted); font-size: .9rem; }

.ib-rev__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.ib-rev__c {
    position: relative;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--r);
    padding: 30px 28px 26px;
    min-width: 0;
    display: flex;
    flex-direction: column;
}
.ib-rev__q { position: absolute; top: 22px; right: 24px; opacity: .3; }
.ib-rev__rate { color: var(--rot); letter-spacing: .1em; margin-bottom: 12px; }
.ib-rev__txt { font-size: .94rem; color: var(--ink-3); flex: 1; }
.ib-rev__foot { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.ib-rev__name { display: block; font-family: var(--ff-d); font-weight: 700; color: var(--ink); }
.ib-rev__svc { display: block; font-size: .82rem; color: var(--muted); }

.ib-blog { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.ib-blog__c {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--r);
    overflow: hidden;
    min-width: 0;
    color: inherit;
    display: flex;
    flex-direction: column;
    transition: box-shadow .22s ease, transform .22s ease;
}
.ib-blog__c:hover { box-shadow: var(--sh); transform: translateY(-3px); color: inherit; }
.ib-blog__media { position: relative; aspect-ratio: 16 / 10; background: var(--sand-2); }
.ib-blog__media > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.ib-blog__body { padding: 22px 24px 24px; display: flex; flex-direction: column; flex: 1; }
.ib-blog__tag {
    align-self: flex-start;
    background: var(--rot-l);
    color: var(--rot);
    font-family: var(--ff-d);
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    padding: 5px 12px;
    border-radius: var(--r-p);
    margin-bottom: 12px;
}
.ib-blog__body h3 { font-size: 1.08rem; margin-bottom: 8px; }
.ib-blog__body p { font-size: .89rem; color: var(--muted); }
.ib-blog__read {
    margin-top: auto;
    padding-top: 14px;
    font-family: var(--ff-d);
    font-weight: 700;
    font-size: .86rem;
    color: var(--rot);
}
.ib-blog__foot { margin-top: 30px; text-align: center; }

.ib-faq { display: block; }

.ib-faq__list { display: flex; flex-direction: column; gap: 10px; max-width: 900px; }
.ib-faq__item {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--r-s);
    overflow: hidden;
}
.ib-faq__item.is-open { border-color: var(--rot); }
.ib-faq__q {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 20px 24px;
    background: transparent;
    border: 0;
    cursor: pointer;
    text-align: left;
    font-family: var(--ff-d);
    font-weight: 700;
    font-size: 1.02rem;
    color: var(--ink);
}
.ib-faq__q span { min-width: 0; }
.ib-faq__q i {
    position: relative;
    flex: none;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--sand-2);
    transition: background .2s ease, transform .2s ease;
}
.ib-faq__q i::before,
.ib-faq__q i::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: var(--ink);
    border-radius: 2px;
}
.ib-faq__q i::before { width: 11px; height: 2px; }
.ib-faq__q i::after { width: 2px; height: 11px; transition: opacity .2s ease; }
.ib-faq__item.is-open .ib-faq__q i { background: var(--rot); }
.ib-faq__item.is-open .ib-faq__q i::before { background: #fff; }
.ib-faq__item.is-open .ib-faq__q i::after { opacity: 0; }
.ib-faq__a { display: none; padding: 0 24px 22px; }
.ib-faq__item.is-open .ib-faq__a { display: block; }
.ib-faq__a p { font-size: .95rem; margin: 0; }

.ib-kt { position: relative; background: var(--ink); color: rgba(253, 249, 244, .82); overflow: hidden; }
.ib-kt__bg { position: absolute; inset: 0; opacity: .2; }
.ib-kt__bg > img { width: 100%; height: 100%; object-fit: cover; }
.ib-kt__inner {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 1fr 1.05fr;
    gap: 56px;
    align-items: start;
}
.ib-kt h2,
.ib-kt h3 { color: #fff; }
.ib-kt__txt { min-width: 0; }
.ib-kt__list { margin-top: 28px; display: flex; flex-direction: column; gap: 12px; }
.ib-kt__li {
    display: flex;
    align-items: center;
    gap: 14px;
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: var(--r-s);
    padding: 15px 20px;
    color: rgba(253, 249, 244, .7);
    font-size: .88rem;
    min-width: 0;
}
.ib-kt__li img { flex: none; }
.ib-kt__li span { display: flex; flex-direction: column; min-width: 0; overflow-wrap: anywhere; }
.ib-kt__li b { color: #fff; font-family: var(--ff-d); font-size: .98rem; }
a.ib-kt__li:hover { border-color: rgba(255, 255, 255, .35); color: rgba(253, 249, 244, .9); }

.ib-kt__form-wrap { min-width: 0; }
.ib-kt__form {
    background: var(--paper);
    border-radius: var(--r);
    padding: 34px 34px 30px;
    box-shadow: var(--sh-l);
}
.ib-kt__form-h { color: var(--ink); font-size: 1.2rem; margin-bottom: 20px; }
.ib-kt__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ib-kt__f { margin-bottom: 14px; min-width: 0; }
.ib-kt__in,
.ib-kt__ta {
    width: 100%;
    min-width: 0;
    padding: 14px 16px;
    border: 1px solid var(--line-2);
    border-radius: var(--r-s);
    background: #fff;
    font-family: var(--ff-b);
    font-size: .95rem;
    color: var(--ink);
}
.ib-kt__ta { resize: vertical; min-height: 118px; }
.ib-kt__in:focus,
.ib-kt__ta:focus { outline: 0; border-color: var(--rot); box-shadow: 0 0 0 3px var(--rot-l); }
.ib-kt__err { color: var(--rot-d); font-size: .8rem; margin-top: 6px; }
.ib-kt__send {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 16px;
    border: 0;
    border-radius: var(--r-p);
    background: var(--rot);
    color: #fff;
    font-family: var(--ff-d);
    font-weight: 700;
    font-size: .98rem;
    cursor: pointer;
    transition: background .18s ease;
}
.ib-kt__send:hover { background: var(--rot-d); }
.ib-kt__ok {
    margin-top: 14px;
    padding: 14px 16px;
    border-radius: var(--r-s);
    background: #E9F2EC;
    color: var(--tanne);
    font-size: .92rem;
}
.ib-kt__hint { margin: 14px 0 0; font-size: .8rem; color: var(--muted); }

/* ---------- 12 · seo, footer, fab ---------- */
.ib-seo { background: var(--sand); }
.ib-seo__inner { max-width: 900px; }
.ib-seo__inner h2 { margin-bottom: 22px; }
.ib-seo__inner h3 {
    margin: 34px 0 12px;
    font-size: 1.22rem;
    padding-left: 16px;
    border-left: 3px solid var(--rot);
}
.ib-seo__inner p { font-size: 1rem; }
.ib-seo__box {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--r);
    padding: 26px 30px;
    margin: 26px 0;
}
.ib-seo__box h4 { margin-bottom: 14px; }
.ib-seo__box ul { display: flex; flex-direction: column; gap: 9px; }
.ib-seo__box li {
    position: relative;
    padding-left: 26px;
    font-size: .95rem;
}
.ib-seo__box li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 10px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--rot);
}
.ib-seo__box--dark { background: var(--ink); border-color: var(--ink); }
.ib-seo__box--dark h4 { color: #fff !important; }
.ib-seo__box--dark p { color: rgba(253, 249, 244, .82) !important; }
.ib-seo__box--dark strong { color: #fff !important; }
.ib-seo__box--dark a:not(.ib-btn) { color: #E9B4AB !important; text-decoration: underline; }

.ib-foot { background: var(--ink); color: rgba(253, 249, 244, .72); padding: 70px 0 34px; }
.ib-foot h2,
.ib-foot h3,
.ib-foot h4 { color: #fff; }
.ib-foot a { color: rgba(253, 249, 244, .72); }
.ib-foot a:hover { color: #fff; }

.ib-foot__cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    flex-wrap: wrap;
    padding-bottom: 44px;
    margin-bottom: 44px;
    border-bottom: 1px solid rgba(255, 255, 255, .14);
}
.ib-foot__cta-txt { min-width: 0; max-width: 640px; }
.ib-foot__cta-h { font-size: clamp(1.35rem, 1.1rem + 1vw, 1.9rem); margin-bottom: 10px; }
.ib-foot__cta-txt p { margin: 0; font-size: .97rem; }
.ib-foot__cta-act { display: flex; gap: 12px; flex-wrap: wrap; }

.ib-foot__grid {
    display: grid;
    grid-template-columns: 1.6fr 1fr 1fr 1.2fr;
    gap: 40px;
}
.ib-foot__col { min-width: 0; }
.ib-foot__brand { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.ib-foot__mark {
    position: relative;
    width: 40px;
    height: 40px;
    flex: none;
    border-radius: 11px;
    background: var(--rot);
}
.ib-foot__mark img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
.ib-foot__brand-txt { display: flex; flex-direction: column; }
.ib-foot__brand-name { font-family: var(--ff-d); font-weight: 800; color: #fff; font-size: 1.08rem; }
.ib-foot__brand-sub { font-size: .78rem; color: rgba(253, 249, 244, .55); }
.ib-foot__about { font-size: .91rem; margin-bottom: 16px; }
.ib-foot__badges { display: flex; flex-wrap: wrap; gap: 8px; }
.ib-foot__badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: var(--r-p);
    padding: 6px 13px;
    font-size: .78rem;
}
.ib-foot__col-h {
    font-family: var(--ff-d);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: rgba(253, 249, 244, .5);
    margin-bottom: 16px;
}
.ib-foot__links { display: flex; flex-direction: column; gap: 10px; }
.ib-foot__links a { font-size: .91rem; }
.ib-foot__contact { display: flex; flex-direction: column; gap: 12px; }
.ib-foot__ci { display: flex; align-items: flex-start; gap: 11px; font-size: .91rem; min-width: 0; }
.ib-foot__ci img { flex: none; margin-top: 4px; }
.ib-foot__ci a,
.ib-foot__ci span { overflow-wrap: anywhere; min-width: 0; }

.ib-foot__regions {
    margin-top: 40px;
    padding-top: 26px;
    border-top: 1px solid rgba(255, 255, 255, .14);
}
.ib-foot__regions-h {
    display: block;
    font-size: .8rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: rgba(253, 249, 244, .5);
    margin-bottom: 12px;
    font-family: var(--ff-d);
    font-weight: 700;
}
.ib-foot__regions-row { display: flex; flex-wrap: wrap; gap: 8px; }
.ib-foot__region {
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: var(--r-p);
    padding: 7px 15px;
    font-size: .84rem;
}
.ib-foot__region:hover { border-color: var(--rot); background: rgba(178, 58, 43, .2); }

.ib-foot__bottom {
    margin-top: 30px;
    padding-top: 22px;
    border-top: 1px solid rgba(255, 255, 255, .14);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    flex-wrap: wrap;
}
.ib-foot__copy { margin: 0; font-size: .85rem; color: rgba(253, 249, 244, .5); }
.ib-foot__legal { display: flex; gap: 22px; }
.ib-foot__legal a { font-size: .85rem; }

.ib-fab { position: fixed; right: 22px; bottom: 22px; z-index: 950; }
.ib-fab__btn {
    position: relative;
    display: grid;
    place-items: center;
    width: 65px;
    height: 65px;
    border-radius: 50%;
    background: var(--rot);
    box-shadow: 0 10px 26px rgba(178, 58, 43, .42);
}
.ib-fab__btn::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 2px solid var(--rot);
    animation: ib-pulse 2.4s ease-out infinite;
}
@keyframes ib-pulse {
    0% { transform: scale(1); opacity: .7; }
    70% { transform: scale(1.45); opacity: 0; }
    100% { transform: scale(1.45); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .ib-fab__btn::after { animation: none; }
}

/* bold inside generated copy must stay legible on every dark surface —
   the global `b, strong { color: var(--ink-2) }` would sink it into the background */
.ib-kt__txt b,
.ib-kt__txt strong,
.ib-lst__foot b,
.ib-lst__foot strong,
.ib-geo__note b,
.ib-geo__note strong,
.ib-plan__check b,
.ib-plan__check strong,
.ib-calc__res b,
.ib-calc__res strong,
.ib-foot b,
.ib-foot strong { color: #fff; }

/* links on dark surfaces keep their own colour, buttons stay untouched */
.ib-sec--dark a:not(.ib-btn):not(.ib-kt__li),
.ib-lst__foot a:not(.ib-btn),
.ib-geo__note a:not(.ib-btn),
.ib-plan__check a:not(.ib-btn) { color: #E9B4AB; }
.ib-kt__hint a { color: var(--rot); text-decoration: underline; }

/* ==========================================================================
   13 · Responsive — 1200 / 1024 / 768 / 560 / 480 / 375
   ========================================================================== */

@media (max-width: 1200px) {
    :root { --pad: 76px; }

    .ib-wrap,
    .ib-top__inner,
    .ib-head__inner { padding-left: 24px; padding-right: 24px; }

    .ib-menu { gap: 18px; }
    .ib-menu__l { font-size: .9rem; }

    .ib-hero__card { padding: 38px 36px 34px; margin-top: -110px; }

    .ib-intro { gap: 40px; }
    .ib-lst__g { grid-template-columns: 250px 1fr; gap: 26px; padding: 26px 26px; }
    .ib-holz { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ib-gar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ib-klima,
    .ib-shop,
    .ib-plan,
    .ib-qual,
    .ib-kt__inner { gap: 40px; }
    .ib-foot__grid { grid-template-columns: 1.5fr 1fr 1fr 1.2fr; gap: 30px; }
}

@media (max-width: 1024px) {
    :root { --pad: 66px; }

    /* topbar keeps a single line, header switches to the drawer */
    .ib-top__i { display: none; }
    .ib-top__i--keep { display: inline-flex; }
    .ib-top__inner { justify-content: center; min-height: 34px; }

    .ib-menu { display: none; }
    .ib-head__tel { display: none; }
    .ib-burger { display: block; margin-left: auto; }
    .ib-head__inner { min-height: 68px; gap: 16px; }

    .ib-hero__band { height: clamp(260px, 42vw, 400px); }
    .ib-hero__card { margin-top: -90px; padding: 32px 30px 30px; }
    .ib-hero__strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .ib-intro,
    .ib-klima,
    .ib-shop,
    .ib-plan,
    .ib-qual,
    .ib-kt__inner { grid-template-columns: 1fr; gap: 32px; }

    .ib-shop__media { order: 2; }
    .ib-qual__media { order: 2; }

    .ib-lst__g { grid-template-columns: 1fr; gap: 20px; }
    .ib-obj,
    .ib-ref,
    .ib-va,
    .ib-kost,
    .ib-fehl,
    .ib-adv,
    .ib-rev__grid,
    .ib-blog,
    .ib-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ib-team { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ib-preis { grid-template-columns: 1fr; }
    .ib-geo { grid-template-columns: 1fr; }

    .ib-calc { grid-template-columns: 1fr; }
    .ib-calc__res { border-left: 0; border-top: 1px solid rgba(255, 255, 255, .14); }

    .ib-qual__shot--sm { width: 62%; margin-top: -50px; }

    .ib-foot__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
    .ib-foot__col--brand { grid-column: 1 / -1; }
}

@media (max-width: 768px) {
    :root { --pad: 54px; }

    .ib-top { display: none; }

    .ib-wrap,
    .ib-head__inner { padding-left: 18px; padding-right: 18px; }

    .ib-sec { padding: var(--pad) 0; }
    .ib-shead { margin-bottom: 32px; }

    .ib-hero { padding-bottom: var(--pad); }
    .ib-hero__band { height: clamp(210px, 46vw, 300px); }
    .ib-hero__card { margin-top: -64px; padding: 26px 22px 24px; border-radius: 14px; }
    .ib-hero__kick { font-size: .68rem; padding: 7px 13px; }
    .ib-hero__lead { font-size: 1rem; }
    .ib-hero__act { gap: 10px; margin: 22px 0; }
    .ib-hero__meta { flex-direction: column; gap: 9px; padding-top: 18px; }
    .ib-hero__fact { padding: 20px 18px; }
    .ib-hero__fact strong { font-size: 1.5rem; }

    .ib-lead-p::first-letter { font-size: 3rem; padding-right: 10px; }
    .ib-intro__tab { padding: 24px 22px 22px; }

    .ib-lst__g-img {
    position: relative;
    margin-top: 16px;
    aspect-ratio: 4 / 3;
    border-radius: var(--r-s);
    overflow: hidden;
    background: var(--sand-2);
}
.ib-lst__g-img > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ib-lst__items { grid-template-columns: 1fr; gap: 14px; }
    .ib-lst__foot { flex-direction: column; align-items: flex-start; padding: 26px 24px; }
    .ib-lst__foot .ib-btn { width: 100%; }

    .ib-holz { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
    .ib-holz__body { padding: 18px 18px 20px; }
    .ib-holz__note,
    .ib-preis__note,
    .ib-geo__note,
    .ib-plan__q { padding: 20px 20px; gap: 12px; }

    .ib-obj,
    .ib-ref,
    .ib-va,
    .ib-kost,
    .ib-fehl,
    .ib-adv,
    .ib-rev__grid,
    .ib-blog,
    .ib-flow,
    .ib-gar { grid-template-columns: 1fr; }

    .ib-obj__body,
    .ib-ref__body,
    .ib-va__body { padding: 20px 20px 22px; }
    .ib-kost__c,
    .ib-fehl__c,
    .ib-gar__c { padding: 22px 22px 20px; }

    .ib-shop__small { width: 100%; margin-left: 0; }
    .ib-qual__shot--sm { width: 100%; margin: 14px 0 0; border-width: 0; }

    .ib-preis__g { padding: 24px 22px 20px; }
    .ib-calc__form,
    .ib-calc__res { padding: 26px 22px; }
    .ib-plan__check { padding: 26px 22px; }

    .ib-team { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }

    .ib-faq__q { padding: 17px 18px; font-size: .96rem; }
    .ib-faq__a { padding: 0 18px 18px; }

    .ib-kt__form { padding: 26px 22px 24px; }
    .ib-kt__row { grid-template-columns: 1fr; gap: 0; }

    .ib-seo__inner h3 { margin-top: 28px; font-size: 1.12rem; }
    .ib-seo__box { padding: 22px 20px; }

    .ib-foot { padding: 54px 0 104px; }
    .ib-foot__cta { padding-bottom: 32px; margin-bottom: 32px; }
    .ib-foot__cta-act { width: 100%; flex-direction: column; }
    .ib-foot__cta-act .ib-btn { width: 100%; }
    .ib-foot__grid { gap: 26px 20px; }
    .ib-foot__col--kontakt { grid-column: 1 / -1; }
    .ib-foot__bottom { flex-direction: column; align-items: flex-start; gap: 12px; }
}

@media (max-width: 560px) {
    /* facts stay a 2x2 grid instead of four full-width rows — half the height */
    .ib-hero__fact { padding: 16px 14px; gap: 4px; }
    .ib-hero__fact strong { font-size: 1.2rem; }
    .ib-hero__fact span { font-size: .76rem; line-height: 1.42; hyphens: auto; overflow-wrap: break-word; }

    .ib-hero__act { flex-direction: column; align-items: stretch; }
    .ib-hero__act .ib-btn { width: 100%; }

    .ib-team { grid-template-columns: 1fr; gap: 24px; }

    .ib-rev__bar { flex-direction: column; align-items: flex-start; gap: 14px; padding: 18px 20px; }
    .ib-rev__score { gap: 10px; }
    .ib-rev__score strong { font-size: 1.7rem; }

    .ib-preis__rows li { flex-wrap: wrap; gap: 2px; }
    .ib-preis__d { display: none; }
    .ib-preis__n { flex: 1 1 100%; }
    .ib-preis__p { font-size: .95rem; color: var(--rot); }

    .ib-ref__meta > div { flex-direction: column; gap: 0; }
    .ib-ref__meta dd { text-align: left; }

    .ib-qual__tags span { font-size: .78rem; padding: 6px 12px; }
}

@media (max-width: 480px) {
    body { font-size: 16px; }
    :root { --pad: 46px; }

    .ib-wrap,
    .ib-head__inner { padding-left: 15px; padding-right: 15px; }

    .ib-head__mark { width: 38px; height: 38px; border-radius: 10px; }
    .ib-head__brand-txt strong { font-size: 1rem; }
    .ib-head__brand-txt small { font-size: .68rem; }

    .ib-hero__card { margin-top: -48px; padding: 22px 18px 22px; }
    .ib-hero__kick { letter-spacing: .1em; }

    .ib-lst__g { padding: 22px 18px; }
    .ib-lst__g-head h3 { font-size: 1.16rem; }

    .ib-holz { grid-template-columns: 1fr; }
    .ib-holz__media { aspect-ratio: 16 / 9; }

    .ib-flow__s { padding-top: 22px; }

    .ib-calc__f label { flex-direction: column; align-items: flex-start; gap: 4px; }
    .ib-calc__sum { font-size: 1.45rem; }

    .ib-faq__q { gap: 12px; font-size: .93rem; }

    .ib-fab { right: 14px; bottom: 14px; }
    .ib-fab__btn { width: 55px; height: 55px; }
    .ib-fab__btn img { width: 24px; height: 24px; }

    .ib-foot__legal { gap: 16px; }
}

@media (max-width: 375px) {
    .ib-wrap,
    .ib-head__inner { padding-left: 13px; padding-right: 13px; }

    .ib-hero__card { padding: 20px 16px; }
    .ib-hero__fact { padding: 13px 11px; }
    .ib-hero__fact strong { font-size: 1.1rem; letter-spacing: -.035em; }
    .ib-hero__fact span { font-size: .72rem; }

    .ib-btn { padding: 14px 20px; font-size: .9rem; }
    .ib-lst__g { padding: 20px 16px; }
    .ib-preis__g { padding: 20px 16px 18px; }
    .ib-kt__form { padding: 22px 16px 20px; }
    .ib-seo__box { padding: 20px 16px; }
    .ib-foot__badge { font-size: .74rem; padding: 5px 11px; }
}
