h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #B3362B;
}

.validation-message {
    color: #B3362B;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

/* ------------------------------
   Cyber Fleet — designtokens (grafisk profil v1.0)
--------------------------------- */

:root {
    --cf-ink: #0B0D10;          /* Bläck */
    --cf-ink-soft: #2A3138;     /* Djup */
    --cf-sail: #F9F9F9;         /* Segelvit */
    --cf-mist: #E7EAEC;         /* Dis */
    --cf-horizon: #AEB6BC;      /* Horisont */
    --cf-graphite: #5B656D;     /* Grafit */
    --cf-fjord: #0C5D66;        /* Fjärd — primär accent */
    --cf-fjord-deep: #094A52;   /* Djup fjärd — hover */
    --cf-breeze: #E1F0F1;       /* Bris — ljus tint */
    --cf-signal: #35B6C1;       /* Signal — accent på mörk botten */
    --cf-shadow: 0 4px 20px rgba(11, 13, 16, .08);

    /* Bakåtkompatibilitet med äldre klasser */
    --cf-accent: var(--cf-fjord);
    --cf-accent-secondary: var(--cf-signal);
    --cf-text-strong: var(--cf-ink);
    --cf-text-soft: var(--cf-graphite);
}

/* Liten mono-etikett (profilens "kicker") */
.eyebrow {
    font-family: "IBM Plex Mono", Consolas, monospace;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--cf-fjord);
}

.on-dark .eyebrow,
.eyebrow-on-dark {
    color: var(--cf-signal);
}

/* Primärknapp — Fjärd, enligt profilen */
.btn-primary {
    background: var(--cf-fjord);
    color: #ffffff;
    border: none;
}

.btn-primary:hover,
.btn-primary:focus {
    background: var(--cf-fjord-deep);
    color: #ffffff;
}

/* Sekundär/outline-knapp */
.btn-outline,
.btn-ghost {
    border: 1.5px solid var(--cf-ink);
    color: var(--cf-ink);
    background: transparent;
}

.btn-outline:hover,
.btn-ghost:hover {
    background: var(--cf-ink);
    color: #ffffff;
}

/* Knappar på mörk botten */
.on-dark .btn-primary,
.btn-on-dark {
    background: var(--cf-signal);
    color: var(--cf-ink);
}

.on-dark .btn-primary:hover,
.btn-on-dark:hover {
    background: #4cc4ce;
    color: var(--cf-ink);
}

.on-dark .btn-outline,
.btn-outline-on-dark {
    border: 1.5px solid var(--cf-sail);
    color: var(--cf-sail);
    background: transparent;
}

.on-dark .btn-outline:hover,
.btn-outline-on-dark:hover {
    background: var(--cf-sail);
    color: var(--cf-ink);
}

/* Tagg/pill — Bris-bakgrund */
.tag-pill {
    display: inline-block;
    background: var(--cf-breeze);
    color: var(--cf-fjord-deep);
    font-size: .85rem;
    font-weight: 600;
    padding: .25rem .8rem;
    border-radius: 999px;
}

/* ------------------------------
   Navbar — ljus enligt profilen
--------------------------------- */

#blazor-error-ui {
  color-scheme: light only;
  background: lightyellow;
  bottom: 0;
  box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
  box-sizing: border-box;
  display: none;
  left: 0;
  padding: 0.6rem 1.25rem 0.7rem 1.25rem;
  position: fixed;
  width: 100%;
  z-index: 1000;
}

#blazor-error-ui .dismiss {
  cursor: pointer;
  position: absolute;
  right: 0.75rem;
  top: 0.5rem;
}

.navbar {
  backdrop-filter: blur(10px);
  background: rgba(255, 255, 255, 0.94) !important;
  border-bottom: 1px solid var(--cf-mist);
}

.navbar-nav .nav-link {
  font-weight: 500;
  padding: 0.65rem 1rem;
  color: rgba(11, 13, 16, 0.72);
}

.navbar-nav .nav-link:hover { color: var(--cf-ink); }
.navbar-nav .nav-link.active { color: var(--cf-fjord); }

.navbar-nav .dropdown-menu {
  background: #ffffff;
  border: 1px solid var(--cf-mist);
  border-radius: 12px;
  padding: 0.75rem;
  min-width: 300px;
  box-shadow: var(--cf-shadow);
}

