@charset "UTF-8";

/*=============================================
 * HOME
*=============================================*/
.opening {
   width: 100%;
   height: 100vh;
   position: fixed;
   top: 0;
   left: 0;
   z-index: 105;
}

.opening video {
   display: block;
   width: 100%;
   height: 100%;
   object-fit: cover;
   position: absolute;
   top: 0;
   left: 0;
}

#mv {
   width: 100%;
   height: calc(100vh - 86px);
   position: relative;
}

#mv .bg {
   background: url("../img/index/main-visual.jpg") no-repeat center/cover;
   position: absolute;
   top: 0;
   right: 0;
   bottom: 80px;
   left: 0;
}

#mv .catch {
   display: flex;
   justify-content: center;
   align-items: center;
   width: 62.5%;
   height: 100%;
   background: url("../img/index/main-visual-left.png") no-repeat center right/cover;
   position: absolute;
   top: 0;
   left: 0;
   box-sizing: border-box;
   padding: 0 10% 5% 0;
}

#mv h2 {
   width: 60%;
   max-width: 498px;
}

#mv .rss {
   width: 40%;
   background-color: #fff;
   border: 1px solid #FB4556;
   position: absolute;
   bottom: 0;
   right: 0;
   padding: 28px 58px 28px 5%;
   box-sizing: border-box;
}

#mv .rss:before {
   content: '';
   width: 20%;
   background-color: #FB4556;
   clip-path: polygon(40% 0%, 100% 0%, 60% 100%, 0% 100%);
   position: absolute;
   top: -1px;
   right: 92%;
   bottom: -1px;
}

#mv .rss h3 {
   font-weight: 900;
   letter-spacing: 0.05em;
   color: #FB4556;
}

#mv .rss .feed {
   display: grid;
   grid-template-columns: auto 1fr;
   gap: 30px;
   font-weight: 700;
   line-height: 24px;
   padding-top: 10px;
}

#mv .rss .feed a span {
   -webkit-box-orient: vertical;
   -webkit-line-clamp: 1;
   display: -webkit-box;
   overflow: hidden;
}

#mv .rss .more {
   width: 20px;
   position: absolute;
   top: 16px;
   right: 20px;
}

#mv .rss .more a,
#mv .rss .more img {
   display: block;
}

@media screen and (max-width: 1023px) {
   #mv {
      background: url("../img/index/main-visual_sp.jpg") no-repeat center top/cover;
      height: 154vw;
   }

   #mv:after {
      content: '';
      width: 100%;
      height: 100%;
      background: url("../img/index/main-visual-left_sp.png") no-repeat center top/cover;
      position: absolute;
      top: 0;
      left: 0;
   }

   #mv .bg {
      display: none;
   }

   #mv .catch {
      justify-content: flex-end;
      width: 100%;
      background: transparent;
   }

   #mv .catch h2 {
      width: 95%;
      max-width: 100%;
      position: relative;
      z-index: 1;
   }

   #mv .rss {
      width: 100%;
      padding-left: 14%;
   }

   #mv .rss:before {
      display: none;
   }
}

@media screen and (max-width: 767px) {
   #mv .rss {
      padding: 16px 50px 15px 14%;
   }

   #mv .rss .more {
      width: 16px;
      top: 12px;
   }

   #mv .rss h3 {
      font-size: 14px;
      line-height: 20px;
   }

   #mv .rss .feed {
      gap: 10px;
      font-size: 12px;
      line-height: 17px;
   }
}

/* -- --*/
#top__about {
   position: relative;
}

#top__about:before {
   content: '';
   width: calc(50% - 170px);
   height: 390px;
   background: #FB4556;
   position: absolute;
   top: 145px;
   right: 0;
}

#top__about .wrap {
   display: flex;
   justify-content: space-between;
   padding-top: 80px;
   padding-bottom: 60px;
}

#top__about .col {
   width: 476px;
	min-height: 780px;
}

#top__about h3,
#top__about .txt,
#top__about .button-01 {
   padding-left: 75px;
}

#top__about h3 {
   line-height: 35px;
   padding-top: 60px;
}

#top__about .txt {
   width: 346px;
   letter-spacing: 0.05em;
   line-height: 32px;
   padding-top: 40px;
}

#top__about .button-01 {
   padding-top: 40px;
}

#top__about .photo-1 {
   width: 348px;
}

