@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Zen+Kaku+Gothic+New:wght@300;400;500;700&display=swap");
@keyframes default-top {
  0% {
    transform: translate3d(0, 13px, 0) rotate(-30deg);
  }
  33% {
    transform: translate3d(0, 13px, 0) rotate(-30deg);
  }
  67% {
    transform: translate3d(0, 13px, 0) rotate(0deg);
  }
  100% {
    transform: translateZ(0);
  }
}
@keyframes default-bottom {
  0% {
    transform: translate3d(0, -13px, 0) rotate(30deg);
  }
  33% {
    transform: translate3d(0, -13px, 0) rotate(30deg);
  }
  67% {
    transform: translate3d(0, -13px, 0) rotate(0deg);
  }
  100% {
    transform: translateZ(0) rotate(0deg);
  }
}
@keyframes close-top {
  0% {
    transform: translateZ(0);
  }
  33% {
    transform: translate3d(0, 13px, 0);
  }
  67% {
    transform: translate3d(0, 13px, 0) rotate(-30deg);
  }
  100% {
    transform: translate3d(0, 13px, 0) rotate(-30deg);
  }
}
@keyframes close-bottom {
  0% {
    transform: translateZ(0) rotate(0deg);
  }
  33% {
    transform: translate3d(0, -13px, 0) rotate(0deg);
  }
  67% {
    transform: translate3d(0, -13px, 0) rotate(30deg);
  }
  100% {
    transform: translate3d(0, -13px, 0) rotate(30deg);
  }
}
@keyframes default-top-sp {
  0% {
    transform: translate3d(0, 1.3333333333vw, 0) rotate(-30deg);
  }
  33% {
    transform: translate3d(0, 1.3333333333vw, 0) rotate(-30deg);
  }
  67% {
    transform: translate3d(0, 1.3333333333vw, 0) rotate(0deg);
  }
  100% {
    transform: translateZ(0);
  }
}
@keyframes default-bottom-sp {
  0% {
    transform: translate3d(0, -1.3333333333vw, 0) rotate(30deg);
  }
  33% {
    transform: translate3d(0, -1.3333333333vw, 0) rotate(30deg);
  }
  67% {
    transform: translate3d(0, -1.3333333333vw, 0) rotate(0deg);
  }
  100% {
    transform: translateZ(0) rotate(0deg);
  }
}
@keyframes close-top-sp {
  0% {
    transform: translateZ(0);
  }
  33% {
    transform: translate3d(0, 1.3333333333vw, 0);
  }
  67% {
    transform: translate3d(0, 1.3333333333vw, 0) rotate(-30deg);
  }
  100% {
    transform: translate3d(0, 1.3333333333vw, 0) rotate(-30deg);
  }
}
@keyframes close-bottom-sp {
  0% {
    transform: translateZ(0) rotate(0deg);
  }
  33% {
    transform: translate3d(0, -1.3333333333vw, 0) rotate(0deg);
  }
  67% {
    transform: translate3d(0, -1.3333333333vw, 0) rotate(30deg);
  }
  100% {
    transform: translate3d(0, -1.3333333333vw, 0) rotate(30deg);
  }
}
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, section, article, aside, hgroup, header, footer, nav, dialog, figure, menu, video, audio, mark, time, canvas, details {
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: baseline;
  box-sizing: border-box;
  background: transparent;
}

section, article, aside, hgroup, header, footer, main, nav, dialog, figure, figcaption {
  display: block;
}

html {
  font-size: 62.5%;
}

body {
  line-height: 1;
  -webkit-text-size-adjust: 100%;
  -webkit-print-color-adjust: exact;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after, q:before, q:after {
  content: "";
  content: none;
}

:focus {
  outline-color: #8B8484;
}

ins {
  text-decoration: none;
}

del {
  text-decoration: line-through;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

img {
  -webkit-backface-visibility: hidden;
  vertical-align: bottom;
}

b, strong, em {
  font-weight: inherit;
  font-style: inherit;
}

html {
  font-size: 10px;
}
@media screen and (max-width:374px) {
  html {
    font-size: 2.6666666667vw;
  }
}

body {
  width: 100%;
  color: #373131;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.4rem;
  font-weight: 400;
}
@media screen and (max-width:767px) {
  body.is-locked {
    position: fixed;
    width: 100%;
    height: 100%;
  }
}
@media screen and (max-width:767px) {
  body {
    font-size: 4vw;
    min-width: 320px;
  }
}

*,
*:before,
*:after {
  box-sizing: border-box;
  word-break: break-all;
}

a {
  text-decoration: none;
  color: inherit;
  transition: all 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);
}
a img,
a i {
  transition: all 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);
}

img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}

iframe {
  vertical-align: bottom;
}

.hover-alpha a:hover img {
  opacity: 0.7;
}

::placeholder {
  color: #BAB2B2;
  font-size: 1.4rem;
}

select,
textarea,
input[type=text],
input[type=email],
input[type=number],
input[type=tel],
input[type=password],
button {
  -webkit-appearance: none;
  -moz-appearance: none;
  padding: 0;
  line-height: 1;
  box-sizing: border-box;
  border-radius: 0.3rem;
  border: none;
  background: #fff;
  border: 1px solid #373131;
  font-size: 1.4rem;
  font-family: "Noto Sans JP", sans-serif;
  width: 100%;
  padding: 1.4rem 2rem;
}

input[type=number] {
  -moz-appearance: textfield;
}

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

input[type=text],
input[type=email],
input[type=tel] {
  width: 100%;
  border: 1px solid #373131;
  background: #fff;
  padding: 1.4rem 2rem;
  box-sizing: border-box;
}

select {
  cursor: pointer;
  width: 100%;
  padding: 0 40px 0 15px;
  border: 1px solid #373131;
  background: #fff;
  height: 44px;
  font-size: 1.4rem;
}

select::-ms-expand {
  display: none;
}

