/* SSU PRINT PC 로그인 모달·서브 히어로 공통 보강 */
.school-login,
.header-login,
.sub-actions .chip,
.adv-header a,
.floating-contact a,
.floating-contact button {
  white-space: nowrap;
  word-break: keep-all;
  overflow-wrap: normal;
}

.site-header {
  grid-template-columns: 220px minmax(420px, 1fr) auto;
}

.header-actions {
  min-width: max-content;
}

.page-hero,
.adv-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: #fff;
  background: #0d1a2a;
}

.sub-hero-background,
.sub-hero-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.sub-hero-background { z-index: -3; }
.sub-hero-overlay {
  z-index: -2;
  background: linear-gradient(90deg, rgba(5,18,38,.92), rgba(5,18,38,.62) 58%, rgba(5,18,38,.48));
}

.sub-hero-slide {
  position: absolute;
  inset: -4%;
  background-position: center;
  background-size: cover;
  opacity: 0;
  transform: scale(1.03);
  transition: opacity 1.2s ease, transform 7s ease;
}

.sub-hero-slide.is-active { opacity: 1; transform: scale(1.1); }
.page-hero > :not(.sub-hero-background):not(.sub-hero-overlay),
.adv-hero > :not(.sub-hero-background):not(.sub-hero-overlay) { position: relative; z-index: 1; }
.page-hero .eyebrow,
.adv-hero .adv-kicker { color: #8de8ff; }

.login-shell[hidden] { display: none; }
.login-shell {
  position: fixed;
  inset: 0;
  z-index: 999;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(6,18,36,.68);
  backdrop-filter: blur(10px);
}
.login-dialog {
  position: relative;
  width: min(460px, 100%);
  max-height: calc(100vh - 48px);
  overflow: auto;
  padding: 34px;
  border: 1px solid rgba(220,228,237,.9);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 32px 90px rgba(5,18,38,.34);
}
.login-close {
  position: absolute;
  right: 18px;
  top: 16px;
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: 50%;
  background: #eef3f8;
  color: #10213a;
  font-size: 24px;
  cursor: pointer;
}
.login-brand-row { display: flex; align-items: center; gap: 10px; margin-bottom: 28px; }
.login-page-brand { margin: 0; color: #1557d6; font-size: 31px; font-weight: 900; letter-spacing: -1.4px; text-decoration: none; }
.login-school-badge { display: inline-flex; align-items: center; min-height: 30px; padding: 0 12px; border-radius: 999px; background: #eaf2ff; color: #1557d6; font-size: 12px; font-weight: 900; }
.login-kicker { margin: 0 0 8px; color: #1557d6; font-size: 12px; font-weight: 900; letter-spacing: 1.5px; }
.login-dialog h1 { margin: 0; color: #10213a; font-size: 30px; letter-spacing: -1.2px; }
.login-page-card .login-close { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.login-page-card .login-role-tab { display: flex; align-items: center; justify-content: center; text-decoration: none; }
.login-dialog h2 { margin: 0; color: #10213a; font-size: 30px; letter-spacing: -1.2px; }
.login-description { margin: 8px 0 24px; color: #607086; }
.login-role-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 20px; padding: 5px; border-radius: 14px; background: #f1f5f9; }
.login-role-tab { min-height: 46px; border: 0; border-radius: 10px; background: transparent; color: #607086; font-weight: 800; cursor: pointer; white-space: nowrap; word-break: keep-all; }
.login-role-tab.is-active { color: #fff; background: #1557d6; box-shadow: 0 9px 20px rgba(21,87,214,.22); }
.login-form { display: grid; gap: 12px; }
.login-form label { display: grid; gap: 6px; color: #33455c; font-size: 13px; font-weight: 800; }
.login-form input { width: 100%; min-height: 48px; padding: 0 14px; border: 1px solid #dce4ed; border-radius: 12px; font: inherit; outline: none; }
.login-form input:focus { border-color: #1557d6; box-shadow: 0 0 0 3px rgba(21,87,214,.12); }
.login-options { display: flex; justify-content: space-between; gap: 12px; color: #607086; font-size: 13px; }
.login-options label { display: flex; grid-template-columns: none; align-items: center; gap: 7px; font-weight: 600; }
.login-options input { width: 16px; min-height: 16px; }
.login-primary { min-height: 50px; border: 0; border-radius: 12px; color: #fff; background: linear-gradient(135deg, #1557d6, #0d3f9f); font-weight: 900; cursor: pointer; }
.login-divider { display: flex; align-items: center; gap: 12px; margin: 22px 0 14px; color: #8290a2; font-size: 12px; }
.login-divider::before,.login-divider::after { content: ""; flex: 1; height: 1px; background: #e2e8f0; }
.social-login { display: grid; gap: 9px; }
.social-button { min-height: 48px; border: 1px solid #dce4ed; border-radius: 12px; background: #fff; color: #26374d; font-weight: 800; cursor: pointer; }
.social-button.kakao { border-color: #fee500; background: #fee500; color: #191919; }
.login-links { margin: 18px 0 0; text-align: center; color: #607086; font-size: 13px; }
.login-sample-note { margin: 16px 0 0; padding: 11px 13px; border-radius: 10px; background: #f5f8fb; color: #607086; font-size: 12px; }

@media (max-width: 1200px) {
  .site-header { grid-template-columns: 170px minmax(360px,1fr) auto; }
  .header-actions a { padding-left: 12px; padding-right: 12px; font-size: 13px; }
}

@media (prefers-reduced-motion: reduce) {
  .sub-hero-slide { transition: opacity .2s linear; transform: none; }
  .sub-hero-slide.is-active { transform: none; }
}
.login-test-note{margin:14px 0 0;padding:11px 12px;border-radius:12px;background:#eef5ff;color:#0d3f9f;text-align:center;font-size:12px;font-weight:800}