#top__about .photo-2 {
   width: 720px;
   position: absolute;
   bottom: -40px;
   right: 0;
}

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

   #top__about h3,
   #top__about .txt,
   #top__about .button-01 {
      padding-left: 30px;
   }
}

@media screen and (max-width: 1200px) {
   #top__about:before {
	  width: calc(50% - 60px);
      height: 480px;
   }

   #top__about .photo-2 {
      width: 520px;
   }
}

@media screen and (max-width: 1023px) {
   #top__about {
      overflow: hidden;
   }

   #top__about:before {
      display: none;
   }

   #top__about .wrap {
      flex-direction: column;
      max-width: 100%;
      padding: 75px 20px 40px;
   }

   #top__about h2 {
      text-align: center;
   }

   #top__about h2 .sub {
      padding-left: 42px;
   }

   #top__about .col {
      width: 100%;
      min-height: inherit;
   }

   #top__about h3,
   #top__about .txt,
   #top__about .button-01 {
      padding-left: 0;
   }

   #top__about .txt {
      width: 100%;
   }

   #top__about .photo-1 {
      width: 100%;
      max-width: 348px;
      margin: 40px auto 0;
      position: relative;
      padding-bottom: 100px;
   }

   #top__about .photo-1:before {
      content: '';
      width: 10000px;
      background: #FB4556;
      position: absolute;
      top: 64px;
      bottom: 0;
      left: 50%;
      transform: translateX(-50%);
   }

   #top__about .photo-2 {
      width: auto;
      margin: 0 -20px;
      position: static;
   }

   #top__about .photo-2 img {
      width: 100%;
      max-width: inherit;
   }

   #top__about .button-01 {
      padding-top: 20px;
   }

   #top__about .button-01.pc {
      display: none;
   }

   #top__about .button-01.sp {
      display: block;
   }
}

@media screen and (max-width: 767px) {
   #top__about h3 {
      font-size: 18px;
      line-height: 32px;
   }

   #top__about .txt {
      padding-top: 20px;
   }
}

/* -- --*/
#top__points {
   background: #FDE413;
   padding: 60px 0 80px;
}

#top__points h2 {
   display: flex;
   align-items: center;
   gap: 10px;
   font-weight: 500;
   font-size: 30px;
   letter-spacing: 0.1em;
   line-height: 36px;
}

#top__points h2:after {
   content: '';
   border-top: 1px solid #231816;
   flex: 1 0 0;
}

#top__points .box {
   display: flex;
   justify-content: center;
   flex-wrap: wrap;
   gap: 20px 20px;
   padding-top: 30px;
}

#top__points .box dl {
   display: grid;
   grid-template-columns: 123px 1fr;
   align-items: center;
   background-color: #fff;
   width: 370px;
}

#top__points .box dl dd {
   padding: 10px 20px;
}

#top__points .box h3 {
   font-weight: 500;
   font-size: 17px;
   line-height: 25px;
}

#top__points .box .txt {
   font-size: 13px;
   line-height: 21px;
   padding-top: 12px;
}

@media screen and (max-width: 1440px) {
   #top__points .box dl {
      width: 350px;
   }

   #top__points .box dl dd {
      padding: 10px;
   }
}

@media screen and (max-width: 767px) {
   #top__points {
      background: transparent;
      padding: 0 0 40px;
   }

   #top__points h2 {
      font-size: 22px;
      line-height: 27px;
   }

   #top__points .box {
      gap: 20px 18px;
   }

   #top__points .box dl {
      display: block;
      width: calc(50% - 9px);
   }

   #top__points .box dl dt {
      height: 36.2vw;
   }

   #top__points .box dl dt img {
      width: 100%;
      max-width: inherit;
      height: 100%;
      object-fit: cover;
   }

   #top__points .box dl dd {
      padding: 0;
   }

   #top__points .box h3 {
      font-size: 14px;
      line-height: 20px;
      padding-top: 20px;
   }

   #top__points .box .txt {
      font-size: 12px;
      line-height: 18px;
      padding-top: 15px;
   }
}

/* -- --*/
#top__match {
   padding: 90px 0 80px;
   position: relative;
}

#top__match:before {
   content: '';
   width: 100%;
   background: #EFEFEF;
   position: absolute;
   top: 0;
   bottom: 28%;
   left: 0;
}

#top__match h2 span {
   font-weight: 700;
}