textarea {
  resize: none;
  width: 100%;
  line-height: 1.5;
  border: 1px solid #373131;
  background: #fff;
  font-size: 1.4rem;
  padding: 1.4rem 2rem;
  font: inherit;
}

input[type=button],
input[type=submit] {
  -webkit-appearance: none;
  -moz-appearance: none;
  border: none;
  line-height: 1;
  cursor: pointer;
}

button {
  cursor: pointer;
}

strong {
  font-weight: 700;
}

@media screen and (max-width:767px) {
  select,
  textarea,
  input[type=text],
  input[type=email],
  input[type=number],
  input[type=tel] {
    font-size: 1.4rem;
  }
}
.c-btn-center {
  margin-left: auto;
  margin-right: auto;
}

.c-btn-01 {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 50px;
  text-align: center;
  font-weight: 700;
  cursor: pointer;
  position: relative;
  border: 1px solid #373131;
  font-family: "Inter", sans-serif;
  font-weight: 700;
  max-width: 300px;
  padding: 0 40px;
  font-size: 1.5rem;
}
.c-btn-01__txt {
  display: inline-block;
  position: relative;
  z-index: 2;
}
.c-btn-01__ico {
  position: absolute;
  top: 50%;
  right: -12px;
  transform: translateY(-50%);
}
@media print, screen and (min-width:768px) {
  .c-btn-01:hover {
    color: #fff;
    background: #373131;
  }
  .c-btn-01:hover .c-btn-01__ico svg {
    fill: #fff;
  }
}
.c-btn-01--back .c-btn-01__ico {
  right: inherit;
  left: 14px;
  transform: translateY(-50%) rotate(180deg);
}
@media print, screen and (min-width:768px) {
  .c-btn-01--back:hover .c-btn-01__ico {
    left: 11px;
  }
}
.c-btn-01--anker .c-btn-01__ico {
  transform: translateY(-50%) rotate(90deg);
}
.c-btn-01--blank .c-btn-01__ico {
  height: 10px;
}

.c-btn-arrow {
  border: none;
  outline: none;
  color: #fff;
  font-size: 1.5rem;
  max-width: 22rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.8rem 2rem;
}
@media screen and (max-width:767px) {
  .c-btn-arrow {
    font-size: 3.7333333333vw;
    padding: 4.8vw 6.6666666667vw;
  }
}
.c-btn-arrow svg {
  fill: #fff;
  width: 1.4rem;
}
@media screen and (max-width:767px) {
  .c-btn-arrow svg {
    width: 3.7333333333vw;
  }
}
.c-btn-arrow.blk {
  background-color: #373131;
}
.c-btn-arrow.blk:hover, .c-btn-arrow.blk:focus {
  background-color: #8B8484;
}
.c-btn-arrow.gray {
  background-color: #8B8484;
}
.c-btn-arrow.gray:hover, .c-btn-arrow.gray:focus {
  background-color: #373131;
}

.c-card-01 .c-card-01__items {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  margin: -30px -15px 0;
}
.c-card-01 .c-card-01__item {
  width: 100%;
  margin: 30px 15px 0;
}
@media print, screen and (min-width:768px) {
  .c-card-01.c-card-01--col2 .c-card-01__item {
    width: calc(50% - 30px);
  }
}
@media print, screen and (min-width:768px) {
  .c-card-01.c-card-01--col3 .c-card-01__item {
    width: calc(33.3333333333% - 30px);
  }
}
@media print, screen and (min-width:768px) {
  .c-card-01.c-card-01--col4 .c-card-01__item {
    width: calc(50% - 30px);
  }
}
@media print, screen and (min-width:1025px) {
  .c-card-01.c-card-01--col4 .c-card-01__item {
    width: calc(25% - 30px);
  }
}

.c-form-input {
  display: inline-block;
  width: 100%;
}

.c-form-radio {
  display: inline-block;
  cursor: pointer;
  min-height: 22px;
}
.c-form-radio span {
  display: block;
  padding: 1px 0 0 30px;
  position: relative;
  line-height: 1.3;
}
.c-form-radio span:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  z-index: 0;
  border: 1px solid #eee;
  background: #fff;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  box-sizing: border-box;
}
.c-form-radio span:after {
  content: "";
  position: absolute;
  left: 6px;
  top: 6px;
  z-index: 1;
  background: #373131;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  visibility: hidden;
  box-sizing: border-box;
}
.c-form-radio input[type=radio] {
  opacity: 0;
  -webkit-appearance: none;
  appearance: none;
  position: absolute;
}
.c-form-radio input[type=radio]:focus + span:before {
  border: 1px solid #8B8484;
}
.c-form-radio input[type=radio]:checked + span:after {
  visibility: visible;
}

.c-form-checkbox {
  display: inline-block;
  cursor: pointer;
  min-height: 22px;
}
.c-form-checkbox span {
  display: block;
  padding: 1px 0 0 30px;
  position: relative;
  line-height: 1.3;
}
.c-form-checkbox span:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  z-index: 0;
  border: 1px solid #eee;
  background: #fff;
  width: 22px;
  height: 22px;
  box-sizing: border-box;
}
.c-form-checkbox span:after {
  content: "";
  display: block;
  width: 11px;
  height: 6px;
  border-top: 2px solid #373131;
  border-right: 2px solid #373131;
  transform: rotate(135deg);
  position: absolute;
  top: 6px;
  left: 6px;
  z-index: 1;
  visibility: hidden;
  box-sizing: border-box;
}
.c-form-checkbox input[type=checkbox] {
  opacity: 0;
  -webkit-appearance: none;
  appearance: none;
  position: absolute;
}
.c-form-checkbox input[type=checkbox]:focus + span:before {
  border: 1px solid #8B8484;
}
.c-form-checkbox input[type=checkbox]:checked + span:after {
  visibility: visible;
}

