.profile-agreement { overflow: hidden; }
.profile-intro-progress .is-current-segment > span { background: var(--intro-blue); }
.profile-intro-progress .is-current-segment > i { position: relative; background: var(--intro-blue); }
.profile-intro-progress .is-current-segment > i::after {
  content: ""; position: absolute; top: 50%; right: 0; width: 8px; height: 8px;
  border: 2px solid var(--intro-blue); border-radius: 50%; background: #fff;
  transform: translate(50%, -50%);
}
.profile-agreement-content { width: min(100%, 1120px); margin: 42px auto 0; text-align: center; }
.profile-agreement-content > h1 {
  margin: 0; color: var(--intro-ink); font-size: clamp(42px, 4.15vw, 64px); line-height: 1.12;
  font-weight: 500; letter-spacing: -3px; text-wrap: balance;
}
.profile-agreement-form { display: contents; }
.profile-agreement-card {
  width: 100%; height: clamp(390px, calc(100svh - 470px), 890px); margin: 54px auto 0;
  padding: 52px 52px 42px; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable;
  scrollbar-width: thin; scrollbar-color: #8f949e transparent; border-radius: 48px; background: #fff;
  box-sizing: border-box; text-align: left; box-shadow: 0 2px 5px rgb(15 23 42 / 8%);
}
.profile-agreement-card:focus-visible { outline: 3px solid #9acbfa; outline-offset: 4px; }
.public-terms-page .profile-agreement { overflow: visible; padding-bottom: 72px; }
.public-terms-page .profile-agreement-card { height: auto; overflow: visible; }
.profile-privacy-document { color: #535c69; }
.profile-privacy-document h2 {
  margin: 0 0 14px; color: var(--intro-ink); font-size: 27px; line-height: 1.35; font-weight: 700;
}
.profile-privacy-document h3 {
  margin: 42px 0 14px; color: var(--intro-ink); font-size: 21px; line-height: 1.4; font-weight: 700;
}
.profile-privacy-document h4 {
  margin: 30px 0 12px; color: #273248; font-size: 18px; line-height: 1.45; font-weight: 700;
}
.profile-privacy-document p,
.profile-privacy-document li { font-size: 16px; line-height: 1.7; }
.profile-privacy-document p { margin: 0 0 18px; }
.profile-privacy-document ul { margin: 0 0 24px; padding-left: 25px; }
.profile-privacy-document li + li { margin-top: 7px; }
.profile-privacy-document a { color: var(--intro-blue); font-weight: 650; overflow-wrap: anywhere; }
.profile-privacy-document code { padding: 2px 5px; border-radius: 5px; background: #eef4fb; font-size: .92em; }
.profile-privacy-table-wrap { max-width: 100%; margin: 18px 0 28px; overflow-x: auto; border: 1px solid #dce4ee; border-radius: 14px; }
.profile-privacy-table-wrap:focus-visible { outline: 3px solid #9acbfa; outline-offset: 3px; }
.profile-privacy-document table { width: 100%; min-width: 660px; border-collapse: collapse; font-size: 14px; line-height: 1.55; }
.profile-privacy-document th,
.profile-privacy-document td { padding: 13px 15px; border-bottom: 1px solid #e5eaf0; text-align: left; vertical-align: top; }
.profile-privacy-document th { background: #f2f6fb; color: var(--intro-ink); font-weight: 700; }
.profile-privacy-document tbody tr:last-child td { border-bottom: 0; }
.profile-agreement-card::-webkit-scrollbar { width: 7px; }
.profile-agreement-card::-webkit-scrollbar-thumb { border-radius: 999px; background: #8f949e; }
.profile-agreement-document-header h2 {
  margin: 0 0 28px; color: var(--intro-ink); font-size: 27px; line-height: 1.35; font-weight: 650;
}
.profile-agreement-document-header p,
.profile-agreement-clauses p {
  margin: 0 0 18px; color: #858b97; font-size: 19px; line-height: 1.55;
}
.profile-agreement-document-header .profile-agreement-meta { margin-bottom: 4px; }
.profile-agreement-clauses { margin-top: 42px; }
.profile-agreement-clauses h3 {
  margin: 42px 0 14px; color: var(--intro-ink); font-size: 20px; line-height: 1.4; font-weight: 700;
}
.profile-agreement-clauses h3:first-child { margin-top: 0; }
.profile-agreement-consent { margin-top: 50px; padding: 34px 4px 4px; border-top: 1px solid #eceef1; }
.profile-agreement-consent label {
  display: flex; align-items: center; gap: 20px; color: var(--intro-ink); font-size: 21px; line-height: 1.4;
  cursor: pointer;
}
.profile-agreement-consent input {
  width: 38px; height: 38px; flex: 0 0 38px; margin: 0; accent-color: var(--intro-blue); cursor: pointer;
}
.profile-agreement-consent input:focus-visible { outline: 3px solid #9acbfa; outline-offset: 3px; }
.profile-agreement-error { margin: 14px 0 0 58px; color: #b42318; font-size: 16px; line-height: 1.4; }

@media (max-width: 800px) {
  .profile-agreement-content { margin-top: 64px; }
  .profile-agreement-content > h1 {
    max-width: 590px; margin: 0 auto; font-size: clamp(42px, 9.5vw, 61px); line-height: 1.28;
    letter-spacing: -2.2px;
  }
  .profile-agreement-card {
    width: min(100%, 484px); height: min(850px, max(300px, calc(100svh - 555px))); margin-top: 42px;
    padding: 39px 32px 35px; border-radius: 52px;
  }
  .profile-agreement-document-header h2 { font-size: 28px; }
  .profile-agreement-document-header p,
  .profile-agreement-clauses p { font-size: 20px; }
  .profile-agreement-clauses h3 { font-size: 21px; }
  .profile-agreement-consent label { align-items: flex-start; font-size: 20px; }
}

@media (max-width: 420px) {
  .profile-agreement-content { margin-top: 50px; }
  .profile-agreement-content > h1 { font-size: 40px; line-height: 1.2; }
  .profile-agreement-card { margin-top: 30px; padding: 32px 24px 30px; border-radius: 32px; }
  .profile-agreement-document-header h2 { font-size: 23px; }
  .profile-agreement-document-header p,
  .profile-agreement-clauses p { font-size: 17px; }
  .profile-agreement-clauses h3 { font-size: 18px; }
  .profile-agreement-consent label { gap: 14px; font-size: 17px; }
  .profile-agreement-consent input { width: 32px; height: 32px; flex-basis: 32px; }
  .profile-agreement-error { margin-left: 46px; font-size: 14px; }
  .profile-privacy-document h2 { font-size: 22px; }
  .profile-privacy-document h3 { margin-top: 34px; font-size: 19px; }
  .profile-privacy-document h4 { font-size: 17px; }
  .profile-privacy-document p,
  .profile-privacy-document li { font-size: 15px; }
}

@media (max-height: 700px) {
  .profile-agreement { overflow: visible; }
  .profile-agreement-card { height: max(360px, 64svh); }
  .profile-agreement-footer { position: static; padding: 38px 0 18px; background: transparent; }
}
