/* Safety, accessibility and native-browser behavior for the original design. */
[hidden] { display: none !important; }
html { color-scheme: dark; }
img { height: auto; }
.lm-animated-bg { position: fixed; inset: 0; background-image: url('../img/main_bg.png'); }
.header-titles .profession { color: #bbb; font-size: 18px; font-weight: 300; line-height: 1.2; margin: 5px 0; }
.header .copyrights a { display: inline-block; color: #ddd; padding: 8px; text-decoration: underline; }
.header-photo:after { background-image: radial-gradient(#fff 1px, transparent 1px); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: -100px; left: 20px; z-index: 2000; padding: 12px 20px; color: #fff; background: #222; border-radius: 12px; }
.skip-link:focus { top: 10px; }
:where(a, button):focus-visible { outline: 3px solid #c4b5ff; outline-offset: 4px; }
.animated-section:focus, #main-content:focus { outline: none; }
ul.main-menu a:focus-visible .link-text { right: 100%; visibility: visible; opacity: 1; }
ul.main-menu a.active, ul.main-menu a:hover, ul.main-menu a:focus-visible { color: #a9a9ff; }
.page-title h2 span, .block-title h3 span { color: #a9a9ff; }
.animated-section { scrollbar-width: thin; scrollbar-color: #888 #222; overscroll-behavior: contain; }
.section-active { z-index: 2; }
.section-entering { animation: section-enter .45s ease both; }
.section-leaving { visibility: visible; opacity: 1; z-index: 1; pointer-events: none; animation: section-leave .45s ease both; }
@keyframes section-enter { from { opacity: 0; transform: translateX(35px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes section-leave { to { opacity: 0; transform: translateX(-25px) scale(.97); } }
.text-rotation { display: grid; min-height: 2.4em; align-items: center; }
.rotation-item { grid-area: 1 / 1; opacity: 0; visibility: hidden; transform: scale(.94); transition: opacity .45s, transform .45s, visibility .45s; }
.rotation-active, .no-js .rotation-item:first-child { opacity: 1; visibility: visible; transform: none; }
.lmpixels-arrows-nav button { display: block; width: 100%; padding: 10px 0; margin: 0; border: 0; color: #b5b6b7; background: transparent; box-shadow: none; font-size: 24px; line-height: 1; cursor: pointer; }
.lmpixels-arrows-nav button:hover { color: #a9a9ff; background: transparent; border: 0; }
.menu-toggle { padding: 0; margin: 0; border: 0; box-shadow: none; }
.menu-toggle:hover, .menu-toggle:focus { border: 0; }
.contact-direct { border: 2px solid #444; border-radius: 12px; padding: 30px; background: #2b2b2b; }
.contact-email { display: block; margin: 24px 0 16px; color: #b4b4ff; font-size: clamp(17px, 1.4vw, 22px); line-height: 1.6; overflow-wrap: anywhere; text-decoration: underline; text-underline-offset: 5px; }
.contact-note { color: #bbb; font-size: 13px; margin-bottom: 24px; }
.contact-secondary { margin: 20px 0 0; font-size: 14px; }
.contact-secondary a { color: #b4b4ff; text-decoration: underline; }
.lm-info-block h4 { overflow-wrap: anywhere; }
.lm-info-block h4 a { color: inherit; text-decoration: underline; text-underline-offset: 4px; }
.certificate-item { display: flex; align-items: stretch; }
.certi-logo { display: flex; flex: 0 0 120px; width: 120px; height: auto; align-items: center; justify-content: center; }
.certi-logo img { width: 70px; height: auto; }
.certi-content { display: block; flex: 1; width: auto; min-width: 0; padding: 20px 25px; align-self: center; }
.certi-title h4 { overflow-wrap: anywhere; }

/* Real links and readable content also work without JavaScript. */
.no-js, .no-js body { height: auto; overflow: auto; }
.no-js .page { overflow: visible; height: auto; }
.no-js .page-content { display: flex; min-height: 80vh; }
.no-js .header { flex-shrink: 0; position: relative; height: auto; max-height: none; }
.no-js .content-area { position: relative; }
.no-js .animated-sections { height: auto; }
.no-js .animated-section { position: relative; height: auto; opacity: 1; visibility: visible; margin-bottom: 16px; }
.no-js .start-page .section-content { min-height: 60vh; }
.no-js .header .copyrights { position: static; width: auto; margin-top: 30px; }
.no-js ul.main-menu { position: static; width: auto; background: transparent; box-shadow: none; }
.no-js ul.main-menu .link-text { position: static; visibility: visible; opacity: 1; background: none; }
.no-js ul.main-menu .menu-icon { display: none; }
.no-js .menu-toggle, .no-js .lmpixels-arrows-nav { display: none; }

/* Privacy and genuine 404 pages share the original colors and typography. */
html.document-page, .document-page body { height: auto; min-height: 100%; overflow: auto; }
.document-card { width: min(880px, calc(100% - 40px)); margin: 60px auto; padding: 50px; background: #222; border-radius: 30px; box-shadow: 0 0 70px #0003; }
.document-card h1 { font-size: 36px; margin-bottom: 30px; }
.document-card h2 { margin: 28px 0 12px; }
.document-card a { color: #b4b4ff; text-decoration: underline; }
.document-card .btn { color: #fff; text-decoration: none; margin-top: 25px; }

@media (min-width: 1025px) {
  .js .page-content { height: 80vh; min-height: 0; }
  .header { padding-top: clamp(24px, 7vh, 70px); padding-bottom: 80px; }
  .header .copyrights { width: 380px; }
  .js .header { overflow: visible; }
  .header-titles h1 { font-size: clamp(27px, 2.5vw, 36px); }
  .header-content, .social-links, .header-buttons { position: relative; }
}
@media (min-width: 1025px) and (max-width: 1280px) {
  .header .copyrights { width: 330px; }
  .section-content { padding: 45px 35px; }
  .title-block h2 { font-size: 48px; line-height: 1.2; }
}
@media (min-width: 1025px) and (max-height: 760px) {
  .header-photo { width: 130px; margin-bottom: 16px; }
  .header-buttons { margin-top: 20px; }
  .social-links { margin: 14px 0; }
}
@media (min-width: 1025px) and (max-height: 540px) {
  html, body { overflow: auto; }
  .page { height: auto; min-height: 600px; }
  .js .page-content { height: 540px; margin: 30px auto; }
}
@media (max-width: 1024px) {
  .js .page-content { height: 100dvh; }
  .header { position: fixed; z-index: 1000; max-width: min(330px, 100%); }
  .menu-toggle { position: fixed; z-index: 1100; }
  .lmpixels-arrows-nav { position: fixed; z-index: 100; }
  .menu-is-open .content-area:after { content: ''; position: fixed; inset: 0; z-index: 500; background: #0007; }
  .header-titles .profession { font-size: 17px; }
  .section-content { padding-top: 72px; padding-bottom: 125px; }
  .start-page .section-content { padding: 70px 35px 100px; }
  ul.main-menu a:focus-visible .link-text { position: static; }
  .no-js .page-content { display: block; }
  .no-js .header { max-width: none; width: 100%; margin: 0; opacity: 1; visibility: visible; }
  .no-js .content-area { width: 100%; }
  .no-js .main-menu { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 24px; }
}
@media (max-width: 600px) {
  .section-content { padding-left: 25px; padding-right: 25px; }
  .title-block h2 { font-size: clamp(32px, 9vw, 48px); line-height: 1.2; }
  .contact-direct { padding: 24px; }
  .contact-email { font-size: 18px; }
  .certi-content { padding: 16px; }
  .document-card { margin: 20px auto; padding: 28px; }
  .document-card h1 { font-size: 29px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *:before, *:after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