.c-form-select {
  position: relative;
}
.c-form-select:after {
  content: "";
  display: block;
  width: 6px;
  height: 6px;
  border-top: 2px solid #333;
  border-right: 2px solid #333;
  transform: rotate(135deg);
  position: absolute;
  top: 50%;
  right: 15px;
  margin-top: -3px;
  pointer-events: none;
}

.c-form-textarea {
  display: inline-block;
  width: 100%;
  vertical-align: bottom;
}

.form-search {
  display: flex;
  justify-content: flex-end;
  position: relative;
}
.form-search input[type=search] {
  padding-right: 6rem;
  padding-left: 2rem;
  line-height: 4.6rem;
  width: 34rem;
}
@media screen and (max-width:767px) {
  .form-search input[type=search] {
    width: 100%;
    max-width: 96vw;
  }
}
.form-search button.btn-search {
  width: 5rem;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0 0.3rem 0.3rem 0;
  padding: 0;
  position: absolute;
  right: 0;
  top: 0;
  background-color: #373131;
}
.form-search button.btn-search svg {
  fill: #fff;
  width: 2.4rem;
}

.c-ico-arrow-01 {
  display: inline-block;
}
.c-ico-arrow-01 svg {
  display: inline-block;
  vertical-align: top;
}
.c-ico-arrow-01 {
  width: 8px;
  height: 16px;
}
.c-ico-arrow-01 svg {
  width: 8px;
  height: 16px;
  fill: #373131;
}

.c-ico-blank-01 svg {
  width: 10px;
  height: 10px;
  fill: #373131;
}

.c-ico-blank-02 svg {
  width: 10px;
  height: 10px;
  fill: #FFF;
}

.c-ico-plus-01 {
  display: inline-block;
}
.c-ico-plus-01 svg {
  display: inline-block;
  vertical-align: top;
}
@media print, screen and (min-width:768px) {
  .c-ico-plus-01 {
    width: 25px;
    height: 25px;
  }
}
@media screen and (max-width:767px) {
  .c-ico-plus-01 {
    width: 15px;
    height: 15px;
  }
}
.c-ico-plus-01:before, .c-ico-plus-01:after {
  position: absolute;
  top: 50%;
  left: 0;
  display: block;
  content: "";
  background: #373131;
  width: 100%;
  height: 1px;
  transition: all 0.3s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.c-ico-plus-01:after {
  transform: rotate(90deg);
}

.c-ico-close-01 {
  display: inline-block;
}
.c-ico-close-01 svg {
  display: inline-block;
  vertical-align: top;
}
.c-ico-close-01 {
  width: 16px;
  height: 2px;
  position: relative;
}
.c-ico-close-01:after, .c-ico-close-01:before {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #373131;
}
.c-ico-close-01:before {
  transform: rotateZ(45deg);
}
.c-ico-close-01:after {
  transform: rotateZ(-45deg);
}

.c-ico-reverse {
  transform: rotateY(180deg);
}

.c-ico-white svg {
  fill: #fff;
}

.c-lead-01 {
  text-align: center;
  font-size: 1.6rem;
  line-height: 1.8;
}

.c-list-notes li {
  text-indent: -1em;
  margin-left: 1em;
}

.c-list-dot li {
  text-indent: -1em;
  margin-left: 1em;
}

.c-sect-xl + .c-sect-xl {
  margin-top: 100px;
}
@media screen and (max-width:767px) {
  .c-sect-xl + .c-sect-xl {
    margin-top: 50px;
  }
}

.c-sect-lg + .c-sect-lg {
  margin-top: 80px;
}
@media screen and (max-width:767px) {
  .c-sect-lg + .c-sect-lg {
    margin-top: 40px;
  }
}

.c-sect-md + .c-sect-md {
  margin-top: 60px;
}
@media screen and (max-width:767px) {
  .c-sect-md + .c-sect-md {
    margin-top: 30px;
  }
}

.c-sect-sm + .c-sect-sm {
  margin-top: 40px;
}
@media screen and (max-width:767px) {
  .c-sect-sm + .c-sect-sm {
    margin-top: 20px;
  }
}

.c-sect-xs + .c-sect-xs {
  margin-top: 20px;
}
@media screen and (max-width:767px) {
  .c-sect-xs + .c-sect-xs {
    margin-top: 10px;
  }
}

.c-tag {
  display: inline-block;
  min-width: 120px;
  padding: 3px 10px;
  font-size: 1.2rem;
  background-color: #ccc;
  color: #fff;
  text-align: center;
}
.c-tag--01 {
  background-color: #373131;
}

.c-table-01 table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  border-top: 1px solid #eee;
}
.c-table-01 th,
.c-table-01 td {
  border-bottom: 1px solid #eee;
  padding: 20px;
}
@media screen and (max-width:767px) {
  .c-table-01 th,
  .c-table-01 td {
    padding: 15px;
  }
}
.c-table-01 th {
  width: 200px;
  vertical-align: middle;
  background-color: #373131;
  font-weight: 700;
  text-align: left;
  color: #fff;
}
@media screen and (max-width:767px) {
  .c-table-01 th {
    width: 120px;
  }
}

.heading-large {
  font-weight: 500;
}
@media print, screen and (min-width:768px) {
  .heading-large {
    font-size: 2.4rem;
    margin-bottom: 4rem;
  }
}
@media screen and (max-width:767px) {
  .heading-large {
    font-size: 2.5rem;
    margin-bottom: 30px;
  }
}

.heading-medium {
  font-weight: 500;
}
@media print, screen and (min-width:768px) {
  .heading-medium {
    font-size: 1.8rem;
    margin-bottom: 2rem;
  }
}
@media screen and (max-width:767px) {
  .heading-medium {
    font-size: 4.8vw;
    margin-bottom: 4vw;
  }
}

