/* Shared noxtec presentation. Research and transfer limits: research/homepage-ux-evidence.md. */
.nx-site {
    --nx-ink: #102d3d;
    --nx-text: #344d5b;
    --nx-accent: #126684;
    --nx-surface: #f1f6f8;
    --nx-line: #d7e2e7;
    color: var(--nx-text);
    background: white;
    font-size: 1.125rem;
    line-height: 1.65;
    overflow-wrap: break-word;
}
.nx-site ::selection { background: #c5e7f1; color: var(--nx-ink); }
.nx-site :focus-visible { outline: 3px solid #15779b; outline-offset: 5px; }
.nx-site [id] { scroll-margin-top: 112px; }
.nx-site main { background: white; min-width: 0; }
.nx-site main :is(h1,h2,h3,h4) { font-family: Manrope, sans-serif; text-wrap: balance; letter-spacing: -.025em; }
.nx-site main :is(h1,h2,h3) { color: var(--nx-ink); }
.nx-site main h1 { font-size: clamp(2.25rem,4.1vw,3.5rem); line-height: 1.15; }
.nx-site main h2 { font-size: clamp(1.8rem,3vw,2.5rem); line-height: 1.25; }
.nx-site main h3 { font-size: 1.25rem; line-height: 1.4; }
.nx-site main :is(p,li) { text-wrap: pretty; }
.nx-inner main :is(p:not(.font-display),li,.faq-body,.legal-doc,.blog-prose) { font-size: 1.125rem; line-height: 1.7; }
.nx-site :is(main,footer) :is(.text-xs,.text-sm,.text-base) { font-size: 1rem; }
.nx-site main :is(.text-slate-400,.text-slate-500,.text-gray-400,.text-gray-500) { color: #526876; }
.nx-site main :is(.text-slate-600,.text-slate-700) { color: var(--nx-text); }
.nx-site main .text-primary { color: var(--nx-accent); }
.nx-site main .text-brand-gradient { background: none; -webkit-text-fill-color: currentColor; color: var(--nx-accent); animation: none; }
.nx-site main :is(.animate-pulse,.animate-float,.animate-cpu,.animate-ram,[class*="fade-up-"]) { animation: none; opacity: 1; transform: none; }
.nx-site .section-eyebrow { display: block; font-family: Onest,sans-serif; font-size: 1rem; font-weight: 400; text-transform: none; letter-spacing: 0; margin-bottom: 12px; color: var(--nx-text); }
.nx-site .section-eyebrow::before { display: none; }
.nx-site .grain-overlay::after { display: none; }
.nx-site main .hero-grid { background-image: none; }
.nx-site main .pointer-events-none:not(svg) { display: none; }
.nx-inner main > section { padding-block: 56px; }
.nx-inner main > section > div[class*="max-w-"] { max-width: 1240px; margin-inline: auto; padding-inline: 32px; }
.nx-inner main > section > div > .text-center:has(h2) { text-align: left; margin-bottom: 32px; }
.nx-inner main > section > div > .text-center:has(h2) :is(p,h2) { max-width: 900px; margin-inline: 0; }
.nx-inner main > section > div > .text-center .section-eyebrow { justify-content: flex-start; }
.nx-inner main .grid:is(.max-w-4xl,.max-w-5xl,.max-w-6xl) { max-width: none; }
.nx-site main :is(.grid,.flex) > * { min-width: 0; }
.nx-site main .bg-slate-50 { background: var(--nx-surface); }
.nx-inner main :is(.bg-slate-950,.bg-slate-900,.nx-page-hero) { background: var(--nx-ink); color: #e3eef3; }
.nx-inner main :is(.bg-slate-950,.bg-slate-900,.nx-page-hero) :is(h1,h2,h3,.text-white) { color: white; }
.nx-inner main :is(.bg-slate-950,.bg-slate-900,.nx-page-hero) :is(.section-eyebrow,.text-slate-200,.text-slate-300,.text-slate-400) { color: #e3eef3; }
.nx-inner main :is(.bg-slate-950,.bg-slate-900,.nx-page-hero) .text-brand-gradient { color: #9edcf0; }
.nx-inner main :is(.bg-slate-950,.bg-slate-900,.nx-page-hero) :focus-visible { outline-color: #9edcf0; }

/* Give the enquiry precedence while keeping price discovery beside it. */
.nx-inner main > .nx-page-hero { padding-block: 48px; }
.nx-site.nx-inner main > section.nx-page-hero > div.relative { padding-block: 0; }
.nx-page-hero .nx-hero-copy { max-width: 960px; margin-inline: auto; }
.nx-page-hero h1 { max-width: 24ch; margin-inline: auto; margin-bottom: 22px; }
.nx-page-hero h1 .text-brand-gradient { font-size: .75em; line-height: 1.3; }
.nx-page-hero p { max-width: 70ch; margin-inline: auto; margin-bottom: 24px; }
.nx-page-hero .nx-hero-label { display: block; border: 0; background: none; padding: 0; margin-bottom: 18px; border-radius: 0; }
.nx-page-hero .nx-hero-label span { font-size: 1rem; text-transform: none; letter-spacing: 0; font-weight: 400; }
.nx-page-hero .nx-hero-label span:empty { display: none; }
.nx-page-hero .nx-hero-actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-start; gap: 12px 20px; margin-bottom: 24px; }
.nx-primary-action { display: flex; flex-direction: column; align-items: stretch; }
.nx-page-hero p.nx-personal-response { font-size: 1rem; margin: 8px 0 0; font-weight: 600; }
.nx-site main a.nx-consultation { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 50px; padding: 14px 20px; font-size: 1rem; font-weight: 600; border-radius: 6px; background: var(--nx-accent); color: white; border: 1px solid var(--nx-accent); box-shadow: none; transform: none; text-decoration: none; }
.nx-site main a.nx-consultation:hover { background: #0c4b63; }
.nx-site .nx-page-hero a.nx-consultation { background: #9edcf0; color: var(--nx-ink); border-color: #9edcf0; }
.nx-site .nx-page-hero a.nx-consultation:hover { background: #c0eaf7; }
.nx-site .nx-page-hero a.nx-secondary-action { background: transparent; border: 0; color: #e3eef3; font-size: 1rem; min-height: 50px; padding: 14px 4px; box-shadow: none; transform: none; text-decoration: underline; text-underline-offset: 5px; }
.nx-site main :is(.service-card,.feature-row,.blog-card):hover { transform: none; box-shadow: none; }
.nx-site main .service-card { border-radius: 8px; box-shadow: none; border-color: var(--nx-line); padding: 24px; }
.nx-site main .nx-service-summary { display: flex; flex-direction: column; border: 0; border-top: 1px solid var(--nx-line); border-radius: 0; background: transparent; }
.nx-service-summary > a:last-child { margin-top: auto; }
.nx-site main .nx-cloud-service { display: flex; flex-direction: column; }
.nx-site main .nx-service-footer { margin-top: auto; gap: 8px; flex-direction: column; align-items: flex-start; }
.nx-site main .nx-service-footer > span { flex-shrink: 0; white-space: nowrap; }
.nx-site main .nx-service-footer > a { min-height: 50px; display: inline-flex; align-items: center; }
.nx-site main .nx-service-title-link { color: inherit; display: inline-block; min-height: 44px; padding-block: 8px; margin-block: -8px; font: inherit; text-decoration: underline; text-decoration-color: var(--nx-line); text-underline-offset: 5px; }
.nx-site main .nx-service-title-link:hover { color: var(--nx-accent); text-decoration-color: currentColor; }
.nx-site main .nx-pricing-grid { align-items: stretch; gap: 24px; }
.nx-pricing-grid > div { display: flex; flex-direction: column; }
.nx-site .nx-pricing-grid > div:has(.bg-primary):not(.bg-white) { border-top: 3px solid var(--nx-accent); }
.nx-site .nx-pricing-grid .font-display.text-4xl { font-size: 2rem; color: var(--nx-ink); }
.nx-site main .nx-pricing-grid > .bg-slate-950 .font-display { color: white; }
.nx-inner main :is(table,th,td) { font-size: 1rem; line-height: 1.6; }
.nx-table-scroll { max-width: 100%; overflow-x: auto; }
.nx-table-scroll table { width: 100%; min-width: 0; }
.nx-site .nx-table-scroll :is(th,td):not(:last-child) { padding-right: 16px; }
@media (max-width: 600px) {
    .nx-table-scroll table:has(tr > :nth-child(4)) { min-width: 540px; }
}
.nx-site main details { border-radius: 6px; box-shadow: none; }
.nx-site main summary { cursor: pointer; font-size: 1.125rem; line-height: 1.55; min-height: 50px; }
.nx-inner main .nx-faq-container { max-width: 1000px; }
.nx-site main .feature-icon { background: #e1eef3; color: var(--nx-accent); }
.nx-site main img { max-width: 100%; }
.nx-site main img[src*="maincubes-rz"] { border-radius: 8px; }
.nx-site main img[src*="founders"] { width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; opacity: 1; border-radius: 8px; }

/* A shared, intentionally narrower single-column enquiry form. */
.nx-site main #kontakt { background: var(--nx-ink); color: #e3eef3; }
.nx-site main #kontakt > div:first-child { max-width: 768px; }
.nx-site main #kontakt h2 { color: white; }
.nx-site main #kontakt .section-eyebrow { color: #d5e5ec; }
.nx-site main #kontakt .text-center { text-align: left; margin-bottom: 30px; }
.nx-site main #kontakt .text-center p { margin-inline: 0; max-width: 65ch; }
.nx-site main #kontakt .bg-white { color: var(--nx-text); border: none; border-radius: 8px; box-shadow: none; padding: 28px; }
.nx-site #kontakt div.wpforms-container-full { margin: 0; }
.nx-site #kontakt .wpforms-field-container { display: grid !important; grid-template-columns: minmax(0,1fr) !important; gap: 20px; }
.nx-site #kontakt .wpforms-field { grid-column: 1 / -1 !important; }
@layer components {
    .nx-site #kontakt :is(.wpforms-field-label,.wpforms-field-sublabel,.wpforms-field-description,.wpforms-error) { font-size: 1rem !important; line-height: 1.5 !important; }
    .nx-site #kontakt .wpforms-form :is(input[type="text"],input[type="email"],input[type="tel"],select) { min-height: 48px !important; font-size: 1rem !important; }
    .nx-site #kontakt .wpforms-form :is(input[type="text"],input[type="email"],input[type="tel"],select,textarea):not(.wpforms-error):not([aria-invalid="true"]) { border-color: #758792 !important; background-color: white !important; }
    .nx-site #kontakt .wpforms-form :is(input,select,textarea):focus-visible { outline: 3px solid var(--nx-accent) !important; outline-offset: -3px !important; box-shadow: none !important; }
    .nx-site #kontakt .wpforms-form button[type="submit"] { background: var(--nx-accent) !important; color: white !important; }
    .nx-site #kontakt .wpforms-form button[type="submit"]:hover { background: #0c4b63 !important; transform: none !important; }
    .nx-site #kontakt .wpforms-form button[type="submit"]:focus-visible { outline: 3px solid var(--nx-accent) !important; outline-offset: 3px !important; }
}

/* Shared chrome, scoped to body children so article headers keep their layout. */
.nx-site > header { box-shadow: none; background: white; }
.nx-site > header > div:first-child > div { height: 88px; }
.nx-site > header img { height: 64px; }
.nx-site > header a { font-size: 1rem; }
.nx-site > header nav > a:last-child, .nx-landing-cta { background: var(--nx-accent); color: white; min-height: 46px; font-weight: 600; border-radius: 6px; padding: 10px 16px; }
.nx-site .nx-home-header-cta { display: none; }
.nx-site #mobile-menu-button { padding: 12px; }
.nx-site #mobile-menu { max-height: calc(100dvh - 112px); overflow-y: auto; }
.nx-site > footer { background: var(--nx-ink); color: #e3eef3; font-size: 1rem; }
.nx-site > footer :is(p,a,span) { font-size: 1rem; }
.nx-site > footer h3 { color: white; font-size: 1rem; }
.nx-site > footer a { color: #e3eef3; text-decoration: underline; text-underline-offset: 4px; }
.nx-site > footer :focus-visible { outline-color: #b6e5f5; }
.nx-site > footer .space-x-6 { flex-wrap: wrap; justify-content: center; gap: 12px 20px; }
.nx-site > footer .space-x-6 > a { margin: 0; }
.nx-site .noxtec-floating-cta { display: none; }

/* Reading and utility pages inherit the system without becoming marketing sections. */
.nx-site .legal-doc { font-size: 1.125rem; }
.nx-site .legal-doc h2 { font-size: 1.6rem; }
.nx-site .legal-doc :is(.legal-stand,.legal-callout-label), .nx-site .legal-nav-list a { font-size: 1rem; }
.nx-site .legal-nav-heading { font-size: 1rem; text-transform: none; letter-spacing: 0; }
.nx-site .legal-sidebar-inner { top: 112px; }
.nx-site .legal-doc table { font-size: 1rem; }
.nx-site :is(.blog-badge,.blog-card-meta,.blog-single-meta,.blog-postnav-label,.blog-tags,.blog-filters,.blog-back) { font-size: 1rem; }
.nx-site .blog-card { border-radius: 8px; box-shadow: none; }
.nx-site .blog-header { background: var(--nx-surface); margin-bottom: 32px; }
.nx-site .blog-cta { background: var(--nx-ink); color: #e3eef3; }
.nx-site .blog-cta h2 { color: white; }
.nx-site .blog-prose :is(p,li) { font-size: 1.125rem; line-height: 1.8; }
.nx-site .blog-single-title { overflow-wrap: anywhere; hyphens: auto; }
.nx-site .blog-single-title .nx-compound { hyphens: manual; }
.nx-site .blog-prose .nx-cta { --nx-accent: #126684; --nx-accent-bg: #126684; border: 1px solid var(--nx-line); border-radius: 8px; background: var(--nx-surface); }
.nx-site .nx-cta__label { font-size: 1rem; letter-spacing: 0; text-transform: none; }
.nx-site .blog-prose .nx-cta__price { font-size: 2rem; line-height: 1.3; }
.nx-site .nx-cta__price span { display: block; font-size: 1rem; line-height: 1.6; }
.nx-site :is(.nsc-configurator,.otp-container) :is(label,button,input,select,textarea) { font-size: 1rem; }
@media (max-width: 1279px) {
    .nx-site > header > div:first-child > div { height: 76px; }
    .nx-site > header img { height: 56px; }
    .nx-site .nx-home-header-cta { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 12px; margin-right: 6px; background: var(--nx-accent); color: white; border-radius: 6px; font-weight: 600; text-align: center; }
    .nx-site main .nx-pricing-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 767px) {
    .nx-site main .nx-pricing-grid { grid-template-columns: minmax(0,1fr); }
    .nx-site .nx-page-hero h1 { max-width: 26ch; }
    .nx-site .nx-page-hero h1 .text-brand-gradient { font-size: .8em; }
}
@media (max-width: 600px) {
    .nx-inner main > section { padding-block: 44px; }
    .nx-inner main > .nx-page-hero { padding-block: 32px; }
    .nx-inner main > section > div[class*="max-w-"] { padding-inline: 20px; }
    .nx-site .nx-page-hero .nx-hero-actions { flex-direction: column; align-items: stretch; gap: 12px; }
    .nx-site .nx-page-hero .nx-hero-actions > a { align-self: center; }
    .nx-site .nx-page-hero .nx-primary-action > a { padding-inline: 12px; }
    .nx-site .nx-page-hero .nx-hero-label span { line-height: 1.6; }
    .nx-site main #kontakt .bg-white { padding: 22px 18px; }
    .nx-site > header img { height: auto; width: 120px; }
    .nx-site > header > div:first-child { padding-inline: 16px; }
    .nx-site #mobile-menu-button { padding: 10px; }
    .nx-site .nx-landing-cta { font-size: 1rem; padding-inline: 12px; }
}
@media (max-width: 782px) { .nx-site #wpadminbar { position: fixed; } }
@media (prefers-reduced-motion: reduce) {
    .nx-site *, .nx-site *::before, .nx-site *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Supporting type roles from the blog and configurator have their own component rules. */
.nx-site :is(.blog-featured-kicker,.blog-featured-more,.blog-card-more) { font-size: 1rem; letter-spacing: 0; text-transform: none; }
.nx-site .nsc-configurator :is(.nsc-card__minmax,.nsc-card__minmax span,.nsc-row > span,.nsc-card__price,.nsc-summary__head-price) { font-size: 1rem; }
.nx-site .nx-page-hero p.nx-personal-response { font-size: 1rem; }
.nx-site .nx-feature-strip { background: var(--nx-surface); color: var(--nx-ink); padding-block: 28px; border-bottom: 1px solid var(--nx-line); }
.nx-site .nx-feature-strip :is(p,span,svg,.text-white) { color: var(--nx-ink); }
.nx-site .nx-feature-strip p:not(.font-display) { font-size: 1rem; }
.nx-site .nx-feature-strip .rounded-xl { background: transparent; height: auto; margin-bottom: 10px; }
.nx-site .nx-utility { max-width: 768px; margin-inline: auto; padding: 56px 24px; }
.nx-site .nx-utility h1 { margin-bottom: 24px; }

/* Emphasis comes from colour and price weight, while comparable cards share edges. */
.nx-site main .nx-pricing-grid > div { transform: none; scale: none; border-radius: 8px; box-shadow: none; padding: 24px; }
.nx-site main .nx-pricing-grid > div > p:not(.font-display) { font-size: 1rem; }
.nx-site main .nx-pricing-grid > .bg-slate-950 a.nx-consultation { background: #9edcf0; border-color: #9edcf0; color: var(--nx-ink); }
.nx-site main .nx-pricing-grid > div > .absolute { text-transform: none; letter-spacing: 0; font-size: 1rem; }
.nx-site main .nx-pricing-grid > div > a.nx-consultation { margin-top: auto; }

.nx-site main li:has(> .nx-list-copy) { align-items: flex-start; }
.nx-site main li > svg:has(+ .nx-list-copy) { flex-shrink: 0; margin-top: .35em; }
.nx-site main .nx-list-copy { flex: 1; min-width: 0; }
@media (min-width: 1024px) and (max-width: 1279px) {
    .nx-site main .nx-pricing-grid:has(> :nth-child(3)):not(:has(> :nth-child(4))) { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (min-width: 768px) and (max-width: 1023px) {
    .nx-site main .nx-pricing-grid:has(> :nth-child(3)):not(:has(> :nth-child(4))) { grid-template-columns: minmax(0,1fr); max-width: 640px; margin-inline: auto; }
}

.nx-service-summary > div:last-child { margin-top: auto; flex-wrap: wrap; gap: 8px 16px; }
.nx-service-summary > div:last-child > a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: 4px; }
.nx-site .nx-page-hero h1 .text-brand-gradient { display: inline-block; max-width: 100%; text-wrap: balance; }
.nx-site .nx-page-hero span.rounded-full { border: 0; background: transparent; padding-inline: 0; }

.nx-site > footer a.bg-primary { background: var(--nx-accent); color: white; }
.nx-site main .bg-slate-800 .text-slate-500 { color: #c5d8e3; }

.nx-site #kontakt .wpforms-field { padding: 0; min-width: 0; }
.nx-site #kontakt .wpforms-submit-container { margin-top: 20px; padding: 0; }
.nx-site #kontakt textarea { min-height: 120px; height: 120px; }
.nx-site #kontakt .wpforms-field-sublabel { margin-top: 6px; }
.nx-site #kontakt button[type="submit"] { min-height: 50px; }
@layer components { .nx-site #kontakt .wpforms-field-container { margin-bottom: 0 !important; } }
