:root {
    --color-white: #fff;
    --color-blue: #0f3291;
    --color-gray: #c7c7c7;
    --color-red: #f01423;
}

/* CSS Reset */
body, h1, h2, ul, ol, dl, li, figure, figcaption, blockquote, dd {
  margin: 0;
  padding: 0;
}
* {
  -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

body {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 100%;
  -webkit-font-smoothing: antialiased; 
  -moz-osx-font-smoothing: grayscale; 
}

ul {
    padding-left: 0;
}

ul li {
    list-style: none;
    padding-bottom: 5px;
}

a {
    text-decoration: none;
    color: #333;
}

.sp {
    display: none;
}

/* Header */
.header {
    z-index: 100;
    position: fixed;
    width: 100%;
    border-bottom: 1px solid var(--color-gray);
}
.headerBox {
    display: flex;
    align-items: center;
    height: 72px;
    background-color: var(--color-white);
}
.boxLogo {
    width: 15%;
    padding: 0 15px;
}

main {
    margin-bottom: 80px;
    padding-top: 72px;
    width: 70%;
    margin: 0 auto 72px;
}

.tableOfContents p {
    color: var(--color-blue);
    font-weight: 600;
}

.container {
    width: 100%;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
}

.whitePaper_contents {
    width: 60%;
    padding-right: 30px;
}

.whitePaper_contents img {
    width: 100%;
    height: auto;
}

.tableOfContents {
    background-color: #f5f7fd;
    padding: 10px 20px;
}

.tableOfContents p {
    font-size: 1.2rem;
    text-align: center;
    border-bottom: 3px solid var(--color-blue);
    padding-bottom: 10px;
}

.pageTitle {
    color: var(--color-blue);
    position: relative;
    font-size: 2.0rem;
    text-align: center;
    font-weight: 600;
}

.pageTitle:before {
    position: absolute;
    content: '';
    left: 50%;
    bottom: -10px;
    display: inline-block;
    border-radius: 5px;
    width: 90px;
    height: 3px;
    -moz-transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translate(-50%);
    background-color: var(--color-blue);
}

h2 {
    font-size: 2.5em;
    text-align: center;
    padding: 30px 0;
}

/* Form */
.whitePaper_form_contents {
    width: 40%;
    border-top: 1px solid var(--color-gray);
    border-bottom: 1px solid var(--color-gray);
    background-color: var(--color-white);
    border-radius: 10px;
    box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
    height: 100%;
}

#whitePaper_form {
    margin: 30px;
}

.c-form__item__name {
    margin-bottom: 10px;
}

.c-form__item {
    margin-bottom: 20px;
}

.c-form__item__input input {
    width: 100%;
    padding: 15px;
    font-size: .875rem;
    line-height: 1.5;
    box-sizing: border-box;
}

.c-form__item__name p {
    margin-bottom: 0;
}

.required {
    color: var(--color-red);
}

.error {
    color: var(--color-red);
}

.privacy_policy a {
    color: var(--color-blue);
}

.c-button {
    text-align: center;
}

.button button {
    margin: 10px 0;
    width: 100%;
    color: var(--color-white);
    background-color: var(--color-blue);
    padding: .5rem 1rem;
    font-size: 1.25rem;
    line-height: 1.5;
    border-radius: .3rem;
    cursor: pointer;
}

.button button.disabled-button {
    background-color: var(--color-gray);
    cursor: not-allowed;
    color: var(--color-white);
    border: none;
}

.application_form {
    max-width: 980px;
    margin: 0 auto;
    border-radius: 8px;
    padding: 50px 30px;
}

/* メルマガパーミッション */
input[type=checkbox] {
  display: block;
  clear: both;
  width: 25px;
  height: 25px;
  margin-right: 8px;
  cursor: pointer;
  accent-color: #007AFF;
}

.checkbox-container {
  display: flex;
  align-items: center;
  margin-bottom: 20px;
}

.checkbox-container .checkbox-label {
  border: none;
  background: none;
  padding: 0 !important;
  display: inline-block;
  float: none;
  margin-bottom: 0;
  line-height: 1.4;
  cursor: pointer;
}

/* Footer */
footer .footer_inner {
    margin: 0 auto;
   padding: 20px 0 10px;
    text-align: center;
    background-color: var(--color-white);
    border-top: 1px solid var(--color-gray);
}

.footer_policy {
    margin-bottom: 10px;
}

.footer_policy a:nth-of-type(1) {
    margin-right: 10px;
}

@media screen and (max-width: 1023px) {
  main {
        width: 100%;
    }
}

@media (max-width: 767px) {
    .sp {
        display: block;
    }
    .container {
        width: 90%;
    }

    .whitePaper_contents {
        width: 100%;
        margin: 0;
        padding-right: 0;
    }

    .whitePaper_form_contents {
        width: 100%;
        margin-top: 20px;
    }

    h2 {
        font-size: 1.5rem;
    }

    .tableOfContents p {
        font-size: 1.0rem;
    }
}

@media (min-width: 768px) and (max-width: 1023px) {
     .container {
        width: 90%;
    }
}

@media screen and (max-width: 768px) {

    /* メルマガパーミッション */
  .checkbox-container .checkbox-label {
    flex: 1;
    width: calc(100% - 80px);
    cursor: pointer;
  }
}