.c-ttl-01 {
  text-align: center;
  font-weight: 500;
  line-height: 1.3;
}
@media print, screen and (min-width:768px) {
  .c-ttl-01 {
    font-size: 3.6rem;
    margin-bottom: 5rem;
  }
}
@media screen and (max-width:767px) {
  .c-ttl-01 {
    font-size: 5.8666666667vw;
    margin-bottom: 8vw;
  }
}

.c-ttl-02 {
  line-height: 1.4;
  font-weight: 700;
}
.c-ttl-02 span {
  border-bottom: 1px solid #373131;
}
@media print, screen and (min-width:768px) {
  .c-ttl-02 {
    font-size: 1.8rem;
    margin-bottom: 2rem;
  }
}
@media screen and (max-width:767px) {
  .c-ttl-02 {
    font-size: 5.3333333333vw;
    font-weight: 500;
    margin-bottom: 0;
  }
}

.c-txt-ud--primary {
  background: linear-gradient(transparent 55%, #CCDEFF 55%);
}

.c-link {
  font-size: 1.6rem;
  line-height: 2;
  letter-spacing: 0.004em;
}
@media screen and (max-width:767px) {
  .c-link {
    font-size: 4vw;
  }
}
@media print, screen and (min-width:768px) {
  .c-link:hover {
    opacity: 0.6;
  }
}
.c-link--ud {
  text-decoration: underline;
  text-underline-offset: 0.8rem;
}
.c-link--blank {
  position: relative;
}

.c-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  background: rgba(55, 49, 49, 0.9);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease;
  z-index: 10000;
}
.c-modal .modalContent {
  max-width: 64rem;
  width: 95%;
  background: #fff;
  border-radius: 0.3rem;
  padding: 4.5rem 8rem 5.5rem;
  transform: translateY(2rem);
  transition: transform 0.3s ease;
}
.c-modal {
  /* 開いた状態 */
}
.c-modal.is-open {
  opacity: 1;
  visibility: visible;
}
.c-modal.is-open .modalContent {
  transform: translateY(0);
}

.modal-btn-wrap {
  gap: 1rem;
  justify-content: center;
  align-items: center;
  margin-top: 4.5rem;
}
.modal-btn {
  width: 14rem;
  line-height: 5rem;
  border: none;
  font-size: 1.6rem;
  font-weight: 500;
  color: #fff;
  padding: 0 1rem;
}
.modal-btn.blue {
  background-color: #57C3E8;
}
.modal-btn.gray {
  background-color: #8B8484;
}
.modal-btn-close {
  position: absolute;
  top: 2rem;
  right: 2rem;
  font-size: 0;
  border: none;
  border-radius: 0;
  outline: 0;
  background: transparent;
  width: 2rem;
  height: 2rem;
  padding: 0;
  transform: rotate(-45deg);
}
.modal-btn-close::before, .modal-btn-close::after {
  content: "";
  display: block;
  background-color: #373131;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.modal-btn-close::before {
  width: 100%;
  height: 0.2rem;
}
.modal-btn-close::after {
  width: 0.2rem;
  height: 100%;
}
.modal-ttl {
  text-align: center;
  font-size: 2.4rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  margin-bottom: 2rem;
}
.new-theme-guide {
  text-align: center;
  font-size: 1.6rem;
  margin-bottom: 2rem;
  line-height: 1.6;
}
.new-theme-guide p + p {
  margin-top: 0.4rem;
}
.new-theme-guide a {
  color: #57C3E8;
  text-decoration: underline;
}
.new-theme-select select {
  padding-right: 4rem;
}
#modal-new-theme .modal-form dl dt,
#modal-new-theme .modal-form dl dd,
#modal-new-theme .modal-form input,
#modal-new-theme .modal-form select,
#modal-new-theme .modal-form textarea,
#modal-new-theme .modal-form label,
#modal-new-theme .modal-form button {
  font-size: 1.6rem;
}
#modal-new-theme .modal-form input[type=text],
#modal-new-theme .modal-form select,
#modal-new-theme .modal-form textarea {
  line-height: 1.5;
}
#modal-new-theme .modal-form input[type=radio] {
  width: 1.6rem;
  height: 1.6rem;
}
#modal-new-theme .modal-form label {
  line-height: 1.5;
}
#modal-new-theme #new-theme-csv-file {
  font-size: 1.6rem;
}
.modal-form dl {
  flex-wrap: wrap;
  align-items: center;
  border: dashed #BAB2B2;
  border-width: 1px 0;
  padding: 2.5rem 0 4rem;
  gap: 4rem 0;
}
.modal-form dl dt {
  font-size: 1.6rem;
  width: 15rem;
}
.modal-form dl dd {
  width: calc(100% - 15rem);
  font-size: 1.6rem;
}

button {
  transition: all 0.2s;
}

button.btn-blue {
  background-color: #57C3E8;
  color: #fff;
  border: none;
  line-height: 5rem;
  padding: 0 1rem;
  transition: all 0.2s;
  font-size: 1.6rem;
  font-weight: 500;
}
@media print, screen and (min-width:768px) {
  button.btn-blue:hover, button.btn-blue:focus {
    background-color: #1CA6D4;
  }
}

button.btn-gray {
  background-color: #8B8484;
  color: #fff;
  border: none;
  border-radius: 0.3rem;
  padding: 0 2rem 0 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 25rem;
  width: 100%;
  line-height: 4.6rem;
  font-size: 1.5rem;
  font-weight: 500;
}
@media print, screen and (min-width:768px) {
  button.btn-gray:focus, button.btn-gray:hover {
    background-color: #373131;
  }
}
button.btn-gray svg {
  fill: #fff;
}