#top__match .box {
   display: flex;
   justify-content: center;
   flex-wrap: wrap;
   gap: 20px;
   padding-top: 40px;
}

#top__match .box .col {
   display: flex;
   align-items: center;
   justify-content: space-between;
   width: 370px;
   height: 144px;
   background-color: #fff;
   padding: 0 20px;
   box-sizing: border-box;
}

#top__match .box h3 {
   font-weight: 500;
}

#top__match .box .img-1 {
   width: 120px;
}

#top__match .box .img-2 {
   width: 136px;
}

#top__match .box .img-3 {
   width: 121px;
}

#top__match .box .img-4 {
   width: 91px;
}

#top__match .box .img-5 {
   width: 73px;
}

#top__match .button-inq {
   padding-top: 60px;
}

#top__match .photo-full {
   padding-top: 60px;
}

@media screen and (max-width: 1440px) {
   #top__match .box .col {
      width: 350px;
   }
}

@media screen and (max-width: 767px) {
   #top__match {
      padding: 40px 0 0;
   }

   #top__match:before {
      bottom: 20vw;
   }

   #top__match h2 {
      font-size: 25px;
      letter-spacing: 0;
      line-height: 32px;
   }

   #top__match .box {
      padding-top: 35px;
   }

   #top__match .box .col {
      width: 100%;
   }

   #top__match .box .img-1 {
      width: 110px;
   }

   #top__match .box .img-3 {
      width: 108px;
   }

   #top__match .button-inq {
      padding-top: 40px;
   }
}

/* -- --*/
#top__reason {
   padding-bottom: 60px;
   position: relative;
}

#top__reason:before {
   content: '';
   width: 100%;
   height: 100%;
   background-color: #FFFBDC;
   position: absolute;
   top: 0;
   left: 0;
   clip-path: polygon(0 15%, 100% 0, 100% 100%, 0% 100%);
}

#top__reason .wrap {
   padding-top: 80px;
}

#top__reason .deco {
   width: 386px;
   position: absolute;
   top: 0;
   right: 0;
}

#top__reason .box {
   display: flex;
   justify-content: flex-end;
   gap: 50px;
   margin-top: 60px;
   position: relative;
}

#top__reason .box:before {
   content: '';
   width: 100%;
   background-color: #fff;
   position: absolute;
   top: 40px;
   bottom: 0;
   left: 0;
   box-shadow: 0 0 10px rgba(126, 118, 119, 0.15);
}

#top__reason .box:after {
   content: '';
   width: 230px;
   background-color: #E60012;
   position: absolute;
   top: 40px;
   right: 0;
   bottom: 0;
   clip-path: polygon(100% 0, 0% 100%, 100% 100%);
}

#top__reason .box+.box {
   margin-top: 80px;
}

#top__reason .box figure {
   width: 595px;
   position: relative;
   z-index: 1;
}

#top__reason .box .col {
   width: 432px;
   position: relative;
   z-index: 1;
   padding: 140px 0 100px;
}

#top__reason .box .no {
   width: 90px;
   height: 130px;
   font-weight: 500;
   font-size: 42px;
   line-height: 56px;
   position: absolute;
   top: 40px;
   left: 0;
   text-align: center;
   background-color: #E60012;
   color: #fff;
   clip-path: polygon(100% 0, 0 0, 0 100%);
   padding-right: 35px;
}

#top__reason .box h3 {
   letter-spacing: 0;
}

#top__reason .box .txt {
   letter-spacing: 0.04em;
   line-height: 28px;
   padding-top: 20px;
}

#top__reason .box.img-l {
   flex-direction: row-reverse;
}

#top__reason .box.img-l:after {
   clip-path: polygon(0 0, 0% 100%, 100% 100%);
   right: auto;
   left: 0;
}

#top__reason .box.img-l .no {
   clip-path: polygon(100% 0, 0 0, 100% 100%);
   right: 0;
   left: auto;
   padding-right: 0;
   padding-left: 35px;
}

#top__reason .button-01 {
   text-align: right;
   padding-top: 40px;
}

@media screen and (max-width: 1200px) {
   #top__reason .box {
      gap: 30px;
   }

   #top__reason .box .col {
      padding-left: 30px;
   }

   #top__reason .box.img-l .col {
      padding-right: 30px;
      padding-left: 0;
   }
}

