/* Interliving – 10 Jahre Jubiläum
 * Seitenspezifische Styles. Alle Klassen sind mit `ilj-` präfixiert, damit sie
 * nicht mit dem Shopware-Theme kollidieren. Header und Footer bleiben Original.
 */

/* Der Theme-Header verkleinert sich beim Scrollen. Nur die tatsächlich
 * animierte Breite überblenden, damit nicht gleichzeitig Layout-, Größen-
 * und Positionswerte über `transition: all` interpoliert werden. */
.header-main,
.header-main .top-container,
.header-main .header-logo-main-img {
    overflow-anchor: none;
}

.header-main .header-logo-main-img,
.header-main.sticky .header-logo-main-img {
    transition: max-width 0.3s ease !important;
}

:root {
    /* Farben laut Figma-Styles (gelb, beige, grau, hellgrau, grün, koralle, kupferbraun) */
    --ilj-gold: #daa030;
    --ilj-gold-hover: #c38b1f;
    --ilj-cream: #e4ddd1;
    --ilj-light-gray: #ebebeb;
    --ilj-text: #4b4b4b;
    --ilj-dark-gray: #4d4a4d;
    --ilj-dark-gray-hover: #3f3c3f;
    --ilj-anthracite: #2d302d;
    --ilj-sage: #939e83;
    --ilj-sage-hover: #818c72;
    --ilj-coral: #d16253;
    --ilj-copper: #815146;
    --ilj-copper-hover: #6b4339;
    --ilj-tag-bg: #ebebeb;
    --ilj-focus: #1f5f99;
    --ilj-font: 'Ubuntu', sans-serif;
    /* Seitenrand: Figma mobil 24px, Desktop 40px */
    --ilj-pad: 24px;
}

.ilj .container {
    --bs-gutter-x: calc(var(--ilj-pad) * 2);
    max-width: 1440px;
    padding-right: var(--ilj-pad);
    padding-left: var(--ilj-pad);
}

/* Slider und Kacheln laufen bis an den rechten Bildschirmrand */
.ilj {
    overflow-x: clip;
}

.ilj,
.ilj-campaign-bar,
.ilj-offcanvas,
.ilj-preview-note,
.ilj-toast {
    font-family: var(--ilj-font);
}

.ilj-nowrap {
    white-space: nowrap;
}

/* ---------------------------------------------------------------------------
 * Fokus – überall klar sichtbar
 * ------------------------------------------------------------------------- */
.ilj a:focus-visible,
.ilj button:focus-visible,
.ilj [tabindex]:focus-visible,
.ilj-campaign-bar a:focus-visible,
.ilj-offcanvas a:focus-visible,
.ilj-offcanvas button:focus-visible,
.header-main a:focus-visible,
.header-main button:focus-visible,
.footer-main a:focus-visible,
.footer-main button:focus-visible,
.ilj-preview-note button:focus-visible {
    outline: 3px solid var(--ilj-focus);
    outline-offset: 3px;
    box-shadow: 0 0 0 5px #fff;
}

.ilj-hero a:focus-visible {
    outline-color: #fff;
    box-shadow: 0 0 0 6px rgba(0, 0, 0, 0.45);
}

/* ---------------------------------------------------------------------------
 * Kampagnenleiste über dem Header
 * ------------------------------------------------------------------------- */
.ilj-campaign-bar {
    position: relative;
    z-index: 100;
    background: var(--ilj-gold);
    color: #fff;
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1rem;
    text-align: center;
}

.ilj-campaign-bar__link {
    display: block;
    padding: 0.5rem 1.5rem;
    color: inherit !important;
    text-decoration: none;
}