.p-page-header {
  background-color: #999;
  color: #fff;
}
.p-page-header__inner {
  position: relative;
}
.p-page-header__breadcrumb {
  position: absolute;
  top: 15px;
  left: 20px;
}
@media screen and (max-width:767px) {
  .p-page-header__breadcrumb {
    display: none;
  }
}
.p-page-header__box {
  display: flex;
  align-items: center;
}
@media print, screen and (min-width:768px) {
  .p-page-header__box {
    height: 300px;
  }
}
@media screen and (max-width:767px) {
  .p-page-header__box {
    height: 150px;
  }
}
.p-page-header__ttl {
  font-weight: 700;
}
@media print, screen and (min-width:768px) {
  .p-page-header__ttl {
    font-size: 5rem;
  }
}
@media screen and (max-width:767px) {
  .p-page-header__ttl {
    font-size: 3rem;
  }
}

.p-pager {
  margin: calc(12rem - 4px) -0.8rem 0;
  text-align: center;
  font-size: 0;
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
}
@media screen and (max-width:767px) {
  .p-pager {
    margin: 21.3333333333vw -4px 0;
  }
}
.p-pager li {
  font-size: 2.2rem;
  font-weight: 500;
  font-family: "Inter", sans-serif;
  margin: 0 0.6rem;
  text-align: center;
}
@media screen and (max-width:767px) {
  .p-pager li {
    font-size: 4.2666666667vw;
    margin: 0 0.8vw;
  }
}
.p-pager li a {
  display: block;
  border: 1px solid transparent;
  color: #707070;
  opacity: 0.6;
}
.p-pager li a:hover {
  color: #373131;
  border-color: #373131;
  opacity: 1;
}
.p-pager li span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  position: relative;
  width: 3.8rem;
  height: 3.8rem;
}
@media screen and (max-width:767px) {
  .p-pager li span {
    width: 7.7333333333vw;
    height: 7.7333333333vw;
  }
}
.p-pager li.p-pager__current {
  color: #373131;
  border: 1px solid #373131;
}
.p-pager li.p-pager__blank {
  padding: 1px;
  margin: 0 -8px;
}
.p-pager li.p-pager__prev a, .p-pager li.p-pager__next a {
  display: flex;
  width: 100%;
  height: 100%;
  align-items: center;
  overflow: hidden;
  border-color: #707070;
}
.p-pager li.p-pager__prev svg, .p-pager li.p-pager__next svg {
  width: 1.2rem;
  height: auto;
}
.p-pager li.p-pager__prev svg path, .p-pager li.p-pager__next svg path {
  stroke: #707070;
  stroke-width: 0.1rem;
  fill: none;
}
.p-pager li.p-pager__prev a:hover, .p-pager li.p-pager__next a:hover {
  border-color: #373131;
}
.p-pager li.p-pager__prev a:hover svg path, .p-pager li.p-pager__next a:hover svg path {
  stroke: #373131;
}
.p-pager li.p-pager__prev {
  margin-right: 3.4rem;
  transform: rotate(-90);
}
@media screen and (max-width:767px) {
  .p-pager li.p-pager__prev {
    margin-right: 8vw;
  }
}
.p-pager li.p-pager__prev svg {
  transform: rotate(-180deg);
}
.p-pager li.p-pager__next {
  margin-left: 3.4rem;
}
@media screen and (max-width:767px) {
  .p-pager li.p-pager__next {
    margin-left: 8vw;
  }
}

.u-clr:after {
  content: "";
  display: block;
  clear: both;
  height: 0;
}

@media screen and (max-width:374px) {
  .u-xs-min {
    display: none !important;
  }
}

@media print, screen and (min-width:375px) {
  .u-xs-max {
    display: none !important;
  }
}

@media screen and (max-width:767px) {
  .u-sm-min {
    display: none !important;
  }
}

@media print, screen and (min-width:768px) {
  .u-sm-max {
    display: none !important;
  }
}

@media screen and (max-width:1024px) {
  .u-md-min {
    display: none !important;
  }
}

@media print, screen and (min-width:1025px) {
  .u-md-max {
    display: none !important;
  }
}

@media screen and (max-width:1369px) {
  .u-lg-min {
    display: none !important;
  }
}

@media print, screen and (min-width:1370px) {
  .u-lg-max {
    display: none !important;
  }
}

.u-ff-jp {
  font-family: "Noto Sans JP", sans-serif;
}

.u-ff-en {
  font-family: "Inter", sans-serif;
}

.u-fz-20 {
  font-size: 2rem !important;
}

.u-fz-19 {
  font-size: 1.9rem !important;
}

.u-fz-18 {
  font-size: 1.8rem !important;
}

.u-fz-17 {
  font-size: 1.7rem !important;
}

.u-fz-16 {
  font-size: 1.6rem !important;
}

.u-fz-15 {
  font-size: 1.5rem !important;
}

.u-fz-14 {
  font-size: 1.4rem !important;
}

.u-fz-13 {
  font-size: 1.3rem !important;
}

.u-fz-12 {
  font-size: 1.2rem !important;
}

.u-fz-11 {
  font-size: 1.1rem !important;
}

.u-fz-10 {
  font-size: 1rem !important;
}

.u-fw-400 {
  font-weight: 400 !important;
}

.u-fw-700 {
  font-weight: 700 !important;
}

.u-td-ul {
  text-decoration: underline !important;
}

.u-td-none {
  text-decoration: none !important;
}

.u-ta-l {
  text-align: left !important;
}

.u-ta-r {
  text-align: right !important;
}

.u-ta-c {
  text-align: center !important;
}

.u-va-t {
  vertical-align: top !important;
}

.u-va-m {
  vertical-align: middle !important;
}

.u-va-b {
  vertical-align: bottom !important;
}

.u-c-main {
  color: #373131 !important;
}

.u-c-plain {
  color: #707070 !important;
}

.u-c-white {
  color: #fff !important;
}

.u-c-blue {
  color: #1CA6D4;
}

.u-bg-alpha {
  background-color: transparent !important;
}

.u-bg-main {
  background-color: #373131 !important;
}

.u-bg-plain {
  background-color: #707070 !important;
}

.u-bg-focus {
  background-color: #8B8484 !important;
}

.u-bg-border {
  background-color: #eee !important;
}

