.policy-visual { width: 100%; max-width: 960px; margin: 0 auto; padding: 162px 0 44px; }
.policy-visual h3 { color: #222; margin-bottom: 48px; font-size: 80px; line-height: 118px; font-weight: bold; letter-spacing: -0.048em; }
.policy-visual .policy-contents { display: flex; flex-wrap: wrap; flex-direction: column; justify-content: space-between; align-content: space-around; align-items: flex-start; grid-row-gap: 12px; height: 254px; padding: 24px; border: 1px solid #d9d9d9; }
.policy-visual .policy-contents li { display: flex; justify-content: flex-start; }
.policy-visual .policy-contents a { display: block; font-size: 16px; letter-spacing: -0.05em; line-height: 1.5; }

.policy-wrap { max-width: 960px; width: 100%; margin: 0 auto; padding-bottom: 60px; }
.policy-wrap .privacy-policy { margin-top: 48px; }
.policy-wrap p { width: 100%; margin-top: 16px; word-break: keep-all; font-size: 16px; line-height: 1.5; letter-spacing: -0.048em; }
.policy-wrap h4 { color: #222; font-size: 32px; font-weight: bold; letter-spacing: -0.048em; }
.policy-wrap table { width: 100%; table-layout: fixed; border-collapse: collapse; border-spacing: 0; word-break: break-all; word-wrap: break-word; margin: 24px 0 12px; border-top: 2px solid #d9d9d9; border-bottom: 1px solid #ddd; text-align: center; }
.policy-wrap thead th { padding: 16px 0; font-size: 16px; height: 74px; letter-spacing: -0.05em; line-height: 1.5; font-weight: bold; word-break: keep-all; }
.policy-wrap tbody td { padding: 16px 0; font-size: 14px; letter-spacing: -0.05em; line-height: 1.5; border-top: 1px solid #ddd; }

.policy-wrap .tb-v2 thead th {background: #ddd;}
.policy-wrap .tb-v2 tbody td {border: 1px solid #ddd; padding: 20px;}
.policy-wrap .tb-v2 tbody td p:first-child {margin: 0;}
.policy-wrap .tb-v2 .text-left {text-align: left;}

.policy-wrap ul { margin-top: 32px; }
.policy-wrap ul li { line-height: 1.75; }
.policy-wrap ul li span { display: block; margin-bottom: 8px; font-size: 14px; line-height: 2; }
.privacy-contact { display: flex; flex-wrap: wrap; grid-column-gap: 32px; margin-top: 32px; }

.policy-wrap .link {color: #1e10ca; text-decoration: underline;}

@media (max-width: 719px) {
    .policy-visual { padding: 118px 0 36px; }
    .policy-visual h3 { width: calc(100% - 56px); margin: 0 auto 15px; font-size: 32px; line-height: 1.5; }
    .policy-visual .policy-contents { width: calc(100% - 56px); height: fit-content;  margin: 0 auto; }
    .policy-visual .policy-contents a { font-size: 14px; }
    .policy-wrap { width: calc(100% - 56px); margin: 0 auto; padding-bottom: 32px; }
    .policy-wrap h4 { font-size: 24px; }
    .policy-wrap p { font-size: 14px; line-height: 1.75; }
    .policy-wrap ul li { font-size: 14px; line-height: 1.75; }
    #privacy-policy04 > div,
    #privacy-policy10 .tb-wrap { width: 100%; overflow-x: scroll; }
   
    .policy-wrap table { width: 640px; }
    .privacy-contact { font-size: 14px; grid-column-gap: 0; }
    #privacy-policy08 ul li { font-weight: 500; }
    #privacy-policy08 ul li span { font-weight: 400; }
}

@media (min-width: 720px) and (max-width: 1023px) {
    .policy-wrap { width: calc(100% - 112px); margin: 0 auto; padding-bottom: 32px; }
}