.lay-policy {
  box-sizing: border-box;
  width: min(100%, 1920px);
  margin-inline: auto;
  padding: clamp(40px, 5vw, 88px) 24px clamp(56px, 6vw, 112px);
  container-type: inline-size;
}
.obj-policyDoc {
  max-width: 74ch;
  margin-inline: auto;
  color: #1a3665;
  font-size: 20px;
  line-height: 1.65;
  overflow-wrap: anywhere;
  & * { box-sizing: border-box; }
  & h1 { font-size: clamp(40px, 6vw, 72px); line-height: 1.1; margin: 12px 0 20px; }
  & h2 { font-size: clamp(26px, 3vw, 34px); line-height: 1.25; margin: 0 0 20px; }
  & p { margin: 0 0 20px; }
  & ul, & ol { padding-inline-start: 1.5em; margin: 0 0 24px; }
  & li { margin-block: 8px; padding-inline-start: 4px; }
  & section { margin-top: 44px; scroll-margin-top: 24px; }
  & a { color: #1638cb; text-decoration: underline; text-underline-offset: 3px; }
  & a:hover { text-decoration-thickness: 2px; }
  & :focus-visible { outline: 3px solid #1638cb; outline-offset: 4px; }
  & .obj-docLabel { margin-bottom: 0; font-size: 16px; letter-spacing: .06em; }
  & .obj-policyDate { font-size: 17px; margin-bottom: 28px; }
  & .obj-tableHint { font-size: 16px; line-height: 1.5; }
}
.obj-policyContents {
  border-block: 1px solid #b8c9e1;
  padding-block: 24px;
  margin-block: 32px;
  & p { margin-bottom: 12px; }
  & ol { margin-bottom: 0; }
  & a { display: inline-block; padding-block: 3px; }
}
.obj-tableScroll {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  margin-block: 24px;
  border: 1px solid #b8c9e1;
  & table { width: 100%; min-width: 850px; border-collapse: collapse; font-size: 16px; line-height: 1.5; }
  & caption { text-align: left; font-weight: 700; padding: 16px; }
  & th, & td { text-align: left; vertical-align: top; padding: 16px; border-top: 1px solid #b8c9e1; min-width: 8em; }
  & thead { background: #eef2fa; }
  & tbody th { font-weight: 400; overflow-wrap: anywhere; }
}
@container (max-width: 40rem) {
  .obj-policyDoc { font-size: 18px; }
  .obj-policyDoc section { margin-top: 32px; }
}
