/*
====================================================
NÉV: NextSheet Workspace Showcase stílus
PROJEKT: NextSheet Workspace bemutatóoldal
TÍPUS: WordPress plugin CSS
VERZIÓ: v0.2.0
UTOLSÓ FRISSÍTÉS: 2026-07-12

LEÍRÁS: Scoped, reszponzív NextSheet Workspace landing oldal stílus.

FEJLESZTŐ:
Balázs Bakos
NextSheet Innovations
https://www.nextsheet.hu

CHANGELOG:

v0.2.0 - 2026-07-12
- Rövid Workspace teaser shortcode hozzáadása

v0.1.2 - 2026-07-12
- Hero HUD háttér és stat kártya vizuál finomítása

v0.1.1 - 2026-07-12
- Hero vizuál, statisztika spacing és pénzügyi helyettesítő javítása

v0.1.0 - 2026-07-12
- Első verzió

====================================================
*/

.nsw-showcase {
    --nsw-bg: #132534;
    --nsw-bg-deep: #0b1722;
    --nsw-card: #ffffff;
    --nsw-card-soft: #f5f8fb;
    --nsw-text: #071827;
    --nsw-muted: #526178;
    --nsw-line: rgba(12, 36, 54, 0.16);
    --nsw-magenta: #ff1678;
    --nsw-cyan: #19d4c3;
    --nsw-teal: #0e6f68;
    --nsw-radius: 24px;
    --nsw-shadow: 0 24px 80px rgba(3, 12, 22, 0.24);
    color: var(--nsw-text);
    background: radial-gradient(circle at 20% 0%, rgba(255, 22, 120, 0.22), transparent 36%), radial-gradient(circle at 80% 6%, rgba(25, 212, 195, 0.18), transparent 34%), linear-gradient(180deg, var(--nsw-bg-deep), var(--nsw-bg) 24%, #e9f0f5 24%, #e9f0f5 100%);
    position: relative;
    overflow-x: clip;
}

.nsw-showcase::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 760px;
    pointer-events: none;
    opacity: 0.08;
    background-image:
        radial-gradient(circle at 18% 22%, #19d4c3 0 2px, transparent 3px),
        radial-gradient(circle at 42% 12%, #ff1678 0 2px, transparent 3px),
        radial-gradient(circle at 68% 20%, #19d4c3 0 2px, transparent 3px),
        radial-gradient(circle at 82% 42%, #ff1678 0 2px, transparent 3px),
        linear-gradient(115deg, transparent 0 20%, rgba(255,255,255,0.9) 20.1% 20.25%, transparent 20.35% 100%),
        linear-gradient(28deg, transparent 0 30%, rgba(255,255,255,0.8) 30.1% 30.22%, transparent 30.34% 100%),
        linear-gradient(90deg, rgba(255,255,255,0.5) 1px, transparent 1px),
        linear-gradient(0deg, rgba(255,255,255,0.4) 1px, transparent 1px);
    background-size: 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 96px 96px, 96px 96px;
    mask-image: linear-gradient(180deg, #000 0%, transparent 86%);
}

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

.nsw-showcase__inner {
    position: relative;
    z-index: 1;
    width: min(1220px, calc(100% - 40px));
    margin: 0 auto;
    padding: 72px 0 84px;
}

.nsw-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 0.86fr);
    gap: 42px;
    align-items: center;
    color: #fff;
    min-height: 560px;
    padding-bottom: 42px;
}

.nsw-eyebrow {
    margin: 0 0 12px;
    color: var(--nsw-cyan);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.nsw-hero h1,
.nsw-section h2,
.nsw-final-cta h2 {
    margin: 0;
    line-height: 1.06;
    letter-spacing: -0.04em;
}

.nsw-hero h1 {
    max-width: 760px;
    color: #fff;
    font-size: clamp(2.6rem, 6vw, 5.6rem);
}

.nsw-hero__lead {
    max-width: 690px;
    margin: 24px 0 0;
    color: rgba(255, 255, 255, 0.9);
    font-size: clamp(1.08rem, 2.1vw, 1.35rem);
    line-height: 1.65;
}

.nsw-hero__note {
    max-width: 680px;
    margin: 16px 0 0;
    color: rgba(255, 255, 255, 0.72);
    line-height: 1.6;
}

.nsw-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 30px;
}

.nsw-actions--center {
    justify-content: center;
}

.nsw-button {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 13px 22px;
    font-weight: 800;
    text-decoration: none;
    transition: transform 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}

.nsw-button:focus-visible,
.nsw-media__button:focus-visible,
.nsw-lightbox__close:focus-visible,
.nsw-faq summary:focus-visible {
    outline: 3px solid var(--nsw-cyan);
    outline-offset: 4px;
}

.nsw-button:hover {
    transform: translateY(-2px);
}

.nsw-button--primary {
    color: #fff;
    background: linear-gradient(135deg, var(--nsw-magenta), #d80f72);
    box-shadow: 0 18px 32px rgba(255, 22, 120, 0.28);
}

.nsw-button--ghost {
    color: #fff;
    background: rgba(255, 255, 255, 0.11);
    border: 1px solid rgba(255, 255, 255, 0.24);
}

.nsw-media {
    margin: 0;
}

.nsw-media__button {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    border-radius: var(--nsw-radius);
    background: transparent;
    cursor: zoom-in;
}

.nsw-media__image,
.nsw-media__placeholder {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    border-radius: var(--nsw-radius);
    border: 1px solid rgba(255, 255, 255, 0.18);
    box-shadow: var(--nsw-shadow);
    object-fit: cover;
    object-position: top center;
}

.nsw-media__placeholder {
    position: relative;
    min-height: 320px;
    padding: 32px;
    color: #fff;
    background: linear-gradient(135deg, rgba(8, 23, 34, 0.98), rgba(14, 111, 104, 0.9)), repeating-linear-gradient(90deg, rgba(255,255,255,0.06) 0 1px, transparent 1px 88px);
    overflow: hidden;
}

.nsw-media__placeholder::after {
    content: "";
    position: absolute;
    right: -60px;
    bottom: -70px;
    width: 240px;
    height: 240px;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(255, 22, 120, 0.36), transparent 68%);
}

.nsw-media__badge {
    display: inline-flex;
    margin-bottom: 88px;
    border: 1px solid rgba(25, 212, 195, 0.34);
    border-radius: 999px;
    padding: 7px 12px;
    color: var(--nsw-cyan);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.nsw-media__placeholder strong,
.nsw-media__placeholder small {
    position: relative;
    z-index: 1;
    display: block;
}

.nsw-media__placeholder strong {
    max-width: 430px;
    font-size: clamp(1.35rem, 2vw, 2rem);
    line-height: 1.14;
}

.nsw-media__placeholder small {
    max-width: 440px;
    margin-top: 12px;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.95rem;
    line-height: 1.5;
}

.nsw-media figcaption {
    margin-top: 10px;
    color: rgba(255, 255, 255, 0.65);
    font-size: 0.86rem;
}

.nsw-hero-mockup {
    position: relative;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 30px;
    padding: 18px;
    color: #fff;
    background: linear-gradient(145deg, rgba(10, 25, 38, 0.96), rgba(12, 81, 77, 0.9));
    box-shadow: var(--nsw-shadow);
    overflow: hidden;
}

.nsw-hero-mockup::before {
    content: "";
    position: absolute;
    inset: -40% -20% auto auto;
    width: 260px;
    height: 260px;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(255, 22, 120, 0.38), transparent 68%);
}

.nsw-hero-mockup__top,
.nsw-hero-mockup__panel,
.nsw-hero-mockup__rail,
.nsw-hero-mockup__cards {
    position: relative;
    z-index: 1;
}

.nsw-hero-mockup__top {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
}

.nsw-hero-mockup__top span {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.35);
}

.nsw-hero-mockup__top strong {
    margin-left: auto;
    color: rgba(255, 255, 255, 0.62);
    font-size: 0.78rem;
}

.nsw-hero-mockup__panel {
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 22px;
    padding: 24px;
    background: rgba(255, 255, 255, 0.08);
}

.nsw-hero-mockup__panel h2 {
    margin: 0;
    color: #fff;
    font-size: clamp(1.7rem, 3vw, 2.7rem);
    line-height: 1.05;
}

.nsw-hero-mockup__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 22px;
}

.nsw-hero-mockup__grid div,
.nsw-hero-mockup__cards div {
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 16px;
    padding: 14px;
    background: rgba(255, 255, 255, 0.1);
}

.nsw-hero-mockup__grid strong {
    display: block;
    color: var(--nsw-magenta);
    font-size: 1.8rem;
    line-height: 1;
}

.nsw-hero-mockup__grid span,
.nsw-hero-mockup__cards small,
.nsw-finance-card small {
    color: rgba(255, 255, 255, 0.68);
}

.nsw-hero-mockup__rail {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 16px 0;
}

.nsw-hero-mockup__rail span {
    border-radius: 999px;
    padding: 8px 12px;
    color: rgba(255, 255, 255, 0.78);
    background: rgba(255, 255, 255, 0.1);
    font-size: 0.82rem;
    font-weight: 800;
}

.nsw-hero-mockup__rail .is-active {
    color: #fff;
    background: var(--nsw-magenta);
}

.nsw-hero-mockup__cards {
    display: grid;
    gap: 10px;
}

.nsw-hero-mockup__cards b,
.nsw-hero-mockup__cards small {
    display: block;
}

.nsw-feature .nsw-media figcaption,
.nsw-section .nsw-media figcaption {
    color: var(--nsw-muted);
}

.nsw-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 18px 0 42px;
}

