/* Original DAH layout adapted to native LS7. Fira Sans and Open Sans are local. */
@font-face {
  font-family:"Fira Sans";
  src:url("../files/fonts/FiraSans-Regular.ttf") format("truetype");
  font-weight:400;
  font-display:swap
}
@font-face {
  font-family:"Fira Sans";
  src:url("../files/fonts/FiraSans-Medium.ttf") format("truetype");
  font-weight:500;
  font-display:swap
}
@font-face {
  font-family:"Fira Sans";
  src:url("../files/fonts/FiraSans-SemiBold.ttf") format("truetype");
  font-weight:600;
  font-display:swap
}
@font-face {
  font-family:"Fira Sans";
  src:url("../files/fonts/FiraSans-Bold.ttf") format("truetype");
  font-weight:700;
  font-display:swap
}
:root {
  --dah-blue:#0064fa;
  --dah-light:#cbe0ff;
  --dah-dark:#243b56;
  --dah-border:#b7b7b7;
  --dah-header:60px;
  --dah-nav-height:82px;
  --bs-primary:#0064fa
}
body {
  font-family:"Fira Sans",sans-serif;
  color:#444;
  background:white;
  font-size:16px;
  line-height:1.5;
  padding-bottom:20px
}
h1,h2,h3,h4,h5,h6,button,input,select,textarea,.ls-label-question {
  font-family:"Fira Sans",sans-serif
}
p,th,td {
  font-family:"Open Sans",sans-serif
}
h1,h2,h3,h4 {
  color:#222
}
p {
  margin:0 0 16px
}
a,.text-info {
  color:var(--dah-blue)
}
#outerframeContainer {
  width:100%;
  max-width:1600px;
  padding:0;
  margin:0 auto;
  word-wrap:normal;
  hyphens:none
}
#main-row {
  margin:0
}
.space-col {
  margin-top:0;
  margin-bottom:0
}
.navbar {
  background:white!important;
  border-bottom:1px solid var(--dah-border);
  min-height:60px;
  padding:6px 24px
}
.navbar-brand {
  color:#222;
  padding:0
}
.navbar .logo-container {
  display:block!important
}
.navbar .logo-container>img {
  height:40px;
  max-height:40px;
  width:auto;
  padding:0
}
.nav-link {
  color:var(--dah-dark)
}
.nav-link:hover {
  color:var(--dah-blue)
}
.btn-primary,#ls-button-submit {
  background:var(--dah-blue);
  border-color:var(--dah-blue);
  color:white
}
.btn-primary:hover,#ls-button-submit:hover {
  background:#0064fad1;
  border-color:#0064fad1
}
#ls-button-previous,.btn-outline-primary {
  background:white;
  color:var(--dah-blue);
  border:1px solid var(--dah-blue)
}
#ls-button-previous:hover {
  background:var(--dah-light)
}
button[id*="ls-button"] {
  border-radius:5px;
  padding:10px 18px;
  font-size:18px
}
.brand-divider {
  height:8px;
  border-radius:10px;
  background:linear-gradient(90deg,#609fff 0%,#0064fa 65%);
  margin:0 0 20px;
  font-size:0
}
.group-outer-container,.group-container {
  padding:0
}
.question-container {
  margin:0 0 32px;
  padding:0;
  border:0;
  border-radius:0;
  background:white;
  color:#444
}
.question-container>div {
  padding-left:0;
  padding-right:0
}
.question-title-container,.question-text {
  background:white;
  color:#222
}
.ls-label-question {
  font-size:19px;
  font-weight:400
}
.question-valid-container {
  text-align:left;
  font-size:14px
}
.ls-em-success {
  display:none
}
.answer-container {
  border:0;
  padding-top:8px;
  padding-bottom:8px
}
.question-help-container {
  border:0;
  margin-top:5px;
  font-size:14px;
  font-weight:500
}
/* The original welcome copy and the nine vertically stacked dimensions. */
.dah-intro-group .question-container {
  margin:0
}
.dah-intro-group .question-title-container {
  width:100%
}
.dah-intro {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  font-size:16px;
  font-weight:400
}
.dah-intro-copy {
  padding:30px
}
.dah-intro-copy h1 {
  font-size:36.8px;
  line-height:1.15;
  font-weight:600;
  margin:0 0 26px
}
.dah-intro-copy p {
  font-size:16px;
  font-weight:400
}
.dah-intro-copy .normal {
  font-weight:500
}
.dah-dimensions {
  list-style:none;
  padding:45px 30px 0 22px;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:10px
}
.dah-dimensions li {
  display:flex;
  align-items:center;
  gap:5px;
  min-height:65px;
  padding:16px 25px;
  border:1px solid var(--dah-border);
  border-radius:5px;
  background:white;
  color:#222;
  font:700 20px/1.25 "Fira Sans",sans-serif
}
.dah-dimensions li span {
  flex:0 0 auto
}
.dah-dimensions strong {
  font-weight:700
}
.dah-intro--no-tiles { grid-template-columns: 1fr; }
.dah-intro[data-intro-layout="grid"] .dah-dimensions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: start;
}
.dah-intro[data-intro-layout="grid"] .dah-dimensions li { padding: 16px; }
@media(max-width: 1000px) {
  .dah-intro[data-intro-layout="grid"] .dah-dimensions { grid-template-columns: 1fr; }
}
body:has(.dah-intro) .top-container {
  display:none
}
body:has(.dah-intro) {
  padding-bottom:112px
}
body:has(.dah-intro) #navigator-container {
  position:fixed;
  bottom:0;
  left:0;
  width:100%;
  z-index:100;
  background:white;
  border-top:1px solid var(--dah-border);
  padding:22px 30px;
  margin:0
}
/* Description at left, native questions at right, as in autodiagnostic. */
.dah-question-layout {
  display:grid;
  grid-template-columns:25% 75%;
  align-items:start
}
.dah-group-info {
  position:sticky;
  top:var(--dah-header);
  padding:20px 40px;
  min-height:calc(100dvh - var(--dah-header) - var(--dah-nav-height) - 10px);
  border-left:1px solid var(--dah-border);
  border-right:1px solid var(--dah-border)
}
.dah-group-info .group-title {
  overflow-wrap:anywhere;
  hyphens:auto;
  font:600 29px/1.2 "Fira Sans",sans-serif;
  margin:30px 0 20px;
  text-align:left
}
.dah-group-info .group-description {
  font:16px/1.5 "Open Sans",sans-serif
}
.dah-question-main {
  min-width:0
}
.dah-question-layout>.dah-question-main {
  padding:20px 40px 0
}
.dah-instructions {
  margin:24px 0
}
.dah-instructions summary {
  display:flex;
  align-items:center;
  gap:10px;
  list-style:none;
  cursor:pointer;
  color:#222;
  font:400 25.6px/1.25 "Fira Sans",sans-serif
}
.dah-instructions summary::-webkit-details-marker {
  display:none
}
.dah-help-icon {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  flex:0 0 23px;
  height:23px;
  color:var(--dah-blue);
  border:2px solid currentColor;
  border-radius:50%;
  font:600 17px/1 "Fira Sans",sans-serif
}
.dah-instructions-body {
  margin-top:24px;
  padding:16px;
  border:1px solid var(--dah-blue);
  border-radius:10px;
  background:var(--dah-light);
  font-size:14px
}
.dah-instructions-body h4 {
  font-size:20px
}
.dah-instructions-body p:last-child {
  margin-bottom:0
}
.mytooltip {
  cursor:pointer;
  text-decoration:underline;
  font-weight:700;
  color:var(--dah-blue)
}
.mytooltip:focus-visible,.dah-instructions summary:focus-visible {
  outline:2px solid var(--dah-blue);
  outline-offset:3px
}
.dah-tooltip {
  position:fixed;
  z-index:9999;
  max-width:min(276px,calc(100vw - 16px));
  padding:9px 14px;
  background:#333;
  color:white;
  border:1px solid #333;
  border-radius:0;
  font:13px/1.45 "Fira Sans",sans-serif;
  box-shadow:0 5px 10px #0003
}
/* Five native radio inputs with a decorative animated fill;
no cloned answers. */
.dah-criterion .ls-table-wrapper {
  position:relative
}
.dah-criterion table {
  width:100%;
  table-layout:fixed;
  margin:0;
  position:relative;
  z-index:1;
  font-size:14px;
  border-collapse:collapse;
  border:0
}
.dah-criterion col:first-child,.dah-criterion thead tr>:first-child,.dah-criterion tbody th {
  display:none
}
.dah-criterion col:not(:first-child) {
  width:20%!important
}
.dah-criterion table.ls-answers thead .ls-heading th {
  overflow-wrap:anywhere;
  hyphens:auto;
  vertical-align:top;
  text-align:left;
  font:500 14px/1.45 "Open Sans",sans-serif;
  color:#444;
  padding:8px;
  border:1px solid #ddd;
  background:white
}
.dah-criterion table.ls-answers tbody td.answer-item {
  padding:0;
  text-align:center;
  vertical-align:middle;
  border:0;
  background:transparent;
  box-shadow:none
}
.dah-criterion table.ls-answers tbody td.answer-item+td {
  border-left:1px solid var(--dah-border)
}
.dah-criterion input[type="radio"] {
  position:absolute;
  opacity:0;
  width:1px;
  height:1px;
  margin:0
}
.dah-criterion .radio-item label.dah-radio-label {
  position:relative;
  display:flex;
  justify-content:center;
  align-items:center;
  width:100%;
  height:auto;
  min-height:40px;
  padding:8px 0;
  margin:0;
  cursor:pointer;
  clip:auto;
  overflow:visible
}
.dah-criterion label::before,.dah-criterion label::after {
  display:none!important
}
.dah-answer-label {
  display:none
}
.dah-criterion .radio-item .dah-radio-dot {
  position:static;
  left:auto;
  overflow:visible;
  clip:auto;
  display:block;
  width:16px;
  height:16px;
  flex:0 0 16px;
  background:white;
  border:1px solid #333;
  border-radius:50%
}
.dah-criterion input:checked+label .dah-radio-dot {
  background:#0011ff
}
.dah-criterion input:focus-visible+label .dah-radio-dot {
  outline:3px solid var(--dah-blue);
  outline-offset:3px
}
.dah-radio-track {
  max-width:100%;
  position:absolute;
  pointer-events:none;
  height:22px;
  border-radius:20px;
  z-index:0;
  overflow:hidden
}
.dah-radio-fill {
  display:block;
  height:100%;
  width:0;
  border-radius:20px 0 0 20px;
  background:#cfe2fe;
  transition:width .2s ease-out
}
.top-container {
  position:fixed;
  bottom:0;
  left:0;
  width:100%;
  height:10px;
  margin:0!important;
  padding:0;
  z-index:101
}
.top-container .container-fluid {
  padding:0
}
.top-container .progress {
  height:10px;
  padding:0;
  border-radius:0
}
.top-container .progress-bar {
  background:var(--dah-blue);
  font-size:0
}
#navigator-container {
  padding:36px 40px 40px;
  margin:0
}
.dah-result-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:32px;
  margin:28px 0
}
#dah-results, .dah-completion {
  max-width:1200px;
  margin:auto;
  padding:30px
}
.dah-score {
  font-size:24px;
  font-weight:700;
  color:var(--dah-blue)
}
#dah-radar svg {
  width:100%;
  max-height:460px
}
[hidden] {
  display:none!important
}
@media(min-width:1440px) {
  .dah-group-info .group-title {
    font-size:41.6px
  }
  .dah-question-layout>.dah-question-main {
    border-right:1px solid var(--dah-border)
  }
}
@media(min-width:768px) and (max-width:1199px) {
  .dah-question-layout {
    grid-template-columns:30% 70%
  }
  .dah-group-info,.dah-question-layout>.dah-question-main {
    padding:16px 24px
  }
  .dah-group-info .group-title {
    font-size:26px
  }
}
@media(max-width:767px) {
  .navbar {
    padding:8px 16px
  }
  .dah-intro,.dah-question-layout,.dah-result-grid {
    grid-template-columns:1fr
  }
  .dah-intro-copy {
    padding:24px
  }
  .dah-intro-copy h1 {
    font-size:32px
  }
  .dah-dimensions {
    padding:0 24px 24px
  }
  .dah-dimensions li {
    padding:14px 20px;
    font-size:20px
  }
  body:has(.dah-intro) #navigator-container {
    padding:18px 24px
  }
  body:has(.dah-intro) #navigator-container>.col-6 {
    width:100%
  }
  body:has(.dah-intro) #navigator-container>.text-start {
    display:none
  }
  body:has(.dah-intro) #ls-button-submit {
    display:block;
    margin:auto;
    min-width:70%;
    max-width:100%;
    white-space:normal
  }
  .dah-group-info {
    position:static;
    min-height:0;
    border:0;
    padding:24px 24px 0
  }
  .dah-group-info .group-title {
    font-size:32px;
    margin:0 0 20px
  }
  .dah-question-layout>.dah-question-main {
    padding:0 24px
  }
  .dah-instructions summary {
    font-size:24px
  }
  .dah-criterion table,.dah-criterion tbody,.dah-criterion tr {
    display:block;
    width:100%
  }
  .dah-criterion thead,.dah-criterion colgroup,.dah-radio-track {
    display:none
  }
  .dah-criterion table.ls-answers tbody td.answer-item {
    display:block;
    text-align:left;
    width:100%;
    border:0
  }
  .dah-criterion .radio-item label.dah-radio-label {
    justify-content:flex-start;
    align-items:flex-start;
    gap:12px;
    padding:12px 0;
    font:400 14px/1.5 "Open Sans",sans-serif
  }
  .dah-criterion .radio-item .dah-radio-label .dah-answer-label,.dah-criterion .radio-item .dah-radio-label .dah-answer-label span {
    position:static;
    left:auto;
    top:auto;
    width:auto;
    height:auto;
    overflow:visible;
    clip:auto
  }
  .dah-criterion .radio-item .dah-radio-label .dah-answer-label {
    display:block
  }
  .dah-radio-dot {
    margin-top:3px
  }
  .dah-criterion input:checked+label {
    font-weight:600
  }
  #navigator-container {
    padding:20px 24px 30px
  }
  #dah-results, .dah-completion {
    padding:24px
  }
}
@media(prefers-reduced-motion:reduce) {
  .dah-radio-fill {
    transition:none
  }
}
@media print {
  .navbar,.top-container,.navbar-action-link,#navigator-container,#dah-pdf,#dah-observatoire,footer {
    display:none!important
  }
  body {
    background:white;
    padding:0!important
  }
  #dah-results, .dah-completion {
    font-size:11pt
  }
  .dah-result-grid {
    gap:16px;
    break-inside:avoid
  }
  #dah-scores {
    font-size:10pt
  }
}