.ilj-campaign-bar__link:hover .ilj-campaign-bar__text {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.ilj-campaign-bar__icon {
    margin-right: 0.35em;
}

/* ---------------------------------------------------------------------------
 * Header-Ergänzung: Menüpunkt „10 Jahre“ in Gold
 * ------------------------------------------------------------------------- */
.nav-main .main-navigation-link.ilj-nav-anniversary .main-navigation-link-text {
    display: inline-block;
    padding: 0.2rem 0.6rem 0.25rem;
    border: 0;
    border-radius: 5px;
    background: var(--ilj-gold);
    color: #fff !important;
    transition: background-color 0.2s ease;
}

.nav-main .main-navigation-link.ilj-nav-anniversary:hover .main-navigation-link-text {
    background: var(--ilj-gold-hover);
}

.nav-main .main-navigation-link.ilj-nav-anniversary .main-navigation-link-text::after {
    display: none;
}

/* Flyout-Zustände, die sonst von der Shopware-Runtime gesetzt würden */
.nav-main .navbar-nav .dropdown-menu.show {
    display: block;
}

.nav-main .navbar-nav .dropdown-menu .navigation-flyout-close {
    display: none;
}

.header-main .account-menu-dropdown.show {
    display: block;
}

/* ---------------------------------------------------------------------------
 * Buttons
 * ------------------------------------------------------------------------- */
.ilj-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 46px;
    padding: 14px 18px 16px;
    border: 1px solid transparent;
    border-radius: 5px;
    font-family: var(--ilj-font);
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1rem;
    text-align: center;
    text-decoration: none !important;
    cursor: pointer;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.ilj-btn--gold {
    background: var(--ilj-gold);
    border-color: var(--ilj-gold);
    color: #fff !important;
}

.ilj-btn--gold:hover {
    background: var(--ilj-gold-hover);
    border-color: var(--ilj-gold-hover);
}

.ilj-btn--sage {
    background: var(--ilj-sage);
    border-color: rgba(75, 75, 75, 0.2);
    color: #fff !important;
}

.ilj-btn--sage:hover {
    background: var(--ilj-sage-hover);
}

.ilj-btn--white {
    background: #fff;
    border-color: #fff;
    color: var(--ilj-text) !important;
}

.ilj-btn--white:hover {
    background: #f3efe8;
    border-color: #f3efe8;
}

.ilj-btn--copper {
    background: var(--ilj-dark-gray);
    border-color: var(--ilj-dark-gray);
    color: #fff !important;
}

.ilj-btn--copper:hover {
    background: var(--ilj-dark-gray-hover);
    border-color: var(--ilj-dark-gray-hover);
}

.ilj-btn__icon {
    flex: 0 0 auto;
}

/* ---------------------------------------------------------------------------
 * Hero
 * Das freigegebene Header-Motiv enthält Henning und die Filmklappe bereits als
 * eine Komposition. Ein fester Fokuspunkt hält den Ausschnitt berechenbar.
 * ------------------------------------------------------------------------- */
.ilj-hero {
    position: relative;
    z-index: 2;
    isolation: isolate;
    display: flex;
    align-items: flex-start;
    min-height: clamp(520px, 49vw, 820px);
    padding: clamp(3rem, 7.2vw, 7.5rem) 0 clamp(4rem, 7vw, 6rem);
    background: #3a3629;
    color: #fff;
}

.ilj-hero__media {
    position: absolute;
    inset: 0;
    z-index: -1;
    overflow: hidden;
}

.ilj-hero__image {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    /* Motivfokus rechts vom Text; keine separate Transform-Skalierung. */
    object-position: 35% 50%;
    transform: none;
}

/* Figma: Verlauf rgba(33, 27, 21, 0.9) → transparent über die linke Hälfte */
.ilj-hero__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(33, 27, 21, 0.9) 0%, rgba(52, 51, 40, 0) 49%);
}

.ilj-hero__credit {
    position: absolute;
    right: auto;
    bottom: 8px;
    left: 10px;
    z-index: 2;
    max-width: calc(100vw - 20px);
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.5rem;
    font-style: normal;
    font-weight: 400;
    line-height: 1.2;
    text-align: left;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.72);
    pointer-events: none;
}

.ilj-hero__inner {
    position: relative;
    width: 100%;
}

.ilj-hero__content {
    max-width: 544px;
}

.ilj-hero__title {
    margin: 0 0 1rem;
    color: #fff;
    font-family: var(--ilj-font);
    font-size: clamp(2.375rem, 4.86vw, 4.375rem);
    font-weight: 500;
    line-height: 1.15;
}

.ilj-hero__title .ilj-nowrap {
    display: inline-block;
}

.ilj-hero__text {
    margin: 0 0 2rem;
    color: #fff;
    font-size: clamp(1rem, 1.39vw, 1.25rem);
    line-height: 1.15;
}

.ilj-hero__actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
}

/* ---------------------------------------------------------------------------
 * Jubiläums-Highlights
 * ------------------------------------------------------------------------- */
.ilj-highlights {
    position: relative;
    z-index: 1;
    padding: 39px 0 47px;
    background: var(--ilj-light-gray);
    color: var(--ilj-text);
    scroll-margin-top: 90px;
}

.ilj-highlights:focus {
    outline: none;
}