.nsw-stat,
.nsw-section,
.nsw-final-cta {
    border: 1px solid var(--nsw-line);
    border-radius: var(--nsw-radius);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 18px 54px rgba(7, 24, 39, 0.12);
}

.nsw-stat {
    position: relative;
    overflow: hidden;
    padding: 24px;
}

.nsw-stat::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 5px;
    background: linear-gradient(90deg, var(--nsw-magenta), rgba(25, 212, 195, 0.75));
}

.nsw-stat::after {
    content: "Workspace";
    position: absolute;
    top: 14px;
    right: 16px;
    border-radius: 999px;
    padding: 5px 9px;
    color: #9f1554;
    background: rgba(255, 22, 120, 0.09);
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.nsw-stat__number {
    display: block;
    color: var(--nsw-magenta);
    font-size: clamp(2.2rem, 4vw, 4rem);
    line-height: 1;
    letter-spacing: -0.05em;
}

.nsw-stat__label {
    display: block;
    margin-top: 10px;
    font-size: 1.05rem;
    font-weight: 900;
}

.nsw-stat p,
.nsw-section p,
.nsw-benefit p,
.nsw-feature p,
.nsw-process p,
.nsw-faq p,
.nsw-final-cta p {
    color: var(--nsw-muted);
    line-height: 1.65;
}

.nsw-section,
.nsw-final-cta {
    margin-top: 36px;
    padding: clamp(28px, 5vw, 58px);
}

.nsw-section__head {
    max-width: 780px;
    margin-bottom: 32px;
}

.nsw-section__head h2,
.nsw-positioning h2,
.nsw-final-cta h2 {
    font-size: clamp(2rem, 4vw, 3.6rem);
}

.nsw-benefits {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.nsw-benefit {
    border: 1px solid var(--nsw-line);
    border-radius: 20px;
    padding: 22px;
    background: var(--nsw-card-soft);
}

.nsw-benefit__icon {
    display: inline-flex;
    width: 34px;
    height: 34px;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    color: #fff;
    background: linear-gradient(135deg, var(--nsw-teal), var(--nsw-cyan));
    font-weight: 900;
}

.nsw-benefit h3,
.nsw-feature h3,
.nsw-process h3 {
    margin: 16px 0 8px;
    font-size: 1.25rem;
}

.nsw-feature {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(360px, 1.08fr);
    gap: 34px;
    align-items: center;
    margin-top: 28px;
    padding-top: 28px;
    border-top: 1px solid var(--nsw-line);
}

.nsw-feature:first-of-type {
    border-top: 0;
}

.nsw-feature--reverse .nsw-feature__content {
    order: 2;
}

.nsw-feature--reverse .nsw-feature__media {
    order: 1;
}

.nsw-finance-card {
    border-radius: var(--nsw-radius);
    padding: clamp(24px, 4vw, 40px);
    color: #fff;
    background: linear-gradient(145deg, #0d2435, #0d6b62);
    box-shadow: var(--nsw-shadow);
}

.nsw-finance-card h4 {
    margin: 0 0 18px;
    color: #fff;
    font-size: clamp(1.45rem, 2.4vw, 2.2rem);
    line-height: 1.14;
}

.nsw-finance-card__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 12px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-left: 5px solid #2f7cff;
    border-radius: 16px;
    padding: 14px;
    background: rgba(255, 255, 255, 0.1);
}

.nsw-finance-card__row.is-paid {
    border-left-color: #28d987;
}

.nsw-finance-card__row span {
    border-radius: 999px;
    padding: 6px 10px;
    color: #dce9ff;
    background: rgba(47, 124, 255, 0.22);
    font-size: 0.82rem;
    font-weight: 900;
}

.nsw-finance-card__row.is-paid span {
    color: #ddfff0;
    background: rgba(40, 217, 135, 0.2);
}

.nsw-finance-card small {
    display: block;
    margin-top: 18px;
    line-height: 1.5;
}

.nsw-checklist {
    display: grid;
    gap: 10px;
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
}

.nsw-checklist li {
    position: relative;
    padding-left: 28px;
    color: var(--nsw-text);
    font-weight: 700;
}

.nsw-checklist li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 11px;
    height: 11px;
    border-radius: 99px;
    background: var(--nsw-cyan);
    box-shadow: 0 0 0 5px rgba(25, 212, 195, 0.12);
}

.nsw-status-flow {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 18px 0;
}

.nsw-status-flow span,
.nsw-chips span {
    display: inline-flex;
    border-radius: 999px;
    padding: 8px 12px;
    font-size: 0.84rem;
    font-weight: 900;
}

.nsw-status-flow span {
    color: #103148;
    background: #eaf4ff;
}

.nsw-process__list {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.nsw-process__list li {
    border: 1px solid var(--nsw-line);
    border-radius: 18px;
    padding: 18px;
    background: var(--nsw-card-soft);
}

.nsw-process__number {
    display: inline-flex;
    width: 34px;
    height: 34px;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    color: #fff;
    background: var(--nsw-magenta);
    font-weight: 900;
}

.nsw-positioning {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 0.8fr);
    gap: 32px;
    color: #fff;
    background: linear-gradient(135deg, #0d2435, #0d5d57);
}

.nsw-positioning p {
    color: rgba(255, 255, 255, 0.78);
}

.nsw-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-content: center;
}

.nsw-chips span {
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.12);
}

