/* Frontenmeister native homepage — v0.3.33 */
.tc-front-page--frontenmeister { margin: 0; }
.tc-fm-native-home { overflow: hidden; background: #fff; color: #181824; }
.tc-fm-native-home h1,
.tc-fm-native-home h2,
.tc-fm-native-home h3 { color: #111632; }

.tc-fm-home-promo {
    min-height: 38px;
    display: grid;
    place-items: center;
    padding: .4rem 1rem;
    text-align: center;
    color: #111632;
    font-size: clamp(.82rem, .95vw, 1rem);
    font-weight: 750;
}

.tc-fm-home-hero {
    position: relative;
    min-height: clamp(360px, 26vw, 520px);
    overflow: hidden;
    background: #111632;
}
.tc-fm-home-hero__image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.tc-fm-home-hero__shade { position:absolute; inset:0; background:linear-gradient(90deg, rgb(7 11 32 / 22%), rgb(7 11 32 / 12%)); }
.tc-fm-home-hero__copy {
    position: relative;
    z-index: 1;
    min-height: inherit;
    display: grid;
    place-content: center;
    padding: 2rem;
    text-align: center;
    color: #fff;
    text-shadow: 0 2px 12px rgb(0 0 0 / 24%);
}
.tc-fm-home-hero__copy h1 { margin:0; color:#fff; font-size:clamp(2.25rem,3.3vw,4rem); line-height:1; font-weight:800; letter-spacing:.01em; }
.tc-fm-home-hero__copy p { margin:.85rem 0 0; max-width:1000px; font-size:clamp(1rem,1.18vw,1.28rem); font-weight:700; }

.tc-fm-home-intro { padding-block: 2rem 2.7rem; text-align:center; }
.tc-fm-home-intro h2 { margin:0 0 1.4rem; font-size:clamp(1.55rem,2vw,2.15rem); }
.tc-fm-home-quick-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(1rem,3vw,3.2rem); max-width:1180px; margin:0 auto 1.8rem; }
.tc-fm-home-quick { display:grid; justify-items:center; gap:.7rem; color:#111632; text-decoration:none; }
.tc-fm-home-quick__media { width:100%; min-height:170px; display:grid; place-items:center; background:transparent; border:0; box-shadow:none; }
.tc-fm-home-quick__image { display:block; width:auto; max-width:100%; height:170px; object-fit:contain; border:0!important; background:transparent!important; box-shadow:none!important; }
.tc-fm-home-quick strong { font-size:.95rem; }
.tc-fm-home-intro__lead { max-width:980px; margin:0 auto .45rem; font-weight:600; }
.tc-fm-home-intro > p { max-width:980px; margin:.4rem auto 0; color:#4f5260; line-height:1.6; }

.tc-fm-home-divider { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:1rem; margin:1.3rem 0 1.8rem; }
.tc-fm-home-divider > span { height:1px; background:#e5e6ea; }
.tc-fm-home-divider h2 { margin:0; text-align:center; font-size:clamp(1.45rem,1.9vw,2rem); }

.tc-fm-home-explore { padding-top:1.2rem; }
.tc-fm-home-visualizer { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr); gap:clamp(2rem,5vw,5rem); align-items:center; padding-bottom:3rem; }
.tc-fm-home-visualizer__media { overflow:hidden; min-height:420px; background:#f4f4f7; }
.tc-fm-home-visualizer__image { width:100%; height:100%; min-height:420px; object-fit:cover; display:block; }
.tc-fm-home-visualizer__copy h2 { margin:0 0 1rem; font-size:clamp(1.7rem,2.2vw,2.4rem); }
.tc-fm-home-visualizer__copy p { margin:0 0 1.2rem; color:#555866; line-height:1.65; }
.tc-fm-home-visualizer__copy small { display:block; margin-top:.7rem; color:#70727c; }
.tc-fm-home-button { display:inline-flex; min-height:46px; align-items:center; justify-content:center; padding:.75rem 1.25rem; background:#111632; color:#fff!important; font-weight:750; text-decoration:none; border-radius:2px; }
.tc-fm-home-button:hover { background:#1b2349; }

.tc-fm-home-universes { padding-block:1rem 3rem; }
.tc-fm-home-universes__lead { max-width:900px; margin:0 auto 1.4rem; text-align:center; color:#555866; line-height:1.6; }
.tc-fm-home-universes__grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:1rem; }
.tc-fm-home-universe { position:relative; min-height:310px; overflow:hidden; color:#fff; text-decoration:none; }
.tc-fm-home-universe:nth-child(1), .tc-fm-home-universe:nth-child(2), .tc-fm-home-universe:nth-child(3) { grid-column:span 2; }
.tc-fm-home-universe:nth-child(4) { grid-column:span 3; }
.tc-fm-home-universe:nth-child(5) { grid-column:span 3; }
.tc-fm-home-universe__image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.tc-fm-home-universe__shade { position:absolute; inset:0; background:linear-gradient(180deg,transparent 30%,rgb(10 13 34 / 72%)); }
.tc-fm-home-universe__copy { position:absolute; inset:auto 1rem 1rem; display:grid; gap:.5rem; }
.tc-fm-home-universe__copy strong { font-size:1.15rem; line-height:1.2; }
.tc-fm-home-universe__copy em { font-style:normal; font-size:.74rem; font-weight:800; letter-spacing:.04em; }
.tc-fm-home-universe:hover .tc-fm-home-universe__image { transform:scale(1.025); }

.tc-fm-home-brands { padding-block:.5rem 3rem; }
.tc-fm-home-brands__grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.75rem; }
.tc-fm-home-brands__grid span { min-height:64px; display:grid; place-items:center; padding:.8rem; border:1px solid #e6e7eb; background:#fafafa; color:#111632; text-align:center; font-weight:700; }

.tc-fm-home-madein { padding-bottom:3rem; text-align:center; }
.tc-fm-home-madein p { max-width:980px; margin:.5rem auto; color:#555866; line-height:1.65; }

.tc-fm-home-contact { position:relative; min-height:300px; overflow:hidden; background:#111632; }
.tc-fm-home-contact__image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.tc-fm-home-contact__shade { position:absolute; inset:0; background:rgb(11 15 41 / 52%); }
.tc-fm-home-contact__copy { position:relative; z-index:1; min-height:300px; display:grid; place-content:center; justify-items:center; gap:1rem; color:#fff; text-align:center; }
.tc-fm-home-contact__copy h2 { margin:0; color:#fff; font-size:clamp(1.8rem,2.5vw,2.7rem); }
.tc-fm-home-contact__copy .tc-fm-home-button { background:#fff; color:#111632!important; }

@media (max-width: 900px) {
    .tc-fm-home-quick-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .tc-fm-home-visualizer { grid-template-columns:1fr; }
    .tc-fm-home-visualizer__media { min-height:320px; }
    .tc-fm-home-visualizer__image { min-height:320px; }
    .tc-fm-home-universes__grid { grid-template-columns:1fr 1fr; }
    .tc-fm-home-universe, .tc-fm-home-universe:nth-child(n) { grid-column:auto; min-height:280px; }
    .tc-fm-home-universe:last-child { grid-column:1 / -1; }
    .tc-fm-home-brands__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 600px) {
    .tc-fm-home-hero { min-height:340px; }
    .tc-fm-home-hero__copy { padding:1.5rem; }
    .tc-fm-home-quick__media, .tc-fm-home-quick__image { height:125px; min-height:125px; }
    .tc-fm-home-universes__grid { grid-template-columns:1fr; }
    .tc-fm-home-universe, .tc-fm-home-universe:nth-child(n) { grid-column:auto; }
    .tc-fm-home-brands__grid { grid-template-columns:1fr 1fr; }
}

/* 0.3.33 — Keep the original Frontenmeister home structure; only retain the existing legacy video if one is configured. */
.tc-fm-home-video { padding-block: .6rem 3rem; }
.tc-fm-home-video__frame {
    width: min(100%, 1100px);
    margin-inline: auto;
    overflow: hidden;
    background: #111632;
    aspect-ratio: 16 / 9;
}
.tc-fm-home-video__frame iframe,
.tc-fm-home-video__frame video {
    display: block;
    width: 100% !important;
    height: 100% !important;
    border: 0;
}


/* 0.3.38 — Frontenmeister 4-step block uses the supplied German artwork directly. */
.tc-fm-home-steps { padding-block: .25rem 1.4rem; }
.tc-fm-home-steps .tc-fm-home-divider { margin-bottom: 1.8rem; }
.tc-fm-home-steps__grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:1rem;
    max-width:1080px;
    margin:0 auto 1.25rem;
}
.tc-fm-home-step,
.tc-fm-home-step > a { display:block; min-width:0; text-decoration:none; color:#111632; }
.tc-fm-home-step__media {
    position:relative;
    display:block;
    aspect-ratio:1 / 1;
    overflow:hidden;
    background:#fff;
}
.tc-fm-home-step__image {
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}

.tc-fm-home-universe__copy em {
    display:inline-flex;
    width:max-content;
    align-items:center;
    justify-content:center;
    padding:.42rem .72rem;
    border:1px solid #fff;
    color:#fff;
    background:rgba(17,22,50,.12);
    font-size:.68rem;
    font-style:normal;
    font-weight:800;
    line-height:1;
    letter-spacing:.04em;
    text-transform:uppercase;
}

@media (max-width: 900px) {
    .tc-fm-home-steps__grid { grid-template-columns:repeat(2,minmax(0,1fr)); max-width:720px; }
}
@media (max-width: 600px) {
    .tc-fm-home-steps__grid { gap:.7rem; }
}