@media screen and (max-width: 1023px) {
   #top__reason .box {
      flex-direction: column;
      gap: 0px;
      padding-bottom: 40px;
   }

   #top__reason .box:before {
      top: 0;
   }

   #top__reason .box:after {
      width: 50%;
      height: 50%;
      top: auto;
      right: auto;
      left: 0;
      clip-path: polygon(0 0, 0% 100%, 100% 100%);
   }

   #top__reason .box .no {
      clip-path: polygon(100% 0, 0 0, 100% 100%);
      top: 0;
      right: 0;
      left: auto;
      padding-right: 0;
      padding-left: 35px;
   }

   #top__reason .box .col {
      width: 100%;
      padding: 40px 20px;
      box-sizing: border-box;
   }

   #top__reason .box figure {
      width: 100%;
   }

   #top__reason .box.img-l {
      flex-direction: column;
   }

   #top__reason .box.img-l .col {
      padding: 40px 20px;
   }

   #top__reason .button-01 {
      text-align: center;
   }
}

@media screen and (max-width: 767px) {
   #top__reason {
      padding: 46px 0 50px;
   }

   #top__reason:before {
      height: auto;
      top: 150px;
      bottom: 0;
      clip-path: polygon(0 4%, 100% 0, 100% 100%, 0% 100%);
   }

   #top__reason .wrap {
      padding: 0;
   }

   #top__reason .deco {
      width: 192px;
      position: static;
      margin-left: auto;
      padding-right: 20px;
   }

   #top__reason .box {
      margin-top: 40px;
   }

   #top__reason .box:after {
      height: 50vw;
   }

   #top__reason .box+.box {
      margin-top: 40px;
   }

   #top__reason .box h3 {
      font-size: 24px;
      line-height: 35px;
   }
}

/* -- --*/
#top__faq {
   padding: 60px 0 125px;
}

#top__faq .wrap {
   padding-top: 80px;
}

#top__faq .deco {
   width: 178px;
   position: absolute;
   top: 0;
   left: 230px;
}

#top__faq .box-qa {
   letter-spacing: 0.05em;
   padding-top: 60px;
}

#top__faq .box-qa .item {
   border-top: 1px solid #CDD6DD;
   border-bottom: 1px solid #CDD6DD;
}

#top__faq .box-qa .item+.item {
   border-top: 0;
}

#top__faq .box-qa .txt-q {
   padding: 13px 50px 13px 20px;
   position: relative;
   cursor: pointer;
}

#top__faq .box-qa .txt-q:after {
   content: '';
   width: 10px;
   height: 7px;
   background: url("../img/common/icon-arrow-down.png") no-repeat center top/cover;
   position: absolute;
   top: 50%;
   right: 20px;
   transform: translateY(-50%);
   transition: all 0.3s;
}

#top__faq .box-qa .txt-a {
   display: none;
   padding: 7px 20px 13px;
}

#top__faq .box-qa .is-active .txt-q:after {
   transform: translateY(-50%) rotate(-180deg);
}

@media screen and (max-width: 767px) {
   #top__faq {
      padding: 0 0 80px;
   }

   #top__faq .deco {
      width: 91px;
      top: 110px;
      right: 20px;
      left: auto;
   }

   #top__faq .box-qa .txt-a {
      font-size: 12px;
      letter-spacing: 0;
      line-height: 20px;
   }
}

/* -- --*/
#top__company {
   padding-bottom: 160px;
   position: relative;
}

#top__company:before {
   content: '';
   width: calc(50% - 170px);
   height: 484px;
   background-color: #E60012;
   position: absolute;
   bottom: 90px;
   right: 0;
}

#top__company .deco {
   width: 298px;
   position: absolute;
   top: 0;
   left: 50%;
}

#top__company .wrap {
   display: flex;
   justify-content: space-between;
   align-items: flex-end;
   gap: 30px;
   padding-top: 35px;
}

#top__company .col {
   width: 597px;
}

#top__company h3 {
   letter-spacing: 0.05em;
   line-height: 34px;
   padding-top: 60px;
}

#top__company .txt {
   letter-spacing: 0.05em;
   line-height: 32px;
   padding-top: 40px;
}

#top__company .txt-info {
   padding-top: 60px;
}

#top__company .txt-info dl {
   display: grid;
   grid-template-columns: 140px 1fr;
   gap: 7px;
   padding-bottom: 18px;
}