.nsw-video__embed {
    overflow: hidden;
    border-radius: 18px;
}

.nsw-video__embed iframe {
    width: 100%;
    max-width: 100%;
}

.nsw-faq__list {
    display: grid;
    gap: 12px;
}

.nsw-faq details {
    border: 1px solid var(--nsw-line);
    border-radius: 18px;
    background: var(--nsw-card-soft);
}

.nsw-faq summary {
    min-height: 48px;
    padding: 16px 20px;
    cursor: pointer;
    font-weight: 900;
}

.nsw-faq details p {
    margin: 0;
    padding: 0 20px 18px;
}

.nsw-final-cta {
    text-align: center;
    color: #fff;
    background: radial-gradient(circle at 20% 20%, rgba(255, 22, 120, 0.32), transparent 38%), linear-gradient(135deg, #0b1722, #132534);
}

.nsw-final-cta p {
    max-width: 720px;
    margin: 18px auto 0;
    color: rgba(255, 255, 255, 0.78);
}

.nsw-teaser {
    --nsw-bg-deep: #0b1722;
    --nsw-text: #071827;
    --nsw-muted: #526178;
    --nsw-magenta: #ff1678;
    --nsw-cyan: #19d4c3;
    --nsw-radius: 24px;
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 24px;
    align-items: center;
    overflow: hidden;
    border: 1px solid rgba(25, 212, 195, 0.28);
    border-radius: var(--nsw-radius);
    padding: clamp(24px, 4vw, 38px);
    color: #fff;
    background:
        radial-gradient(circle at 12% 18%, rgba(255, 22, 120, 0.26), transparent 34%),
        radial-gradient(circle at 90% 10%, rgba(25, 212, 195, 0.2), transparent 32%),
        linear-gradient(135deg, #0b1722, #123247 58%, #0e6f68);
    box-shadow: 0 22px 58px rgba(3, 12, 22, 0.22);
}

.nsw-teaser::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    opacity: 0.07;
    background-image:
        linear-gradient(90deg, #fff 1px, transparent 1px),
        linear-gradient(0deg, #fff 1px, transparent 1px);
    background-size: 74px 74px;
}

.nsw-teaser h2 {
    margin: 0;
    color: #fff;
    font-size: clamp(1.65rem, 3vw, 2.6rem);
    line-height: 1.08;
    letter-spacing: -0.035em;
}

.nsw-teaser p:not(.nsw-eyebrow) {
    max-width: 760px;
    margin: 12px 0 0;
    color: rgba(255, 255, 255, 0.78);
    line-height: 1.65;
}

.nsw-lightbox {
    width: min(1120px, calc(100% - 32px));
    border: 0;
    border-radius: 22px;
    padding: 18px;
    color: #fff;
    background: #071827;
}

.nsw-lightbox::backdrop {
    background: rgba(3, 10, 16, 0.78);
}

.nsw-lightbox__close {
    display: inline-flex;
    min-width: 44px;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    color: #fff;
    background: var(--nsw-magenta);
    font-size: 1.6rem;
    cursor: pointer;
}

.nsw-lightbox__image {
    display: block;
    max-width: 100%;
    max-height: 76vh;
    margin: 14px auto 0;
    border-radius: 16px;
}

.nsw-lightbox__caption {
    color: rgba(255, 255, 255, 0.76);
}

@media (max-width: 1024px) {
    .nsw-hero,
    .nsw-feature,
    .nsw-positioning {
        grid-template-columns: 1fr;
    }

    .nsw-feature--reverse .nsw-feature__content,
    .nsw-feature--reverse .nsw-feature__media {
        order: initial;
    }

    .nsw-process__list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .nsw-showcase__inner {
        width: min(100% - 24px, 1220px);
        padding: 42px 0 56px;
    }

    .nsw-hero {
        min-height: auto;
    }

    .nsw-actions,
    .nsw-actions--center,
    .nsw-teaser {
        flex-direction: column;
        align-items: stretch;
    }

    .nsw-teaser {
        display: flex;
    }

    .nsw-button {
        width: 100%;
        text-align: center;
    }

    .nsw-stats,
    .nsw-benefits,
    .nsw-process__list {
        grid-template-columns: 1fr;
    }

    .nsw-section,
    .nsw-final-cta,
    .nsw-stat {
        border-radius: 18px;
    }

    .nsw-media__placeholder {
        min-height: 260px;
        padding: 24px;
    }

    .nsw-hero-mockup__grid {
        grid-template-columns: 1fr;
    }

    .nsw-media__badge {
        margin-bottom: 54px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .nsw-showcase *,
    .nsw-showcase *::before,
    .nsw-showcase *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}