.u-bg-white {
  background-color: #fff !important;
}

.u-bg-gray01 {
  background-color: #8B8484 !important;
}

.u-bg-gray02 {
  background-color: #BAB2B2 !important;
}

.u-bd {
  border: 1px solid #eee !important;
}

.u-bd-t {
  border-top: 1px solid #eee !important;
}

.u-bd-l {
  border-left: 1px solid #eee !important;
}

.u-bd-b {
  border-bottom: 1px solid #eee !important;
}

.u-bd-r {
  border-right: 1px solid #eee !important;
}

.u-bd-main {
  border-color: #373131 !important;
}

.u-bd-white {
  border-color: #fff !important;
}

.u-w-100 {
  width: 100% !important;
}

.u-w-90 {
  width: 90% !important;
}

.u-w-80 {
  width: 80% !important;
}

.u-w-70 {
  width: 70% !important;
}

.u-w-60 {
  width: 60% !important;
}

.u-w-50 {
  width: 50% !important;
}

.u-w-40 {
  width: 40% !important;
}

.u-w-30 {
  width: 30% !important;
}

.u-w-20 {
  width: 20% !important;
}

.u-w-10 {
  width: 10% !important;
}

.u-m-0 {
  margin: 0 !important;
}

.u-m-auto {
  margin: auto !important;
}

.u-mx-auto {
  margin-left: auto !important;
  margin-right: auto !important;
}

.u-my-auto {
  margin-top: auto !important;
  margin-bottom: auto !important;
}

.u-mt-0 {
  margin-top: 0 !important;
}

.u-mt-5 {
  margin-top: 5px !important;
}

.u-mt-10 {
  margin-top: 10px !important;
}

.u-mt-15 {
  margin-top: 15px !important;
}

.u-mt-20 {
  margin-top: 20px !important;
}

.u-mt-25 {
  margin-top: 25px !important;
}

.u-mt-30 {
  margin-top: 30px !important;
}

.u-mt-35 {
  margin-top: 35px !important;
}

.u-mt-40 {
  margin-top: 40px !important;
}

.u-mt-45 {
  margin-top: 45px !important;
}

.u-mt-50 {
  margin-top: 50px !important;
}

.u-mt-xs {
  margin-top: 20px !important;
}
@media screen and (max-width:767px) {
  .u-mt-xs {
    margin-top: 10px !important;
  }
}

.u-mt-sm {
  margin-top: 40px !important;
}
@media screen and (max-width:767px) {
  .u-mt-sm {
    margin-top: 20px !important;
  }
}

.u-mt-md {
  margin-top: 60px !important;
}
@media screen and (max-width:767px) {
  .u-mt-md {
    margin-top: 30px !important;
  }
}

.u-mt-lg {
  margin-top: 80px !important;
}
@media screen and (max-width:767px) {
  .u-mt-lg {
    margin-top: 40px !important;
  }
}

.u-mt-xl {
  margin-top: 100px !important;
}
@media screen and (max-width:767px) {
  .u-mt-xl {
    margin-top: 50px !important;
  }
}

.u-mb-0 {
  margin-bottom: 0 !important;
}

.u-mb-5 {
  margin-bottom: 5px !important;
}

.u-mb-10 {
  margin-bottom: 10px !important;
}

.u-mb-15 {
  margin-bottom: 15px !important;
}

.u-mb-20 {
  margin-bottom: 20px !important;
}

.u-mb-25 {
  margin-bottom: 25px !important;
}

.u-mb-30 {
  margin-bottom: 30px !important;
}

.u-mb-35 {
  margin-bottom: 35px !important;
}

.u-mb-40 {
  margin-bottom: 40px !important;
}

.u-mb-45 {
  margin-bottom: 45px !important;
}

.u-mb-50 {
  margin-bottom: 50px !important;
}

.u-mb-xs {
  margin-bottom: 20px !important;
}
@media screen and (max-width:767px) {
  .u-mb-xs {
    margin-bottom: 10px !important;
  }
}

.u-mb-sm {
  margin-bottom: 40px !important;
}
@media screen and (max-width:767px) {
  .u-mb-sm {
    margin-bottom: 20px !important;
  }
}

.u-mb-md {
  margin-bottom: 60px !important;
}
@media screen and (max-width:767px) {
  .u-mb-md {
    margin-bottom: 30px !important;
  }
}

.u-mb-lg {
  margin-bottom: 80px !important;
}
@media screen and (max-width:767px) {
  .u-mb-lg {
    margin-bottom: 40px !important;
  }
}

.u-mb-xl {
  margin-bottom: 100px !important;
}
@media screen and (max-width:767px) {
  .u-mb-xl {
    margin-bottom: 50px !important;
  }
}

.u-p-0 {
  padding: 0 !important;
}

.u-p-5 {
  padding: 5px !important;
}

.u-p-10 {
  padding: 10px !important;
}

.u-p-15 {
  padding: 15px !important;
}

.u-p-20 {
  padding: 20px !important;
}

.u-p-25 {
  padding: 25px !important;
}

.u-p-30 {
  padding: 30px !important;
}

.u-p-35 {
  padding: 35px !important;
}

.u-p-40 {
  padding: 40px !important;
}

.u-p-45 {
  padding: 45px !important;
}

.u-p-50 {
  padding: 50px !important;
}

.u-pt-0 {
  padding-top: 0 !important;
}

.u-pt-5 {
  padding-top: 5px !important;
}

.u-pt-10 {
  padding-top: 10px !important;
}

.u-pt-15 {
  padding-top: 15px !important;
}

.u-pt-20 {
  padding-top: 20px !important;
}

.u-pt-25 {
  padding-top: 25px !important;
}

.u-pt-30 {
  padding-top: 30px !important;
}

.u-pt-35 {
  padding-top: 35px !important;
}

.u-pt-40 {
  padding-top: 40px !important;
}