#top__company .txt-info dl+dl {
   border-top: 1px solid #CDD6DD;
   padding-top: 15px;
}

#top__company figure {
   width: 475px;
   text-align: center;
}

#top__company figure figcaption {
   color: #fff;
   letter-spacing: 0.05em;
   padding-top: 10px;
}

@media screen and (max-width: 1200px) {
   #top__company:before {
      width: calc(50% - 100px);
   }
}

@media screen and (max-width: 1023px) {
   #top__company:before {
      width: 72%;
   }

   #top__company .wrap {
      flex-direction: column;
      align-items: flex-start;
      padding-top: 80px;
   }

   #top__company .deco {
      left: 60%;
   }

   #top__company .col {
      width: 100%;
   }

   #top__company figure {
      margin: 0 auto;
   }
}

@media screen and (max-width: 767px) {
   #top__company {
      padding-bottom: 40px;
   }

   #top__company:before {
      display: none;
   }

   #top__company .wrap {
      align-items: center;
      gap: 0;
      padding-top: 0;
   }

   #top__company .col {
      display: contents;
   }

   #top__company .deco {
      width: 81px;
      top: 65px;
      right: 20px;
      left: auto;
   }

   #top__company h2 {
      order: 1;
   }

   #top__company h3 {
      order: 2;
   }

   #top__company .txt {
      order: 3;
   }

   #top__company .txt-info {
      order: 5;
      font-size: 18px;
      line-height: 30px;
      padding-top: 40px;
   }

   #top__company .txt-info dl {
      grid-template-columns: 1fr;
      gap: 12px;
   }

   #top__company figure {
      width: auto;
      order: 4;
      margin: 40px -20px 0;
      padding-right: 20px;
      position: relative;
   }

   #top__company figure:before {
      content: '';
      background: #E60012;
      position: absolute;
      top: 48px;
      right: 0;
      bottom: 0;
      left: 62px;
   }

   #top__company figure figcaption {
      font-size: 16px;
      line-height: 24px;
      padding: 8px 0 26px;
      position: relative;
   }
}

/*=============================================
 * お問合せ
*=============================================*/
.mailform {
   padding-bottom: 160px;
}

.mailform .wrap {
   max-width: 860px;
}

.mailform .form-row {
   display: grid;
   grid-template-columns: 244px 1fr;
   align-items: flex-start;
   gap: 109px;
}

.mailform .form-row+.form-row {
   padding-top: 40px;
}

.mailform .form-row .caption {
   display: flex;
   justify-content: space-between;
   align-items: center;
   padding: 4px 0;
}

.mailform .form-row .caption span {
   display: block;
   background-color: #E60012;
   color: #fff;
   width: 26px;
   height: 15px;
   border-radius: 2px;
   font-size: 10px;
   line-height: 15px;
   text-align: center;
}

.mailform .form-row .caption span.non {
	background-color: #707070;
}

.mailform .form-row .input {
   max-width: 360px;
}

.mailform .form-row .input.textarea {
   max-width: 100%;
}

.mailform .form-pp {
   text-align: center;
   padding-top: 80px;
}

.mailform .form-pp p+p {
   padding-top: 20px;
}

.mailform .form-pp a {
   text-decoration: underline;
}

.mailform .form-pp a:hover {
   text-decoration: none;
}

.mailform .form-btn {
   display: flex;
   flex-direction: column;
   justify-content: center;
   align-items: center;
   gap: 40px;
   padding-top: 60px;
}

.mailform .form-btn input {
   width: 100%;
   height: 100%;
   position: absolute;
   top: 0;
   left: 0;
   opacity: 0;
   cursor: pointer;
}

.mailform .form-btn .wpcf7-spinner {
   display: none;
}

.mailform .form-btn p {
   font-weight: 500;
   font-size: 20px;
   line-height: 30px;
   position: relative;
   transition: all 0.3s;
}

.mailform .form-btn p:not(.btn-back) {
   display: flex;
   justify-content: center;
   align-items: center;
   width: 300px;
   height: 70px;
   background-color: #231815;
   color: #fff;
   border-radius: 4px;
}

.mailform .form-btn p:not(.btn-back):hover {
   background-color: #FB4556;
}

.mailform .form-btn .btn-back {
   color: #E60012;
   border-bottom: 1px solid;
}

