body:has(.training-contact-dialog[open]) { overflow: hidden; }
@media (min-width: 1041px) { .site-nav { gap: clamp(12px, 1.3vw, 22px); } }
@media (max-width: 1040px) { .site-nav { max-height: calc(100dvh - 68px); overflow-y: auto; overscroll-behavior: contain; } }
.site-nav .nav-contact { padding: 8px 12px; border: 1px solid #cdb9dd; border-radius: 7px; background: #eee5f8; }
.site-footer [data-open-contact] { display: inline-block; margin-bottom: 10px; color: inherit; }
.home-actions { flex-wrap: wrap; }
.home-actions .home-contact { gap: 10px; border: 1px solid #a58abf; color: #583877; background: #fcf8ffe8; }
.home-contact img, .detail-contact img { width: 20px; height: 20px; }
.home-actions .home-contact:hover { background: #fff; transform: translateY(-2px); }
.detail-contact { display: inline-flex; align-items: center; gap: 10px; color: var(--blue-deep); background: #efe7f8; border: 1px solid #ceb9e3; }
.training-contact-dialog { width: min(440px, calc(100% - 32px)); max-width: none; max-height: calc(100dvh - 32px); margin: auto; padding: 36px 28px 26px; border: 1px solid #ddd0e8; border-radius: 18px; color: #31213f; background: #fcfaff; text-align: center; overflow: auto; overscroll-behavior: contain; box-shadow: 0 28px 90px #30204340; }
.training-contact-dialog::backdrop { background: #2e1c4b99; backdrop-filter: blur(6px); }
.training-contact-dialog .contact-close { position: absolute; top: 7px; right: 7px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; color: #6b567d; background: transparent; font-family: var(--body); font-size: 28px; cursor: pointer; }
.training-contact-dialog .contact-close:hover { color: #523071; background: #eee4f8; }
.training-contact-dialog .contact-label { margin: 0; color: #75598d; font-size: 12px; line-height: 1.5; }
.training-contact-dialog h2 { margin: 14px 0 10px; font-family: var(--display); font-size: 27px; font-weight: 400; line-height: 1.4; letter-spacing: 0; }
.training-contact-dialog .contact-description { margin: 0; color: #705e80; font-size: 14px; line-height: 1.75; }
.training-contact-dialog .contact-qr-frame { width: min(100%, 268px); margin: 22px auto 16px; padding: 12px; border: 1px solid #e2d5ec; border-radius: 12px; background: #fff; }
.training-contact-dialog .contact-qr { display: block; width: 100%; height: auto; max-width: 100%; margin: 0; padding: 0; border: 0; border-radius: 0; }
.training-contact-dialog .contact-name { margin: 0; color: #342344; font-size: 16px; line-height: 1.5; }
.training-contact-dialog .contact-help { margin: 12px auto 0; color: #705e80; font-size: 12px; line-height: 1.75; }
.training-contact-dialog .contact-save { display: inline-flex; justify-content: center; align-items: center; min-height: 44px; margin-top: 16px; padding: 9px 18px; border: 1px solid #cdb7de; border-radius: 7px; color: #5b367b; background: #efe5f8; font-size: 13px; line-height: 1.5; text-decoration: none; }
.training-contact-dialog .contact-save:hover { background: #e4d4f1; }
.training-contact-dialog button:focus-visible, .training-contact-dialog a:focus-visible, [data-open-contact]:focus-visible { outline: 2px solid #7642b8; outline-offset: 3px; }
@media (max-width: 800px) {
  .home-hero { min-height: 100svh; padding-top: 100px; padding-bottom: 55px; }
  .home-eyebrow { margin-bottom: 20px; font-size: 12px; letter-spacing: .04em; }
  .home-lead { margin-top: 20px; }
  .home-lead small { color: #655273; font-size: 12px; }
  .home-actions { gap: 12px; margin-top: 24px; }
  .home-actions .button { min-height: 48px; padding-inline: 18px; }
  .home-primary img { margin-left: 10px; width: 16px; }
  .home-actions .home-secondary { flex-basis: 100%; min-height: 32px; padding: 0; border: 0; background: transparent; }
  .home-scroll { bottom: 17px; }
  .detail-actions { flex-wrap: wrap; }
}
@media (max-width: 480px) {
  .training-contact-dialog { padding: 34px 22px 22px; }
  .training-contact-dialog h2 { font-size: 24px; }
  .training-contact-dialog .contact-qr-frame { width: min(100%, 252px); margin: 18px auto 14px; }
}
@media (max-width: 500px) and (max-height: 650px) {
  .home-hero { padding-top: 86px; padding-bottom: 32px; }
  .home-eyebrow { margin-bottom: 14px; }
  .home-hero h1 { font-size: clamp(28px, 8.8vw, 36px); line-height: 1.35; }
  .home-lead { margin-top: 14px; font-size: 15px; }
  .home-lead small { margin-top: 7px; }
  .home-actions { gap: 9px; margin-top: 17px; }
  .home-actions .button { padding-inline: 13px; }
  .home-scroll { display: none; }
}
@media (max-height: 650px) {
  .training-contact-dialog { padding: 28px 22px 20px; }
  .training-contact-dialog .contact-qr-frame { width: min(100%, 210px); margin: 15px auto 12px; }
}
@media (max-height: 550px) and (min-width: 600px) {
  .training-contact-dialog { width: min(570px, calc(100% - 32px)); padding: 22px; text-align: left; }
  .training-contact-dialog[open] { display: grid; grid-template-columns: 210px minmax(0, 1fr); align-content: center; align-items: center; column-gap: 22px; }
  .training-contact-dialog .contact-qr-frame { grid-column: 1; grid-row: 1 / span 5; width: 100%; margin: 0; padding: 10px; }
  .training-contact-dialog .contact-label, .training-contact-dialog h2, .training-contact-dialog .contact-description, .training-contact-dialog .contact-help, .training-contact-dialog .contact-save { grid-column: 2; }
  .training-contact-dialog h2 { margin: 9px 0 7px; font-size: 24px; }
  .training-contact-dialog .contact-description { font-size: 13px; }
  .training-contact-dialog .contact-name { display: none; }
  .training-contact-dialog .contact-help { margin: 10px 0 0; font-size: 11px; }
  .training-contact-dialog .contact-save { justify-self: start; margin-top: 10px; }
}
@media (prefers-reduced-motion: reduce) { .home-actions .home-contact { transition: none; } }
