/* Braintec UI r1 — scoped enhancement layer. Bootstrap handles grid/responsive behavior. */
:root{
  --bt-blue:#0070ba;--bt-blue-700:#005f9e;--bt-navy:#0a1120;--bt-text:#142033;
  --bt-muted:#5d6b7f;--bt-line:#dce5ee;--bt-soft:#f4f9fd;--bt-surface:#fff;
  --bt-radius:20px;--bt-shadow:0 12px 32px rgba(10,17,32,.07);
}
.bt-assessment{max-width:1180px;margin-inline:auto;padding:clamp(1rem,2vw,2rem) 1rem 3rem;color:var(--bt-text)}
.bt-assessment .bt-intro{max-width:820px;margin-bottom:1.5rem}
.bt-assessment .bt-section{border:1px solid var(--bt-line);border-radius:var(--bt-radius);background:var(--bt-surface);box-shadow:var(--bt-shadow);overflow:hidden;margin:0 0 1.5rem}
.bt-assessment .bt-section-head{display:flex;align-items:center;gap:.9rem;padding:1rem 1.25rem;border-bottom:1px solid #e9eff5;background:linear-gradient(180deg,#fff,#f8fbfe)}
.bt-assessment .bt-step{display:inline-grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:50%;background:#eaf5fd;border:1px solid #b9dcf4;color:var(--bt-blue);font-weight:800;letter-spacing:.04em}
.bt-assessment .bt-section-title{margin:0;font-size:clamp(1.15rem,1.6vw,1.45rem);line-height:1.2;color:var(--bt-navy)}
.bt-assessment .bt-question{padding:1.25rem}
.bt-assessment .bt-question+.bt-question{border-top:1px solid #edf1f5}
.bt-assessment .bt-question-title{font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:1.35;font-weight:750;color:var(--bt-navy);margin:0 0 .25rem}
.bt-assessment .bt-help{color:var(--bt-muted);margin:0 0 1rem;line-height:1.55}
.bt-assessment .bt-options{--bs-gutter-x:.85rem;--bs-gutter-y:.85rem}
.bt-assessment .bt-option{position:relative;display:flex;align-items:center;gap:.8rem;min-height:76px;height:100%;padding:1rem;border:1px solid #d4dee8;border-radius:16px;background:#fff;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}
.bt-assessment .bt-option:hover{border-color:#9fccec;box-shadow:0 6px 18px rgba(0,112,186,.08)}
.bt-assessment .bt-option:has(input:checked){border-color:var(--bt-blue);background:#f0f8fe;box-shadow:0 0 0 2px rgba(0,112,186,.08)}
.bt-assessment .bt-option input{flex:0 0 auto;width:1.25rem;height:1.25rem;margin:0;accent-color:var(--bt-blue)}
.bt-assessment .bt-option-label{font-size:1rem;font-weight:650;line-height:1.25;overflow-wrap:normal;word-break:normal;hyphens:none}
.bt-assessment .bt-note{padding:.9rem 1rem;border-radius:14px;background:var(--bt-soft);color:#40516a;font-size:.95rem;line-height:1.5}
.bt-assessment .bt-actions{display:flex;gap:.75rem;flex-wrap:wrap;padding-top:.25rem}
.bt-domain-form{padding:clamp(1.1rem,2vw,1.5rem);border:1px solid var(--bt-line);border-radius:var(--bt-radius);background:#fff;box-shadow:var(--bt-shadow)}
.bt-domain-form .form-control{min-height:60px;font-size:1.08rem;border-radius:14px;border-color:#cdd9e4;padding:.85rem 1rem}
.bt-domain-form .form-control:focus{border-color:var(--bt-blue);box-shadow:0 0 0 .25rem rgba(0,112,186,.12)}
.bt-domain-form .btn{min-height:60px;border-radius:14px;padding-inline:1.35rem;font-weight:700}
@media(max-width:575.98px){.bt-assessment{padding-inline:.75rem}.bt-assessment .bt-question,.bt-assessment .bt-section-head{padding:1rem}.bt-assessment .bt-option{min-height:68px}.bt-assessment .bt-actions .btn,.bt-domain-form .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.bt-assessment .bt-option{transition:none}}

/* r3 Bootstrap/legacy-grid interoperability.
   app.css predates Bootstrap and implements .row as CSS Grid while Bootstrap
   still assigns percentage widths to .col-* items. In a CSS Grid context that
   percentage is applied *inside* the grid area, producing the narrow cards
   observed in the r2 rendering. Grid placement remains owned by app.css;
   Bootstrap columns must fill the grid area they are placed into. */
.row > [class^="col-"],
.row > [class*=" col-"]{
  width:100%;
  max-width:100%;
  min-width:0;
}
.cards > [class^="col-"],
.cards > [class*=" col-"]{
  display:flex;
}
.cards > [class^="col-"] > .card,
.cards > [class*=" col-"] > .card{
  width:100%;
  min-width:0;
}

/* r8: a single quiet design system for every public page. */
:root{
  --bg:#f7f9fc;--panel:#fff;--panel-soft:#fff;--text:#18283a;
  --muted:#5f7082;--acc:#0070ba;--acc-2:#005e9e;
  --border:#dce5ee;--radius:20px;--radius-sm:12px;
  --shadow:0 12px 34px rgba(17,47,78,.045);
  --shadow-soft:0 12px 34px rgba(17,47,78,.045);
  --container:1200px;--bt-blue:#0070ba;--bt-navy:#18283a;
  --bt-text:#18283a;--bt-muted:#5f7082;--bt-line:#dce5ee;
  --bt-soft:#f1f7fb;--bt-shadow:0 12px 34px rgba(17,47,78,.045);
}
body{background:var(--bg);color:var(--text);line-height:1.6}
.site-header{background:rgba(255,255,255,.97);border-bottom:1px solid #e7edf2;box-shadow:none}
.site-header .nav-link{color:#253e55;font-weight:650}
.site-header .nav-link:hover{background:#edf5fa;color:var(--acc-2)}
:where(h1,h2,h3){letter-spacing:-.035em}
:where(h1,h2){line-height:1.13}
.text-muted{color:#566a7e!important}
.section{padding-block:clamp(2.6rem,4.5vw,4.4rem)}
.section .section-intro{max-width:72ch;line-height:1.7}
.section-alt{background:#f0f5f9}
.section h2{color:#17314b}
.btn{border-radius:11px;min-height:46px;padding:.7rem 1.15rem;font-weight:700;box-shadow:none;transition:background-color .18s,border-color .18s,transform .18s}
.btn-primary{background:#0070ba;border-color:#0070ba;color:#fff;box-shadow:none}
.btn-primary:hover{background:#005e9e;border-color:#005e9e;box-shadow:0 6px 16px rgba(0,112,186,.12)}
.btn-outline{background:#fff;border-color:#bfcfdb;color:#18425f}
.btn-outline:hover{background:#f0f7fb;border-color:#8ab7d2}
.badge{background:#eaf4fa;border:1px solid #d3e8f3;color:#215b7e;box-shadow:none;font-size:.78rem;font-weight:700;padding:.43rem .7rem;letter-spacing:0}
.card,.card.soft{background:#fff;border:1px solid #dfe8ef;border-radius:20px;box-shadow:var(--shadow-soft);padding:clamp(1.2rem,2vw,1.8rem)}
.cards{row-gap:18px}
.cards .card{transition:transform .18s,box-shadow .18s,border-color .18s}
.cards .card:hover{transform:translateY(-2px);border-color:#b8d6e8;box-shadow:0 16px 36px rgba(17,47,78,.075)}
.cards .stack{display:flex;flex-direction:column;gap:1rem}
.cards .stack>.icon{width:43px;height:43px;padding:10px;flex:none;border-radius:12px;background:#edf6fb;stroke:#0070ba}
.cards .card h3{color:#17314b;line-height:1.3}
.cards .card p{line-height:1.65}
.hero{position:relative;isolation:isolate;min-height:0;background:radial-gradient(circle at 85% 15%,rgba(82,176,227,.15),transparent 34%),linear-gradient(125deg,#f6faff,#eaf4fa 70%,#e5f1f9);color:#152d43}
.hero .row{align-items:center;padding-block:clamp(3rem,5.5vw,5.5rem)!important}
.hero h1{max-width:16ch;font-size:clamp(2.5rem,4.7vw,4.5rem);line-height:1.08;letter-spacing:-.055em;color:#142d45;margin-bottom:1.2rem!important}
.hero .lead{color:#3b586e;max-width:54ch;font-size:clamp(1.05rem,1.5vw,1.22rem);line-height:1.65}
.hero .badges{margin-block:1.35rem!important;gap:.48rem}
.hero-art{z-index:0;opacity:1;filter:none;overflow:hidden}
.hero-art>svg{display:none}
.hero-art::before{content:"";position:absolute;width:min(47vw,550px);aspect-ratio:1;top:50%;right:-8%;transform:translateY(-50%);border:1px solid rgba(0,112,186,.15);border-radius:50%;box-shadow:0 0 0 60px rgba(0,112,186,.04),0 0 0 120px rgba(0,112,186,.025)}
.hero .container,.hero .row{position:relative;z-index:1}
.hero .card.soft{height:auto!important;background:rgba(255,255,255,.95);border:1px solid #d6e6ef;box-shadow:0 22px 52px rgba(28,84,121,.11);padding:clamp(1.5rem,2.5vw,2.2rem)!important}
.hero .card .stack{display:block}
.hero .card .icon{width:44px;height:44px;padding:10px;border-radius:12px;background:#eaf4fa;margin-bottom:1rem}
.hero .card h2{font-size:1.15rem!important}
.hero .bullet-icons li{color:#41596d;margin:.7rem 0}
#who{background:#fff}
#what{background:#f7f9fc}
#method{background:#f0f5f9}
#who .cards,#what>.container>.cards,#method .cards,#check-nis2 .cards{margin-top:1.25rem}
#what>.container>.cards>.col-12.col-md-6.col-lg-3 .card{min-height:0}
#method>.container>.card{border-color:#cfe1ed}
#check-nis2{background:#fff}
#check-nis2 .checklist{line-height:1.65;margin-block:.8rem 1.3rem}
#check-nis2 .cards .btn{align-self:flex-start}
#contact{background:#f0f5f9;color:#18283a}
#contact>.container>.card{background:#fff;border:1px solid #dce5ee;padding:clamp(1.4rem,2.7vw,2.3rem);box-shadow:var(--shadow-soft)}
#contact .card>.stack>.icon{width:43px;height:43px;padding:10px;border-radius:12px;background:#eaf4fa}
#contact .contact-list li{padding-block:.22rem}
#siteFooter{background:#f7f9fc;color:#40566a;border-top:1px solid #e2eaf0}
#siteFooter a{color:#235a7c}
#siteFooter .text-muted{color:#566a7e!important}
.diagnostics-hero{background:linear-gradient(125deg,#f5faff,#e7f3fa);color:#17314b;border-bottom:1px solid #dce9f2}
.diagnostics-hero .lead{color:#486377}
.diagnostics-hero .diagnostics-warning{background:#fff;color:#40566a;border-color:#dce6ec}
.diagnostics-grid{row-gap:18px}
.diagnostics-domain-card{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;background:#f4f9fc!important;border:1px solid #c9e2ee!important}
.diagnostics-domain-card .btn{flex:none}
.diagnostics-domain-card::before{content:"";flex:none;width:46px;height:46px;border:2px solid #64a7ce;border-radius:50%;background:linear-gradient(90deg,transparent 47%,#64a7ce 49%,#64a7ce 51%,transparent 53%),linear-gradient(0deg,transparent 47%,#64a7ce 49%,#64a7ce 51%,transparent 53%);opacity:.9}
.diagnostics-grid .card h2{color:#17314b}
.dsc-hero{position:relative;overflow:hidden;display:flex;align-items:center;min-height:260px;padding:clamp(1.5rem,3vw,2.6rem);border:1px solid #d4e6f1;border-radius:22px;background:radial-gradient(circle at 90% 45%,#d5eaf6,transparent 36%),linear-gradient(110deg,#f7fbfe,#edf6fb);color:#17314b}
.dsc-hero-copy{position:relative;z-index:1;max-width:650px}
.dsc-hero h1{color:#17314b;letter-spacing:-.045em}
.dsc-hero .lead{color:#466175}
.dsc-hero .dsc-back{display:inline-block;margin-bottom:.9rem;color:#006aa9;font-weight:700}
.dsc-eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:#006aa9}
.dsc-method{color:#526b7d;max-width:62ch;font-size:.93rem;line-height:1.6;margin:0}
.dsc-illustration{position:absolute;right:2%;width:min(31%,250px);color:#0070ba;opacity:.82}
.bt-domain-form{background:#fff;border:1px solid #dce5ee;border-radius:20px;box-shadow:var(--shadow-soft)}
.bt-domain-form .form-control{border-radius:11px}
.dsc-score-card{display:flex;align-items:center;gap:1.5rem;padding:1.4rem 1.8rem;border:1px solid #dce5ee;border-radius:20px;background:#fff;box-shadow:var(--shadow-soft)}
.dsc-score-ring{width:106px;height:106px;flex:none;display:flex;align-items:center;justify-content:center;flex-direction:column;border-radius:50%;background:radial-gradient(closest-side,#fff 78%,transparent 80%),conic-gradient(#0070ba var(--dsc-angle),#dce8ef 0);color:#17314b}
.dsc-score-ring strong{font-size:2rem;line-height:1;font-variant-numeric:tabular-nums}
.dsc-score-ring span{font-size:.8rem;color:#587084}
.dsc-score-label{font-size:.75rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#006aa9}
.dsc-grade{font-size:1.4rem;margin:.25rem 0;color:#17314b}
.dsc-score-card p{color:#526b7d}
.dsc-results .row>.col-12>.card{border:1px solid #dce5ee!important;box-shadow:var(--shadow-soft)!important}
.dsc-results .row>.col-12>.card h2{color:#17314b}
.dsc-explain{background:#fff;border:1px solid #dce5ee;border-radius:20px;padding:clamp(1.2rem,2vw,1.7rem);margin-top:1.3rem}
.dsc-explain p{line-height:1.65;color:#465e72;margin:.7rem 0}
.dsc-guidance{padding:1rem 1.2rem;border-radius:12px;background:#edf6fb;border:1px solid #d3e8f3}
.bt-assessment{padding-bottom:2rem}
.bt-assessment .bt-section{box-shadow:var(--shadow-soft);border-color:#dce5ee}
.bt-assessment .bt-section-head{background:#f5f9fc;border-color:#e3edf3}
.bt-assessment .bt-step{background:#e4f2fa;border-color:#c7e2f2;color:#006aa9}
.bt-assessment .bt-option{border-radius:12px}
.bt-assessment .bt-option:has(input:checked){box-shadow:0 0 0 2px rgba(0,112,186,.1)}
.bt-assessment .bt-note{background:#eff6fb}
.res-card{background:#f5f9fc!important;border:1px solid #d5e6f0!important;border-radius:20px!important;box-shadow:var(--shadow-soft)!important}
.quote-page{padding-block:clamp(1.7rem,3.5vw,3.4rem)}
.quote-page>h1{position:relative;margin-bottom:.65rem!important;font-size:clamp(2rem,3vw,3rem);color:#17314b;letter-spacing:-.045em}
.quote-page>form.card,.quote-summary{border:1px solid #dce5ee;box-shadow:var(--shadow-soft)}
.quote-progress-step:not([hidden]){border:1px solid #dce6ed;border-radius:14px;background:#f8fbfd;padding:clamp(1rem,2vw,1.4rem)}
.quote-progress-step:not([hidden]) .legend{color:#17314b}
.quote-page .q label:has(input:checked){border-color:#81bddd!important;background:#edf7fc!important}
.quote-page .quote-status,.quote-page .quote-summary{border-radius:18px}
.quote-page #contact{background:transparent;color:#18283a;padding:1.4rem 0 0!important}
.quote-page #contact>.container{padding:0!important}
.quote-page #contact>.container>h2{margin-bottom:.8rem}
.quote-page #contact>.container>.card{background:#fff;border:1px solid #dce5ee;box-shadow:var(--shadow-soft)}
html{scroll-padding-top:calc(var(--hdr-h) + 16px)}
@media(max-width:767px){
  .section{padding-block:2.5rem}
  .hero .row{padding-block:3rem!important}
  .hero h1{font-size:clamp(2.3rem,10vw,3.2rem)}
  .hero-art::before{width:70vw;right:-40%;opacity:.55}
  .hero .card.soft{margin-top:.2rem}
  .dsc-hero{min-height:0}
  .dsc-illustration{width:160px;right:-40px;top:-30px;opacity:.17}
  .dsc-score-card{padding:1rem;gap:1rem}
  .dsc-score-ring{width:85px;height:85px}.dsc-score-ring strong{font-size:1.6rem}
  .diagnostics-domain-card{align-items:flex-start;flex-direction:column}
  .cards .card:hover{transform:none}
}
@media(prefers-reduced-motion:reduce){.cards .card,.btn{transition:none}}
@media print{
  .hero,.diagnostics-hero,.dsc-hero,#contact{background:#fff!important;color:#18283a!important}
  .hero-art,.dsc-illustration{display:none!important}
  .card,.bt-assessment .bt-section{box-shadow:none!important}
}

/* r9: guided forms; without JavaScript the complete questionnaires remain visible. */
.bt-wizard-active>.bt-section[hidden]{display:none!important}
.bt-wizard-active .bt-question[hidden]{display:none!important}
.bt-wizard-progress,.quote-wizard-progress{margin:0 0 1.1rem;padding:.75rem 0;color:#355b75;font-weight:700;font-size:.91rem}
.bt-wizard-track,.quote-wizard-track{height:6px;margin-top:.65rem;background:#dcecf5;border-radius:99px;overflow:hidden}
.bt-wizard-track>span,.quote-wizard-track>span{display:block;height:100%;background:#0070ba;border-radius:99px;transition:width .2s}
.bt-wizard-nav,.quote-wizard-nav{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:1rem}
.bt-wizard-nav [hidden],.quote-wizard-nav [hidden]{display:none!important}
.bt-wizard-error,.quote-wizard-error{width:100%;margin:.3rem 0 0;color:#9b362c;font-size:.94rem}
.bt-wizard-active>.bt-actions[hidden]{display:none!important}
.quote-progress-form.is-wizard>[data-progress-step]:not(.is-current){display:none!important}
.quote-progress-form.is-wizard>.quote-form-actions:not(.is-current){display:none!important}
.quote-urgency-extra{display:block;color:#9a5511;font-size:.85rem;font-weight:700;margin-top:.2rem}
.bt-error-page{min-height:58vh;display:grid;align-items:center;padding-block:clamp(4rem,10vw,8rem)}
.bt-error-panel{display:grid;grid-template-columns:minmax(130px,260px) 1fr;align-items:center;gap:clamp(1.5rem,6vw,5rem);max-width:980px;margin:auto;width:100%;padding:clamp(2rem,5vw,4.5rem);background:#f5f9fc;border:1px solid #dce8f0;border-radius:28px}
.bt-error-mark{display:grid;place-items:center;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 28%,#fafdff,#dbeefa 68%,#c8e4f5);border:1px solid #b5d9ed;color:#006cae;font-size:clamp(3.5rem,8vw,6.5rem);font-weight:750;letter-spacing:-.07em}
.bt-error-eyebrow{text-transform:uppercase;letter-spacing:.12em;color:#0070ba;font-size:.76rem;font-weight:750;margin:0 0 .9rem}
.bt-error-copy h1{color:#152d44;letter-spacing:-.035em;font-size:clamp(2rem,4vw,3.5rem);line-height:1.1;margin:0 0 1rem}
.bt-error-copy p:not(.bt-error-eyebrow){color:#4b6071;line-height:1.65;max-width:56ch;margin:0 0 1.7rem}
@media(max-width:640px){.bt-error-panel{grid-template-columns:1fr;border-radius:20px}.bt-error-mark{width:135px;font-size:3.75rem}}
@media(max-width:575px){
  .bt-wizard-nav>.btn,.quote-wizard-nav>.btn{flex:1}
  .bt-wizard-active>.bt-actions .btn{width:100%}
}
@media print{
  .bt-wizard-active>.bt-section[hidden],
  .bt-wizard-active .bt-question[hidden],
  .quote-progress-form.is-wizard>[data-progress-step]:not(.is-current){display:block!important}
  .bt-wizard-nav,.quote-wizard-nav,.bt-wizard-progress,.quote-wizard-progress{display:none!important}
}
