* { box-sizing: border-box; }
html { scroll-padding-top: 2rem; }
body { margin: 0; }
body > nav, main, body > footer { width: min(62rem, calc(100% - 4rem)); margin-inline: auto; }
body > nav { padding-block: 1rem; }
nav ol { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem 1rem; list-style: none; padding: 0; margin: 0; }
nav li { display: flex; align-items: center; gap: 1rem; min-height: 44px; }
nav a { display: inline-flex; align-items: center; min-width: 44px; min-height: 44px; padding-inline: .25rem; }
main > header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 15rem); gap: 3.5rem; align-items: center; padding: 2.75rem 0 3.5rem; }
main > header > div { min-width: 0; max-width: 44rem; }
main > header aside { padding: 2rem 1.5rem; }
main > header:not(:has(> aside)) { grid-template-columns: minmax(0, 1fr); padding-block: 3rem 4rem; }
main > header:not(:has(> aside)) > div { max-width: 45rem; }
aside dl, aside dt, aside dd { margin: 0; }
aside dt { margin-bottom: .625rem; }
aside dd + dt { margin-top: 1.5rem; }
p { margin: 0 0 1.1rem; }
h1, h2, h3, h4, h5, h6 { margin: 0; }
h1 { margin: 1rem 0 1.5rem; }
h2 { margin-bottom: 1.25rem; }
h3 { margin-bottom: 1.25rem; }
a, button, input, summary { touch-action: manipulation; }
button { min-width: 44px; min-height: 44px; }
[data-kicker] { margin-bottom: 1rem; }
[data-next] { display: inline-flex; max-width: 100%; min-width: 44px; min-height: 52px; align-items: center; gap: 1rem; padding: .8rem 1.2rem; }
[data-next] span { margin-left: auto; flex: 0 0 auto; }
[data-sheet] { padding: 0; }
[data-sheet] > header { padding: 2.5rem 3rem 2rem; margin-bottom: 1.5rem; }
[data-sheet] > header > p { max-width: 46ch; }
[data-sheet] > header > h2 { max-width: 24ch; }
[data-sheet] > section { display: grid; grid-template-columns: 10rem minmax(0, 1fr); gap: 3rem; padding: 2.5rem 3rem; margin-bottom: 1.5rem; }
[data-sheet] > section > div { max-width: 64ch; min-width: 0; }
[data-sheet] > section > aside { padding-top: .5rem; }
[data-checks] { list-style: none; padding: 0; margin: 1rem 0 1.5rem; }
[data-checks] li { margin: 0; }
[data-checks] label { display: flex; align-items: flex-start; gap: .625rem; min-height: 48px; padding-block: .25rem; cursor: pointer; }
[data-checks] input { flex: 0 0 44px; width: 44px; height: 44px; margin: 0; position: relative; }
[data-checks] label span { padding-block: .45rem; }
details { margin-top: 1.5rem; }
summary { min-height: 48px; padding: .8rem .4rem .8rem 0; cursor: pointer; }
[data-evidence-body] { margin-block: 1rem; padding: 1.5rem; }
[data-evidence-body] ul { list-style: none; padding: 0; margin: 0; }
[data-evidence-body] li + li { margin-top: .5rem; }
[data-evidence-body] a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-width: 44px; min-height: 48px; padding-block: .625rem; }
[data-evidence-body] a span { flex: 0 0 auto; }
[data-map] { margin: 3rem 0; padding: 2.5rem 3rem; }
[data-map] figcaption { margin-bottom: 2rem; }
[data-map] dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; margin: 0; }
[data-map] dl > div { min-width: 0; padding-top: 1.25rem; }
[data-map] dt, [data-map] dd { margin: 0; }
[data-map] dt { margin-bottom: .75rem; }
[data-prices] { margin: 2rem 0; }
[data-prices] figcaption { margin-bottom: 1.5rem; }
[data-prices] dl { margin: 0; }
[data-prices] dl > div { padding: 1.25rem 0; display: grid; grid-template-columns: 8rem minmax(0, 1fr); gap: 1.5rem; }
[data-prices] dt, [data-prices] dd { margin: 0; }
[data-ending] { margin: 3rem 0; padding: 2.5rem 3rem; }
[data-ending] > p { max-width: 50ch; }
body > footer { padding: 2rem 3rem; margin-bottom: 2rem; }
body > footer p { max-width: 65ch; margin: 0; }
[data-skip] { position: absolute; z-index: 10; inset: .5rem auto auto 1rem; min-height: 44px; padding: .75rem 1rem; transform: translateY(-200%); }
[data-skip]:focus { transform: translateY(0); }
dialog { position: fixed; inset: 1rem 1rem 1rem auto; width: min(34rem, calc(100% - 2rem)); max-width: calc(100% - 2rem); max-height: calc(100dvh - 2rem); height: fit-content; margin: auto 0; padding: 4rem 2rem 2rem; overflow: auto; }
dialog [data-evidence-body] { margin: 0; padding: 0; }
dialog button { position: absolute; top: .75rem; right: .75rem; display: grid; place-items: center; padding: .625rem; cursor: pointer; }
body[data-evidence-open] { overflow: hidden; }
@media (max-width: 1000px) {
  main > header { grid-template-columns: minmax(0, 1fr) minmax(0, 12rem); gap: 2rem; }
  main > header aside { padding: 1.75rem 1.25rem; }
  [data-sheet] > header, [data-sheet] > section, [data-map], [data-ending], body > footer { padding-inline: 2rem; }
  [data-sheet] > section { grid-template-columns: 8rem minmax(0, 1fr); gap: 2rem; }
  [data-prices] dl > div { grid-template-columns: 1fr; gap: .75rem; }
}
@media (max-width: 760px) {
  main > header { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; }
  main > header > aside { max-width: 32rem; }
  [data-sheet] > section { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  [data-sheet] > section > aside { max-width: 32rem; }
  [data-map] dl { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
}
@media (max-width: 620px) {
  body > nav, main, body > footer { width: calc(100% - 2rem); }
  body > nav { padding-block: .75rem; }
  main > header, main > header:not(:has(> aside)) { padding-block: 1.5rem 2.5rem; }
  main > header > aside { padding: 1.5rem; }
  [data-sheet] > header, [data-sheet] > section, [data-map], [data-ending], body > footer { padding: 1.75rem 1.25rem; }
  [data-sheet] > section > div { width: 100%; }
  [data-map], [data-ending] { margin-block: 2rem; }
  [data-map] dl { gap: 1.5rem 1rem; }
  [data-evidence-body] { padding: 1rem; }
  dialog { padding: 4rem 1.25rem 1.5rem; }
}
@media print {
  @page { size: auto; margin: 16mm; }
  body > nav, main, body > footer { width: 100%; }
  body > nav { padding: 0; }
  main > header { padding: 1rem 0 2rem; grid-template-columns: minmax(0, 1fr) 11rem; gap: 2rem; }
  main > header aside { padding: 1rem; }
  [data-sheet] > header { padding: 1rem 0; margin-bottom: 1rem; }
  [data-sheet] > section { grid-template-columns: 9rem minmax(0, 1fr); gap: 1.5rem; padding: 1.5rem 0; margin: 0; break-inside: avoid; }
  [data-sheet] > section aside { padding: 0; }
  [data-checks] label { padding: 0; min-height: 32px; }
  [data-checks] input { width: 32px; height: 32px; flex-basis: 32px; }
  [data-checks] label span { padding-top: .25rem; }
  [data-print-hint], [data-skip], dialog { display: none !important; }
  details [data-evidence-body] { display: block !important; padding: .5rem 0; }
  [data-evidence-body] a { min-height: auto; }
  [data-map], [data-ending] { margin-block: 1rem; padding: 1rem 0; break-inside: avoid; }
  [data-map] dl { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  body > footer { padding: 1rem 0; margin: 0; }
}