.ilj-highlights__title {
    margin: 0 0 26px;
    color: var(--ilj-text);
    font-family: var(--ilj-font);
    font-size: 1.625rem;
    font-weight: 500;
    line-height: 30px;
}

/* Slider: 4 Karten à 328px bei 1440px, rechts läuft die nächste Karte bis zum Bildschirmrand */
.ilj-slider {
    --ilj-gap: 16px;
    --ilj-per-view: 4;
    position: relative;
    container-type: inline-size;
}

.ilj-slider__track {
    display: flex;
    gap: var(--ilj-gap);
    margin: -4px calc(50% - 50vw) 0 0;
    padding: 4px var(--ilj-pad) 12px 0;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
    list-style: none;
    -webkit-overflow-scrolling: touch;
}

.ilj-slider__track::-webkit-scrollbar {
    display: none;
}

.ilj-slider__track:focus-visible {
    outline: 3px solid var(--ilj-focus);
    outline-offset: 2px;
}

.ilj-slider__slide {
    flex: 0 0 calc((100% - (var(--ilj-per-view) - 1) * var(--ilj-gap)) / var(--ilj-per-view));
    /* Breite relativ zur Inhaltsbreite, nicht zur bis an den Rand verlängerten Spur */
    flex: 0 0 calc((100cqw - (var(--ilj-per-view) - 1) * var(--ilj-gap)) / var(--ilj-per-view));
    min-width: 0;
    scroll-snap-align: start;
    display: flex;
}

/* Produktkarte */
.ilj-card {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    background: #fff;
    color: var(--ilj-text);
    transition: box-shadow 0.25s ease;
}

.ilj-card:hover,
.ilj-card:focus-within {
    box-shadow: 0 10px 24px -12px rgba(45, 48, 45, 0.35);
}

.ilj-card__media {
    position: relative;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: #e9e6e0;
}

.ilj-card__media > img:not(.ilj-edition) {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 40% 50%;
    transition: transform 0.5s ease;
}

.ilj-card:hover .ilj-card__media > img:not(.ilj-edition) {
    transform: scale(1.03);
}

/* Freigegebenes Jubiläums-Edition-Badge */
.ilj-edition {
    position: absolute;
    left: 0;
    bottom: 16px;
    width: min(68%, 230px) !important;
    height: auto !important;
    pointer-events: none;
}

.ilj-card__wish {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #fff;
    color: rgba(75, 75, 75, 0.4);
    cursor: pointer;
    transition: transform 0.2s ease, color 0.2s ease;
}

.ilj-card__wish svg {
    width: 22px;
    height: 22px;
}

.ilj-card__wish:hover {
    color: var(--ilj-text);
    transform: scale(1.08);
}

.ilj-card__wish path {
    fill: transparent;
    stroke: currentColor;
    transition: fill 0.2s ease;
}

.ilj-card__wish[aria-pressed="true"] {
    color: var(--ilj-coral);
}

.ilj-card__wish[aria-pressed="true"] path {
    fill: currentColor;
}

.ilj-card__body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    padding: 16px 16px 14px;
}

.ilj-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 16px;
}

.ilj-card__title {
    margin: 0;
    font-family: var(--ilj-font);
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1rem;
}

.ilj-card__link {
    color: var(--ilj-text) !important;
    text-decoration: none !important;
}

/* Die ganze Karte ist klickbar, der Link bleibt semantisch im Titel */
.ilj-card__link::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
}

.ilj-card__link:hover {
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

.ilj-card__link:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}

.ilj-card__link:focus-visible::after {
    outline: 3px solid var(--ilj-focus);
    outline-offset: 3px;
}

