/* Structure and shared elements. Visual theme lives in refresh.css. */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 1.5rem; }
body { margin: 0; font: 1rem/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif; }
a { color: inherit; text-underline-offset: .25em; }
h1,h2,h3,p { margin-top: 0; }
h1,h2,h3 { line-height: 1.12; }
p:last-child { margin-bottom: 0; }
.wrap { width: min(1200px,calc(100% - 5rem)); margin-inline: auto; }
.skip { position: absolute; top: -100px; left: 1rem; background: white; padding: 1rem; z-index: 10; }
.skip:focus { top: 1rem; }
.brand { display: inline-flex; align-items: center; text-decoration: none; white-space: nowrap; line-height: 1; font-weight: 800; }
.brand span { font-weight: 650; }
.masthead { display: flex; align-items: center; }
.masthead nav { display: flex; margin-left: auto; }
.masthead nav a { text-decoration: none; }
.button { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; text-align: center; border: 1px solid transparent; }
.actions { display: flex; flex-wrap: wrap; align-items: center; }
.text-link { text-decoration: none; }
.section-heading { display: grid; align-items: start; }
.services { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.service-top { display: flex; justify-content: space-between; gap: 1rem; }
summary { cursor: pointer; }
summary::marker { color: var(--accent); }
.service details p { margin: 1rem 0; }
.steps { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); list-style: none; padding: 0; margin: 0; }
.about { display: grid; grid-template-columns: 1fr 1.5fr; }
.contact { display: grid; grid-template-columns: 1.2fr 1fr; align-items: center; }
.contact-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 1.25rem; }
footer { display: flex; flex-wrap: wrap; align-items: center; gap: 2rem; padding-block: 1.5rem 2.5rem; }
footer p { margin: 0 auto 0 0; }
.report { max-width: 560px; margin-block: 1.5rem; padding: 2rem; }
.report-head,.report-line,.report-total { display: flex; justify-content: space-between; gap: 1rem; }
.report-head { font-size: .875rem; padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
.report h2 { margin-block: 1.5rem; font-size: 2rem; }
.report-line { border-bottom: 1px solid var(--line); padding-block: .8rem; }
.report-line strong { white-space: nowrap; }
.report-total { align-items: center; padding-block: 1rem; }
.report-total strong { font-size: 2rem; }
.bar { height: 10px; background: #e2e4e7; margin-bottom: 1rem; border-radius: 10px; overflow: hidden; }
.bar span { width: 23.163%; height: 100%; display: block; background: var(--accent); }
.report-note { margin-block: 1rem; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
