/* Consultation-only layout. Keep shared homepage, auth and intake behavior intact. */
.consult-page .consult-symbol-icon {
  display: block;
  width: 88px;
  height: 88px;
  flex: none;
  object-fit: contain;
  background: transparent;
  box-shadow: none;
}

.consult-page .consult-form-shortcut {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  margin-top: 10px;
  color: #1256e8;
  font-size: 16px;
  font-weight: 850;
}

.consult-page .consult-form-shortcut:focus-visible {
  outline: 3px solid #1256e8;
  outline-offset: 3px;
  border-radius: 4px;
}

.consult-page #consult-form,
.consult-page .consult-form input,
.consult-page .consult-form select,
.consult-page .consult-form textarea,
.consult-page #consult-submit {
  scroll-margin-top: 16px;
  scroll-margin-bottom: calc(80px + env(safe-area-inset-bottom, 0px));
}

@media (max-width: 680px) {
  /* The only fixed bottom element is the 44px action + 8px top/bottom padding. */
  body.consult-page,
  body.consult-page.sponsor-dock-ready.has-mobile-action {
    padding-bottom: calc(60px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .consult-page .subpage-header {
    width: 100%;
    height: 58px;
    padding: 0 max(12px, env(safe-area-inset-right, 0px)) 0 max(12px, env(safe-area-inset-left, 0px));
    gap: 8px;
  }

  .consult-page .subpage-header .logo { min-width: 0; margin-right: auto; gap: 8px; }
  .consult-page .subpage-header .logo > img { width: 34px; height: 34px; border-radius: 9px; }
  .consult-page .subpage-header .logo strong { font-size: 21px; }
  .consult-page .subpage-header .logo small { display: none; }
  .consult-page .subpage-header .consult-login,
  .consult-page .subpage-header .home-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 10px;
    font-size: 14px;
  }
  .consult-page .subpage-header .consult-login { color: #1256e8; }
  .consult-page .subpage-header .consult-login {
    max-width: 112px;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .consult-page .platform-disclosure { margin: 14px 16px 0; padding: 14px; border-radius: 12px; }
  .consult-page .platform-disclosure-head { display: block; margin-bottom: 0; }
  .consult-page .platform-disclosure-head small { font-size: 14px; }
  .consult-page .platform-disclosure-head h2 { font-size: 16px; line-height: 1.45; }
  .consult-page .platform-disclosure-head p { margin-top: 7px; font-size: 16px; line-height: 1.6; }

  .consult-page .consult-page-hero { width: 100%; padding: 20px 16px 24px; gap: 24px; }
  .consult-page .consult-page-copy { padding-top: 0; }
  .consult-page .consult-page-copy > span { color: #1256e8; font-size: 14px; letter-spacing: .05em; }
  .consult-page .consult-page-copy h1 { margin-top: 8px; font-size: 28px; line-height: 1.24; letter-spacing: -.045em; }
  .consult-page .consult-page-copy > p { margin-top: 10px; font-size: 16px; line-height: 1.65; }
  .consult-page .consult-form-shortcut { margin-top: 6px; }

  .consult-page .consult-symbol-fields { margin-top: 14px; padding: 12px; border-radius: 16px; box-shadow: none; }
  .consult-page .consult-core-partners-head { margin-bottom: 12px; }
  .consult-page .consult-core-partners-head span { color: #1256e8; font-size: 14px; }
  .consult-page .consult-core-partners-head strong { margin-top: 7px; font-size: 14px; color: #526174; }
  .consult-page .consult-symbol-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: auto; gap: 8px; }
  .consult-page .consult-symbol-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    min-height: 0;
    padding: 12px;
    border-radius: 12px;
    box-shadow: 0 3px 10px rgba(34, 62, 105, .04);
  }
  .consult-page .consult-symbol-icon { width: 48px; height: 48px; border-radius: 10px; }
  .consult-page .consult-symbol-copy { margin-top: 8px; overflow-wrap: anywhere; }
  .consult-page .consult-symbol-copy small { font-size: 14px; line-height: 1.4; }
  .consult-page .consult-symbol-copy strong { margin-top: 4px; font-size: 18px; line-height: 1.4; }
  .consult-page .consult-symbol-copy em { margin-top: 6px; font-size: 16px; line-height: 1.5; color: #455468; }
  .consult-page .consult-symbol-card > b { position: static; margin-top: auto; padding-top: 10px; font-size: 14px; line-height: 1.4; }
  /* Readable text is allowed to wrap; never shrink it to fit a narrow card. */
  .consult-page .consult-symbol-card.tone-sky { --symbol-color: #08618f; }
  .consult-page .consult-symbol-card.tone-green { --symbol-color: #35731e; }
  .consult-page .consult-symbol-card.tone-orange { --symbol-color: #a3440d; }
  .consult-page .consult-symbol-card.tone-violet { --symbol-color: #6542b8; }
  .consult-page .consult-symbol-card.tone-pink { --symbol-color: #b12c58; }
  .consult-page .consult-symbol-card.tone-amber { --symbol-color: #875100; }
  .consult-page .consult-page-copy .button-kakao { font-size: 16px; min-height: 48px; }
  .consult-page .consult-page-copy .kakao-helper { font-size: 14px; line-height: 1.6; color: #526174; }
  .consult-page .consult-form label,
  .consult-page .consult-form legend { font-size: 16px; line-height: 1.5; }
  .consult-page .consult-form label > small,
  .consult-page .consult-form legend small,
  .consult-page .consult-form-head small,
  .consult-page .consult-form-head > span { font-size: 14px; line-height: 1.5; }
  .consult-page .consult-form-head { margin: 0 0 20px; padding: 16px; gap: 10px; flex-wrap: wrap; border-radius: 10px; }
  .consult-page .consult-form-head > div { min-width: 0; flex: 1 1 180px; }
  .consult-page .consult-form label > small,
  .consult-page .consult-form legend small { color: #526174; }
  .consult-page .consult-form-head strong { font-size: 20px; line-height: 1.4; overflow-wrap: anywhere; }
  .consult-page .consult-form .agree span { font-size: 16px; line-height: 1.6; color: #455468; }
  .consult-page .consult-service-checks label span { min-height: 52px; font-size: 16px; line-height: 1.5; white-space: normal; overflow-wrap: anywhere; }
  .consult-page .consult-service-checks label input:checked + span { color: #1256e8; }
  .consult-page .consult-form-page #consult-submit { font-size: 18px; min-height: 52px; }
  .consult-page .form-status { font-size: 16px; }
  .consult-page .consult-other-route span { font-size: 14px; }
  .consult-page .consult-other-route a { font-size: 16px; line-height: 1.5; white-space: normal; overflow-wrap: anywhere; }
  .consult-page .consult-member-greeting { margin: 14px auto 0; }
  .consult-page .consult-member-greeting strong { font-size: 16px; }
  .consult-page .consult-member-greeting small { font-size: 14px; line-height: 1.5; }
  .consult-page .subpage-footer p,
  .consult-page .subpage-footer nav,
  .consult-page .subpage-footer > small { font-size: 14px; line-height: 1.6; }
  .consult-page .subpage-footer > small { color: #aeb6c0; }
  .consult-page .subpage-footer nav a { display: inline-flex; align-items: center; min-height: 44px; }
  .consult-page .login-dialog > small:first-of-type,
  .consult-page .login-dialog li b,
  .consult-page .login-dialog > small,
  .consult-page .login-dialog li span,
  .consult-page .login-dialog .login-legal { font-size: 14px; line-height: 1.6; }
  .consult-page .login-dialog .login-legal { color: #526174; }
  .consult-page .login-dialog .login-status { font-size: 16px !important; }
  .consult-page .login-dialog > p { font-size: 16px; line-height: 1.6; }
  .consult-page .login-kakao-button { font-size: 16px; min-height: 48px; }
  .consult-page .consult-form-page { min-width: 0; padding: 20px 16px; }
  .consult-page .consult-changsuni-guide { margin-bottom: 16px; padding: 8px; }
  .consult-page .consult-changsuni-guide .changsuni-sprite { width: 48px; height: 60px; }
  .consult-page .consult-changsuni-guide b { font-size: 16px; }
  .consult-page .consult-changsuni-guide small { font-size: 14px; line-height: 1.55; color: #455468; }
  .consult-page .consult-changsuni-guide::after { display: none; }

  /* Sponsors remain reachable after the form, with manual horizontal scrolling. */
  body.consult-page .sponsor-dock-inline {
    position: static;
    inset: auto;
    z-index: auto;
    display: block;
    width: calc(100% - 32px);
    height: auto;
    margin: 0 auto 24px;
    padding: 12px 0;
    overflow: visible;
    border: 1px solid #dce5f2;
    border-radius: 12px;
    box-shadow: none;
    backdrop-filter: none;
  }
  .consult-page .sponsor-dock-head { height: auto; padding: 0 12px 10px; flex-wrap: wrap; gap: 4px 8px; white-space: normal; }
  .consult-page .sponsor-dock-head b,
  .consult-page .sponsor-dock-head span { font-size: 14px; line-height: 1.5; }
  .consult-page .sponsor-dock-viewport { padding: 3px 12px 6px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; }
  .consult-page .sponsor-dock-track { gap: 10px; animation: none !important; transform: none; will-change: auto; }
  .consult-page .sponsor-dock-card { flex-basis: 260px; height: 156px; scroll-snap-align: start; }
  .consult-page .sponsor-dock-card small { font-size: 14px; }
  .consult-page .sponsor-dock-card strong { font-size: 20px; }
  .consult-page .sponsor-dock-card-content > span { font-size: 16px; line-height: 1.4; }
  .consult-page .sponsor-dock-card::after { font-size: 14px; }

  .consult-page .subpage-mobile-bar {
    min-height: calc(60px + env(safe-area-inset-bottom, 0px));
    grid-template-columns: 96px minmax(0, 1fr) !important;
    padding: 8px max(12px, env(safe-area-inset-right, 0px)) calc(8px + env(safe-area-inset-bottom, 0px)) max(12px, env(safe-area-inset-left, 0px));
    box-shadow: 0 -3px 12px rgba(20, 35, 58, .08);
  }
  .consult-page .subpage-mobile-bar > a { height: 44px; min-height: 44px; border-radius: 8px; font-size: 16px !important; }
  .consult-page #consult-form,
  .consult-page .consult-form input,
  .consult-page .consult-form select,
  .consult-page .consult-form textarea,
  .consult-page #consult-submit { scroll-margin-top: 18px; }

  /* Reclaim keyboard space while editing; the form already has its own submit button. */
  .consult-page:has(.consult-form:focus-within) .subpage-mobile-bar { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  .consult-page .consult-symbol-card { transition: none; }
}