.ilj-swatches {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ilj-swatch {
    width: 16px;
    height: 16px;
    background: var(--swatch);
}

/* Erste Farbe = ausgewählt: 1px Rahmen, Farbfeld 12px */
.ilj-swatch:first-child {
    padding: 1px;
    border: 1px solid var(--ilj-text);
    background: var(--swatch) content-box;
}

.ilj-swatches__more {
    margin-left: 4px;
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1;
}

.ilj-tags {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    margin: 0 0 25px;
    padding: 0;
    list-style: none;
}

.ilj-tag {
    padding: 5px 8px;
    border-radius: 2px;
    background: var(--ilj-tag-bg);
    font-size: 0.75rem;
    line-height: 14px;
}

.ilj-card__price {
    margin: auto 0 0;
    color: var(--ilj-text);
    font-size: 1rem;
    font-weight: 500;
    line-height: 18px;
}

/* Slider-Steuerung: Fortschrittsbalken über die volle Breite, Pfeile rechts neben dem CTA */
.ilj-slider__controls {
    position: relative;
    margin-top: 20px;
}

.ilj-slider__progress {
    position: relative;
    height: 2px;
    overflow: hidden;
    background: rgba(75, 75, 75, 0.1);
}

.ilj-slider__thumb {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 30%;
    background: var(--ilj-text);
    will-change: transform;
}

.ilj-slider__arrows {
    position: absolute;
    top: calc(100% + 32px);
    right: 0;
    display: flex;
    align-items: center;
    height: 46px;
    gap: 0.25rem;
}

.ilj-slider__arrow {
    display: grid;
    place-items: center;
    width: 2.75rem;
    height: 2.75rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--ilj-text);
    cursor: pointer;
    transition: color 0.2s ease, transform 0.2s ease;
}

.ilj-slider__arrow:hover:not(:disabled) {
    color: #000;
}

.ilj-slider__arrow[data-ilj-slider-prev]:hover:not(:disabled) {
    transform: translateX(-3px);
}

.ilj-slider__arrow[data-ilj-slider-next]:hover:not(:disabled) {
    transform: translateX(3px);
}

.ilj-slider__arrow:disabled {
    color: rgba(75, 75, 75, 0.3);
    cursor: default;
}

.ilj-slider.is-static .ilj-slider__controls {
    visibility: hidden;
}

.ilj-highlights__footer {
    margin-top: 32px;
    /* Platz für die Pfeile rechts neben dem CTA */
    padding-right: 7rem;
}

.ilj-footnote {
    margin: 1rem 0 0;
    color: #6b6d67;
    font-size: 0.75rem;
    line-height: 1.5;
}

/* Identisch zur veröffentlichten Vorschau-Startseite. */
.ilj-highlights__title {
    color: #000;
    font-size: calc(1.3rem + 0.6vw);
    font-weight: 500;
    line-height: 2.125rem;
}

@media (min-width: 1200px) {
    .ilj-highlights__title {
        font-size: 2rem;
    }
}

/* ---------------------------------------------------------------------------
 * Teaser: Händlersuche, Gewinnspiel, Wohnbuch
 * Mobil untereinander, ab Tablet/Desktop als drei gleichwertige Kacheln.
 * ------------------------------------------------------------------------- */
.ilj-teasers {
    display: grid;
}

.ilj-teaser {
    display: flex;
    flex-direction: column;
    color: #fff;
}

.ilj-teaser--sage {
    background: var(--ilj-sage);
}

.ilj-teaser--gold {
    background: var(--ilj-gold);
}

.ilj-teaser--coral {
    background: var(--ilj-cream);
    color: var(--ilj-dark-gray);
}

.ilj-teaser--coral .ilj-teaser__title,
.ilj-teaser--coral .ilj-teaser__text {
    color: var(--ilj-dark-gray);
}

.ilj-teaser__media {
    position: relative;
    overflow: hidden;
    background: #3a3629;
}

.ilj-teaser__media img {
    display: block;
    width: 100%;
    height: auto;
}

/* Figma: Verlauf rgba(33, 27, 21, 0.8) von unten, damit die Headline auf dem Foto lesbar bleibt */
.ilj-teaser__media--overlay::after {
    content: "";
    position: absolute;
    inset: 37% 0 0;
    background: linear-gradient(0deg, rgba(33, 27, 21, 0.8) 0%, rgba(52, 51, 40, 0) 100%);
}

.ilj-teaser__overlay {
    position: absolute;
    right: var(--ilj-pad);
    bottom: 28px;
    left: var(--ilj-pad);
    z-index: 1;
}

.ilj-teaser__pin {
    display: block;
    margin: 0 0 22px 2px;
    color: #fff;
}

.ilj-teaser__body {
    flex: 1 1 auto;
    padding: 28px var(--ilj-pad) 40px;
}

.ilj-teaser--sage .ilj-teaser__body {
    padding-top: 24px;
}

.ilj-teaser__title {
    margin: 0 0 16px;
    color: #fff;
    font-family: var(--ilj-font);
    font-size: 1.625rem;
    font-weight: 500;
    line-height: 30px;
}

.ilj-teaser__overlay .ilj-teaser__title {
    margin: 0;
}

.ilj-teaser__text {
    margin: 0 0 24px;
    color: #fff;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1rem;
}