.u-pt-45 {
  padding-top: 45px !important;
}

.u-pt-50 {
  padding-top: 50px !important;
}

.u-pt-xs {
  padding-top: 20px !important;
}
@media screen and (max-width:767px) {
  .u-pt-xs {
    padding-top: 10px !important;
  }
}

.u-pt-sm {
  padding-top: 40px !important;
}
@media screen and (max-width:767px) {
  .u-pt-sm {
    padding-top: 20px !important;
  }
}

.u-pt-md {
  padding-top: 60px !important;
}
@media screen and (max-width:767px) {
  .u-pt-md {
    padding-top: 30px !important;
  }
}

.u-pt-lg {
  padding-top: 80px !important;
}
@media screen and (max-width:767px) {
  .u-pt-lg {
    padding-top: 40px !important;
  }
}

.u-pt-xl {
  padding-top: 100px !important;
}
@media screen and (max-width:767px) {
  .u-pt-xl {
    padding-top: 50px !important;
  }
}

.u-pb-0 {
  padding-bottom: 0 !important;
}

.u-pb-5 {
  padding-bottom: 5px !important;
}

.u-pb-10 {
  padding-bottom: 10px !important;
}

.u-pb-15 {
  padding-bottom: 15px !important;
}

.u-pb-20 {
  padding-bottom: 20px !important;
}

.u-pb-25 {
  padding-bottom: 25px !important;
}

.u-pb-30 {
  padding-bottom: 30px !important;
}

.u-pb-35 {
  padding-bottom: 35px !important;
}

.u-pb-40 {
  padding-bottom: 40px !important;
}

.u-pb-45 {
  padding-bottom: 45px !important;
}

.u-pb-50 {
  padding-bottom: 50px !important;
}

.u-pb-xs {
  padding-bottom: 20px !important;
}
@media screen and (max-width:767px) {
  .u-pb-xs {
    padding-bottom: 10px !important;
  }
}

.u-pb-sm {
  padding-bottom: 40px !important;
}
@media screen and (max-width:767px) {
  .u-pb-sm {
    padding-bottom: 20px !important;
  }
}

.u-pb-md {
  padding-bottom: 60px !important;
}
@media screen and (max-width:767px) {
  .u-pb-md {
    padding-bottom: 30px !important;
  }
}

.u-pb-lg {
  padding-bottom: 80px !important;
}
@media screen and (max-width:767px) {
  .u-pb-lg {
    padding-bottom: 40px !important;
  }
}

.u-pb-xl {
  padding-bottom: 100px !important;
}
@media screen and (max-width:767px) {
  .u-pb-xl {
    padding-bottom: 50px !important;
  }
}

.d-flex {
  display: flex;
}

.flex-wrap {
  flex-wrap: wrap;
}

.col-2 {
  width: 50%;
}

.col-3 {
  width: 33.333%;
}

.d-grid {
  display: grid;
}

.l-inner {
  margin-left: auto;
  margin-right: auto;
  padding-left: 3rem;
  padding-right: 3rem;
  width: 100%;
  max-width: calc(1000px + 6rem);
}
@media screen and (max-width:767px) {
  .l-inner {
    max-width: calc(1000px + 13.3333333333vw);
    padding-left: 6.6666666667vw;
    padding-right: 6.6666666667vw;
  }
}
.l-inner.sm {
  max-width: calc(720px + 6rem);
}
.l-inner.panel {
  max-width: none;
  padding-left: 6rem;
  padding-right: 6rem;
}
@media screen and (max-width:767px) {
  .l-inner.panel {
    padding-left: 2.6666666667vw;
    padding-right: 2.6666666667vw;
  }
}

@media print, screen and (min-width:768px) {
  .l-container {
    padding: 0 0 10rem;
  }
}
@media screen and (max-width:767px) {
  .l-container {
    padding: 6.6666666667vw 0 13.3333333333vw;
  }
}
@media print, screen and (min-width:768px) {
  .l-container:last-child {
    padding-bottom: 10rem;
  }
}
@media screen and (max-width:767px) {
  .l-container:last-child {
    padding-bottom: 13.3333333333vw;
  }
}
.l-container.l-container--gray {
  background: #8B8484;
}

.l-gridwrap {
  display: grid;
  grid-template-rows: auto 1fr auto;
  grid-template-columns: 100%;
  min-height: 100vh;
}

.l-page {
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  padding-top: 100px;
}
@media screen and (max-width:767px) {
  .l-page {
    padding-top: 13.3333333333vw;
  }
}
.l-page__heading {
  position: absolute;
  overflow: hidden;
  height: 1px;
  width: 1px;
  padding: 0;
  border: 0;
}

.l-header {
  margin-top: 9rem;
}
@media screen and (max-width:767px) {
  .l-header {
    margin-top: 14.6666666667vw;
  }
}
.l-header h1.logo {
  width: 22rem;
  margin: 0 auto 4.5rem;
}
@media screen and (max-width:767px) {
  .l-header h1.logo {
    width: 45.3333333333vw;
    margin: 0 auto 12vw;
  }
}
.l-header.sm {
  padding: 3rem 2rem 0;
  margin-top: 0;
  position: relative;
}
.l-header.sm h1.logo {
  width: 14.5rem;
  margin: 0 auto 6.5rem;
}
@media screen and (max-width:767px) {
  .l-header.sm h1.logo {
    width: 40vw;
    margin: 0 auto 10.6666666667vw;
  }
}
.l-header.sm.left h1.logo {
  margin-left: 0;
  margin-right: 0;
}