.mailform .form-btn .btn-back:hover {
   border-color: transparent;
}

.mailform.thanks .wrap {
   max-width: 710px;
}

.mailform.thanks h2 {
   font-weight: 700;
   letter-spacing: 0;
}

.mailform.thanks h3 {
   letter-spacing: 0;
}

.mailform.thanks h3,
.mailform.thanks .txt {
   padding-top: 20px;
}

.mailform.thanks .button-02 {
   padding-top: 40px;
}

@media screen and (max-width: 1023px) {
   .mailform .wrap {
      max-width: 720px;
   }
}

@media screen and (max-width: 767px) {
   .mailform {
      padding-bottom: 80px;
   }

   .mailform .form-row {
      grid-template-columns: 1fr;
      gap: 10px;
   }

   .mailform .form-row+.form-row {
      padding-top: 30px;
   }

   .mailform .form-row .caption {
      justify-content: flex-start;
      gap: 10px;
      padding: 0;
   }

   .mailform .form-pp {
      padding-top: 40px;
   }

   .mailform .form-btn {
      gap: 20px;
      padding-top: 30px;
   }

   .mailform .form-btn p:not(.btn-back) {
      width: 260px;
      height: 60px;
      font-size: 16px;
   }

   .mailform .form-btn .btn-back {
      font-size: 16px;
   }
}

/*=============================================
 * Post Type
*=============================================*/
.sidebar {
   display: flex;
   justify-content: flex-end;
   align-items: center;
   gap: 20px;
   font-weight: 500;
   font-size: 14px;
   line-height: 20px;
}

.sidebar .select {
   position: relative;
}

.sidebar .select {
   display: flex;
   align-items: flex-start;
   width: 130px;
   position: relative;
}

.sidebar .select:after {
   content: '';
   width: 11px;
   height: 7px;
   background: url("../img/common/select-arrow.png") no-repeat center top/100% auto;
   position: absolute;
   top: 14px;
   right: 8px;
}

.sidebar .select select {
   display: block;
   width: 100%;
   height: 100%;
   -webkit-appearance: none;
   -moz-appearance: none;
   outline: 0;
   box-shadow: none;
   background-color: #fff;
   border: 1px solid #B5A8A8;
   border-radius: 2px;
   font-weight: 500;
   line-height: 31px;
   padding: 1px 30px 1px 0;
   cursor: pointer;
   text-align: center;
}

.sidebar .select select::-ms-expand {
   display: none;
}

/* -- -- */
.news__list {
   display: grid;
   gap: 20px;
}

.news__list .item {
   position: relative;
   border: 1px solid #FB4556;
   border-radius: 5px;
}

.news__list .cat {
   position: absolute;
   top: 11px;
   left: 11px;
   font-weight: 700;
   font-size: 12px;
   line-height: 18px;
}

.news__list .cat a {
   display: block;
   min-width: 48px;
   border: 1px solid #FB4556;
   color: #416B80;
   box-sizing: border-box;
   border-radius: 5px;
   padding: 0 5px;
}

.news__list .cat a:hover {
   background-color: #FB4556;
   color: #fff;
   opacity: 1;
}

.news__list .text {
   display: grid;
   grid-template-columns: auto 1fr;
   align-items: center;
   gap: 40px;
   height: 125px;
   font-weight: 700;
   letter-spacing: 0.05em;
   padding: 0 110px 0 60px;
   position: relative;
}

.news__list .text:after {
   content: '';
   width: 21px;
   height: 40px;
   background: url("../img/common/icon-arrow-right.png") no-repeat center top/cover;
   position: absolute;
   top: calc(50% - 20px);
   right: 40px;
   transition: all 0.3s;
}

.news__list .text:hover {
   opacity: 1;
}

.news__list .text:hover:after {
   transform: translateX(5px);
}

.news__list time {
   color: #FD919B;
}

.news__list .ttl {
   -webkit-box-orient: vertical;
   -webkit-line-clamp: 1;
   display: -webkit-box;
   overflow: hidden;
}

@media screen and (max-width: 767px) {
   .news__list .text {
      grid-template-columns: 1fr;
      gap: 0;
      height: auto;
      padding: 40px 40px 20px 20px;
   }

   .news__list .text:after {
      right: 10px;
   }

   .news__list .ttl {
      -webkit-line-clamp: 2;
   }
}