.ilj-teaser--sage .ilj-teaser__text {
    margin-bottom: 16px;
}

.ilj-teaser__meta {
    margin: -10px 0 20px;
    color: inherit;
    font-size: 0.75rem;
    font-weight: 400;
    line-height: 1.45;
}

.ilj-teaser__meta a {
    color: inherit;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

.ilj-teaser__meta a:hover {
    color: inherit;
    text-decoration-thickness: 2px;
}

.ilj-teaser__eyebrow {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 24px;
    color: #fff;
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 14px;
    text-transform: uppercase;
}

.ilj-teaser__eyebrow svg {
    flex: 0 0 auto;
}

.ilj-teaser__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.ilj-teaser a:focus-visible,
.ilj-teaser button:focus-visible {
    outline-color: #fff;
    box-shadow: 0 0 0 6px rgba(0, 0, 0, 0.35);
}

.ilj-benefits {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin: 0 0 24px;
    padding: 0;
    list-style: none;
}

.ilj-benefits__item {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1rem;
}

.ilj-benefits__item svg {
    flex: 0 0 auto;
}

/* Händlersuche: weißes Feld 46px, grüner Such-Button 38px innen rechts */
.ilj-dealer-search {
    position: relative;
    display: flex;
    max-width: 480px;
    height: 46px;
    border-radius: 5px;
    background: #fff;
}

.ilj-dealer-search__input {
    flex: 1 1 auto;
    min-width: 0;
    padding: 0 0 0 18px;
    border: 0;
    border-radius: 5px 0 0 5px;
    background: transparent;
    color: var(--ilj-text);
    font-family: var(--ilj-font);
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1rem;
    -webkit-appearance: none;
    appearance: none;
}

.ilj-dealer-search__input::placeholder {
    color: rgba(75, 75, 75, 0.6);
    opacity: 1;
}

.ilj-dealer-search__input:focus {
    outline: none;
}

.ilj-dealer-search:focus-within {
    outline: 3px solid #fff;
    outline-offset: 3px;
}

.ilj-dealer-search__submit {
    display: grid;
    place-items: center;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    margin: 4px;
    padding: 0;
    border: 0;
    border-radius: 5px;
    background: var(--ilj-sage);
    color: #fff;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

.ilj-dealer-search__submit:hover {
    background: var(--ilj-sage-hover);
}

/* ---------------------------------------------------------------------------
 * Rechtliche Hinweise
 * ------------------------------------------------------------------------- */
.ilj-legal {
    padding: 18px 0 22px;
    border-top: 1px solid rgba(77, 74, 77, 0.08);
    background: #fff;
    color: var(--ilj-dark-gray);
    text-align: left;
}

/* Align the legal block with the left edge of the icon column in the first
 * teaser card. The card body uses a 24px inner edge at every breakpoint. */
.ilj-legal > .container {
    width: 100%;
    max-width: none;
    margin-right: 0;
    margin-left: 0;
    padding-right: 24px;
    padding-left: 24px;
}

.ilj-legal__header {
    display: block;
    margin-bottom: 12px;
    text-align: left;
}

.ilj-legal__title {
    margin: 0;
    color: var(--ilj-dark-gray);
    font-family: var(--ilj-font);
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1.4;
}

.ilj-legal__credit {
    margin: 0;
    margin-top: 3px;
    color: rgba(77, 74, 77, 0.46);
    font-size: 0.625rem;
    line-height: 1.4;
}

.ilj-legal__list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 9px;
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: legal-notice;
}

.ilj-legal__item {
    position: relative;
    padding: 0;
    border: 0;
    text-align: left;
    counter-increment: legal-notice;
}

.ilj-legal__item::before {
    position: static;
    display: inline;
    content: counter(legal-notice, decimal-leading-zero);
    margin-right: 6px;
    color: rgba(77, 74, 77, 0.34);
    font-size: 0.5625rem;
    font-weight: 500;
    letter-spacing: 0.08em;
    line-height: 1.5;
}

.ilj-legal__item--wide {
    grid-column: 1 / -1;
}

.ilj-legal__item h3 {
    display: inline;
    margin: 0;
    color: rgba(77, 74, 77, 0.67);
    font-family: var(--ilj-font);
    font-size: 0.625rem;
    font-weight: 500;
    line-height: 1.4;
}

.ilj-legal__item p {
    max-width: none;
    margin: 2px 0 0;
    color: rgba(77, 74, 77, 0.54);
    font-size: 0.625rem;
    font-weight: 400;
    line-height: 1.45;
}

.ilj-legal__downloads {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 16px;
    margin-top: 7px;
}

.ilj-legal__download {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    min-width: 0;
    min-height: 0;
    padding: 2px 0;
    border: 0;
    border-bottom: 1px solid rgba(77, 74, 77, 0.38);
    border-radius: 0;
    color: rgba(77, 74, 77, 0.58);
    font-size: 0.625rem;
    font-weight: 400;
    line-height: 1.25;
    text-decoration: none;
    overflow-wrap: anywhere;
    transition: border-color 0.2s ease, color 0.2s ease;
}

.ilj-legal__download::after {
    width: 8px;
    height: 8px;
    margin-left: 5px;
    content: "";
    background: currentColor;
    clip-path: polygon(43% 0, 57% 0, 57% 58%, 76% 39%, 86% 49%, 50% 85%, 14% 49%, 24% 39%, 43% 58%);
}

.ilj-legal__download:hover {
    border-color: var(--ilj-dark-gray);
    color: var(--ilj-dark-gray);
}

.ilj-legal__download:focus-visible {
    outline: 3px solid var(--ilj-dark-gray);
    outline-offset: 3px;
}

/* ---------------------------------------------------------------------------
 * Mobile Navigation (ersetzt das per Ajax geladene Shopware-Offcanvas)
 * ------------------------------------------------------------------------- */
.ilj-offcanvas-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1049;
    background: rgba(0, 0, 0, 0.45);
    opacity: 0;
    transition: opacity 0.25s ease;
}

