/* ===========================================================
   NIS2 Landing — Cobytes huisstijl
   Builds on main.css. Tokens match _variables.scss:
     purple-primary: #383158 / salmon-primary: #FF785C / yellow-primary: #FFA82F
   =========================================================== */

/* ===========================================================
   THEME-OVERRIDE: force light-bg nav variant on NIS2 page
   --------------------------------------------------------
   Theme's get_dark_background_class() defaults to --dark-bg for
   any template not in its hard-coded light-list. Editing that
   PHP function is futile — Qodio overwrites on theme update.
   We add `.nis2-light-nav` to <body> via body_class filter in
   inc/functions/nis2-bootstrap.php (our file, theme-safe), and
   reverse the --dark-bg color scheme via CSS below.
   To apply to future light templates: add the same body class.
   =========================================================== */
body.nis2-light-nav .m-main-header--dark-bg .c-usp span,
body.nis2-light-nav .m-main-header--dark-bg .o-header-nav-list ul li a,
body.nis2-light-nav .m-main-header--dark-bg .o-drop-down__btn i:before,
body.nis2-light-nav .m-main-header--dark-bg .o-drop-down__btn span,
body.nis2-light-nav .m-main-header--dark-bg .c-search-bar,
body.nis2-light-nav .m-main-header--dark-bg .icon-search:before {
    color: #383158 !important;
}
body.nis2-light-nav .m-main-header--dark-bg .o-header-nav-list ul li.menu-item-has-children:after {
    border-color: #383158 !important;
}
body.nis2-light-nav .m-main-header--dark-bg .c-logo__img {
    display: inline-block !important;
}
body.nis2-light-nav .m-main-header--dark-bg .c-logo__img--dark-bg {
    display: none !important;
}
/* Mobile header same treatment */
body.nis2-light-nav .m-main-header--mobile.m-main-header--dark-bg .c-usp span,
body.nis2-light-nav .m-main-header--mobile.m-main-header--dark-bg .o-mobile-menu-btn span,
body.nis2-light-nav .m-main-header--mobile.m-main-header--dark-bg .o-mobile-menu-btn i:before {
    color: #383158 !important;
}
body.nis2-light-nav .m-main-header--mobile.m-main-header--dark-bg .c-logo__img {
    display: inline-block !important;
}
body.nis2-light-nav .m-main-header--mobile.m-main-header--dark-bg .c-logo__img--dark-bg {
    display: none !important;
}
/* Hover state: keep salmon highlight */
body.nis2-light-nav .m-main-header--dark-bg .o-header-nav-list ul li a:hover {
    color: #FF785C !important;
}

.nis2-page {
    --nis2-purple: #383158;
    --nis2-purple-dark: #312c54;
    --nis2-purple-light: #463f69;
    --nis2-salmon: #FF785C;
    --nis2-yellow: #FFA82F;
    --nis2-grey: #f5f5f7;
    --nis2-border: #e6e8ee;
    --nis2-text: #2d2d3d;
    --nis2-muted: #6c6c80;
    --nis2-ok: #1f9d55;
}

/* ---------- HERO OVERRIDES ---------- */
.nis2-page .m-main-hero .o-cta-content-container__hero h1 {
    font-size: 80px;
    line-height: 1;
    margin-bottom: 12px;
}
.nis2-page .m-main-hero .o-cta-content-container__hero h2 {
    font-size: 26px;
    line-height: 1.25;
    font-weight: 600;
    margin-bottom: 18px;
}
@media (max-width: 768px) {
    .nis2-page .m-main-hero .o-cta-content-container__hero h1 { font-size: 56px; }
    .nis2-page .m-main-hero .o-cta-content-container__hero h2 { font-size: 20px; }
}

/* ---------- SCAN BANNER (overlapping hero) ---------- */
.nis2-scan-banner {
    margin-top: -60px;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 20px 60px rgba(56, 49, 88, 0.12);
    padding: 36px 40px;
    position: relative;
    z-index: 5;
}
.nis2-scan-banner h3 {
    color: var(--nis2-purple);
    margin: 0 0 6px;
    font-size: 24px;
}
.nis2-scan-banner > p {
    color: var(--nis2-muted);
    margin: 0 0 22px;
    font-size: 15px;
}
.nis2-scan-banner .nis2-form {
    display: flex;
    gap: 10px;
    max-width: 640px;
    margin-bottom: 16px;
}
.nis2-scan-banner .nis2-form input[type="text"] {
    flex: 1;
    padding: 14px 18px;
    border: 2px solid var(--nis2-border);
    border-radius: 10px;
    font-size: 16px;
    color: var(--nis2-text);
    outline: none;
    transition: border-color 0.2s;
}
.nis2-scan-banner .nis2-form input[type="text"]:focus {
    border-color: var(--nis2-salmon);
}