.btn-back {
  position: absolute;
  width: 5.6rem;
  height: 5.6rem;
  border-radius: 50%;
  border: 1px solid #373131;
  background-color: transparent;
  top: 2rem;
  left: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
@media print, screen and (min-width:768px) {
  .btn-back:hover, .btn-back:focus {
    outline: none;
  }
  .btn-back:hover::before, .btn-back:focus::before {
    width: 100%;
    height: 100%;
    opacity: 1;
    background-color: #373131;
  }
  .btn-back:hover svg, .btn-back:focus svg {
    fill: #fff;
  }
}
.btn-back::before {
  content: "";
  width: 0;
  height: 0;
  opacity: 0;
  border-radius: 50%;
  transition: all 0.2s;
  transform: translate(-50%, -50%);
  position: absolute;
  top: 50%;
  left: 50%;
}
.btn-back svg {
  width: 2rem;
  height: auto;
  fill: #373131;
  position: relative;
}

.l-footer {
  margin-top: 10rem;
}
@media screen and (max-width:767px) {
  .l-footer {
    margin-top: 16vw;
  }
}
.l-footer-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: calc(1000px + 6rem);
  width: 100%;
  padding: 0 3rem;
  margin: 0 auto 4rem;
}
@media screen and (max-width:767px) {
  .l-footer-inner {
    flex-wrap: wrap;
    max-width: calc(1000px + 13.3333333333vw);
    padding-left: 6.6666666667vw;
    padding-right: 6.6666666667vw;
  }
}
@media screen and (max-width:767px) {
  .l-footer-nav {
    width: 100%;
  }
}
.l-footer-nav ul {
  display: flex;
  border-left: 1px solid #373131;
}
@media screen and (max-width:767px) {
  .l-footer-nav ul {
    flex-direction: column;
    border-top: 1px solid #8B8484;
    border-left: none;
  }
}
.l-footer-nav ul li {
  border-right: 1px solid #373131;
}
@media screen and (max-width:767px) {
  .l-footer-nav ul li {
    border-bottom: 1px solid #8B8484;
    border-right: none;
  }
}
.l-footer-nav ul a {
  font-size: 1.2rem;
  display: block;
  padding: 0 1.5em;
}
@media print, screen and (min-width:768px) {
  .l-footer-nav ul a:hover {
    color: #8B8484;
  }
}
@media screen and (max-width:767px) {
  .l-footer-nav ul a {
    padding: 4vw 2.6666666667vw;
    font-size: 3.0666666667vw;
  }
}
.l-footer-copyright {
  color: #373131;
  font-size: 1rem;
  font-family: "Inter", sans-serif;
}
@media screen and (max-width:767px) {
  .l-footer-copyright {
    width: 100%;
    display: block;
    font-size: 2.6666666667vw;
    text-align: center;
    margin-top: 10.6666666667vw;
  }
}
.l-footer.sm .l-footer-inner {
  display: block;
}

.l-main {
  display: block;
  line-height: 1.8;
}

.c-modal .ai-quiz-review-modal {
  max-width: min(112rem, calc(100vw - 6rem));
  width: calc(100% - 4rem);
  max-height: 90vh;
  overflow-y: auto;
  padding: 4.5rem 6rem 0;
}
.ai-quiz-review-lead {
  text-align: center;
  font-size: 1.6rem;
  line-height: 1.7;
  margin-bottom: 2.4rem;
}
.ai-quiz-review-form {
  padding-bottom: 0;
}
.ai-quiz-review-form input,
.ai-quiz-review-form textarea {
  width: 100%;
  border: 1px solid #BAB2B2;
  border-radius: 0.3rem;
  padding: 1rem 1.2rem;
  font-size: 1.6rem;
  line-height: 1.5;
  background: #fff;
}
.ai-quiz-review-form textarea {
  min-height: 8rem;
  resize: vertical;
}
.ai-review-question-item label {
  display: grid;
  gap: 0.6rem;
  font-size: 1.5rem;
  font-weight: 500;
}
.ai-quiz-review-toolbar {
  position: sticky;
  top: -4.5rem;
  z-index: 2;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin: 0 -1rem 1.6rem;
  padding: 1rem;
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid #E4DEDE;
}
.ai-quiz-review-toolbar p {
  font-size: 1.6rem;
  font-weight: 700;
}
.ai-quiz-review-toolbar .modal-btn {
  width: auto;
  min-width: 13rem;
  line-height: 4.2rem;
}
.ai-review-question-list {
  display: grid;
  gap: 1.6rem;
}
.ai-review-question-item {
  border: 1px solid #E4DEDE;
  border-radius: 0.6rem;
  background: #FAFAFA;
  padding: 1.6rem;
  display: grid;
  gap: 1.2rem;
}
.ai-review-question-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.ai-review-question-number {
  font-size: 1.7rem;
  color: #57C3E8;
  line-height: 1.3;
  white-space: nowrap;
}
.ai-review-remove-question {
  width: auto;
  min-width: 6.4rem;
  border: none;
  background: #8B8484;
  color: #fff;
  border-radius: 0.3rem;
  padding: 0.6rem 1.2rem;
  font-size: 1.4rem;
  line-height: 1.4;
}
.ai-review-sticky-actions {
  position: sticky;
  bottom: 0;
  z-index: 3;
  display: flex;
  justify-content: center;
  margin: 2rem -6rem 0;
  padding: 1.4rem 2rem;
  background: rgba(255, 255, 255, 0.96);
  border-top: 1px solid #E4DEDE;
}
.ai-review-sticky-actions .modal-btn {
  width: auto;
  min-width: 22rem;
  line-height: 5rem;
}
@media screen and (max-width:767px) {
  .c-modal .ai-quiz-review-modal {
    max-width: calc(100vw - 2rem);
    width: calc(100% - 2rem);
    padding: 3.5rem 2rem 0;
  }
  .ai-quiz-review-form {
    padding-bottom: 0;
  }
  .ai-quiz-review-toolbar {
    top: -3.5rem;
    align-items: stretch;
    flex-direction: column;
  }
  .ai-review-sticky-actions {
    bottom: 0;
    margin: 2rem -2rem 0;
  }
  .ai-review-sticky-actions .modal-btn {
    width: 100%;
    min-width: 0;
  }
}