.ilj-offcanvas-backdrop.is-open {
    opacity: 1;
}

.ilj-offcanvas {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 1050;
    display: flex;
    flex-direction: column;
    width: min(88vw, 400px);
    background: #fff;
    color: var(--ilj-text);
    box-shadow: 0 0 40px rgba(0, 0, 0, 0.2);
    transform: translateX(-100%);
    transition: transform 0.28s cubic-bezier(0.3, 0, 0.15, 1);
}

.ilj-offcanvas.is-open {
    transform: translateX(0);
}

.ilj-offcanvas[hidden],
.ilj-offcanvas-backdrop[hidden] {
    display: none;
}

.ilj-offcanvas__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--ilj-cream);
}

.ilj-offcanvas__logo img {
    display: block;
    width: auto;
    height: 44px;
}

.ilj-offcanvas__close {
    display: grid;
    place-items: center;
    width: 2.75rem;
    height: 2.75rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--ilj-text);
    cursor: pointer;
}

.ilj-offcanvas__body {
    flex: 1 1 auto;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 0.5rem 0 1.5rem;
}

.ilj-offcanvas__list,
.ilj-offcanvas__sublist {
    margin: 0;
    padding: 0;
    list-style: none;
}

.ilj-offcanvas__item {
    border-bottom: 1px solid #f0ece5;
}

.ilj-offcanvas__link,
.ilj-offcanvas__toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 3.25rem;
    padding: 0.75rem 1.25rem;
    border: 0;
    background: transparent;
    color: var(--ilj-text) !important;
    font-family: var(--ilj-font);
    font-size: 1rem;
    font-weight: 500;
    text-align: left;
    text-decoration: none !important;
    cursor: pointer;
}

.ilj-offcanvas__toggle svg {
    flex: 0 0 auto;
    transition: transform 0.2s ease;
}

.ilj-offcanvas__toggle[aria-expanded="true"] svg {
    transform: rotate(180deg);
}

.ilj-offcanvas__link.is-anniversary span {
    padding: 0.2rem 0.6rem;
    border-radius: 3px;
    background: var(--ilj-gold);
    color: #fff;
}

.ilj-offcanvas__panel {
    padding: 0 0 0.75rem;
    background: #faf8f5;
}

.ilj-offcanvas__panel[hidden] {
    display: none;
}

.ilj-offcanvas__sublink {
    display: block;
    padding: 0.6rem 1.25rem 0.6rem 2rem;
    color: var(--ilj-text) !important;
    font-size: 0.9375rem;
    text-decoration: none !important;
}

.ilj-offcanvas__sublink:hover {
    text-decoration: underline !important;
}

.ilj-offcanvas__sublink.is-category {
    font-weight: 700;
}

.ilj-offcanvas__sublist .ilj-offcanvas__sublist .ilj-offcanvas__sublink {
    padding-left: 2.75rem;
    font-size: 0.875rem;
}

