html { scroll-behavior: smooth; scroll-padding-top: 110px; }
:focus-visible { outline: 3px solid #3670ff; outline-offset: 4px; }
.skip-link { position: fixed; top: -80px; left: 15px; padding: 15px; background: white; z-index: 200; }
.skip-link:focus { top: 15px; }
.menu-button { border: 0; padding: 0; background: transparent; display: none; }
.slider__button { border: 0; background: transparent; padding: 0; cursor: pointer; }
.demo-form, .subscribe-form { flex-wrap: wrap; gap: 10px; }
.inline-consent { flex-basis: 100%; color: white; font-size: 12px; line-height: 1.8; display: block; margin-top: 5px; }
.inline-consent input { margin-right: 6px; accent-color: #3670ff; }
.inline-consent a, .demo__tip a { color: inherit; text-underline-offset: 3px; }
.form-status { flex-basis: 100%; font-size: 14px; line-height: 1.6; color: white; }
.blog-post__title a { color: inherit; text-decoration: none; }
.blog-post__title a:hover { color: #3670ff; text-decoration: underline; }
button, input[type=submit] { cursor: pointer; }
button:disabled, input:disabled { opacity: .6; cursor: wait; }
body.menu-open, body.dialog-open { overflow: hidden; }
dialog { position: fixed; inset: 0; margin: auto; width: min(760px, calc(100% - 32px)); max-height: 88dvh; overflow-y: auto; padding: 40px; border: 0; border-radius: 16px; box-shadow: 0 18px 100px #201e1e66; color: #363636; }
dialog::backdrop { background: #211b3ab3; }
.dialog-close { position: sticky; float: right; top: 0; margin: -20px -16px 0 12px; width: 36px; height: 36px; border: 0; border-radius: 50%; background: #f2eff7; color: #363636; font-size: 26px; z-index: 1; }
dialog h2 { font-size: 28px; line-height: 1.35; margin: 0 30px 20px 0; }
dialog h3 { margin: 22px 0 10px; }
dialog p, dialog li { line-height: 1.8; margin-bottom: 16px; }
dialog ul, dialog ol { padding-left: 24px; }
dialog a { color: #2857ca; }
.app-form { display: grid; gap: 16px; margin-top: 24px; }
.app-form label { display: grid; gap: 8px; font-size: 14px; font-weight: 500; }
.app-form input:not([type=checkbox]), .app-form textarea, .app-form select { width: 100%; padding: 12px; border: 1px solid #a9a5b2; border-radius: 6px; background: white; color: #25202f; }
.app-form textarea { min-height: 110px; resize: vertical; }
.app-form .check-label { display: block; line-height: 1.7; font-weight: 400; }
.app-form .check-label input { margin-right: 8px; }
.app-button { display: inline-block; padding: 12px 22px; border: 0; border-radius: 6px; background: #ffcf59; color: #25202f; text-decoration: none; text-align: center; font-weight: 500; }
.app-secondary { background: #f1edf7; }
.app-form .form-status { color: #363636; }
.notice { padding: 16px; background: #f4f0fa; border-radius: 8px; font-size: 14px; }
.article-image { width: 100%; max-height: 240px; object-fit: cover; border-radius: 8px; margin-bottom: 20px; }
.article-list { display: grid; gap: 16px; }
.article-list a { display: block; border: 1px solid #dcd5e7; border-radius: 8px; padding: 18px; text-decoration: none; }
.article-list small { display: block; margin-bottom: 8px; color: #62596e; }
.request-card { padding: 16px; margin: 16px 0; border: 1px solid #dcd5e7; border-radius: 8px; }
.request-card p { margin-bottom: 5px; overflow-wrap: anywhere; white-space: pre-wrap; }
details { border-bottom: 1px solid #ddd; padding: 16px 0; }
summary { cursor: pointer; font-weight: 500; line-height: 1.6; }
details p { margin-top: 12px; }
.noscript-note { padding: 20px; background: #ffcf59; }
@media(min-width:769px) { .demo-form { max-width: 550px; } .subscribe-form { max-width: 570px; } }
@media(max-width:768px) { .menu-button { display: flex; } .navbar-wrap--active { overscroll-behavior: contain; } .navbar-menu__item { padding: 24px 0; } .navbar-menu__link { font-size: 24px; } }
@media(max-width:576px) { dialog { padding: 28px 22px; } dialog h2 { font-size: 24px; } .demo-form { width: 100%; } .demo-form__input, .demo-form__submit, .subscribe-form__input, .subscribe-form__submit { width: 100%; margin-bottom: 0; } .demo { padding-bottom: 80px; } .top-wrapper { height: auto; min-height: 850px; } .benefits { padding-top: 50px; } .slider-content { min-width: 0; } .subscribe__wrapper { height: auto; min-height: 520px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }
/* Use grid so consent and status occupy their own rows at every breakpoint. */
.demo-form, .subscribe-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; width: 100%; }
.demo-form__input, .subscribe-form__input { width: 100%; min-width: 0; }
.inline-consent, .form-status { grid-column: 1 / -1; text-align: left; }
@media(max-width:768px) { .subscribe-form { grid-template-columns: minmax(0, 1fr); } }
@media(max-width:576px) { .demo-form { grid-template-columns: minmax(0, 1fr); } }
.navbar-logo { margin-right: auto; }
.navbar-menu { gap: 32px; }
.navbar-menu__item, .navbar-menu__item:last-child { margin-right: 0; }
.navbar-wrap { margin-right: 40px; }
.navbar-menu__link, .navbar-button__link { white-space: nowrap; }
@media(min-width:769px) and (max-width:962px) { .navbar-menu { gap: 16px; } .navbar-wrap { margin-right: 20px; } .navbar-button__link { padding: 13px 16px; } }
@media(max-width:768px) { .navbar-logo { margin-right: 0; } .navbar-wrap { margin-right: 0; } .navbar-menu { gap: 0; } }
html { overflow-x: clip; }