.dropdown-menu .dropdown-item {
  border-radius: 8px;
  color: var(--cf-ink-soft);
  padding: 0.6rem 0.75rem;
  font-size: 0.95rem;
}

.dropdown-menu .dropdown-item.active,
.dropdown-menu .dropdown-item:focus,
.dropdown-menu .dropdown-item:hover {
  background: var(--cf-breeze);
  color: var(--cf-fjord-deep);
}

.dropdown-menu .dropdown-header {
  font-family: "IBM Plex Mono", Consolas, monospace;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--cf-graphite);
  padding: 0.5rem 0.75rem 0.25rem;
}

.dropdown-divider { border-top-color: var(--cf-mist); }

.brand { display: inline-flex; align-items: center; gap: 10px; line-height: 0; position: relative; z-index: 2; }
.wordmark { height: 24px; width: auto; display: block; }
.navbar-actions { display: flex; align-items: center; gap: 0.8rem; }
.navbar-actions .btn-primary,
.navbar-actions .btn-outline { border-radius: .375rem; padding: 0.55rem 1.3rem; font-weight: 600; font-size: 0.95rem; text-decoration: none; transition: background .15s ease, color .15s ease; }
.navbar-actions .btn-primary { background: var(--cf-fjord); color: #fff; }
.navbar-actions .btn-primary:hover { background: var(--cf-fjord-deep); }
.navbar-actions .btn-outline { border: 1.5px solid var(--cf-ink); color: var(--cf-ink); background: transparent; }
.navbar-actions .btn-outline:hover { background: var(--cf-ink); color: #fff; }
@media (max-width: 992px){ .navbar-actions{ margin-top:1.2rem; flex-direction:column; align-items:stretch;} .navbar-actions .btn-primary,.navbar-actions .btn-outline{ text-align:center;} }

/* ------------------------------
   Footer — mörk yta
--------------------------------- */

.site-footer {
  background: var(--cf-ink);
  color: #C5CBD0;
  padding: 3.5rem 0 2rem;
}

.site-footer h5 {
  color: var(--cf-sail);
  font-size: 1rem;
  margin-bottom: 1rem;
}

.site-footer a { color: #C5CBD0; text-decoration: none; }
.site-footer a:hover { color: var(--cf-signal); }
.site-footer .footer-meta {
  font-family: "IBM Plex Mono", Consolas, monospace;
  font-size: .75rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--cf-graphite);
}
.site-footer hr { border-color: rgba(231, 234, 236, .15); }

/* ------------------------------
   Logo overlay (animerad symbol i navbaren)
--------------------------------- */
.symbol-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;height:40px;width:40px;cursor:pointer;background:none;border:0;padding:0;margin:0;appearance:none;color:inherit;line-height:0;--launch-delay:1.15s;--launch-duration:4.4s;--probe-mid-x:calc(50vw - 50%);--probe-mid-y:calc(50vh - 50%);--probe-target-x:calc(130vw);--probe-target-y:calc(40vh - 50%);z-index:3}
.symbol{box-sizing:border-box;height:40px;padding:4px;width:auto;user-select:none;animation:spin var(--rotation-speed, 12s) linear infinite;transform-origin:50% 50%;will-change:transform}
.blink-ring,.probe{position:absolute;inset:0;pointer-events:none}
.blink-ring{transform-origin:center;transform:scale(.55);opacity:0;z-index:2;filter:drop-shadow(0 0 6px rgba(255,0,0,.9)) drop-shadow(0 0 12px rgba(255,0,0,.6));mix-blend-mode:multiply}
.ring{fill:none;stroke:#B3362B;stroke-width:8}
.symbol-wrap.attack .blink-ring{animation:ring-blink 1.05s ease-out 0s 1 both}
.symbol-wrap.attack .probe{top:50%;left:50%;width:40px;height:40px;background-color:var(--cf-ink);-webkit-mask:url("/img/symbol.svg") center/contain no-repeat;mask:url("/img/symbol.svg") center/contain no-repeat;transform:translate(-50%,-50%) scale(.7) rotate(0deg);opacity:0;animation:launch var(--launch-duration) cubic-bezier(.7,.05,.2,1) var(--launch-delay) 1 both}
.symbol-wrap.attack .probe::before{content:"";position:absolute;top:50%;left:50%;width:14px;height:14px;border-radius:50%;background:#B3362B;box-shadow:0 0 14px rgba(179,54,43,.65);transform:translate(-50%,-50%) scale(.72);opacity:0;animation:core-blink .8s ease-in-out var(--launch-delay) infinite}
.symbol-wrap.attack .probe::after{content:"";position:absolute;top:50%;right:calc(100% + 6px);height:4px;width:0;background:linear-gradient(90deg, rgba(11,13,16,.35), rgba(11,13,16,0));opacity:0;transform-origin:right center;animation:trail var(--launch-duration) ease var(--launch-delay) 1 both}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes ring-blink{0%,9%{opacity:0}10%,19%{opacity:1}20%,39%{opacity:0}40%,49%{opacity:1}50%,69%{opacity:0}70%,79%{opacity:1}80%,100%{opacity:0}}
@keyframes core-blink{0%,100%{opacity:0;transform:translate(-50%,-50%) scale(.6)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}}
@keyframes launch{0%{transform:translate(-50%,-50%) scale(.65) rotate(0deg);opacity:0;animation-timing-function:cubic-bezier(.55,0,.45,1)}12%{transform:translate(-50%,-50%) scale(1) rotate(360deg);opacity:1;animation-timing-function:cubic-bezier(.7,0,.35,1)}38%{transform:translate(var(--probe-mid-x, calc(50vw - 50%)), var(--probe-mid-y, calc(50vh - 50%))) scale(1.15) rotate(1440deg);animation-timing-function:linear}55%{transform:translate(var(--probe-mid-x, calc(50vw - 50%)), var(--probe-mid-y, calc(50vh - 50%))) scale(1.15) rotate(1980deg);animation-timing-function:cubic-bezier(.5,0,.75,1)}100%{transform:translate(var(--probe-target-x, calc(130vw)), var(--probe-target-y, calc(40vh - 50%))) scale(1) rotate(2880deg);opacity:0}}
@keyframes trail{0%{width:0;opacity:0}10%{width:14px;opacity:.9}38%{width:120px;opacity:.6}55%{width:90px;opacity:.45}100%{width:0;opacity:0}}
@media (prefers-reduced-motion: reduce){.symbol,.blink-ring,.probe{animation:none!important}}
.symbol-wrap:focus-visible{outline:2px solid var(--cf-fjord);outline-offset:4px}

/* ------------------------------
   Produktsidor — ljus design enligt profilen
--------------------------------- */

:root { --accent: var(--cf-fjord); --accent-secondary: var(--cf-signal); }
.theme-aisoc,
.theme-aurora,
.theme-nordic { --accent: var(--cf-fjord); --accent-secondary: var(--cf-signal); }

.product-shell{width:min(1080px,92vw);margin:0 auto}
.product-hero{background:var(--cf-ink);color:var(--cf-sail);padding:clamp(3rem,6vw,4.5rem) 0 clamp(2.5rem,5vw,3.5rem);border-bottom:4px solid var(--cf-fjord)}
.product-hero__content{max-width:560px}
.product-hero__content h1{font-size:clamp(2.3rem,4.2vw,3.1rem);font-weight:700;margin-bottom:1rem;color:var(--cf-sail)}
.product-hero .eyebrow{color:var(--cf-signal)}
.product-hero .lead{color:#C5CBD0;font-size:1.1rem;line-height:1.6}
.hero-cta{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2rem}
.product-hero .btn-primary{background:var(--cf-signal);color:var(--cf-ink)}
.product-hero .btn-primary:hover{background:#4cc4ce}
.product-hero__panel{margin-top:clamp(2rem,5vw,3rem);padding:1.8rem;border-radius:12px;background:rgba(249,249,249,.06);border:1px solid rgba(249,249,249,.18)}
.product-hero__panel h2{font-size:1.4rem;margin-bottom:1rem;color:var(--cf-sail)}
.product-hero__panel ul{list-style:none;padding:0;display:grid;gap:.85rem}
.product-hero__panel li{position:relative;padding-left:1.4rem;color:#C5CBD0}
.product-hero__panel li::before{content:"";width:.55rem;height:.55rem;border-radius:999px;background:var(--cf-signal);position:absolute;top:.45rem;left:0}
.product-metrics{display:grid;gap:1.8rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));padding:clamp(2.2rem,4vw,3rem) 0 0}
.product-metrics div{background:rgba(249,249,249,.05);padding:1.6rem;border-radius:12px;border:1px solid rgba(249,249,249,.14)}
.product-metrics p{color:#C5CBD0}
.metric{display:block;font-family:"Space Grotesk","Segoe UI",Arial,sans-serif;font-size:2.2rem;font-weight:700;color:var(--cf-signal);margin-bottom:.4rem}
.product-body{background:#ffffff;padding:clamp(3.2rem,6vw,4.5rem) 0}
.feature-grid{display:grid;gap:1.8rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.feature-grid article{background:#ffffff;border-radius:12px;padding:1.75rem;border:1px solid var(--cf-mist);box-shadow:var(--cf-shadow)}
.feature-grid h3{font-size:1.3rem;margin-bottom:.6rem;color:var(--cf-ink)}
.feature-grid p{color:var(--cf-graphite)}
.product-pipeline{background:var(--cf-sail);padding:clamp(3rem,6vw,4rem) 0}
.product-pipeline h2{font-size:1.6rem;margin-bottom:1.2rem}
.pipeline-steps{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));counter-reset:pipeline;list-style:none;padding:0}
.pipeline-steps li{background:#ffffff;border-radius:12px;padding:1.6rem;border:1px solid var(--cf-mist);position:relative;overflow:hidden}
.pipeline-steps li::before{counter-increment:pipeline;content:counter(pipeline, decimal-leading-zero);position:absolute;top:1rem;right:1.2rem;font-family:"IBM Plex Mono",Consolas,monospace;font-size:1.8rem;font-weight:500;color:var(--cf-breeze)}
.pipeline-steps h4{font-size:1.15rem;margin-bottom:.4rem;color:var(--cf-ink)}
.pipeline-steps p{color:var(--cf-graphite)}
.product-cta{background:#ffffff;padding:clamp(3rem,6vw,4.5rem) 0 clamp(4rem,8vw,5rem)}
.cta-card{background:var(--cf-ink);border-radius:12px;padding:clamp(2rem,5vw,3rem);text-align:center}
.cta-card h2{font-size:2rem;margin-bottom:1rem;color:var(--cf-sail)}
.cta-card p{color:#C5CBD0;margin-bottom:1.5rem}
.cta-card .btn-primary{background:var(--cf-signal);color:var(--cf-ink)}
.cta-card .btn-primary:hover{background:#4cc4ce}
.btn-primary,.btn-ghost{display:inline-flex;align-items:center;justify-content:center;padding:.85rem 1.7rem;border-radius:.375rem;font-weight:600;text-decoration:none;transition:background .15s ease,color .15s ease}
.btn-ghost{border:1.5px solid var(--cf-ink);color:var(--cf-ink);background:transparent}
.btn-ghost:hover{background:var(--cf-ink);color:#fff}
.product-hero .btn-ghost,.cta-card .btn-ghost{border-color:var(--cf-sail);color:var(--cf-sail)}
.product-hero .btn-ghost:hover,.cta-card .btn-ghost:hover{background:var(--cf-sail);color:var(--cf-ink)}
@media (max-width:900px){.product-hero__panel{max-width:560px}.hero-cta{flex-direction:column;align-items:stretch}.btn-ghost,.btn-primary{width:100%}}
@media (max-width:640px){.product-metrics div{text-align:center}.product-hero__panel{padding:1.4rem}.pipeline-steps{grid-template-columns:minmax(0,1fr)}}

/* ------------------------------
   Kontaktsidan — ljus
--------------------------------- */
.contact-shell{width:min(1180px,calc(100vw - 2rem));margin:0 auto}
.contact-hero{background:var(--cf-ink);color:var(--cf-sail);padding:clamp(3rem,6vw,4.5rem) 0;border-bottom:4px solid var(--cf-fjord)}
.contact-hero__content{max-width:540px}
.contact-hero__content h1{font-size:clamp(2.3rem,4vw,3rem);font-weight:700;margin-bottom:1rem;color:var(--cf-sail)}
.contact-hero__content .lead{color:#C5CBD0}
.contact-highlights{display:grid;gap:.5rem;padding:0;margin:1.6rem 0 0;list-style:none}
.contact-highlights li::before{content:"";display:inline-block;width:.6rem;height:.6rem;margin-right:.75rem;border-radius:999px;background:var(--cf-signal)}
.contact-highlights li{display:flex;align-items:center;font-weight:500;color:#C5CBD0}
.contact-hero__card{margin-top:clamp(2rem,5vw,3rem);padding:1.75rem;background:rgba(249,249,249,.06);border:1px solid rgba(249,249,249,.18);border-radius:12px;max-width:340px}
.contact-hero__card h2{font-size:1.35rem;margin-bottom:.75rem;color:var(--cf-sail)}
.contact-hero__card .lead{color:#C5CBD0;margin-bottom:1.25rem}
.contact-hero__card dl{display:grid;gap:1rem}
.contact-hero__card dt{font-family:"IBM Plex Mono",Consolas,monospace;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--cf-horizon)}
.contact-hero__card dd{margin:.2rem 0 0;font-size:1rem;color:var(--cf-sail)}
.contact-hero__card a{color:var(--cf-signal);text-decoration:none}
.contact-body{background:var(--cf-sail);padding:clamp(3rem,6vw,4.5rem) 0 clamp(4rem,8vw,5rem)}
.contact-layout{display:grid;align-items:start;gap:clamp(1.5rem,3vw,2.25rem);grid-template-columns:minmax(0,1.65fr) minmax(300px,.9fr)}
.contact-form-card{background:#ffffff;border:1px solid rgba(174,182,188,.55);border-radius:18px;padding:clamp(2rem,4vw,3rem);box-shadow:0 18px 48px rgba(11,13,16,.08);color:var(--cf-ink-soft)}

/* Mörka sektioner på startsidan (används sparsamt) */
.home-dark-section{
  background:var(--cf-ink);
  color:#C5CBD0;
}
.home-dark-section h2,
.home-dark-section h5{
  color:var(--cf-sail);
}
.home-dark-section p{
  color:#C5CBD0;
}
.home-dark-section .text-primary{
  color:var(--cf-signal) !important;
}
.home-why-section .card{
  background:#ffffff;
  border-color:var(--cf-mist);
  color:var(--cf-ink-soft);
}
.home-why-section .card-title{
  color:var(--cf-ink);
}
.home-why-section .card-text{
  color:var(--cf-graphite);
}

/* ------------------------------
   Aurora Sentinel extras — ljus
--------------------------------- */
.product-service{background:var(--cf-sail);padding:clamp(3rem,6vw,4.5rem) 0}
.product-service h2{text-align:center;font-size:2rem;margin-bottom:2.2rem}
.service-grid{display:grid;gap:1.8rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.service-grid article{background:#ffffff;border-radius:12px;padding:1.65rem 1.8rem;border:1px solid var(--cf-mist);display:grid;gap:.8rem;box-shadow:var(--cf-shadow)}
.service-grid h4{font-size:1.2rem;margin:0;color:var(--cf-ink)}
.service-grid p{color:var(--cf-graphite)}
.service-grid ul{color:var(--cf-graphite);margin:0;padding-left:1.1rem;display:grid;gap:.35rem}

/* ------------------------------
   Nordic Defender extras — ljus
--------------------------------- */
.product-modules{background:var(--cf-sail);padding:clamp(3rem,6vw,4.5rem) 0}
.product-modules h2{text-align:center;font-size:2rem;margin-bottom:2.2rem}
.module-grid{display:grid;gap:1.8rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.module-grid article{background:#ffffff;border-radius:12px;padding:1.7rem 1.9rem;border:1px solid var(--cf-mist);display:grid;gap:.85rem;box-shadow:var(--cf-shadow)}
.module-grid header{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem}
.module-grid h4{font-size:1.2rem;margin:0;color:var(--cf-ink)}
.module-grid span{font-size:.85rem;font-weight:600;padding:.25rem .65rem;border-radius:999px;background:var(--cf-breeze);color:var(--cf-fjord-deep)}
.module-grid p{color:var(--cf-graphite)}
.module-grid ul{color:var(--cf-graphite);margin:0;padding-left:1.1rem;display:grid;gap:.35rem}

/* Kontaktformulär */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1.25rem}
.form-grid.single{grid-template-columns:1fr}
@media (max-width: 768px){.form-grid{grid-template-columns:1fr}}

.contact-form-card h2{color:var(--cf-ink);font-size:clamp(1.75rem,3vw,2.25rem);letter-spacing:-.025em;margin:0 0 .55rem}
.contact-form-card .form-intro{color:var(--cf-graphite);font-size:1.02rem;line-height:1.6;margin:0 0 2rem}
.contact-form-card .form-field{display:grid;grid-template-columns:1fr;gap:.5rem;margin-bottom:1.25rem}
.contact-form-card .form-field label{text-align:left;color:var(--cf-ink-soft);font-size:.9rem;font-weight:650}
.contact-form-card .form-field input:not([type="checkbox"]),
.contact-form-card .form-field textarea{
    appearance:none;
    width:100%;
    display:block;
    background:#fbfcfc;
    color:var(--cf-ink);
    border:1px solid #cbd2d7;
    border-radius:9px;
    padding:.85rem 1rem;
    font:inherit;
    line-height:1.4;
    box-shadow:0 1px 2px rgba(11,13,16,.03);
    transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease
}
.contact-form-card .form-field input:not([type="checkbox"]){min-height:50px}
.contact-form-card .form-field textarea{min-height:180px;resize:vertical}
.contact-form-card .form-field input:not([type="checkbox"]):hover,
.contact-form-card .form-field textarea:hover{border-color:var(--cf-horizon);background:#ffffff}
.contact-form-card .form-field input:not([type="checkbox"]):focus,
.contact-form-card .form-field textarea:focus{
    outline:none;
    border-color:var(--cf-fjord);
    background:#ffffff;
    box-shadow:0 0 0 4px rgba(12,93,102,.12),0 1px 2px rgba(11,13,16,.04)
}
.contact-form-card .form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.85rem 1rem;margin-top:.25rem}
.contact-form-card .form-actions .btn-primary{min-height:50px;border-radius:9px;padding:.8rem 1.35rem;font-weight:650;box-shadow:0 8px 20px rgba(12,93,102,.18)}
.contact-form-card .privacy-note{flex:1 1 280px;color:var(--cf-graphite);font-size:.88rem;line-height:1.55;margin:0!important}
.contact-form-card .form-field input:not([type="checkbox"])::placeholder,
.contact-form-card .form-field textarea::placeholder{color:var(--cf-horizon)}

/* Kontaktsidans sidokolumn — ljusa kort */
.contact-side{display:grid;gap:1.25rem}
.contact-side .side-card{background:#ffffff;border:1px solid rgba(174,182,188,.55);border-radius:16px;padding:clamp(1.4rem,2.5vw,1.8rem);box-shadow:0 14px 36px rgba(11,13,16,.07);color:var(--cf-ink-soft)}
.contact-side .side-card h3{color:var(--cf-ink);font-size:1.3rem;margin:0 0 .9rem}
.contact-side .side-card p,
.contact-side .side-card li,
.contact-side .side-card details,
.contact-side .side-card summary{color:var(--cf-graphite)}
.contact-side .side-card > p{line-height:1.65;margin:0 0 1.15rem}
.contact-side .side-card ul{display:grid;gap:.6rem;margin:0;padding-left:1.2rem}
.contact-side .side-card li{line-height:1.5;padding-left:.15rem}
.contact-side .side-card details{border-top:1px solid var(--cf-mist);padding:.85rem 0}
.contact-side .side-card details:last-child{padding-bottom:0}
.contact-side .side-card summary{align-items:flex-start;cursor:pointer;display:flex;font-weight:600;gap:.65rem;justify-content:space-between;line-height:1.45;list-style:none}
.contact-side .side-card summary::-webkit-details-marker{display:none}
.contact-side .side-card summary::after{color:var(--cf-fjord);content:"+";font-family:"IBM Plex Mono",Consolas,monospace;font-size:1.15rem;font-weight:500;line-height:1;transition:transform .18s ease}
.contact-side .side-card details[open] summary::after{transform:rotate(45deg)}
.contact-side .side-card details p{font-size:.92rem;line-height:1.6;margin:.75rem 1.5rem 0 0}

.contact-form-card .altcha-error,
.contact-form-card .altcha-error *{color:#B3362B!important}

/* ------------------------------
   NIS2-sidan — ljus design
--------------------------------- */
.nis2-page{color:var(--cf-ink-soft)}
.nis2-page > section:first-child{
  background:var(--cf-ink)!important;
  color:#C5CBD0;
  border-bottom:4px solid var(--cf-fjord);
}
.nis2-page > section:first-child h1,
.nis2-page > section:first-child h2{color:var(--cf-sail)}
.nis2-page > section:first-child p,
.nis2-page > section:first-child li{color:#C5CBD0}
.nis2-page > section:not(:first-child):not(.bg-light){
  background:#ffffff!important;
  color:var(--cf-ink-soft);
}
.nis2-page > section h2,
.nis2-page > section h3,
.nis2-page .fw-bold,
.nis2-page .fw-semibold{color:var(--cf-ink)}
.nis2-page > section:first-child .fw-bold,
.nis2-page > section:first-child .fw-semibold{color:var(--cf-sail)}
.nis2-page > section:not(:first-child) p,
.nis2-page > section:not(:first-child) li{color:var(--cf-graphite)}
.nis2-page .text-white-50{color:#C5CBD0!important}
.nis2-page > section:first-child .text-warning{color:var(--cf-signal)!important}
.nis2-page .text-warning{color:var(--cf-fjord)!important}
.nis2-page .bg-light{
  background:var(--cf-sail)!important;
  color:var(--cf-ink-soft);
}
.nis2-page .bg-white,
.nis2-page .card:not(.bg-transparent),
.nis2-page .accordion-item,
.nis2-page .accordion-button,
.nis2-page .accordion-body{
  background:#ffffff;
  color:var(--cf-ink-soft);
}
.nis2-page .accordion-button{color:var(--cf-ink)}
.nis2-page .accordion-body{color:var(--cf-graphite)}
.nis2-page .bg-white .text-muted,
.nis2-page .bg-white .text-secondary{color:var(--cf-graphite)!important}
.nis2-page .btn-light.text-primary{color:var(--cf-fjord)!important}

/* ------------------------------
   Cybersäkerhetslagen — ljus
--------------------------------- */
.cyber-law-page{
  width:min(1080px,92vw);
  margin:0 auto;
  padding:clamp(2.5rem,6vw,4.5rem) 0 clamp(3rem,7vw,5rem);
  color:var(--cf-ink-soft);
}
.cyber-law-page section{
  padding:clamp(1.8rem,4vw,2.8rem) 0;
  border-bottom:1px solid var(--cf-mist);
}
.cyber-law-page .hero{padding-top:0}
.cyber-law-page h1,
.cyber-law-page h2,
.cyber-law-page strong{color:var(--cf-ink)}
.cyber-law-page p,
.cyber-law-page li{color:var(--cf-graphite)}
.cyber-law-page .note{
  margin-top:1.25rem;
  padding:1rem 1.15rem;
  border:1px solid var(--cf-mist);
  border-radius:12px;
  background:var(--cf-breeze);
  color:var(--cf-fjord-deep);
}
.cyber-law-page .cta{
  margin-top:clamp(1rem,3vw,2rem);
  padding:clamp(2rem,5vw,3rem);
  border-radius:12px;
  background:var(--cf-ink);
  color:#C5CBD0;
  text-align:center;
}
.cyber-law-page .cta h2{color:var(--cf-sail)}

.mail-sent-page{
  min-height:calc(100vh - 72px);
  display:grid;
  place-items:center;
  padding:clamp(3rem,8vw,6rem) 1rem;
  background:var(--cf-sail);
  color:var(--cf-ink-soft);
}
.mail-sent-card{
  width:min(640px,92vw);
  padding:clamp(2rem,5vw,3rem);
  border:1px solid var(--cf-mist);
  border-radius:12px;
  background:#ffffff;
  box-shadow:var(--cf-shadow);
  text-align:center;
}
.mail-sent-card h1{color:var(--cf-ink)}
.mail-sent-card p{color:var(--cf-graphite);margin-bottom:0}