.ilj-offcanvas__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.25rem;
    margin: 1.25rem 1.25rem 0;
    padding: 0;
    list-style: none;
}

.ilj-offcanvas__meta a {
    color: var(--ilj-text) !important;
    font-size: 0.875rem;
}

html.ilj-scroll-lock,
html.ilj-scroll-lock body {
    overflow: hidden;
}

/* ---------------------------------------------------------------------------
 * Lokaler Vorschau-Hinweis & Toast
 * ------------------------------------------------------------------------- */
.ilj-preview-note {
    position: fixed;
    left: 1rem;
    bottom: 1rem;
    z-index: 690;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0.4rem 0.35rem 0.75rem;
    border-radius: 999px;
    background: rgba(45, 48, 45, 0.88);
    color: #fff;
    font-size: 0.6875rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    line-height: 1.2;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
}

.ilj-preview-note::before {
    content: "";
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: var(--ilj-gold);
}

.ilj-preview-note__close {
    display: grid;
    place-items: center;
    width: 1.5rem;
    height: 1.5rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    cursor: pointer;
}

.ilj-preview-note__close:hover {
    background: rgba(255, 255, 255, 0.25);
}

.ilj-toast {
    position: fixed;
    left: 50%;
    bottom: 1.5rem;
    z-index: 1200;
    max-width: calc(100vw - 2rem);
    padding: 0.75rem 1rem;
    border-radius: 4px;
    background: var(--ilj-anthracite);
    color: #fff;
    font-size: 0.875rem;
    line-height: 1.4;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
    opacity: 0;
    transform: translate(-50%, 1rem);
    transition: opacity 0.25s ease, transform 0.25s ease;
    pointer-events: none;
}

.ilj-toast.is-visible {
    opacity: 1;
    transform: translate(-50%, 0);
}

.ilj-teaser__ai-label {
    position: absolute;
    right: 8px;
    bottom: 8px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border: 1px solid rgba(255, 255, 255, 0.66);
    border-radius: 50%;
    background: rgba(45, 48, 45, 0.48);
    color: rgba(255, 255, 255, 0.9);
    font-size: 0.5rem;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.04em;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.72);
    pointer-events: none;
}

/* ---------------------------------------------------------------------------
 * Responsiv
 * ------------------------------------------------------------------------- */
@media (min-width: 768px) {
    :root {
        --ilj-pad: 32px;
    }
}

@media (min-width: 1200px) {
    :root {
        --ilj-pad: 40px;
    }
}