/* -- -- */
.wp-pagenavi {
   display: flex;
   justify-content: center;
   gap: 10px;
   font-weight: 500;
   font-size: 20px;
   line-height: 30px;
}

.wp-pagenavi .pages {
   display: none;
}

.wp-pagenavi span,
.wp-pagenavi a {
   width: 40px;
   background-color: #231815;
   color: #fff;
   text-align: center;
   padding: 4px 0 6px;
}

.wp-pagenavi span:hover,
.wp-pagenavi a:hover {
   background-color: #FB4556;
   color: #fff;
   opacity: 1;
}

.wp-pagenavi span.current,
.wp-pagenavi a.current {
   background-color: #FB4556;
   color: #fff;
   pointer-events: none;
}

/* -- -- */
.pt-archive {
   padding-bottom: 160px;
}

.pt-archive .news__list {
   padding-top: 20px;
}

.pt-archive .button-02 {
   text-align: right;
   padding-top: 40px;
}

.pt-archive .wp-pagenavi {
   padding-top: 40px;
}

@media screen and (max-width: 767px) {
   .pt-archive {
      padding-bottom: 80px;
   }

   .pt-archive .button-02 {
      text-align: center;
   }
}

@media screen and (min-width: 1201px) {
   .pt-archive .wrap {
      max-width: 960px;
   }
}

/* -- -- */
.pt-details {
   padding-bottom: 160px;
}

.pt-details-title {
   font-weight: 500;
   font-size: 40px;
   letter-spacing: 0;
   line-height: 58px;
   padding-top: 20px;
}

.pt-details-time {
   display: block;
   font-weight: 700;
   letter-spacing: 0.05em;
}

.pt-details-thumb {
   max-width: 1000px;
   margin: 0 auto;
   padding-top: 10px;
   text-align: center;
}

.pt-details #ez-toc-container {
   width: 480px;
   background-color: #fff;
   border: 2px solid rgba(251, 69, 86, 0.8);
   border-top: 0;
   padding: 0;
   border-radius: 0;
}

.pt-details #ez-toc-container .ez-toc-title-container {
   background-color: rgba(251, 69, 86, 0.8);
   color: #fff;
   font-weight: 500;
   font-size: 20px;
   letter-spacing: 0;
   line-height: 30px;
   text-align: center;
   position: relative;
   padding: 10px 0 12px;
}

.pt-details #ez-toc-container .ez-toc-title {
   color: #fff;
   font-size: inherit;
   padding-left: 20px;
   position: relative;
}

.pt-details #ez-toc-container .ez-toc-title:before {
   content: '';
   width: 16px;
   height: 11px;
   background: url("../img/common/toc-icon.png") no-repeat center top/100% auto;
   position: absolute;
   top: 10px;
   left: 0;
}

.pt-details #ez-toc-container .ez-toc-title-toggle {
   display: block;
   width: 100%;
   height: 100%;
   position: absolute;
   top: 0;
   left: 0;
}

.pt-details #ez-toc-container .ez-toc-title-toggle a {
   width: 100%;
   height: 100%;
   padding: 0;
   margin: 0;
   opacity: 0;
}

.pt-details #ez-toc-container nav {
   color: #231815;
   padding: 40px 50px 65px;
}

.pt-details #ez-toc-container nav a {
   color: inherit !important;
   font-size: inherit;
}

.pt-details #ez-toc-container nav a:before {
   color: inherit;
}

.pt-details #ez-toc-container nav ul,
.pt-details #ez-toc-container nav li {
   font-size: inherit;
   line-height: inherit;
}

.pt-details #ez-toc-container nav .ez-toc-list li+li {
   padding-top: 20px;
}

.pt-details #ez-toc-container nav .ez-toc-list>li>a {
   font-weight: 700;
}

.pt-details #ez-toc-container nav .ez-toc-list>li>ul {
   margin-left: 18px;
   padding-top: 10px;
}

.pt-details-content {
   font-weight: 400;
   letter-spacing: 0.05em;
   padding-top: 60px;
}

.pt-details-content h2 {
   border-top: 3px solid #FB4556;
   border-bottom: 3px solid #FB4556;
   font-weight: 700;
   font-size: 32px;
   line-height: 46px;
   margin: 60px 0 20px;
   padding: 9px 0px 11px;
}

