/* ORVANIS v2: NGX-Werbung mit eigener Produktbuehne. Alle Regeln lokal begrenzt. */
.ngx-promo {
    position:relative;
    isolation:isolate;
    overflow:hidden;
    font-family:var(--font);
    color:var(--text-on-dark);
    background:var(--bg-deep);
    border:1px solid rgba(184,212,200,.24);
    border-radius:var(--radius-lg,18px);
}
.ngx-promo--hero {
    margin:0 0 clamp(3.5rem,6vw,5rem);
    padding:0;
    overflow:visible;
    color:var(--text);
    background:transparent;
    border:0;
    border-radius:0;
    scroll-margin-top:7rem;
}
.ngx-promo__top {
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:.75rem 1.5rem;
    padding:0 0 1.1rem;
}
.ngx-promo__eyebrow {
    display:flex;
    align-items:center;
    gap:.8rem;
    color:var(--accent-strong);
    font-size:.8125rem;
    font-weight:700;
    letter-spacing:.13em;
    text-transform:uppercase;
}
.ngx-promo__eyebrow::before {
    content:'';
    width:1.8rem;
    height:3px;
    background:var(--accent);
}
.ngx-promo .ngx-promo__release {
    display:flex;
    align-items:center;
    gap:.6rem;
    margin:0;
    color:var(--accent-strong);
    font-size:.875rem;
    font-weight:500;
}
.ngx-promo__release::before {
    content:'';
    width:.4rem;
    height:.4rem;
    background:currentColor;
    border-radius:50%;
    flex:none;
}
.ngx-promo__grid {
    position:relative;
    isolation:isolate;
    display:grid;
    grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);
    overflow:hidden;
    background:var(--bg-deep);
    clip-path:polygon(0 0,calc(100% - 2rem) 0,100% 2rem,100% 100%,0 100%);
}
.ngx-promo__grid::after {
    content:'';
    position:absolute;
    z-index:2;
    top:0;
    left:0;
    width:25%;
    height:3px;
    background:linear-gradient(90deg,transparent,var(--sage-shine),transparent);
    transform:translateX(400%);
    pointer-events:none;
}
.ngx-promo__copy {
    align-self:center;
    min-width:0;
    padding:clamp(1.5rem,4vw,3.5rem);
    overflow-wrap:anywhere;
}
.ngx-promo .ngx-promo__product {
    margin:0 0 1.5rem;
    color:var(--text-on-dark);
    font-size:.875rem;
    letter-spacing:.16em;
}
.ngx-promo__product strong { color:var(--sage-shine); }
.ngx-promo #ngx-title {
    margin:0 0 1.35rem;
    font-family:var(--font-display);
    font-size:clamp(2rem,3.75vw,3.5rem);
    line-height:1.08;
    letter-spacing:-.045em;
    color:var(--text-on-dark);
    background:none;
    -webkit-text-fill-color:currentColor;
}
.ngx-promo #ngx-title span { color:var(--sage-shine); }
.ngx-promo .ngx-promo__intro {
    max-width:45ch;
    margin:0 0 1.8rem;
    color:var(--text-on-dark-muted);
    font-size:1rem;
    line-height:1.65;
}
.ngx-promo .ngx-promo__cta {
    display:inline-flex;
    align-items:center;
    justify-content:space-between;
    gap:1.25rem;
    min-height:48px;
    padding:1rem 1.35rem;
    font-size:.9375rem;
    letter-spacing:.01em;
    text-transform:none;
    white-space:normal;
    text-align:left;
}
.ngx-promo__visual {
    position:relative;
    isolation:isolate;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    align-self:stretch;
    min-width:0;
    min-height:25rem;
    padding:2.5rem clamp(1rem,2vw,2rem) 2.5rem clamp(2rem,4vw,3.5rem);
    color:var(--accent-deep);
}
.ngx-promo__visual::before {
    content:'';
    position:absolute;
    z-index:-1;
    inset:0;
    background:linear-gradient(135deg,#e6ede5 0%,#b8d4c8 48%,#91b4a3 100%);
    clip-path:polygon(16% 0,100% 0,100% 100%,0 100%);
}
.ngx-promo__visual-label {
    font-size:.875rem;
    font-weight:600;
    letter-spacing:.6em;
    padding-left:.6em;
}
.ngx-promo__wordmark {
    display:block;
    max-width:100%;
    padding-right:.07em;
    font-family:var(--font-display);
    font-size:clamp(5rem,13.5vw,12.25rem);
    font-weight:800;
    line-height:1.25;
    letter-spacing:-.07em;
    color:var(--accent-deep);
    background:linear-gradient(145deg,#101e18 15%,#294f40 58%,#588b72);
    background-clip:text;
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
}
.ngx-promo__signals {
    width:88%;
    max-width:360px;
    display:grid;
    gap:9px;
    transform:skewY(-10deg);
    margin:-.1rem 0 2rem;
}
.ngx-promo__signals i {
    position:relative;
    overflow:hidden;
    display:block;
    height:1px;
    background:linear-gradient(90deg,transparent,rgba(31,61,51,.32),transparent);
}
.ngx-promo__signals i::after {
    content:'';
    position:absolute;
    inset:0 auto 0 0;
    width:40%;
    background:linear-gradient(90deg,transparent,#1f3d33,transparent);
    transform:translateX(350%);
}
.ngx-promo__visual-caption {
    font-size:.8125rem;
    font-weight:600;
    letter-spacing:.045em;
    text-align:center;
}
.ngx-promo__possibilities {
    padding:1.8rem 0 0;
    border-bottom:1px solid var(--accent-border);
}
.ngx-promo .ngx-promo__possibilities h3 {
    margin:0 0 1.2rem;
    font-family:var(--font-display);
    font-size:1rem;
    font-weight:600;
    line-height:1.4;
    letter-spacing:0;
    color:var(--accent-strong);
    background:none;
    -webkit-text-fill-color:currentColor;
}
.ngx-promo__features {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:0 2rem;
    padding:0;
    margin:0;
    list-style:none;
}
.ngx-promo__features li {
    display:flex;
    align-items:flex-start;
    gap:.8rem;
    min-width:0;
    margin:0;
    padding:1.1rem 0 1.25rem;
    border-top:1px solid var(--accent-border);
}
.ngx-promo__feature-index {
    flex:none;
    padding-top:.13rem;
    color:var(--accent);
    font-size:.75rem;
    font-weight:600;
    font-variant-numeric:tabular-nums;
}
.ngx-promo__features li div { min-width:0; }
.ngx-promo__features strong {
    display:block;
    margin-bottom:.35rem;
    color:var(--text);
    font-size:.9375rem;
    font-weight:600;
    line-height:1.35;
}
.ngx-promo__features li div > span {
    display:block;
    color:var(--muted);
    font-size:.875rem;
    line-height:1.55;
    overflow-wrap:anywhere;
}
.ngx-promo__offer { margin:0 0 1.5rem; padding-left:1rem; border-left:2px solid var(--sage-shine); }
.ngx-promo__offer strong { color:var(--sage-shine); font-size:1.25rem; }
.ngx-promo .ngx-promo__offer p { margin:.35rem 0 0; font-size:.875rem; color:var(--text-on-dark-muted); line-height:1.5; }
.ngx-promo a:focus-visible { outline:2px solid var(--sage-shine); outline-offset:-3px; }
.ngx-promo__offer a,.ngx-promo__strip-terms a { color:var(--sage-shine); text-decoration:underline; text-underline-offset:3px; }
.ngx-promo--compact { margin:0 0 2rem; border-radius:var(--radius-md,12px); background:linear-gradient(110deg,var(--bg-deep),#263a34); }
.ngx-promo__strip { display:flex; align-items:center; flex-wrap:wrap; gap:.75rem 1.5rem; padding:1.05rem 1.4rem; color:var(--text-on-dark); text-decoration:none; border-left:3px solid var(--sage-shine); }
.ngx-promo__strip:hover { background:rgba(184,212,200,.055); color:var(--text-on-dark); }
.ngx-promo__strip-brand { font-size:.875rem; letter-spacing:.08em; white-space:nowrap; }
.ngx-promo__strip-brand strong { font-size:1.25rem; color:var(--sage-shine); }
.ngx-promo__strip-copy { font-size:.9375rem; flex:1; min-width:12rem; }
.ngx-promo__strip-release { color:var(--sage-shine); font-size:.875rem; }
.ngx-promo__strip-cta { font-size:.875rem; font-weight:600; }
.ngx-promo .ngx-promo__strip-terms { margin:0; padding:0 1.5rem 1rem; color:var(--text-on-dark-muted); font-size:.875rem; }
.ngx-contact[hidden],.ngx-checkout[hidden],.ngx-payment-status[hidden] { display:none !important; }
.ngx-contact { padding:1.25rem; margin:0 0 1.5rem; border:1px solid var(--accent-border-strong); border-radius:var(--radius-md,12px); background:var(--sage-100); scroll-margin-top:7rem; }
.ngx-contact h2 { font-size:1.4rem; margin:0 0 .5rem; }
.ngx-contact p { font-size:.9375rem; margin:.5rem 0; }
.ngx-contact label { display:flex; gap:.65rem; align-items:flex-start; margin:.85rem 0; font-size:.9375rem; cursor:pointer; }
.ngx-contact input[type=radio],.ngx-contact input[type=checkbox] { flex:none; width:1.1rem; height:1.1rem; margin-top:.15rem; accent-color:var(--accent); }
.ngx-checkout { border-top:1px solid var(--border); margin-top:1rem; padding-top:1rem; }
.ngx-checkout label.redeem-label { display:block; }
.ngx-checkout dl { margin:1rem 0; }
.ngx-checkout dl div { display:flex; justify-content:space-between; gap:1rem; margin:.5rem 0; flex-wrap:wrap; }
.ngx-checkout dt,.ngx-checkout dd { margin:0; font-size:.9375rem; }
.ngx-checkout .ngx-total { padding-top:.8rem; border-top:1px solid var(--accent-border); font-weight:700; }
.ngx-payment-status { padding:1.2rem; margin-bottom:1rem; border:1px solid var(--accent-border); border-radius:12px; }
.ngx-payment-status p { margin:0 0 .75rem; }
#ngx-terms,#ngx-privacy { scroll-margin-top:7rem; }
@keyframes ngx-enter { from { opacity:.2; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }
@keyframes ngx-signal { from { transform:translateX(-110%); } to { transform:translateX(350%); } }
@keyframes ngx-launch { from { transform:translateX(-100%); } to { transform:translateX(400%); } }
@media (prefers-reduced-motion:no-preference) {
    .ngx-promo__copy { animation:ngx-enter .7s ease-out both; }
    .ngx-promo__visual-label,.ngx-promo__wordmark,.ngx-promo__visual-caption { animation:ngx-enter .9s .12s ease-out both; }
    .ngx-promo__grid::after { animation:ngx-launch 2.2s 2; }
    .ngx-promo__signals i::after { animation:ngx-signal 2s 2; }
    .ngx-promo__signals i:nth-child(2)::after { animation-delay:.2s; }
    .ngx-promo__signals i:nth-child(3)::after { animation-delay:.4s; }
    .ngx-promo--compact { animation:ngx-enter .6s ease-out both; }
}
@media (max-width:960px) {
    .ngx-promo__features { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 1.5rem; }
    .ngx-promo__visual { min-height:22rem; }
}
@media (max-width:780px) {
    .ngx-promo__grid { grid-template-columns:minmax(0,1fr); }
    .ngx-promo__visual {
        order:-1;
        display:grid;
        grid-template-columns:minmax(0,1fr) auto;
        gap:.5rem 1rem;
        min-height:0;
        padding:1.4rem clamp(1.5rem,4vw,3.5rem);
    }
    .ngx-promo__visual::before { clip-path:none; }
    .ngx-promo__visual-label { grid-column:1; align-self:end; justify-self:start; padding:0; letter-spacing:.22em; font-size:.75rem; }
    .ngx-promo__visual-caption { grid-column:1; grid-row:2; align-self:start; text-align:left; max-width:17ch; font-size:.75rem; }
    .ngx-promo__wordmark { grid-column:2; grid-row:1 / 3; font-size:clamp(3.5rem,18vw,8rem); line-height:1; }
    .ngx-promo__signals { display:none; }
    .ngx-promo__copy { padding:1.8rem clamp(1.5rem,4vw,3.5rem) 2rem; }
    .ngx-promo #ngx-title { font-size:clamp(2rem,5.5vw,3rem); }
    .ngx-promo__strip { gap:.5rem 1rem; padding:1rem; }
    .ngx-promo__strip-copy { min-width:0; flex-basis:55%; }
    .ngx-promo__strip-release { flex:1 1 50%; }
}
@media (max-width:480px) {
    .ngx-promo__top { gap:.55rem; }
    .ngx-promo__features { grid-template-columns:minmax(0,1fr); }
    .ngx-promo__features li { padding:.9rem 0; }
    .ngx-promo__features strong { margin-bottom:.2rem; }
    .ngx-promo .ngx-promo__cta { width:100%; }
}
@media (max-width:400px) { .ngx-promo__strip-cta { flex-basis:100%; } }
@media print { .ngx-promo { display:none; } }