@media (min-width: 768px) {
    .ilj-teasers {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ilj-teaser__media {
        aspect-ratio: 1.06 / 1;
    }

    .ilj-teaser__media img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .ilj-teaser--sage .ilj-teaser__media img {
        object-position: 50% 46%;
    }

    .ilj-teaser__body {
        display: flex;
        flex-direction: column;
        padding: 28px 24px 36px;
    }

    .ilj-teaser--sage .ilj-teaser__body {
        padding-top: 24px;
    }

    .ilj-teaser__actions,
    .ilj-dealer-search {
        margin-top: auto;
    }
}

@media (max-width: 1199.98px) {
    .ilj-slider {
        --ilj-per-view: 3;
    }
}

@media (max-width: 991.98px) {
    .ilj-hero {
        min-height: 560px;
    }

    .ilj-hero__image {
        width: 100%;
        object-position: 34% 50%;
        transform: none;
    }

    .ilj-hero__media::after {
        background: linear-gradient(90deg, rgba(33, 27, 21, 0.9) 0%, rgba(33, 27, 21, 0.5) 40%, rgba(52, 51, 40, 0) 70%);
    }

    .ilj-hero__content {
        max-width: 30rem;
    }

    .ilj-slider {
        --ilj-per-view: 2.2;
    }
}

/* Zwischen Tablet und großem Desktop würde der Text sonst über Hennings
 * Gesicht laufen. Die schmalere Textspalte und der angepasste Bildfokus
 * halten Text und Motiv in diesen Zwischenformaten zuverlässig getrennt. */
@media (min-width: 768px) and (max-width: 991.98px) {
    .ilj-hero__content {
        max-width: 400px;
    }

    .ilj-hero__image {
        object-position: 15% 50%;
    }
}

@media (min-width: 992px) and (max-width: 1399.98px) {
    .ilj-hero__content {
        max-width: 440px;
    }

    .ilj-hero__image {
        object-position: 20% 50%;
    }
}

/* Original-Footer: fünf Spalten sind im Tablet-Bereich zu eng – Logo-Spalte volle Breite */
@media (min-width: 768px) and (max-width: 991.98px) {
    .footer-main .footer-columns {
        flex-wrap: wrap;
        column-gap: 1.5rem;
    }

    .footer-main .footer-column:first-child {
        flex: 0 0 100%;
    }

    .footer-main .footer-column:not(:first-child) {
        flex: 1 1 0;
        min-width: 0;
    }

    .footer-main .footer-bottom .social-links {
        flex: 0 0 auto;
    }

    .footer-main .footer-bottom .social-links a,
    .footer-main .footer-bottom .social-links .icon {
        flex-shrink: 0;
    }
}

/* Mobile-Frame laut Figma (402px) */
@media (max-width: 767.98px) {
    .ilj-legal {
        padding: 16px 0 20px;
    }

    .ilj-legal__header {
        display: block;
        margin-bottom: 10px;
    }

    .ilj-legal__credit {
        margin-top: 3px;
    }

    .ilj-legal__list {
        grid-template-columns: 1fr;
        gap: 9px;
    }

    .ilj-legal__item,
    .ilj-legal__item--wide {
        grid-column: auto;
        padding-left: 0;
    }

    .ilj-legal__downloads {
        display: flex;
    }

    .ilj-legal__download {
        width: auto;
    }

    .ilj-campaign-bar__link {
        padding: 0.5rem 1rem;
    }

    /* Hero 650px: Text oben, Motiv mit mobilem Fokuspunkt. */
    .ilj-hero {
        min-height: clamp(540px, 161.7vw, 720px);
        padding: 40px 0 0;
    }

    .ilj-hero__image {
        width: 100%;
        left: 0;
        object-position: 38% 50%;
        transform: none;
    }

    .ilj-hero__media::after {
        background:
            linear-gradient(0deg, rgba(33, 27, 21, 0.8) 0%, rgba(52, 51, 40, 0) 16%),
            linear-gradient(180deg, rgba(33, 27, 21, 0.8) 0%, rgba(52, 51, 40, 0) 66%),
            linear-gradient(180deg, rgba(29, 29, 27, 0.6) 0%, rgba(29, 29, 27, 0) 60%);
    }

    .ilj-hero__title {
        font-size: 2.125rem;
        line-height: 39px;
    }

    .ilj-hero__text {
        font-size: 1rem;
        margin-bottom: 1.5rem;
    }

    .ilj-highlights {
        padding: 49px 0 40px;
    }

    .ilj-highlights__title {
        margin-bottom: 28px;
    }

    .ilj-slider {
        --ilj-gap: 8px;
        --ilj-per-view: 1.2;
    }

    .ilj-card__body {
        padding: 20px 16px 12px;
    }

    .ilj-card__head {
        margin-bottom: 18px;
    }

    .ilj-card__title {
        font-size: 0.75rem;
        line-height: 14px;
    }

    .ilj-slider__controls {
        margin-top: 12px;
    }

    .ilj-slider__arrows {
        display: none;
    }

    .ilj-highlights__footer {
        padding-right: 0;
    }

    .ilj-preview-note {
        left: 0.5rem;
        bottom: 0.5rem;
    }

    .ilj-preview-note__extra {
        display: none;
    }
}

/* Unter ~400px passen die festen Zeilenumbrüche der Headlines nicht mehr */
@media (max-width: 399.98px) {
    .ilj-highlights__title .ilj-nowrap,
    .ilj-teaser__title .ilj-nowrap {
        white-space: normal;
    }

    .ilj-teaser__overlay .ilj-teaser__title {
        font-size: 1.375rem;
        line-height: 26px;
    }

    .ilj-teaser__pin {
        margin-bottom: 12px;
    }
}

@media (max-width: 379.98px) {
    .ilj-hero__title {
        font-size: 1.95rem;
        line-height: 1.15;
    }

    .ilj-hero__title .ilj-nowrap {
        white-space: nowrap;
    }
}

@media (min-width: 1600px) {
    .ilj-hero__image {
        width: 138%;
        object-position: 50% 52%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ilj *,
    .ilj *::before,
    .ilj *::after,
    .ilj-offcanvas,
    .ilj-offcanvas-backdrop,
    .ilj-toast {
        transition: none !important;
        animation: none !important;
    }

    .ilj-slider__track {
        scroll-behavior: auto;
    }
}