.nis2-trust {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 22px;
    font-size: 14px;
    color: var(--nis2-muted);
}
.nis2-trust li {
    position: relative;
    padding-left: 22px;
}
.nis2-trust li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--nis2-ok);
    font-weight: 700;
}

/* ---------- LIVE QUICKSCAN RESULT ---------- */
.nis2-result {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--nis2-border);
}
.nis2-result__loading {
    color: var(--nis2-muted);
    font-style: italic;
    text-align: center;
    padding: 24px 0;
}
.nis2-result__error {
    background: rgba(255, 120, 92, 0.08);
    border-left: 4px solid var(--nis2-salmon);
    padding: 14px 18px;
    color: var(--nis2-text);
    border-radius: 8px;
}
.nis2-result__head {
    display: grid;
    grid-template-columns: 160px 1fr;
    gap: 28px;
    align-items: center;
    margin-bottom: 24px;
}
.nis2-result__grade {
    background: var(--nis2-purple);
    color: #fff;
    border-radius: 16px;
    padding: 20px 14px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    min-height: 120px;
    justify-content: center;
}
.nis2-result__grade--a { background: #1f9d55; }
.nis2-result__grade--b { background: #4caf50; }
.nis2-result__grade--c { background: #FFA82F; color: #2d2d3d; }
.nis2-result__grade--d { background: #ff8a3a; }
.nis2-result__grade--f { background: #FF785C; }
.nis2-result__grade--na { background: var(--nis2-muted); }
.nis2-result__grade-letter {
    font-size: 56px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.02em;
}
.nis2-result__grade-label {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    opacity: 0.92;
}
.nis2-result__summary { min-width: 0; }
.nis2-result__domain {
    font-weight: 700;
    color: var(--nis2-purple);
    font-size: 18px;
    margin-bottom: 4px;
    word-break: break-all;
}
.nis2-result__score {
    color: var(--nis2-text);
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 8px;
}
.nis2-result__score span { color: var(--nis2-muted); font-weight: 400; }
.nis2-result__desc {
    margin: 0 0 8px;
    color: var(--nis2-text);
    font-size: 14px;
    line-height: 1.5;
}
.nis2-result__counts {
    margin: 8px 0 0;
    color: var(--nis2-muted);
    font-size: 14px;
}
.nis2-result__counts strong { color: var(--nis2-purple); }

.nis2-result__cats {
    display: grid;
    gap: 10px;
    margin-bottom: 22px;
}
.nis2-result__cat {
    display: grid;
    grid-template-columns: 130px 1fr 80px;
    gap: 12px;
    align-items: center;
    font-size: 14px;
}
.nis2-result__cat-label {
    color: var(--nis2-text);
    font-weight: 600;
}
.nis2-result__cat-bar {
    background: var(--nis2-grey);
    height: 10px;
    border-radius: 999px;
    overflow: hidden;
    position: relative;
}
.nis2-result__cat-fill {
    height: 100%;
    background: var(--nis2-muted);
    border-radius: 999px;
    transition: width 0.5s ease;
}
.nis2-result__cat-fill--pass { background: var(--nis2-ok); }
.nis2-result__cat-fill--warning { background: var(--nis2-yellow); }
.nis2-result__cat-fill--fail { background: var(--nis2-salmon); }
.nis2-result__cat-score {
    color: var(--nis2-muted);
    text-align: right;
    font-variant-numeric: tabular-nums;
    font-size: 13px;
}

.nis2-result__cta {
    background: var(--nis2-grey);
    border-radius: 12px;
    padding: 16px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}
.nis2-result__cta p {
    margin: 0;
    color: var(--nis2-text);
    font-size: 14px;
    line-height: 1.5;
    flex: 1;
    min-width: 240px;
}

.nis2-result__findings {
    margin: 20px 0 0;
    padding: 0;
}
.nis2-result__findings summary {
    cursor: pointer;
    font-weight: 600;
    color: var(--nis2-purple);
    padding: 12px 16px;
    background: var(--nis2-grey);
    border-radius: 10px;
    list-style: none;
    position: relative;
    padding-right: 32px;
}
.nis2-result__findings summary::-webkit-details-marker { display: none; }
.nis2-result__findings summary::after {
    content: "+";
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 22px;
    color: var(--nis2-salmon);
    font-weight: 300;
    line-height: 1;
}
.nis2-result__findings[open] summary::after { content: "−"; }
.nis2-result__findings-list {
    list-style: none;
    padding: 12px 0 0;
    margin: 0;
}
.nis2-result__finding {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 8px 14px;
    padding: 12px 14px;
    margin-bottom: 6px;
    background: #fff;
    border-left: 3px solid var(--nis2-warn);
    border-radius: 0 8px 8px 0;
    align-items: start;
    font-size: 13px;
    line-height: 1.5;
}
.nis2-result__finding--crit { border-left-color: var(--nis2-salmon); }
.nis2-result__finding--more {
    grid-template-columns: 1fr;
    font-style: italic;
    color: var(--nis2-muted);
    text-align: center;
    background: var(--nis2-grey);
    border-left: none;
}
.nis2-result__finding-cat {
    color: var(--nis2-purple);
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding-top: 2px;
}
.nis2-result__finding-name {
    color: var(--nis2-text);
    display: block;
    margin-bottom: 2px;
}
.nis2-result__finding-detail {
    grid-column: 2;
    color: var(--nis2-muted);
    font-size: 12px;
}

.nis2-result__attribution {
    margin: 14px 0 0;
    color: var(--nis2-muted);
    font-size: 12px;
    text-align: center;
}
.nis2-result__attribution a {
    color: var(--nis2-salmon);
    font-weight: 600;
    text-decoration: none;
}
.nis2-result__attribution a:hover { text-decoration: underline; }

@media (max-width: 600px) {
    .nis2-result__head {
        grid-template-columns: 1fr;
        text-align: center;
    }
    .nis2-result__grade { max-width: 200px; margin: 0 auto; }
    .nis2-result__cat { grid-template-columns: 100px 1fr 70px; font-size: 13px; }
}

/* ---------- URGENCY STRIP ---------- */
.nis2-urgency {
    background: var(--nis2-salmon);
    color: #fff;
    padding: 18px 0;
    margin-top: 40px;
    margin-bottom: 0;
}
.nis2-urgency__text {
    margin: 0;
    text-align: center;
    font-size: 15px;
    line-height: 1.55;
    color: #fff;
}
.nis2-urgency__text strong { color: #fff; }

/* ---------- SECTIONS ---------- */
.nis2-section { padding: 80px 0; }
.nis2-section--dark { background: var(--nis2-purple); color: #fff; }
.nis2-section--light { background: #fff; }
.nis2-section--grey { background: var(--nis2-grey); }

.nis2-section-head {
    text-align: center;
    margin-bottom: 48px;
}
.nis2-section-head__eyebrow {
    color: var(--nis2-salmon);
    font-weight: 600;
    margin: 0 0 6px;
    font-size: 14px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}
.nis2-page .nis2-section-head h2 {
    margin: 0 0 12px;
    font-size: 36px;
    line-height: 1.15;
    font-weight: 700;
    letter-spacing: -0.01em;
}
@media (max-width: 768px) {
    .nis2-page .nis2-section-head h2 { font-size: 28px; }
}
.nis2-section--dark .nis2-section-head h2 { color: #fff; }
.nis2-section--dark .nis2-section-head__eyebrow { color: var(--nis2-yellow); }
.nis2-section-head__lead {
    max-width: 720px;
    margin: 0 auto;
    color: var(--nis2-muted);
    font-size: 16px;
    line-height: 1.6;
}
.nis2-section--dark .nis2-section-head__lead { color: rgba(255,255,255,0.8); }

/* ---------- PROBLEEM GRID ---------- */
.nis2-problem-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
}
.nis2-problem-card {
    background: var(--nis2-purple-light);
    padding: 32px;
    border-radius: 16px;
    color: #fff;
    border: 1px solid rgba(255,255,255,0.08);
}
.nis2-problem-card__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    background: var(--nis2-yellow);
    color: var(--nis2-purple);
    border-radius: 50%;
    font-weight: 700;
    font-size: 18px;
    margin-bottom: 16px;
}
.nis2-problem-card h3 {
    color: #fff;
    margin: 0 0 10px;
    font-size: 19px;
}
.nis2-problem-card p {
    margin: 0;
    color: rgba(255,255,255,0.82);
    line-height: 1.6;
}

/* ---------- 3 STEPS / PRICING ---------- */
.nis2-steps {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
    align-items: stretch;
}
.nis2-step {
    background: #fff;
    border-radius: 16px;
    padding: 36px 32px;
    color: var(--nis2-text);
    display: flex;
    flex-direction: column;
    box-shadow: 0 10px 40px rgba(56, 49, 88, 0.08);
    border: 1px solid var(--nis2-border);
}
.nis2-step--featured {
    background: var(--nis2-purple);
    color: #fff;
    border: 2px solid var(--nis2-yellow);
    transform: translateY(-8px);
}
.nis2-step--featured h3,
.nis2-step--featured .nis2-step__lead { color: #fff; }
.nis2-step__badge {
    display: inline-block;
    padding: 4px 10px;
    background: var(--nis2-yellow);
    color: var(--nis2-purple);
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 14px;
}
.nis2-step:not(.nis2-step--featured) .nis2-step__badge {
    background: var(--nis2-grey);
    color: var(--nis2-purple);
}
.nis2-step h3 {
    margin: 0 0 6px;
    font-size: 26px;
    color: var(--nis2-purple);
}
.nis2-step__price {
    font-size: 32px;
    font-weight: 700;
    color: var(--nis2-purple);
    margin: 12px 0 4px;
}
.nis2-step--featured .nis2-step__price { color: #fff; }
.nis2-step__price-period {
    color: var(--nis2-muted);
    font-size: 14px;
    margin: 0 0 22px;
}
.nis2-step--featured .nis2-step__price-period { color: rgba(255,255,255,0.7); }
.nis2-step__lead {
    color: var(--nis2-muted);
    font-size: 15px;
    margin: 0 0 18px;
    line-height: 1.5;
}
.nis2-step__list {
    list-style: none;
    padding: 0;
    margin: 0 0 28px;
    flex: 1;
}
.nis2-step__list li {
    position: relative;
    padding: 8px 0 8px 28px;
    font-size: 15px;
    line-height: 1.5;
}
.nis2-step__list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 8px;
    color: var(--nis2-ok);
    font-weight: 700;
}
.nis2-step--featured .nis2-step__list li::before {
    color: var(--nis2-yellow);
}

/* ---------- MEASURES TABLE ---------- */
.nis2-measures-table-wrap {
    overflow-x: auto;
    background: #fff;
    border-radius: 16px;
    padding: 8px;
    box-shadow: 0 10px 30px rgba(56, 49, 88, 0.08);
}
.nis2-measures-table {
    width: 100%;
    border-collapse: collapse;
    color: var(--nis2-text);
    font-size: 14px;
}
.nis2-measures-table thead {
    background: var(--nis2-purple);
}
.nis2-measures-table thead th {
    color: #fff !important;
    padding: 16px 14px;
    text-align: left;
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}
.nis2-measures-table tbody td:first-child {
    text-align: center;
    font-weight: 700;
}
.nis2-measures-table .art-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    height: 32px;
    padding: 0 10px;
    background: var(--nis2-purple);
    color: #fff !important;
    border-radius: 999px;
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.04em;
    text-transform: lowercase;
}
.nis2-measures-table th:nth-child(4),
.nis2-measures-table th:nth-child(5),
.nis2-measures-table td:nth-child(4),
.nis2-measures-table td:nth-child(5) {
    text-align: center;
}
.nis2-measures-table td {
    padding: 14px;
    border-bottom: 1px solid var(--nis2-border);
}
.nis2-measures-table tbody tr:nth-child(even) {
    background: var(--nis2-grey);
}
.nis2-measures-table tbody tr:hover {
    background: rgba(255, 120, 92, 0.06);
}
.nis2-measures-table .ok {
    color: var(--nis2-ok);
    font-weight: 700;
    font-size: 18px;
}
.nis2-measures-table .partial {
    color: var(--nis2-muted);
    font-weight: 700;
    font-size: 18px;
}
.nis2-disclaimer {
    margin-top: 22px;
    color: rgba(255,255,255,0.7);
    font-size: 14px;
    line-height: 1.55;
    text-align: center;
}

/* ---------- WHY GRID ---------- */
.nis2-why-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    max-width: 960px;
    margin: 0 auto;
}
@media (max-width: 768px) {
    .nis2-why-grid { grid-template-columns: 1fr; }
}
.nis2-why {
    background: #fff;
    border-left: 4px solid var(--nis2-yellow);
    padding: 24px 28px;
    border-radius: 0 12px 12px 0;
    box-shadow: 0 8px 24px rgba(56, 49, 88, 0.06);
}
.nis2-why h3 {
    margin: 0 0 8px;
    color: var(--nis2-purple);
    font-size: 18px;
}
.nis2-why p {
    margin: 0;
    color: var(--nis2-text);
    line-height: 1.6;
}

/* ---------- FAQ ---------- */
.nis2-faq { max-width: 820px; margin: 0 auto; }
.nis2-faq__item {
    background: #fff;
    border: 1px solid var(--nis2-border);
    border-radius: 12px;
    padding: 18px 24px;
    margin-bottom: 10px;
}
.nis2-faq__item summary {
    cursor: pointer;
    font-weight: 600;
    font-size: 16px;
    list-style: none;
    position: relative;
    padding-right: 32px;
    color: var(--nis2-purple);
}
.nis2-faq__item summary::-webkit-details-marker { display: none; }
.nis2-faq__item summary::after {
    content: "+";
    position: absolute;
    right: 0;
    top: -4px;
    font-size: 28px;
    color: var(--nis2-salmon);
    transition: transform 0.2s;
    font-weight: 300;
}
.nis2-faq__item[open] summary::after { content: "−"; }
.nis2-faq__item p {
    margin: 14px 0 0;
    color: var(--nis2-text);
    line-height: 1.65;
}

/* ---------- INTAKE CTA ---------- */
.nis2-intake {
    background: linear-gradient(135deg, var(--nis2-purple) 0%, var(--nis2-purple-light) 100%);
    border-radius: 24px;
    padding: 72px 56px;
    text-align: center;
    color: #fff;
    position: relative;
    overflow: hidden;
}
.nis2-intake::before {
    content: "";
    position: absolute;
    right: -120px;
    top: -120px;
    width: 360px;
    height: 360px;
    background: var(--nis2-salmon);
    border-radius: 50%;
    opacity: 0.18;
}
.nis2-intake::after {
    content: "";
    position: absolute;
    left: -100px;
    bottom: -120px;
    width: 280px;
    height: 280px;
    background: var(--nis2-yellow);
    border-radius: 50%;
    opacity: 0.10;
}
section.nis2-section .nis2-intake h2 {
    color: #fff !important;
    margin: 0 0 12px;
    font-size: 32px;
    position: relative;
}
section.nis2-section .nis2-intake p,
section.nis2-section .nis2-intake p strong {
    color: rgba(255,255,255,0.92) !important;
    max-width: 600px;
    margin: 0 auto 28px;
    position: relative;
    font-size: 16px;
}
.nis2-intake__buttons {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
    position: relative;
}
section.nis2-section .nis2-intake__buttons .c-btn--secondary {
    color: #fff !important;
    border-color: #fff !important;
    background: transparent !important;
}
section.nis2-section .nis2-intake__buttons .c-btn--primary {
    color: var(--nis2-purple) !important;
}

/* ---------- BRONNEN ---------- */
.nis2-sources {
    background: var(--nis2-purple-dark);
    color: rgba(255,255,255,0.7);
    padding: 24px 0;
    font-size: 12px;
    line-height: 1.6;
}
.nis2-sources__head {
    margin: 0 0 6px;
    color: #fff;
    font-weight: 600;
}
.nis2-sources__list { margin: 0; }
.nis2-sources__list a { color: var(--nis2-yellow); }

/* ---------- RESPONSIVE ---------- */
@media (max-width: 900px) {
    .nis2-scan-banner { margin-top: 0; padding: 24px; }
    .nis2-scan-banner .nis2-form { flex-direction: column; }
    .nis2-section { padding: 60px 0; }
    .nis2-step--featured { transform: none; }
    .nis2-intake { padding: 40px 24px; }
    .nis2-intake h2 { font-size: 24px; }
}

.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