/* Navigation and validation remain available without moving the page layout. */
html {
  scroll-padding-top: calc(var(--dah-header) + 16px);
  scroll-padding-bottom: calc(var(--dah-nav-height) + 30px);
}
body:has(#navigator-container) {
  padding-bottom: calc(var(--dah-nav-height) + 24px);
}
#navigator-container, body:has(.dah-intro) #navigator-container {
  position: fixed;
  bottom: 10px;
  left: 0;
  width: 100%;
  min-height: 78px;
  align-items: center;
  padding: 14px 30px;
  margin: 0;
  background: white;
  border-top: 1px solid var(--dah-border);
  z-index: 1030;
}
body:has(.dah-intro) #navigator-container { bottom: 0; }
#survey-nav {
  display: flex;
  align-items: center;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
#survey-nav > .container-fluid { min-height: 60px; align-items: center; }
#survey-nav .logo-container { display: flex !important; align-items: center; margin-block: 0; float: none; }
#survey-nav .logo { display: block; }
#survey-nav #navbar { padding-top: 0 !important; }
/* Index state stays visible as neutral/current styling, not warning colours. */
.index-menu-full .dropdown-menu .index-item,
.index-menu-full .dropdown-menu .index-item > a,
.index-menu-full .dropdown-menu .dropdown-item,
.index-button-full .index-item {
  color: var(--dah-dark) !important;
  background: white !important;
}
.index-menu-full .dropdown-menu .index-item-current,
.index-menu-full .dropdown-menu .index-item-current > a,
.index-menu-full .dropdown-menu .index-item > a:hover,
.index-button-full .index-item-current {
  color: var(--dah-blue) !important;
  background: #edf4ff !important;
}
.ls-questions-have-errors {
  position: fixed;
  left: 50%;
  bottom: calc(var(--dah-nav-height) + 24px);
  transform: translateX(-50%);
  z-index: 1040;
  width: min(680px, calc(100vw - 32px));
  max-height: 32dvh;
  overflow: auto;
  margin: 0;
  padding: 14px 44px 14px 18px;
  border: 1px solid #d58b83;
  border-radius: 6px;
  background: #fff5f3;
  color: #9e261c;
  box-shadow: 0 5px 20px #0002;
  font: 400 14px/1.5 "Open Sans", sans-serif;
}
.question-valid-container, .question-help-container,
.question-valid-container .text-info, .question-help-container .text-info {
  color: #555 !important;
  font-weight: 400;
}
.question-valid-container .text-danger, .question-valid-container .ls-em-error {
  color: #b42318 !important;
  font-weight: 400;
}
.question-valid-container .fa, .question-valid-container .ri-error-warning-fill { display: none; }
.question-valid-container .ls-questionhelp::before, .question-help-container .ls-questionhelp::before { content: none; }
.question-valid-container .ls-questionhelp, .question-help-container .ls-questionhelp { margin-left: 0; padding-left: 0; }
.question-container.input-error, .question-container.input-error .question-title-container,
.question-container.input-error .answer-container { background: white; }
.input-error .asterisk { font-size: inherit; margin-top: 0; }
/* Restore the original technical-cookie notice with native dialog behaviour. */
.dah-cookie-dialog {
  width: min(540px, calc(100vw - 32px));
  max-height: calc(100dvh - 32px);
  padding: 26px;
  border: 1px solid #ddd;
  border-radius: 6px;
  color: #333;
  box-shadow: 0 12px 40px #0004;
}
.dah-cookie-dialog::backdrop { background: #0006; }
.dah-cookie-dialog h2 { font: 600 22px/1.3 "Fira Sans", sans-serif; margin-bottom: 20px; }
.dah-cookie-dialog p { font: 400 16px/1.5 "Open Sans", sans-serif; }
.dah-cookie-dialog .dah-cookie-actions { text-align: right; margin-top: 22px; }
#dah-results h1, .dah-completion h1 { font-size: 30px; font-weight: 700; margin-bottom: 24px; }
#dah-level { font-size: 22px; font-weight: 700; color: var(--dah-blue); }
#dah-level-description { color: #222; font: 400 17px/1.5 "Fira Sans", sans-serif; }
#dah-results .dah-score { color: #222; font-size: 20px; }
#dah-radar { display: flex; align-items: center; min-width: 0; }
#dah-radar svg { width: 100%; height: auto; max-height: none; }
.dah-radar-hit { cursor: pointer; }
.dah-radar-hit:focus-visible { outline: 2px solid var(--dah-blue); outline-offset: 2px; }
.dah-radar-point:hover .dah-radar-mark, .dah-radar-point:focus-within .dah-radar-mark {
  fill: #0064fa;
  stroke: #0064fa;
  stroke-width: 3px;
}
.dah-radar-tooltip { pointer-events: none; }
#dah-observatoire-section { border-top: 1px solid #ddd; margin-top: 28px; padding-top: 22px; }
#dah-observatoire-section h2 { font-size: 21px; }
#dah-score-details { margin: 20px 0; }
#dah-score-details summary { color: var(--dah-blue); cursor: pointer; }
#dah-pdf-status { font-size: 14px; margin: 8px 0; }
@media (max-width: 767px) {
  #navigator-container, body:has(.dah-intro) #navigator-container { padding: 12px 16px; }
  .dah-criterion table.ls-answers, .dah-criterion table.ls-answers tbody,
  .dah-criterion table.ls-answers tbody tr, .dah-criterion table.ls-answers tbody td.answer-item {
    border: 0 !important;
    outline: 0;
    box-shadow: none;
  }
  .dah-criterion table.ls-answers tbody td.answer-item + td { border-left: 0; }
}
@media print {
  .ls-questions-have-errors, .dah-cookie-dialog, .dah-radar-tooltip, #dah-pdf-status { display: none !important; }
  body:has(#navigator-container) { padding-bottom: 0 !important; }
  #dah-results { padding: 0; }
}
