.so-page { padding: 148px 0 72px; }
.so-width { max-width: 820px; margin-inline: auto; }
.so-page .breadcrumb, .so-page .breadcrumb a, .so-page .breadcrumb .sep { color: var(--teal-mid); }
.so-page h1 { font-family: var(--font-heading); color: var(--teal-deep); font-size: clamp(2rem, 4.5vw, 3.15rem); line-height: 1.18; margin: 18px 0 22px; text-wrap: balance; }
.so-intro { max-width: 680px; font-size: 1.075rem; margin-bottom: 18px; }
.so-meta { color: var(--text-mid); font-size: .9rem; margin: 14px 0 28px; }
.so-tool { background: var(--white); border: 1px solid var(--card-border); border-radius: var(--radius-lg); padding: clamp(22px, 4vw, 40px); scroll-margin-top: 112px; }
.so-tool h2 { font-family: var(--font-heading); color: var(--teal-deep); font-size: clamp(1.5rem, 3vw, 2rem); line-height: 1.3; margin-bottom: 16px; }
.so-tool h2:focus { outline: none; }
.so-tool h3 { font-family: var(--font-heading); color: var(--teal-deep); font-size: 1.3rem; line-height: 1.4; margin-bottom: 10px; }
.so-tool p { margin-bottom: 16px; }
.so-tool fieldset { border: 0; min-width: 0; }
.so-progress { color: var(--teal-mid); font-size: .875rem; font-weight: 600; letter-spacing: .03em; }
.so-help { color: var(--text-mid); font-size: .94rem; }
.so-choice { display: flex; gap: 14px; align-items: flex-start; padding: 14px 16px; border: 1px solid #aababc; border-radius: 8px; margin: 10px 0; cursor: pointer; font-size: 1rem; line-height: 1.5; }
.so-choice:has(input:checked) { background: #edf4f3; border-color: var(--teal-mid); }
.so-choice input { appearance: auto; accent-color: var(--teal-mid); width: 20px; height: 20px; flex: 0 0 20px; margin-top: 2px; }
.so-choice:focus-within { outline: 3px solid var(--teal-light); outline-offset: 3px; }
.so-actions { margin-top: 26px; gap: 14px; }
.so-page .btn { white-space: normal; text-align: center; min-height: 48px; }
.so-page .so-secondary { border: 1px solid var(--teal-mid); background: var(--white); color: var(--teal-deep); }
.so-page .so-secondary:hover { background: #edf4f3; }
.so-summary { margin: 26px 0; }
.so-summary > div { border-top: 1px solid #dbe2e1; padding: 17px 0; }
.so-summary dt { color: var(--teal-deep); font-weight: 600; margin-bottom: 8px; }
.so-summary dd { margin: 0; }
.so-summary ul, .so-reflection ul { padding-left: 22px; }
.so-summary li, .so-reflection li { margin-bottom: 5px; }
.so-reflection { background: #edf4f3; padding: 22px; border-radius: 10px; margin: 24px 0; }
.so-result-note { margin: 24px 0; }
.so-guide-offer { border-top: 1px solid #c8d3d2; padding: 32px 0; margin-top: 36px; }
.so-guide-offer h2, .so-about h2, .so-guide h2 { font-family: var(--font-heading); color: var(--teal-deep); font-size: clamp(1.5rem, 3vw, 2rem); line-height: 1.3; margin-bottom: 16px; }
.so-guide-offer p { margin-bottom: 18px; }
.so-about { margin-top: 24px; }
.so-about summary { color: var(--teal-deep); font-weight: 600; cursor: pointer; padding: 14px 0; }
.so-about p { margin: 12px 0; }
.so-about ul { padding-left: 22px; }
.so-guide section { margin: 38px 0; }
.so-guide p, .so-guide li { margin-bottom: 16px; }
.so-guide h3 { font-family: var(--font-heading); color: var(--teal-deep); font-size: 1.25rem; margin: 22px 0 12px; }
.so-guide ul { padding-left: 24px; }
.so-example { border-left: 3px solid var(--gold); background: var(--white); padding: 20px 24px; margin: 22px 0; }
.so-example p:last-child { margin-bottom: 0; }
.so-note-lines { min-height: 66px; margin-bottom: 20px; background: repeating-linear-gradient(transparent 0, transparent 31px, #bdcbca 31px, #bdcbca 32px); }
.so-sources { font-size: .9rem; }
.so-sources li { overflow-wrap: anywhere; }
.so-page a:focus-visible, .so-page button:focus-visible, .so-about summary:focus-visible { outline: 3px solid var(--teal-light); outline-offset: 4px; }
.so-page [hidden] { display: none !important; }
@media(max-width: 640px) { .so-page { padding-top: 115px; } .so-tool { border-radius: 12px; } .so-choice { padding: 13px 12px; gap: 10px; } }
@media print { nav, #mobile-menu, footer, .skip-link, .so-downloads, .so-guide-offer, .so-page > .container > .breadcrumb { display: none !important; } .so-page { padding: 0; } body { background: white; } .so-guide section { break-inside: avoid; } a { color: inherit; } }

.so-invitation-hidden { margin-top: 36px; border-top: 1px solid #c8d3d2; padding: 22px 0; font-size: .9rem; }
.so-invitation-hidden p { margin-bottom: 8px; }
.so-invitation-hidden button { background: none; border: 0; font: inherit; padding: 8px 0; cursor: pointer; min-height: 44px; text-align: left; }
@media print { .so-invitation-hidden { display: none !important; } }
