/* ============================================================
   LINDHOLM · Komponenten — Widgets, Wrapper-Stile, Seiten-Chrome
   Alle Farben über Skin-Variablen. Keine Bild-Assets:
   Produkt-Visuals sind CSS-/SVG-Platzhalter wie im Prototypen.
   ============================================================ */

/* ── Gemeinsame Kleinteile ───────────────────────────────── */
.lhm-eyebrow {
    font-size: 11px;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--lhm-muted, var(--color-text-muted));
    margin-bottom: 18px;
}

.lhm-link {
    display: inline-block;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    border-bottom: 1px solid var(--color-text);
    padding-bottom: 3px;
    color: var(--color-text);
}
.lhm-link:hover { color: var(--color-accent); border-bottom-color: var(--color-accent); }


/* ============================================================
   KOPFLEISTE · Brand + Utility (Widgets)
   ============================================================ */
.lhm-brand {
    display: inline-flex;
    align-items: baseline;
    gap: 10px;
    color: var(--color-text);
}
.lhm-brand__name {
    font-family: var(--lhm-f-display, serif);
    font-style: italic;
    font-weight: 600;
    font-size: 28px;
    line-height: 1;
    letter-spacing: -0.5px;
}
.lhm-brand__tag {
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--lhm-muted, var(--color-text-muted));
}
@media (max-width: 620px) { .lhm-brand__tag { display: none; } }

.lhm-utility {
    display: inline-flex;
    align-items: center;
    gap: 20px;
    font-size: 13px;
}
.lhm-utility__item { color: var(--color-text); display: inline-flex; align-items: center; gap: 6px; }
.lhm-utility__item:hover { color: var(--color-accent); }
.lhm-utility__glyph { font-size: 15px; line-height: 1; }
.lhm-utility__item--strong { font-weight: 600; }


/* ============================================================
   HERO · Text links, Platzhalter-Visual rechts
   ============================================================ */
.lhm-hero {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    min-height: 580px;
    border-bottom: 1px solid var(--color-border);
}
@media (max-width: 1080px) { .lhm-hero { grid-template-columns: 1fr; min-height: 0; } }

.lhm-hero__text {
    padding: 80px var(--lhm-gutter, 48px);
    display: flex;
    flex-direction: column;
    justify-content: center;
}
@media (max-width: 880px) { .lhm-hero__text { padding: 48px 22px; } }

.lhm-hero__title {
    font-family: var(--lhm-f-display, serif);
    font-size: clamp(40px, 5.5vw, 76px);
    line-height: 1;
    font-weight: 400;
    letter-spacing: -1.5px;
    margin-bottom: 22px;
}
.lhm-hero__title em { font-style: italic; color: var(--color-accent); }

.lhm-hero__lede {
    font-size: 15px;
    line-height: 1.75;
    color: var(--lhm-soft, var(--color-text-muted));
    max-width: 400px;
    margin-bottom: 32px;
}
.lhm-hero__cta { display: flex; gap: 12px; flex-wrap: wrap; }

.lhm-hero__shot {
    background: var(--lhm-paper-3, var(--color-surface-alt));
    padding: 40px;
    display: grid;
    place-items: center;
    position: relative;
    min-height: 340px;
}
.lhm-hero__shot .lhm-figure { width: 80%; max-width: 380px; }
.lhm-hero__cap {
    position: absolute;
    bottom: 30px;
    right: 30px;
    text-align: right;
}
.lhm-hero__cap-name {
    font-family: var(--lhm-f-display, serif);
    font-style: italic;
    font-size: 22px;
}
.lhm-hero__cap-meta { font-size: 12px; color: var(--lhm-soft, var(--color-text-muted)); margin-top: 4px; }


/* ============================================================
   SEKTIONS-GERÜST
   ============================================================ */
.lhm-section { padding: 80px 0; }
.lhm-section--tint { background: var(--lhm-paper-2, var(--color-surface)); }
@media (max-width: 880px) { .lhm-section { padding: 52px 0; } }

.lhm-section__inner {
    max-width: var(--lhm-maxw, 1320px);
    margin: 0 auto;
    padding: 0 var(--lhm-gutter, 48px);
}
@media (max-width: 880px) { .lhm-section__inner { padding: 0 22px; } }

.lhm-section__head {
    margin-bottom: 50px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 20px;
    flex-wrap: wrap;
}
.lhm-section__head h2 {
    font-family: var(--lhm-f-display, serif);
    font-size: clamp(32px, 3.4vw, 46px);
    line-height: 1.05;
    font-weight: 400;
    letter-spacing: -1px;
    max-width: 520px;
}
.lhm-section__head h2 em { font-style: italic; color: var(--color-accent); }
.lhm-section__sub {
    font-size: 14px;
    color: var(--lhm-soft, var(--color-text-muted));
    max-width: 380px;
    margin-top: 10px;
}