.pt-details-content h3 {
   font-weight: 700;
   font-size: 24px;
   line-height: 35px;
   border-left: 6px solid #416B80;
   margin: 60px 0 20px;
   padding: 0 0 0 8px;
   position: relative;
}

.pt-details-content h4 {
   font-weight: 700;
   font-size: 20px;
   line-height: 35px;
   border-left: 6px solid #416B80;
   margin: 60px 0 20px;
   padding: 0 0 0 8px;
   position: relative;
}

.pt-details-content h1:first-child,
.pt-details-content h2:first-child,
.pt-details-content h3:first-child,
.pt-details-content h4:first-child,
.pt-details-content h5:first-child,
.pt-details-content h6:first-child {
   margin-top: 0;
}

.pt-details-content h2+h3,
.pt-details-content h2+h4,
.pt-details-content h3+h4 {
   margin-top: 0;
}

.pt-details-content strong {
   font-weight: 700;
}

.pt-details-content mark {
   background-color: #FDF47F;
}

.pt-details-content ul {
   list-style: disc;
   padding-left: 20px;
}

.pt-details-content ol {
   list-style: decimal;
   padding-left: 20px;
}

.pt-details-content p img {
   display: inline-block;
   vertical-align: top;
   margin-right: 10px;
}

.pt-details-content p img.aligncenter {
   display: block;
   margin: 0 auto;
}

.pt-details-content p img.alignright {
   display: block;
   margin-left: auto;
}

.pt-details-content p img:last-child {
   margin-right: 0;
}

.pt-details-button {
   font-weight: 700;
   font-size: 18px;
   line-height: 26px;
   padding-top: 80px;
}

.pt-details-button ul {
   display: grid;
   grid-template-columns: 40px 120px 40px;
   justify-content: center;
   align-items: center;
   gap: 10px;
}

.pt-details-button a {
   display: flex;
   justify-content: center;
   align-items: center;
   width: 100%;
   height: 50px;
   background-color: #E60012;
   color: #fff;
   box-sizing: border-box;
   text-align: center;
   border-radius: 4px;
   position: relative;
}

.pt-details-button .prev a:after {
   content: '';
   border-width: 11px 19px 11px 0;
   border-color: transparent #fff transparent transparent;
   border-style: solid;
   position: absolute;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%);
}

.pt-details-button .next a:after {
   content: '';
   border-width: 11px 0 11px 19px;
   border-color: transparent transparent transparent #fff;
   border-style: solid;
   position: absolute;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%);
}

.pt-details-button a:hover {
   background-color: #231815;
   opacity: 1;
}

@media screen and (max-width: 767px) {
   .pt-details {
      padding-bottom: 80px;
   }

   .pt-details-title {
      font-size: 30px;
      line-height: 42px;
   }

   .pt-details-content {
      padding-top: 40px;
   }

   .pt-details-content h2 {
      font-size: 25px;
      line-height: 35px;
   }

   .pt-details-content h3 {
      font-size: 20px;
      line-height: 30px;
   }

   .pt-details-content h4 {
      font-size: 18px;
      line-height: 26px;
   }

   .pt-details-content p img {
      display: block;
      margin: 0 auto 15px;
   }

   .pt-details-content p img.alignright {
      margin: 0 auto 15px;
   }

   .pt-details-content p img:last-child {
      margin: 0 auto;
   }

   .pt-details #ez-toc-container {
      width: 100%;
   }

   .pt-details #ez-toc-container nav {
      padding: 30px 20px;
   }

   .pt-details-button {
      grid-template-columns: 40px 120px 40px;
      font-size: 16px;
      line-height: 24px;
      padding-top: 50px;
   }

   .pt-details-button a {
      height: 40px;
   }

   .pt-details-button .prev a:after {
      border-width: 8px 12px 8px 0;
   }

   .pt-details-button .next a:after {
      border-width: 8px 0 8px 12px;
   }
}

/* -- -- */
.blog-section ul {
   display: grid;
   grid-template-columns: repeat(2, 487px);
   justify-content: center;
   gap: 20px 26px;
}

@media screen and (max-width: 1200px) {
   .blog-section ul {
      grid-template-columns: repeat(2, 1fr);
   }
}

@media screen and (max-width: 1200px) {
   .blog-section ul {
      grid-template-columns: 1fr;
      text-align: center;
   }
}

@media screen and (max-width: 767px) {
   .blog-section .button a.long {
      padding-right: 50px;
   }
}
