/* V&V Group: one-page site. Always the light brand look (white, navy, light blue), per the V&V design system. Light navy/blue identity, Sora display + DM Sans body, fonts served from this site. */
@font-face{font-family:"Sora";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/sora-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Sora";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/sora-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/dm-sans-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/dm-sans-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:600;font-display:swap;src:url("fonts/dm-sans-latin-600-normal.woff2") format("woff2")}

:root{
  color-scheme:light;
  --surface:#ffffff; --surface-soft:#f3f7fc; --surface-tint:#e4eefb;
  --ink:#0b2a55; --ink-muted:#4a5d7a;
  --line:#d5e1f1; --line-strong:#6f88ab;
  --navy:#0b2a55; --on-navy:#ffffff; --on-navy-muted:#d6e4fa;
  --accent:#1a5fe6; --on-accent:#ffffff; --sky:#7ab8f5; --on-sky:#0b2a55; --focus:#1a5fe6;
  --font-display:"Sora","Segoe UI",system-ui,sans-serif;
  --font-sans:"DM Sans","Segoe UI",system-ui,sans-serif;
  --r-md:12px; --r-lg:20px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--surface);color:var(--ink);font:400 17px/1.6 var(--font-sans);-webkit-font-smoothing:antialiased}
a{color:var(--accent)}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
h1,h2,h3{font-family:var(--font-display);font-weight:700;line-height:1.1;margin:0;text-wrap:balance;letter-spacing:-.01em}
p{margin:0}
.w{max-width:1120px;margin-inline:auto;padding-inline:20px}
.label{display:block;font:700 12px/16px var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.skip{position:absolute;left:-999px;top:8px;background:var(--surface);padding:8px 12px;border-radius:8px;z-index:20}
.skip:focus{left:12px}

/* header */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;background:var(--surface);border-bottom:1px solid var(--line)}
.top .w{display:flex;align-items:center;gap:12px 20px;min-height:68px;flex-wrap:wrap;padding-block:8px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font:700 19px/1 var(--font-display);white-space:nowrap}
.brand svg{width:36px;height:36px;flex:none}
nav{display:flex;gap:22px;margin-left:auto;align-items:center}
nav a.n{color:var(--ink);text-decoration:none;font-weight:500;font-size:15px}
nav a.n:hover{color:var(--accent)}
.langlink{font:600 13px/1 var(--font-sans);padding:9px 12px;border:2px solid var(--line-strong);border-radius:999px;color:var(--ink);text-decoration:none}
.langlink:hover{border-color:var(--accent)}
.btn.sm{font-size:15px;padding:8px 16px}
@media (max-width:820px){
  .top .w{row-gap:4px;padding-block:8px 0}
  .top nav{order:3;width:100%;margin-left:0;gap:6px;flex-wrap:nowrap;overflow-x:auto;padding-bottom:10px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .top nav::-webkit-scrollbar{display:none}
  .top nav a.n{flex:none;font-size:14px;padding:7px 12px;border-radius:999px;background:var(--surface-soft);white-space:nowrap}
  .top nav a.n[aria-current="page"]{background:var(--surface-tint)}
  .top nav .btn.sm,.top nav .langlink{flex:none;white-space:nowrap}
}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;font:600 16px/24px var(--font-sans);padding:12px 24px;border-radius:var(--r-md);border:2px solid var(--accent);background:var(--accent);color:var(--on-accent);text-decoration:none;cursor:pointer}
.btn.alt{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.btn:hover{filter:brightness(1.06)}

/* hero */
.hero{padding-block:72px 80px}
.hero .w{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
.hero .w > *{min-width:0}
.hero h1{font-size:clamp(36px,5.4vw,60px);margin-block:16px 24px}
.hero h1 em{font-style:normal;color:var(--accent)}
.lead{font-size:20px;line-height:1.55;color:var(--ink-muted);max-width:34em}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
.note{margin-top:14px;font-size:15px;color:var(--ink-muted)}
.questions{background:var(--surface-tint);border-radius:var(--r-lg);padding:28px;display:grid;gap:12px}
.questions .label{margin-bottom:4px}
.q{background:var(--surface);border:1px solid var(--line);border-radius:16px 16px 16px 4px;padding:14px 18px;font-weight:500;line-height:1.4}
.q:nth-child(odd){margin-left:24px;border-radius:16px 16px 4px 16px}
.questions p.small{font-size:14px;color:var(--ink-muted)}
@media (max-width:860px){.hero .w{grid-template-columns:1fr;gap:40px}.hero{padding-block:48px 56px}.lead{font-size:18px}}

/* sections */
section{padding-block:80px}
.soft{background:var(--surface-soft)}
.head{display:grid;grid-template-columns:1fr 1.4fr;gap:40px;margin-bottom:48px;align-items:end}
.head h2{font-size:clamp(28px,4vw,42px);margin-top:12px}
.head p{color:var(--ink-muted);font-size:18px;max-width:36em}
@media (max-width:860px){.head{grid-template-columns:1fr;gap:16px}section{padding-block:56px}}

.rows{border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:1fr 1.4fr;gap:40px;padding-block:32px;border-bottom:1px solid var(--line)}
.row h3{font-size:26px}
.row p{color:var(--ink-muted)}
.row p + p{margin-top:12px}
@media (max-width:860px){.row{grid-template-columns:1fr;gap:8px}}

/* process on navy */
.band{background:var(--navy);color:var(--on-navy)}
.band .label{color:var(--sky)}
.band .head p{color:var(--on-navy-muted)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;list-style:none;margin:0;padding:0;counter-reset:s}
.steps li::before{counter-increment:s;content:counter(s);display:grid;place-items:center;width:44px;height:44px;border-radius:999px;background:var(--sky);color:var(--on-sky);font:700 18px/1 var(--font-display);margin-bottom:20px}
.steps h3{font-size:21px;margin-bottom:8px}
.steps p{color:var(--on-navy-muted);font-size:16px}
@media (max-width:960px){.steps{grid-template-columns:1fr 1fr;gap:40px 24px}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}

/* why */
.traits{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.traits.why{margin-top:24px}
.traits h3{font-size:23px;margin-bottom:10px}
.traits p{color:var(--ink-muted)}
@media (max-width:860px){.traits{grid-template-columns:1fr;gap:28px}}

/* about */
.about{display:grid;grid-template-columns:1fr 1fr;gap:56px}
.about > *{min-width:0}
.about h2{font-size:clamp(28px,4vw,42px);margin-block:12px 20px}
.about .intro{color:var(--ink-muted);font-size:18px}
.people{display:grid;gap:16px;margin-top:28px}
.person{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:20px 22px}
.person h3{font-size:20px}
.person .role{display:block;font-size:14px;color:var(--ink-muted);margin:2px 0 8px}
.person p{font-size:16px}
.facts{margin:0;display:grid;grid-template-columns:auto 1fr;gap:14px 24px;align-content:start;font-size:16px}
.facts dt{color:var(--ink-muted)}
.facts dd{margin:0;font-weight:500;min-width:0;overflow-wrap:anywhere}
@media (max-width:860px){.about{grid-template-columns:1fr;gap:32px}}

/* ask */
.ask{background:var(--surface-tint);border-radius:var(--r-lg);padding:48px;display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center}
.ask > *{min-width:0}
.ask h2{font-size:clamp(28px,4vw,44px);margin-bottom:16px}
.ask p{color:var(--ink-muted);font-size:18px;max-width:30em}
.ask p + p{margin-top:12px;font-size:15px}
.mail{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.mail code{font:600 20px/1.3 var(--font-sans);color:var(--ink);background:var(--surface);border:2px solid var(--line-strong);border-radius:var(--r-md);padding:12px 16px;user-select:all;overflow-wrap:anywhere;max-width:100%}
.mail .row2{display:flex;gap:12px;flex-wrap:wrap}
.ok{font-size:14px;color:var(--ink-muted);min-height:20px}
@media (max-width:860px){.ask{grid-template-columns:1fr;padding:28px 20px}}

footer{border-top:1px solid var(--line);padding-block:32px;color:var(--ink-muted);font-size:14px}
footer .w{display:flex;gap:12px 32px;flex-wrap:wrap;justify-content:space-between}
footer nav{margin-left:0;gap:20px;flex-wrap:wrap}
footer a{color:var(--ink-muted)}

/* legal page */
.legal{padding-block:56px 80px}
.legal .w{max-width:760px}
.legal h1{font-size:clamp(32px,5vw,48px);margin-block:12px 12px}
.legal .updated{color:var(--ink-muted);font-size:15px;margin-bottom:40px}
.legal h2{font-size:24px;margin-block:40px 12px}
.legal p,.legal li{color:var(--ink)}
.legal p + p{margin-top:12px}
.legal ul{padding-left:22px;margin:12px 0 0}
.legal li + li{margin-top:6px}
.legal table{border-collapse:collapse;width:100%;font-size:16px;margin-top:12px}
.legal th,.legal td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.legal th{font-weight:600;color:var(--ink-muted);font-size:14px}
.tablewrap{overflow-x:auto}
.legal .back{margin-top:40px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* NIS2 check */
nav a.n[aria-current="page"]{color:var(--accent)}
.check-intro{padding-block:64px 48px}
.check-intro h1{font-size:clamp(34px,5vw,54px);margin-block:12px 20px}
.check-intro .lead{max-width:40em}
.check-wrap{padding-block:56px}
.check,.result{max-width:760px}
.qa{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-md);padding:22px 24px;margin:0 0 16px}
.qa legend{float:left;width:100%;display:flex;gap:12px;align-items:baseline;font:700 20px/1.3 var(--font-display);color:var(--ink);padding:0}
.qa legend + *{clear:both}
.qn{flex:none;display:inline-grid;place-items:center;width:30px;height:30px;border-radius:999px;background:var(--sky);color:var(--on-sky);font:700 15px/1 var(--font-display)}
.hint{color:var(--ink-muted);font-size:15px;margin:10px 0 14px 42px}
.opts{display:flex;flex-wrap:wrap;gap:10px;margin-left:42px}
.opts.col{flex-direction:column;align-items:flex-start}
.opts label{display:flex;align-items:center;gap:10px;padding:10px 16px;border:2px solid var(--line-strong);border-radius:var(--r-md);cursor:pointer;font-weight:500;background:var(--surface)}
.opts label:has(input:checked){border-color:var(--accent);background:var(--surface-tint)}
.opts input{accent-color:var(--accent);width:18px;height:18px;margin:0}
.sel-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.qa select{margin-left:42px;max-width:calc(100% - 42px);width:100%;font:500 16px/1.4 var(--font-sans);color:var(--ink);background:var(--surface);border:2px solid var(--line-strong);border-radius:var(--r-md);padding:11px 14px}
.check-actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-top:24px}
.check-err{color:#b42318;font-weight:500}
.check-noscript{background:var(--surface-tint);border-radius:var(--r-md);padding:16px 20px;margin-bottom:16px}
.result{background:var(--surface);border:1px solid var(--line);border-top:6px solid var(--accent);border-radius:var(--r-lg);padding:32px}
.result:focus{outline:none}
.result h2{font-size:clamp(26px,3.6vw,36px);margin-block:10px 14px}
.result p{color:var(--ink-muted);font-size:17px}
.result .r-chain{margin-top:14px;background:var(--surface-tint);color:var(--ink);border-radius:var(--r-md);padding:14px 18px}
.result .actions{margin-top:24px}
.result p.small{margin-top:20px;font-size:14px}
.result.r-no{border-top-color:var(--sky)}
.result.r-unsure{border-top-color:var(--line-strong)}
@media (max-width:560px){.hint,.opts{margin-left:0}.qa select{margin-left:0;max-width:100%}.qa{padding:18px}.result{padding:24px 20px}}
.row .more{margin-top:12px;font-weight:600}
.q a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:3px}
.check,.result{scroll-margin-top:130px}