/* ============================================================
   PRODUKTGRID — Kernstück
   ============================================================ */
.lhm-products {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}
@media (max-width: 1400px) { .lhm-products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 1080px) { .lhm-products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px)  { .lhm-products { grid-template-columns: minmax(0, 1fr); } }

.lhm-product {
    background: var(--lhm-paper-2, var(--color-surface));
    padding: 18px;
    position: relative;
    transition: background 0.2s ease;
    display: flex;
    flex-direction: column;
}
.lhm-product:hover { background: var(--lhm-paper-3, var(--color-surface-alt)); }

.lhm-product__shot {
    aspect-ratio: 1 / 1;
    background: var(--lhm-shot-bg, #fff);
    display: grid;
    place-items: center;
    margin-bottom: 14px;
    position: relative;
    font-size: 60px;
    line-height: 1;
    color: var(--color-accent);
    overflow: hidden;
}
/* Optionaler Farbverlauf statt Papierfläche — pro Artikel setzbar. */
.lhm-product__shot--tint {
    background: linear-gradient(135deg, var(--lhm-shot-from, var(--lhm-paper-3)), var(--lhm-shot-to, var(--lhm-paper-2)));
}
.lhm-product__num {
    position: absolute;
    top: 10px;
    right: 14px;
    font-family: var(--lhm-f-body, sans-serif);
    font-size: 10px;
    letter-spacing: 1px;
    color: var(--lhm-muted, var(--color-text-muted));
}
.lhm-product__badge {
    position: absolute;
    top: 10px;
    left: 10px;
    padding: 3px 9px;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    background: var(--color-accent);
    color: var(--lhm-on-accent, #fff);
}
.lhm-product__badge--quiet {
    background: transparent;
    border: 1px solid var(--lhm-line-strong, var(--color-border));
    color: var(--lhm-soft, var(--color-text-muted));
}
.lhm-product__badge--dark {
    background: var(--lhm-dark, #1f1c18);
    color: var(--lhm-dark-text, #e8e1d1);
}
.lhm-product__name {
    font-family: var(--lhm-f-display, serif);
    font-size: 20px;
    font-style: italic;
    color: var(--color-text);
    margin-bottom: 4px;
}
.lhm-product__meta {
    font-size: 12px;
    color: var(--lhm-soft, var(--color-text-muted));
    margin-bottom: 8px;
    flex: 1;
}
.lhm-product__foot {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--lhm-hairline, var(--color-border));
}
.lhm-product__price {
    font-family: var(--lhm-f-display, serif);
    font-size: 18px;
    font-weight: 600;
}
.lhm-product__cta {
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--color-text);
}
.lhm-product__cta:hover { color: var(--color-accent); }


/* ============================================================
   KOLLEKTIONS-BAND (dunkel) · Bundle-Angebot
   ============================================================ */
.lhm-band {
    background: var(--lhm-dark, #1f1c18);
    color: var(--lhm-dark-text, #e8e1d1);
    padding: 90px 0;
}
@media (max-width: 880px) { .lhm-band { padding: 58px 0; } }

.lhm-band__inner {
    max-width: var(--lhm-maxw, 1320px);
    margin: 0 auto;
    padding: 0 var(--lhm-gutter, 48px);
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 60px;
    align-items: center;
}
@media (max-width: 980px) { .lhm-band__inner { grid-template-columns: 1fr; gap: 40px; } }
@media (max-width: 880px) { .lhm-band__inner { padding: 0 22px; } }

.lhm-band .lhm-eyebrow { color: var(--lhm-tan-light, var(--color-accent)); }
.lhm-band__title {
    font-family: var(--lhm-f-display, serif);
    font-size: clamp(36px, 4vw, 54px);
    line-height: 1.05;
    font-weight: 400;
    letter-spacing: -1px;
    color: var(--lhm-tan-light, var(--color-accent));
}
.lhm-band__title em { font-style: italic; color: var(--lhm-dark-text, #fff); }
.lhm-band__sub {
    color: var(--lhm-dark-muted, #c8b89a);
    font-size: 15px;
    line-height: 1.75;
    max-width: 480px;
    margin: 18px 0 28px;
}
.lhm-band__cta {
    display: inline-block;
    padding: 14px 32px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    background: var(--lhm-dark-text, #e8e1d1);
    color: var(--lhm-dark, #1f1c18);
    border: 1px solid var(--lhm-dark-text, #e8e1d1);
}
.lhm-band__cta:hover { background: var(--lhm-tan-light, var(--color-accent)); border-color: var(--lhm-tan-light, var(--color-accent)); color: var(--lhm-dark, #1f1c18); }

.lhm-feat {
    aspect-ratio: 4 / 3;
    background: linear-gradient(135deg, var(--lhm-feat-from, #3a2818), var(--lhm-feat-to, #1f1c18));
    position: relative;
    display: grid;
    place-items: center;
}
.lhm-feat .lhm-figure { width: 60%; }
.lhm-feat__tag {
    position: absolute;
    top: 18px;
    left: 18px;
    font-family: var(--lhm-f-display, serif);
    font-size: 13px;
    letter-spacing: 2px;
    color: var(--lhm-tan-light, var(--color-accent));
}
.lhm-feat__cap {
    position: absolute;
    bottom: 18px;
    left: 18px;
    font-family: var(--lhm-f-display, serif);
    font-size: 24px;
    font-style: italic;
    color: var(--lhm-dark-text, #faf8f4);
}
.lhm-feat__price {
    position: absolute;
    bottom: 18px;
    right: 18px;
    font-size: 13px;
    color: var(--lhm-tan-light, var(--color-accent));
}


/* ============================================================
   KATEGORIE-STREIFEN
   ============================================================ */
.lhm-cats {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
}
@media (max-width: 1400px) { .lhm-cats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 980px)  { .lhm-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px)  { .lhm-cats { grid-template-columns: minmax(0, 1fr); } }

.lhm-cat {
    aspect-ratio: 1 / 1;
    background: var(--lhm-paper-2, var(--color-surface));
    padding: 18px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    text-align: left;
    transition: background 0.2s ease;
    color: var(--color-text);
}
.lhm-cat:hover { background: var(--lhm-paper-3, var(--color-surface-alt)); color: var(--color-text); }
.lhm-cat__icon {
    font-size: 36px;
    line-height: 1;
    color: var(--color-accent);
    margin-bottom: auto;
}
.lhm-cat__name {
    font-family: var(--lhm-f-display, serif);
    font-size: 18px;
    font-style: italic;
}
.lhm-cat__count {
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--lhm-muted, var(--color-text-muted));
    margin-top: 4px;
}


/* ============================================================
   SHOP-VERSPRECHEN (nummerierte Info-Karten)
   ============================================================ */
.lhm-info-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 40px;
}
@media (max-width: 980px) { .lhm-info-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; } }
@media (max-width: 680px) { .lhm-info-grid { grid-template-columns: minmax(0, 1fr); } }

.lhm-info {
    padding: 30px;
    border: 1px solid var(--color-border);
    background: transparent;
}
.lhm-info__num {
    font-family: var(--lhm-f-display, serif);
    font-size: 32px;
    color: var(--color-accent);
    margin-bottom: 14px;
}
.lhm-info h3 {
    font-family: var(--lhm-f-display, serif);
    font-size: 22px;
    margin-bottom: 10px;
}
.lhm-info p { font-size: 14px; color: var(--lhm-soft, var(--color-text-muted)); line-height: 1.7; margin: 0; }


/* ============================================================
   SIDEBAR-WIDGETS
   ============================================================ */
.lhm-linkgroup + .lhm-linkgroup { margin-top: 30px; }
.lhm-linkgroup__title {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--lhm-muted, var(--color-text-muted));
    margin-bottom: 12px;
}
.lhm-linkgroup__list { list-style: none; margin: 0; display: flex; flex-direction: column; }
.lhm-linkgroup__list li { margin: 0; border-bottom: 1px solid var(--lhm-hairline, var(--color-border)); }
.lhm-linkgroup__list li:last-child { border-bottom: none; }
.lhm-linkgroup__list a {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 10px;
    padding: 9px 0;
    font-size: 14px;
    color: var(--color-text);
}
.lhm-linkgroup__list a:hover { color: var(--color-accent); }
.lhm-linkgroup__count {
    font-size: 11px;
    letter-spacing: 1px;
    color: var(--lhm-muted, var(--color-text-muted));
}

.lhm-showroom {
    border: 1px solid var(--color-border);
    padding: 20px;
    background: var(--lhm-paper, var(--color-bg));
}
.lhm-showroom__title {
    font-family: var(--lhm-f-display, serif);
    font-style: italic;
    font-size: 21px;
    margin-bottom: 6px;
}
.lhm-showroom__line {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 7px 0;
    font-size: 12px;
    border-bottom: 1px solid var(--lhm-hairline, var(--color-border));
    color: var(--lhm-soft, var(--color-text-muted));
}
.lhm-showroom__line:last-of-type { border-bottom: none; }
.lhm-showroom__line dt { letter-spacing: 1px; text-transform: uppercase; font-size: 10px; color: var(--lhm-muted, var(--color-text-muted)); }
.lhm-showroom__line dd { margin: 0; text-align: right; color: var(--color-text); }
.lhm-showroom__note { font-size: 12px; color: var(--lhm-soft, var(--color-text-muted)); margin: 12px 0 14px; line-height: 1.6; }
.lhm-showroom .btn { width: 100%; text-align: center; }


/* ============================================================
   FUSS-BAUSTEINE (default_boxes)
   ============================================================ */
.lhm-foot-brand__name {
    font-family: var(--lhm-f-display, serif);
    font-style: italic;
    font-size: 30px;
    color: var(--lhm-dark-text, #faf8f4);
    margin-bottom: 10px;
}
.lhm-foot-brand__tag {
    font-size: 13px;
    line-height: 1.6;
    max-width: 280px;
    color: var(--lhm-dark-muted, #a89878);
    margin: 0;
}

.lhm-foot-cols { display: flex; gap: 40px; flex-wrap: wrap; }
.lhm-foot-col h5 {
    font-family: var(--lhm-f-body, sans-serif);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--lhm-tan-light, var(--color-accent));
    margin-bottom: 14px;
}
.lhm-foot-col ul {
    list-style: none;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-size: 13px;
}
.lhm-foot-col li { margin: 0; }


/* ============================================================
   WRAPPER-STILE (widget:html.static · block:wysiwyg)
   ============================================================ */
.lhm-wrap { margin-bottom: 22px; }

.lhm-wrap--paper-panel {
    background: var(--lhm-paper-2, var(--color-surface));
    padding: 30px 32px;
}
@media (max-width: 680px) { .lhm-wrap--paper-panel { padding: 22px; } }

.lhm-wrap--swatch-card {
    display: grid;
    grid-template-columns: 12px 1fr;
    border: 1px solid var(--color-border);
    background: var(--lhm-paper, var(--color-bg));
}
.lhm-wrap--swatch-card .lhm-wrap__swatch { background: var(--color-accent); }
.lhm-wrap--swatch-card .lhm-wrap__body { padding: 26px 30px; }

.lhm-wrap--spec-note {
    border: 1px solid var(--color-border);
    padding: 22px 26px;
    background: transparent;
}
.lhm-wrap--spec-note .lhm-wrap__label {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--lhm-muted, var(--color-text-muted));
    margin-bottom: 12px;
}
.lhm-wrap--spec-note .lhm-wrap__body { font-size: 14px; color: var(--lhm-soft, var(--color-text-muted)); }

.lhm-wrap--lede {
    font-family: var(--lhm-f-display, serif);
    font-size: 22px;
    line-height: 1.5;
    color: var(--lhm-soft, var(--color-text-muted));
    max-width: 720px;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    padding: 26px 0;
}
.lhm-wrap--lede p { margin-bottom: 12px; }
.lhm-wrap--lede p:last-child { margin-bottom: 0; }

.lhm-wrap--dark-band {
    background: var(--lhm-dark, #1f1c18);
    color: var(--lhm-dark-text, #e8e1d1);
    padding: 44px 40px;
}
.lhm-wrap--dark-band h1,
.lhm-wrap--dark-band h2,
.lhm-wrap--dark-band h3 { color: var(--lhm-tan-light, var(--color-accent)); }
.lhm-wrap--dark-band a { color: var(--lhm-tan-light, var(--color-accent)); }
@media (max-width: 680px) { .lhm-wrap--dark-band { padding: 30px 22px; } }

.lhm-wrap--rule-list ul { list-style: none; margin: 0; }
.lhm-wrap--rule-list li {
    padding: 12px 0;
    border-bottom: 1px solid var(--lhm-hairline, var(--color-border));
    font-size: 14px;
    margin: 0;
}
.lhm-wrap--rule-list li:last-child { border-bottom: none; }
.lhm-wrap--rule-list li::before { content: "— "; color: var(--color-accent); }


/* ============================================================
   SEITEN-CHROME (page-Stile)
   ============================================================ */
.lhm-page {
    max-width: var(--lhm-maxw, 1320px);
    margin: 0 auto;
    padding: 60px var(--lhm-gutter, 48px);
}
@media (max-width: 880px) { .lhm-page { padding: 40px 22px; } }

.lhm-page__head { margin-bottom: 34px; }
.lhm-page__title {
    font-family: var(--lhm-f-display, serif);
    font-size: clamp(34px, 4.4vw, 58px);
    line-height: 1.03;
    letter-spacing: -1.5px;
}
.lhm-page__title em { font-style: italic; color: var(--color-accent); }
.lhm-page__eyebrow {
    font-size: 11px;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--lhm-muted, var(--color-text-muted));
    margin-bottom: 14px;
}
.lhm-page__body { max-width: 100%; }

/* Katalog-/Produktseite: Kopf mit Haarlinie, breiter Textkörper */
.lhm-page--catalogue .lhm-page__head {
    border-bottom: 1px solid var(--color-border);
    padding-bottom: 26px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 20px;
    flex-wrap: wrap;
}
.lhm-page--catalogue .lhm-page__rail {
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--lhm-muted, var(--color-text-muted));
}

/* Lookbook: dunkles Kopfband über hellem Textkörper */
.lhm-page--lookbook { padding: 0 0 60px; max-width: none; }
.lhm-page--lookbook .lhm-page__head {
    background: var(--lhm-dark, #1f1c18);
    color: var(--lhm-dark-text, #e8e1d1);
    padding: 80px var(--lhm-gutter, 48px);
    margin-bottom: 0;
}
.lhm-page--lookbook .lhm-page__head-inner {
    max-width: var(--lhm-maxw, 1320px);
    margin: 0 auto;
}
.lhm-page--lookbook .lhm-page__eyebrow { color: var(--lhm-tan-light, var(--color-accent)); }
.lhm-page--lookbook .lhm-page__title   { color: var(--lhm-dark-text, #e8e1d1); }
.lhm-page--lookbook .lhm-page__title em { color: var(--lhm-tan-light, var(--color-accent)); }
.lhm-page--lookbook .lhm-page__body {
    max-width: var(--lhm-maxw, 1320px);
    margin: 0 auto;
    padding: 60px var(--lhm-gutter, 48px) 0;
}
@media (max-width: 880px) {
    .lhm-page--lookbook .lhm-page__head { padding: 48px 22px; }
    .lhm-page--lookbook .lhm-page__body { padding: 40px 22px 0; }
}

/* Ratgeber/Hilfe: schmales Satzmaß, ruhiges Lesebild */
.lhm-page--guide { max-width: 820px; }
.lhm-page--guide .lhm-page__head {
    border-bottom: 1px solid var(--color-border);
    padding-bottom: 22px;
}
.lhm-page--guide .lhm-page__body { font-size: 16px; line-height: 1.8; }
.lhm-page--guide .lhm-page__body h2 {
    font-size: 28px;
    margin: 34px 0 12px;
    padding-top: 22px;
    border-top: 1px solid var(--lhm-hairline, var(--color-border));
}
.lhm-page--guide .lhm-page__body h2:first-child { margin-top: 0; padding-top: 0; border-top: none; }
.lhm-page--guide .lhm-page__body ul { list-style: none; margin-left: 0; }
.lhm-page--guide .lhm-page__body li {
    padding: 10px 0;
    border-bottom: 1px solid var(--lhm-hairline, var(--color-border));
}


/* ============================================================
   PLATZHALTER-FIGUREN (Inline-SVG, keine Bild-Assets)
   ============================================================ */
.lhm-figure { display: block; width: 100%; height: auto; }
.lhm-figure__body  { fill: var(--lhm-fig-body, currentColor); }
.lhm-figure__seat  { fill: var(--lhm-fig-seat, currentColor); opacity: 0.72; }
.lhm-figure__leg   { fill: var(--lhm-fig-leg, currentColor); opacity: 0.9; }
.lhm-figure__pad   { fill: var(--color-accent); opacity: 0.8; }
.lhm-figure__pad--dim { fill: var(--color-accent); opacity: 0.55; }

.lhm-hero__shot .lhm-figure {
    --lhm-fig-body: var(--lhm-soft, #5a5a5a);
    --lhm-fig-seat: var(--lhm-muted, #8a7a5a);
    --lhm-fig-leg:  var(--color-text);
}
.lhm-feat .lhm-figure {
    --lhm-fig-body: var(--lhm-dark-dim, #5a4a3a);
    --lhm-fig-seat: var(--lhm-dark-muted, #7a6a5a);
    --lhm-fig-leg:  var(--lhm-dark-2, #2a2a2a);
}
