/*-------------------------------

	Reset

-------------------------------*/
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, 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,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

body {
  line-height: 1;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content: "";
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

/*-------------------------------

	Foundation

-------------------------------*/
/* Thin 100
Light 300 
Regular 400 
Medium 500 
Bold 700 
ExtraBold 800 
Black 900 */
@media only screen and (min-width: 421px) {
  /* small-size */
}
@media only screen and (min-width: 821px) {
  /* tablet-size */
}
@media only screen and (min-width: 1080px) {
  /* middle-size */
}
@media only screen and (min-width: 1440px) {
  /* large-size */
}
html {
  font-size: 62.5%;
}

body {
  font-family: YakuHanJP, "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
  color: #595757;
  font-size: 1.4rem;
}
@media only screen and (min-width: 1080px) {
  body {
    font-size: 1.6rem;
  }
}
body {
  font-weight: 400;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

a:link,
a:visited,
a:hover,
a:active {
  text-decoration: none;
}

*:focus {
  outline: none;
}

main img {
  width: 100%;
  vertical-align: top;
}
/*-------------------------------

	Layout

-------------------------------*/
/*
* wrapper
*/
.l-base {
  margin-left: 15px;
  margin-right: 15px;
}
@media only screen and (min-width: 821px) {
  .l-base {
    margin-right: 20px;
    margin-left: 20px;
  }
}
@media screen and (min-width: 1270px) {
  .l-base {
    margin-left: calc((100% - 1000px - 270px) / 2);
    margin-right: calc((100% - 1000px - 270px) / 2);
  }
}

.l-xshort {
  margin-left: 15px;
  margin-right: 15px;
}
@media screen and (min-width: 960px) {
  .l-xshort {
    margin-left: calc((100% - 840px - 120px) / 2);
    margin-right: calc((100% - 840px - 120px) / 2);
  }
}

.l-short {
  margin-left: 15px;
  margin-right: 15px;
}
@media only screen and (min-width: 821px) {
  .l-short {
    margin-right: 80px;
    margin-left: 80px;
  }
}
@media screen and (min-width: 1040px) {
  .l-short {
    margin-left: calc((100% - 840px - 200px) / 2);
    margin-right: calc((100% - 840px - 200px) / 2);
  }
}

.l-short-tb-wide {
  margin-left: 15px;
  margin-right: 15px;
}
@media only screen and (min-width: 821px) {
  .l-short-tb-wide {
    margin-right: 40px;
    margin-left: 40px;
  }
}
@media screen and (min-width: 920px) {
  .l-short-tb-wide {
    margin-left: calc((100% - 840px) / 2);
    margin-right: calc((100% - 840px) / 2);
  }
}

@media only screen and (min-width: 1440px) {
  .l-full {
    margin-left: calc((100% - 1440px) / 2);
    margin-right: calc((100% - 1440px) / 2);
  }
}

/*-------------------------------

	Object

-------------------------------*/
/*---------- Component ----------*/
/* ----------------------------------

youtube/mp4

------------------------------------- */
.iframe__outline {
  position: relative;
  width: 100%;
  padding: 56.2719812427% 0 0;
}
@media only screen and (min-width: 1440px) {
  .iframe__outline {
    /* large-size min 1440px */
    position: inherit;
    width: 144rem;
    margin-right: auto;
    margin-left: auto;
    padding: 0;
  }
}
.iframe__outline iframe,
.iframe__outline video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
@media only screen and (min-width: 1440px) {
  .iframe__outline iframe,
  .iframe__outline video {
    /* large-size min 1440px */
    position: inherit;
  }
}

/* ----------------------------------

contact form 7

------------------------------------- */
.icon-blank::after {
  font-family: "Font Awesome 6 Free";
  display: inline-block;
  font-weight: 400;
  content: "\f2d2";
  color: #fff;
  margin-left: 0.5rem;
}

/* ----------------------------------

contact form 7

------------------------------------- */
.form__table {
  margin-top: 2rem;
}
@media only screen and (min-width: 1080px) {
  .form__table {
    /* middle-size min 1080px +80 */
    font-size: 4.2rem;
  }
}
.form__table > dl {
  display: block;
  width: 100%;
}
@media only screen and (min-width: 821px) {
  .form__table > dl {
    /* tablet-size min 768 */
    display: table;
  }
}
.form__table dt,
.form__table dd {
  width: 100%;
  display: block;
}
@media only screen and (min-width: 821px) {
  .form__table dt,
  .form__table dd {
    /* tablet-size min 768 */
  }
}
@media only screen and (min-width: 1080px) {
  .form__table dt,
  .form__table dd {
    /* middle-size min 1080px +80 */
    display: table-cell;
  }
}
.form__table dt {
  width: 100%;
  display: block;
  padding: 1.5rem 1.7rem;
  background-color: #D9D9D9;
  font-size: 1.2rem;
  color: #333333;
  font-weight: 600;
}
@media only screen and (min-width: 821px) {
  .form__table dt {
    /* tablet-size min 768 */
  }
}
@media only screen and (min-width: 1080px) {
  .form__table dt {
    /* middle-size min 1080px +80 */
    width: 30%;
    vertical-align: middle;
    border-bottom: 1px solid #595757;
    font-size: 1.6rem;
    padding: 2rem 3rem;
  }
}
.form__table dt .require {
  color: #fff;
  background-color: #e02522;
  line-height: 1;
  border-radius: 3px;
  font-size: 1.2rem;
  padding: 0.3rem 0.7rem;
  font-weight: bold;
}
@media only screen and (min-width: 821px) {
  .form__table dt .require {
    /* tablet-size min 768 */
    display: inline-block;
  }
}
@media only screen and (min-width: 1080px) {
  .form__table dt .require {
    /* middle-size min 1080px +80 */
    font-size: 1.4rem;
  }
}
.form__table dt .attention {
  line-height: 1;
  font-size: 1.2rem;
  display: block;
  margin-top: 1rem;
  font-weight: 400;
}
@media only screen and (min-width: 1080px) {
  .form__table dt .attention {
    /* middle-size min 1080px +80 */
    margin-top: 0.5rem;
    font-size: 1.4rem;
  }
}
.form__table dt.va-top {
  vertical-align: top;
}
.form__table dd {
  padding: 2rem 1.7rem;
  vertical-align: middle;
  background-color: #fff;
}
@media only screen and (min-width: 821px) {
  .form__table dd {
    /* tablet-size min 768 */
    border-bottom: 1px solid #595757;
  }
}
@media only screen and (min-width: 1080px) {
  .form__table dd {
    /* middle-size min 1080px +80 */
    width: 70%;
    padding: 1rem 2rem;
  }
}
.form__table dd select {
  cursor: pointer;
}
.form__table dd input[type=email],
.form__table dd input[type=text],
.form__table dd input[type=tel],
.form__table dd textarea,
.form__table dd select {
  width: 100%;
  padding: 1rem;
  border-radius: 3px;
  border: 1px solid #595757;
}
@media only screen and (min-width: 1080px) {
  .form__table dd input[type=email],
  .form__table dd input[type=text],
  .form__table dd input[type=tel],
  .form__table dd textarea,
  .form__table dd select {
    /* middle-size min 1080px +80 */
    display: block;
    width: auto;
    font-size: 1.6rem;
  }
}
.form__table dd input[type=email]::-moz-placeholder, .form__table dd input[type=text]::-moz-placeholder, .form__table dd input[type=tel]::-moz-placeholder, .form__table dd textarea::-moz-placeholder, .form__table dd select::-moz-placeholder {
  color: #aaa;
}
.form__table dd input[type=email]::placeholder,
.form__table dd input[type=text]::placeholder,
.form__table dd input[type=tel]::placeholder,
.form__table dd textarea::placeholder,
.form__table dd select::placeholder {
  color: #aaa;
}
@media only screen and (min-width: 1080px) {
  .form__table dd input[type=text].city,
  .form__table dd input[type=text].streetaddress,
  .form__table dd input[type=text].apartmentmansion {
    width: 80%;
  }
}
.form__table table {
  width: 100%;
}
.form__table table th {
  display: block;
  width: 100%;
  margin-bottom: 5px;
  font-weight: 400;
  text-align: left;
  font-size: 1.2rem;
}
@media only screen and (min-width: 821px) {
  .form__table table th {
    /* tablet-size min 768 */
    width: 12%;
  }
}
@media only screen and (min-width: 1080px) {
  .form__table table th {
    /* middle-size min 1080px +80 */
    display: table-cell;
    font-size: 1.6rem;
    width: 12%;
    margin-bottom: 0;
  }
}
.form__table table td {
  display: block;
  padding: 1rem 0;
}
@media only screen and (min-width: 821px) {
  .form__table table td {
    /* tablet-size min 768 */
  }
}
.form__table table td:first-of-type {
  padding-top: 0;
}
.form__table table td input[type=text].Postalcode,
.form__table table td select {
  width: 60%;
}
@media only screen and (min-width: 821px) {
  .form__table table td input[type=text].Postalcode,
  .form__table table td select {
    /* tablet-size min 768 */
    width: 40%;
  }
}
.form__table table td select {
  padding: 1rem;
  background-image: url(assets/images/select_arrow.png);
  background-repeat: no-repeat;
  background-position: 93% center;
  background-size: 9px;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
.form__table .wpcf7-form-control-wrap {
  position: relative;
}
.form__table .wpcf7-list-item:nth-of-type(1) {
  margin-left: 0;
}
.form__table .wpcf7-list-item-label {
  font-weight: 400;
}
@media only screen and (min-width: 1080px) {
  .form__table .wpcf7-list-item-label {
    font-size: 1.6rem;
  }
}
@media only screen and (min-width: 1080px) {
  .form__table .wpcf7-radio {
    /* middle-size min 1080px +80 */
    display: flex;
    flex-wrap: wrap;
  }
}
@media only screen and (min-width: 1080px) {
  .form__table .wpcf7-radio .wpcf7-list-item {
    /* middle-size min 1080px +80 */
    display: block;
    margin: 0 0 0 1rem;
  }
}
.form__table .wpcf7-radio .wpcf7-list-item:last-of-type {
  margin-right: 0;
}
@media only screen and (min-width: 1080px) {
  .form__table .wpcf7-radio .wpcf7-list-item label {
    /* middle-size min 1080px +80 */
    cursor: pointer;
    display: block;
    font-size: 1.6rem;
  }
}
.form__table .wpcf7-radio .wpcf7-list-item label .wpcf7-list-item-label {
  font-weight: bold;
}
.form__table .wpcf7-radio .wpcf7-list-item .wpcf7-list-item-label {
  margin-left: 0;
}
@media only screen and (max-width: 414px) {
  .form__table .wpcf7-textarea {
    width: 100%;
  }
}

.tos {
  margin-top: 2rem;
  text-align: center;
}
@media only screen and (min-width: 1080px) {
  .tos {
    /* middle-size min 1080px +80 */
    margin-top: 4rem;
  }
}
.tos__txt {
  text-align: center;
  color: #fff;
  font-size: 1.2rem;
  line-height: 1.6;
}
@media only screen and (min-width: 1080px) {
  .tos__txt {
    /* middle-size min 1080px +80 */
    font-size: 1.6rem;
  }
}
.tos__txt a {
  color: #fff;
  text-decoration: underline;
}
.tos__txt a:hover {
  text-decoration: none;
}
.tos__accept {
  font-size: 1.2rem;
  font-weight: 400;
  color: #fff;
  text-align: center;
  margin-top: 2rem;
}
@media only screen and (min-width: 1080px) {
  .tos__accept {
    /* middle-size min 1080px +80 */
    font-size: 1.8rem;
    margin-top: 1rem;
  }
}
.tos__accept .accept {
  top: 2px;
  position: relative;
}
@media only screen and (min-width: 1080px) {
  .tos__accept .accept {
    /* middle-size min 1080px +80 */
    top: 1px;
  }
}
.tos__accept .require {
  font-size: 1rem;
  color: #fff;
  background-color: #e02522;
  line-height: 1;
  border-radius: 3px;
  padding: 0.4rem 0.5rem;
  position: relative;
  font-weight: 600;
  top: -1px;
  margin-left: 0.5rem;
}
@media only screen and (min-width: 1080px) {
  .tos__accept .require {
    /* middle-size min 1080px +80 */
    font-size: 1.4rem;
  }
}

.wpcf7-acceptance label {
  cursor: pointer;
}

.c-btn__btn01 {
  width: 26rem;
  margin-top: 2rem;
  margin-right: auto;
  margin-left: auto;
  text-align: center;
}
@media only screen and (min-width: 1080px) {
  .c-btn__btn01 {
    /* middle-size min 1080px +80 */
    margin-top: 4rem;
    width: 38rem;
  }
}
.c-btn__btn01 a {
  padding: 2.5rem 0;
  font-weight: 600;
  font-size: 1.4rem;
  display: block;
  width: 100%;
  line-height: 1;
  color: #fff;
  transition: all 0.3s linear;
  opacity: 1;
  background-color: #CC0000;
}
@media only screen and (min-width: 1080px) {
  .c-btn__btn01 a {
    /* middle-size min 1080px +80 */
    font-size: 1.6rem;
  }
}
.c-btn__btn01 a:hover {
  opacity: 0.7;
}

.btn__submit input[type=submit] {
  display: block;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  width: 26rem;
  margin-top: 2rem;
  margin-right: auto;
  margin-left: auto;
  padding: 2.5rem 0;
  border: none;
  font-weight: 600;
  font-size: 1.4rem;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  transition: background-position 0.6s ease;
  position: relative;
  background-image: linear-gradient(180deg, #FFFFFF 95%, #CC0000 95%);
  background-position: left center;
  background-repeat: no-repeat;
  color: #333;
  transition: all 0.3s linear;
  opacity: 1;
}
@media only screen and (min-width: 1080px) {
  .btn__submit input[type=submit] {
    /* middle-size min 1080px +80 */
    font-size: 1.6rem;
    margin-top: 4rem;
    width: 38rem;
  }
}
.btn__submit input[type=submit]::after {
  display: block;
  width: 0.7rem;
  height: 0.5rem;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  border-left: 20px solid #CC0000;
  content: "";
  top: 0;
  bottom: 0;
  right: 0;
  position: absolute;
  margin: auto;
}
.btn__submit input[type=submit]:hover {
  opacity: 0.7;
}

.btn__confirm input[type=submit].unchecked,
.btn__submit input[type=submit].unchecked {
  background-image: linear-gradient(180deg, #ccc 95%, #ccc 95%);
  background-position: left center;
  background-repeat: no-repeat;
  color: #fff;
  opacity: 1;
}

.wpcf7-response-output {
  background-color: #fff;
  line-height: 1.5;
}

.wpcf7-select {
  color: #aaa;
}

.wpcf7-form-control-wrap span.wpcf7-not-valid-tip {
  font-size: 1.4rem;
  margin-top: 0.5rem;
}

/*---------- Project ----------*/
@media only screen and (min-width: 421px) {
  /* small-size min 375 */
}
@media only screen and (min-width: 821px) {
  /* tablet-size min 821 */
}
@media only screen and (min-width: 1080px) {
  /* middle-size min 1080px +80 */
}
@media only screen and (min-width: 1440px) {
  /* large-size min 1440px */
}
/*
* body
*/
body {
  background-image: url(assets/images/bg01.webp), url(assets/images/bg02.webp);
  background-position: 50% 0, 50% 100%;
  background-size: 76.8rem;
  background-repeat: no-repeat;
  background-color: #000927;
  letter-spacing: 0.05rem;
}
@media only screen and (min-width: 821px) {
  body {
    /* tablet-size */
    background-size: 100%;
  }
}
@media only screen and (min-width: 1080px) {
  body {
    /* middle-size */
    background-size: 192rem;
  }
}
@media only screen and (min-width: 1921px) {
  body {
    background-size: 100%;
  }
}

/*
* header
*/
.header-img {
  width: min(100% - 30px, 136.6rem);
  margin-right: auto;
  margin-left: auto;
}

header {
  width: min(100% - 30px, 136.6rem);
  margin-right: auto;
  margin-left: auto;
}
header img {
  width: 100%;
}

/*
* idx01
*/
.idx01 {
  position: relative;
}
.idx01__outline {
  margin-top: 4.5rem;
}
@media only screen and (min-width: 821px) {
  .idx01__outline {
    /* tablet-size */
    margin-top: 8rem;
  }
}
.idx01__box {
  margin: 0 auto;
  width: 20rem;
}
@media only screen and (min-width: 821px) {
  .idx01__box {
    /* tablet-size */
    width: 30rem;
  }
}
@media only screen and (min-width: 1080px) {
  .idx01__box {
    /* middle-size */
    width: 40rem;
  }
}
.idx01__img {
  display: block;
}
.idx01__txt {
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 0.1rem solid #fff;
  text-align: center;
  font-size: 1.2rem;
  font-weight: 500;
  color: #fff;
}
@media only screen and (min-width: 821px) {
  .idx01__txt {
    /* tablet-size min 768 */
    font-size: 2.4rem;
    margin-top: 5rem;
    padding-top: 5rem;
  }
}
.idx01__btn {
  width: 26rem;
  margin: 3rem auto 0;
}
@media only screen and (min-width: 821px) {
  .idx01__btn {
    /* tablet-size min 768 */
    margin-top: 5rem;
    width: 56rem;
  }
}
.idx01__btn a,
.idx01__btn span {
  transition: all 0.3s linear;
  transition: all 0.3s linear;
  background: linear-gradient(-45deg, rgb(128, 149, 232) 0%, rgb(255, 151, 150) 100%);
  color: #fff;
  text-align: center;
  font-size: 1.4rem;
  font-weight: 500;
  padding: 1.5rem;
  width: 70%;
  display: block;
  position: relative;
  cursor: pointer;
  margin: 0 auto;
  border-radius: 8px;
}
@media only screen and (min-width: 821px) {
  .idx01__btn a,
  .idx01__btn span {
    padding: 2rem;
    font-size: 1.8rem;
    width: 65%;
  }
}
.idx01__btn a::after,
.idx01__btn span::after {
  font-family: "Font Awesome 6 Free";
  display: inline-block;
  font-weight: 400;
  display: inline-block;
  font-weight: 400;
  position: absolute;
  content: "\f271";
  color: #fff;
  right: 1rem;
  font-size: 1.4rem;
  margin: auto;
  top: 2.25rem;
}
@media only screen and (min-width: 821px) {
  .idx01__btn a::after,
  .idx01__btn span::after {
    /* tablet-size */
    right: 2rem;
    font-size: 2rem;
    top: 2rem;
  }
}
@media only screen and (min-width: 1080px) {
  .idx01__btn a::after,
  .idx01__btn span::after {
    /* middle-size */
    right: 2rem;
    font-size: 2rem;
  }
}
.idx01__btn a:hover,
.idx01__btn span:hover {
  filter: brightness(120%);
}
.idx01__banner {
  transition: all 0.3s linear;
}
.idx01__banner:hover {
  opacity: 0.7;
}
.idx01__banner {
  position: fixed;
  width: 35vw;
  height: 35vw;
  right: -1rem;
  z-index: 2;
  bottom: -1rem;
}
@media only screen and (min-width: 821px) {
  .idx01__banner {
    /* tablet-size */
    right: 6vw;
    width: 22rem;
    height: 22rem;
    margin: 0 -7vw -1.5vw 0px;
    bottom: 6rem;
    margin: auto;
  }
}
@media only screen and (min-width: 1080px) {
  .idx01__banner {
    /* middle-size */
    top: inherit;
    bottom: 6rem;
  }
}
.idx01__banner img {
  width: 100%;
  display: block;
}
.idx01__float {
  transition: all 0.3s linear;
}
.idx01__float:hover {
  opacity: 0.7;
}
.idx01__float {
  position: fixed;
  width: 18vw;
  height: auto;
  left: 10px;
  z-index: 2;
  top: 1rem;
}
@media only screen and (min-width: 821px) {
  .idx01__float {
    /* tablet-size */
    left: 20px;
    top: 20px;
    width: 17rem;
    margin: auto;
  }
}
@media only screen and (min-width: 1080px) {
  .idx01__float {
    /* middle-size */
    top: inherit;
    top: 1rem;
  }
}
.idx01__float img {
  width: 100%;
  display: block;
}

/*
* idx02
*/
.idx02 {
  margin-left: 0.5rem;
  margin-right: 0.5rem;
}
@media only screen and (min-width: 821px) {
  .idx02 {
    margin-left: 2rem;
    margin-right: 2rem;
  }
}
.idx02__outline {
  margin-top: 5.5rem;
}
@media only screen and (min-width: 821px) {
  .idx02__outline {
    margin-top: 11rem;
  }
}
.idx02__table {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  border: 0.05rem solid #fff;
  margin-top: 1.5rem;
  padding: 1rem;
}
@media only screen and (min-width: 821px) {
  .idx02__table {
    /* tablet-size */
    flex-direction: row;
    align-items: center;
    flex-wrap: nowrap;
    margin-top: 1rem;
    padding: 1.5rem 1.5rem 1.5rem 0;
  }
}
.idx02__table dt,
.idx02__table dd {
  color: #fff;
  font-weight: 500;
  font-size: 1.4rem;
}
@media only screen and (min-width: 821px) {
  .idx02__table dt,
  .idx02__table dd {
    /* tablet-size min 768 */
    font-size: 1.8rem;
  }
}
@media only screen and (min-width: 821px) {
  .idx02__table dt {
    /* tablet-size min 768 */
    width: 15.7rem;
    text-align: center;
  }
}
.idx02__table dd {
  border-top: 0.1rem solid #fff;
  padding-top: 1rem;
  margin-top: 1rem;
  line-height: 1.5;
  position: relative;
}
@media only screen and (min-width: 821px) {
  .idx02__table dd {
    /* tablet-size min 768 */
    border-top: none;
    padding-top: 0;
    margin-top: 0;
    border-left: 0.1rem solid #fff;
    padding-left: 3rem;
    width: calc(100% - 15.7rem);
  }
}
.idx02__zoom {
  transition: all 0.3s linear;
}
.idx02__zoom:hover {
  opacity: 0.7;
}
.idx02__zoom {
  width: 5rem;
  position: absolute;
  bottom: 0.5rem;
  right: 0.5rem;
  z-index: 1;
}
@media only screen and (min-width: 821px) {
  .idx02__zoom {
    /* tablet-size */
    width: 8rem;
    bottom: 1rem;
    right: 1rem;
  }
}
.idx02__note {
  margin-top: 1rem;
  font-size: 1.4rem;
  font-weight: 500;
  color: #fff;
  background: linear-gradient(90deg, rgb(255, 60, 38) 0%, rgb(255, 126, 27) 100%);
  padding: 1.5rem;
  color: #fff;
  text-align: center;
  margin-bottom: 5rem;
}
@media only screen and (min-width: 821px) {
  .idx02__note {
    font-size: 2rem;
  }
}
.idx02__btn {
  margin-top: 2rem !important;
}

/*
* idx03
*/
.idx03 {
  background-image: url(assets/images/idx03_bg.png);
  background-position: 50% 0;
  background-size: 100%;
  background-repeat: no-repeat;
  background-color: #f2f2f4;
  border-radius: 1rem;
  padding: 1.5rem;
}
@media only screen and (min-width: 821px) {
  .idx03 {
    /* tablet-size min 768 */
    padding: 6rem 8rem 8rem 8rem;
  }
}
.idx03__outline {
  margin-top: 6rem;
  margin-left: 2rem;
  margin-right: 2rem;
}
@media only screen and (min-width: 821px) {
  .idx03__outline {
    /* tablet-size min 768 */
    margin-top: 12rem;
  }
}
.idx03__ttl {
  display: flex;
  align-items: baseline;
  color: #fff;
  font-weight: 700;
  font-size: 1.7rem;
  border-bottom: 0.1rem solid #fff;
  padding-bottom: 1rem;
}
@media only screen and (min-width: 821px) {
  .idx03__ttl {
    /* tablet-size min 768 */
    font-size: 3.6rem;
  }
}
.idx03__ttl span {
  color: #000927;
  font-size: 1.2rem;
  margin-left: 2rem;
}
@media only screen and (min-width: 821px) {
  .idx03__ttl span {
    /* tablet-size min 768 */
    margin-left: 6rem;
    font-size: 1.8rem;
  }
}
.idx03__list {
  background-color: rgba(255, 255, 255, 0.9);
  border-radius: 0.8rem;
  border: 0.1rem solid #000000;
  margin-top: 3rem;
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
}
@media only screen and (min-width: 821px) {
  .idx03__list {
    /* tablet-size */
    margin-top: 2rem;
  }
}
.idx03__list li {
  padding: 1.5rem 0;
  display: flex;
  align-items: center;
}
@media only screen and (min-width: 821px) {
  .idx03__list li {
    /* tablet-size */
    padding: 1rem 0;
  }
}
.idx03__list li:nth-of-type(n+2) {
  border-top: 0.1rem solid #000000;
}
.idx03__list li > div {
  width: 100%;
}
@media only screen and (min-width: 821px) {
  .idx03__list li > div {
    /* tablet-size */
    width: 100%;
  }
}
.idx03__icon {
  width: 5.6rem;
  height: 5.6rem;
  display: block;
}
@media only screen and (min-width: 821px) {
  .idx03__icon {
    /* tablet-size */
    width: 9.2rem;
    height: 9.2rem;
  }
}
.idx03__sttl span {
  color: #294780;
  font-weight: 700;
  font-size: 1.4rem;
  display: inline;
  position: relative;
}
@media only screen and (min-width: 821px) {
  .idx03__sttl span {
    /* tablet-size min 768 */
    font-size: 2.2rem;
  }
}
.idx03__sttl span::after {
  position: absolute;
  display: block;
  content: "";
  width: 100%;
  height: 0.4rem;
  background-color: #ffff00;
}
.idx03__txt {
  border-top: 0.1rem dashed #000;
  margin-top: 1rem;
  padding-top: 0.5rem;
  padding-right: 1rem;
  font-size: 1.2rem;
  line-height: 1.5;
}
@media only screen and (min-width: 821px) {
  .idx03__txt {
    /* tablet-size min 768 */
    font-size: 1.4rem;
    margin-top: 1rem;
    padding-top: 1rem;
  }
}

/*
* footer
*/
.footer {
  padding: 3rem 0;
  margin-top: 3rem;
}
@media only screen and (min-width: 821px) {
  .footer {
    /* tablet-size */
    padding: 5.5rem 0 4rem;
    margin-top: 16rem;
  }
}
.footer__outline {
  background-color: rgba(0, 9, 39, 0.6);
}
.footer__list {
  display: flex;
  justify-content: center;
}
.footer__list li {
  margin: 0 1rem;
}
@media only screen and (min-width: 821px) {
  .footer__list li {
    /* tablet-size */
    margin: 0 1.5rem;
  }
}
.footer__list li a {
  color: #fff;
  font-size: 1.8rem;
}
@media only screen and (min-width: 821px) {
  .footer__list li a {
    /* tablet-size */
    font-size: 3.6rem;
  }
}
.footer__list li a i {
  transition: all 0.3s linear;
}
.footer__list li a:hover .fa-twitter {
  color: #55acee;
}
.footer__list li a:hover .fa-facebook {
  color: #315096;
}
.footer__list li a:hover .fa-instagram {
  color: #833ab4;
}
.footer__list li a:hover .fa-youtube {
  color: #ff0000;
}
.footer__list li a:hover .fa-tiktok {
  color: #25f4ee;
}
.footer__link {
  transition: all 0.3s linear;
  color: #fff;
  font-size: 1rem;
  text-align: center;
  border: 1px solid #fff;
  padding: 1rem;
  border-radius: 2rem;
  margin: 2rem auto 0;
  display: block;
  width: 27rem;
  font-weight: 500;
}
@media only screen and (min-width: 821px) {
  .footer__link {
    /* tablet-size */
    margin-top: 3rem;
  }
}
.footer__link:hover {
  background-color: #fff;
  color: #2a4680;
}
.footer__copy {
  margin-top: 3rem;
  font-size: 1.2rem;
  text-align: center;
  color: #fff;
  width: 100%;
  display: block;
}
@media only screen and (min-width: 821px) {
  .footer__copy {
    /* tablet-size */
    margin-top: 6rem;
  }
}

.idx99 {
  padding: 5.5rem 0 4rem;
  max-width: 96rem;
  margin: 0 auto;
}

.idx99__link {
  transition: all 0.3s linear;
  color: #fff;
  font-size: 1.2rem;
  text-align: center;
  border: 1px solid #fff;
  padding: 1rem;
  border-radius: 2rem;
  margin: 2rem auto 0;
  display: block;
  width: 40vw;
  font-weight: 500;
}

@media only screen and (min-width: 821px) {
  .idx99__link {
    /* tablet-size */
    margin-top: 3rem;
    font-size: 1.6rem;
    max-width: 96rem;
  }
}
.upc-cal {
  display: block;
}

.usp-cal {
  display: none;
}

@media (max-width: 821px) {
  .upc-cal {
    display: none;
  }
  .usp-cal {
    display: block;
  }
}
.scroll-in-tag {
  opacity: 0;
  transition: opacity 1.5s ease, transform 1s ease;
  pointer-events: none;
}

.scroll-in-tag.visible {
  opacity: 0.5;
  pointer-events: auto;
}

.scroll-in-tag.visible:hover {
  opacity: 1;
  filter: drop-shadow(0 3px 3px rgba(0, 0, 0, 0.15));
}

.txt-001 {
  text-indent: -1.4rem;
  margin-left: 1.4rem;
}

/*---------- Utility ----------*/
/*
 * block
 */
.u-sp {
  display: block;
}
@media only screen and (min-width: 821px) {
  .u-sp {
    display: none;
  }
}

.u-pc {
  display: none;
}
@media only screen and (min-width: 1080px) {
  .u-pc {
    display: block;
  }
}

.u-link {
  display: inline-block;
  color: inherit;
  text-decoration: underline !important;
}
.u-link:hover {
  text-decoration: none !important;
}

.u-bg-light {
  background-color: #FFF8F6;
}

.u-bg-dark {
  background-color: #FFECE6;
}

.u-bg-dark-dot {
  background: url("../images/dot.png") bottom/auto 12rem repeat-x, linear-gradient(to top, #FFF8F6 12rem, #FFECE6 12rem);
}

.u-c-pink {
  color: #FF7984;
}/*# sourceMappingURL=style.css.map */