@charset "utf-8";

:root{
  --default-font:'Noto Sans JP', sans-serif;
  --eng-font:"Ubuntu", sans-serif;
  --main-color:#ca0000;
  --base-color:#111;
  --point-color:#fff;
  --link-color:#1558d6;
  --normal:500;
  --bold:700;
  --schedule-list-line:scaleY(1);
  --opacity:'1';
}
*{
  box-sizing:border-box;
}
header{
  box-sizing:border-box;
  width:100%; height:90px;
  margin:0 auto;
  padding:0 2.5em;
  display:flex;
  justify-content:space-between;
  align-items:center;
  position:fixed;
  top:0; left:0; z-index:100;
  transition:0.2s ease-in;
  background-color: var(--point-color);
}
header #logo{
  width:155px;
  transition:0.2s ease-in;
  /*opacity: 0;*/
  z-index:-1;
}
.active{
  opacity:1;
  visibility: visible;
}
.scrolling header{
  height:54px;
  transition:0.2s ease-in;
}
.scrolling header #logo{
  width:130px;
  transition:0.2s ease-in;
}
header #global-nav{
  flex:1;
}
header #global-nav ul.gnav-list{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:2em;
}
header #global-nav ul.gnav-list li{
  font-size:0.9em; line-height:2.3; font-weight:var(--bold);
}
header #global-nav ul.gnav-list li a{
  display:block;
  text-decoration:none;
  color:var(--base-color);
  position:relative;
}
header #global-nav ul.gnav-list li.contact-button a,
span.button a{
  transition: all .3s ease 0s;
}
.cta-text > p{
  text-align: left;
  font-size: 1.6em;
}
header #global-nav ul li.contact-button{
  font-size:0.85em; line-height:2.5;
  /*background-color:var(--base-color);*/
  background-color:var(--main-color);
  transition-duration: .4s;
  border-radius: 99px;
  position: relative;
}
header #global-nav ul li.contact-button a{
  color:var(--point-color);
  padding:0 2.2rem 0  1.5rem;
  position: relative;
}
header #global-nav ul li.contact-button a::after{
  content:'\eaaa';
  font-family:"Material Symbols Outlined";
  font-size:1rem;
  color:#fff;
  position: absolute;
  top:52%; right:14px;
  transform: translateY(-50%);
  font-variation-settings:
  'FILL' 1,
  'wght' 500,
  'GRAD' 0,
  'opsz' 24;
}
header #global-nav ul li.contact-button a:hover{
  text-decoration:none;
}
header #global-nav ul li.contact-button:hover,
.button a:hover{
  transform: scale(1.1) !important;
}
#index-billboard{
  width:100%; height:auto;
  max-width:1440px;
  margin:0 auto 100px;
  padding-top:170px;
  overflow:hidden;
  position:relative;
  display:flex;
  justify-content:center;
  align-items:center;
}

#index-billboard .billboard-title{
 padding-left:60px;
 transform: translateY(-25px);
} 
#index-billboard .billboard-copy{
  text-align:left;
  font-weight:var(--bold);
}
.main-title{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap:10px;
  margin-bottom:1.5rem;
}
.main-title > h2{
  font-size:2.4rem;
  line-height:1.4;
  letter-spacing: 0.075em;
  color:var(--point-color);
  background-color: var(--base-color);
  padding:0 0.3em 0.1em;
  display: inline-block;
}

#index-billboard div.billboard-image figcaption{
  display: block;
  font-family: var(--eng-font);
  font-size:2em;
  font-weight: var(--bold);
  letter-spacing: 0.025em;
}
#index-billboard div.billboard-image{
  margin-left:10em;
  display: block;
  background-color: var(--point-color);
  border:2px solid #111;
  border-radius: 20px;
  padding:50px 40px; 
  position: relative;
}
#index-billboard ul.billboard-merit-list{
  margin-top:1.8rem;
}
#index-billboard ul.billboard-merit-list li{
  font-size:1em;
  letter-spacing: 0.1em;
  position: relative;
  z-index: 10;
  padding-left:1.6rem;
  margin-bottom:0.3rem;
}
#index-billboard ul.billboard-merit-list .red{
  color:var(--main-color) !important;
  display: inline-block;
  font-size:1.2rem;
}
#index-billboard ul.billboard-merit-list li::after{
  content:'\e86c';
  font-size:1.2em;
  font-family: "Material Symbols Outlined";
  color:#999;
  position: absolute;
  left:0; top:56%;
  transform: translate(0,-50%);
  font-variation-settings:
  'FILL' 1,
  'wght' 400,
  'GRAD' 0,
  'opsz' 24;
}
#index-billboard ul.button-list li {
  margin-top:40px;
}
#index-billboard ul.button-list li a:hover{
  text-decoration: none;
}
#index-billboard ul.button-list li a{
  font-size: 1rem;
  line-height: 2.5;
  color:#fff;
  /* background-color: var(--base-color); */
  background-color: var(--main-color);
  transition-duration: .4s;
  border-radius: 99px;
  display: inline-block;
  padding:0.3rem 3.2rem 0.4rem 2.5rem;
  position: relative;
}
#index-billboard ul.button-list li a::after{
  content:'\eaaa';
  font-family:"Material Symbols Outlined";
  font-size:1.2rem;
  color:#fff;
  position: absolute;
  top:52%; right:14px;
  transform: translateY(-50%);
  font-variation-settings:
  'FILL' 1,
  'wght' 500,
  'GRAD' 0,
  'opsz' 24;
}
/*.message-title{
  position: relative;
}
.message-title::before{
  content:'\e002';
  font-family:"Material Symbols Outlined";
  font-variation-settings:
  'FILL' 1,
  'wght' 400,
  'GRAD' 0,
  'opsz' 24;
  font-size:2.2em;
  position: absolute;
  top:-50px;
  left:50%;
  transform: translateX(-50%);
}*/
.message-title h2{
  margin-bottom: 60px;
  font-size: 2.55em;
  letter-spacing: 0.07em;
}
.index-message{
  box-sizing:border-box;
  width:100%;
  position:relative;
  text-align: left;
  display: flex;
  justify-content: center;
}
.index-message > .issue-box{
  margin-right: 1em;
  position:relative;
}
.index-message > figure{
  width:200px; height:auto;
  margin-left:1.5em;
}
.index-message > .issue-box > ul.issue-list,
.index-message > .issue-box02 > ul.issue-list02{
  position: relative;
  display: inline-block;
  padding: 25px 65px;
  max-width: 100%;
  background: #fff;
  border:2px solid #111;
  border-radius: 30px;
}
.index-message > .issue-box > ul.issue-list{
  margin-bottom:4.5em;
}
.index-message > .issue-box > ul.issue-list li,
.index-message > .issue-box02 > ul.issue-list02 li{
  list-style-type: disc;
}
.index-message02{
  flex-direction: row-reverse;
  position: relative;
}
.index-message02 > figure{
  width:180px; height:auto;
  margin-left:0;
  margin-right: 1em;;
}
.index-message02 > .issue-box > ul.issue-list,
.index-message02 > .issue-box02 > ul.issue-list02{
  padding:25px 145px;
  position:relative;
}
.index-message02 > .issue-box02{
  margin-left:1em;
} 
.index-message > .issue-box > ul.issue-list:before {
  background-color: #111;
  content: "";
  width: 35px;
  height: 35px;
  margin: auto;
  position: absolute;
  right:-35px;
  top: 0;
  bottom: 0;
  clip-path: polygon(0 0, 0 100%, 100% 50%);
}
.index-message > .issue-box > ul.issue-list:after {
  background-color: #fff;
  content: "";
  width: 35px;
  height: 35px;
  margin: auto;
  position: absolute;
  right:-30px;
  top: 0;
  bottom: 0;
  clip-path: polygon(0 0, 0 100%, 100% 50%);
}
.issue-list02{
  position: relative;
}
.index-message02 > .issue-box02 > ul.issue-list02:before {
  background-color: #111;
  content: "";
  width: 35px;
  height: 35px;
  margin: auto;
  position: absolute;
  left:-35px !important;
  top: 0;
  bottom: 0;
  clip-path: polygon(100% 0, 0 50%, 100% 100%);
}
.index-message02 > .issue-box02 > ul.issue-list02:after {
  background-color: #fff;
  bottom: 0;
  content: "";
  height: 40px;
  margin: auto;
  position: absolute;
  left:-30px;
  top: 0;
  width: 40px;
  clip-path: polygon(100% 0, 0 50%, 100% 100%);
  transform: rotate(0deg);
}
.index-message > div.issue-box h2,
.index-message02 > div.issue-box02 h2{
  font-size:1.25em;
  text-align: center;
  margin:0 auto 0.4em;
}
.container{
  padding: 0 calc((100% - 1200px) / 2);
  margin:0 auto;
}
div.introduction > h3{
  margin:100px auto 0;
  text-align: center;
  font-size:1.6em;
  line-height:2.4;
  letter-spacing: 0.08em;
  position: relative;
}
div.introduction > h3 > span.flex > figure{
  width:180px;
  height: auto;
  margin-right:0.8em;
  margin-left:0.5em;
}
div.introduction > h3 > span.flex{
  justify-content: center;
  align-items: baseline;
  margin:0 auto;
}
div.introduction > h3 > span.flex::before{
  content:"";
  aspect-ratio:1/1;
  width:55px; height:auto;
  background-image:url(../../../svg/accent01.svg);
  background-size: contain;
  background-repeat: no-repeat;
  transform: rotate(-49deg);
  margin-right:10px;
}
div.introduction > h3 > span.flex::after{
  content:"";
  aspect-ratio:1/1;
  width:55px; height:auto;
  background-image:url(../../../svg/accent01.svg);
  background-size: contain;
  background-repeat: no-repeat;
  transform: scale(-1,1) rotate(-46deg);
  margin-left:1px;
}
p{
  font-size:1.2em;
  line-height:1.8;
  color:var(--base-color);
}
div.sub-copy{
  color:var(--point-color);
  font-family: var(--eng-font);
  font-weight: var(--bold);
  letter-spacing: 0.025em;
  background-color: var(--base-color);
  display: inline-block;
  clip-path: polygon(10% 0%, 100% 0%, 90% 100%, 0% 100%);
  padding:0.1em 1.6em;
  width:200px;
}
.container h2{
  margin-top:0.3em;
  margin-bottom:60px;
  font-size:2.55em;
  letter-spacing: 0.07em;
}
#basicpackage{
  margin-top:130px;
}
.basic-box{
  display:flex ; 
  justify-content: center;
  flex-wrap: wrap;
  margin:0 auto 140px;
  gap:80px 60px;
}
.basic-box div.slide{
  width:46.5%;
}
.basic-box div.slide figure{
  width:280px;
  margin: 0 auto 35px;
}
div.basic03 > figure,
div.basic04 > figure{
  width:250px;
}
div.basic-box span,
div.options-text span{
  font-family: var(--eng-font);
  font-weight: var(--bold);
  font-size: 1.2em;
}
div.basic-box h3,
#options h3{
  font-size: 1.9em;
  line-height:1;
  margin-bottom: 0.6em;
}
div.basic-box p,
#options p{
  margin:0 auto;
  text-align: left;
  font-size:1em;
  width:90%;
}
.cta{
  margin:0 auto 70px;
  display: flex;
  justify-content: center;
  /*gap:30px;*/
  gap:2.1vw;
  max-width:1440px;
}
div.cta-box{
  background-color:#f3f3f3;
  padding:110px 0 120px;
}
div.cta-image{
  flex: 2;
  background-image: url(../../../img/pc03_0806.png);
  background-repeat: no-repeat;
  background-position: right center;
  background-size: cover;
  /*2025.08.06追加*/
  aspect-ratio: 16/9;
  width:550px;
}
div.cta-text{
  flex:2.8;
  /*padding-right:calc((100% - 1200px) / 2);*/
  padding-top:4em;
  padding-bottom:4em;
  /*padding-top:4.4vw;
  padding-bottom:4.4vw;*/
  text-align: left;
}
div.cta-text figure{
  width:250px;
  height:auto;
}
div.cta-text > div.flex{
  align-items: baseline;
  gap:1em;
}
div.cta-text >  div.flex > p{
  font-size:1.8em;
}
div.cta-text h3{
  font-size:1.82em;
  margin-bottom:50px;
  letter-spacing: 0.06em;
}
div.cta-text h3 span.size26{
  font-size: 1.25em;
}
div.cta-text h2{
  font-size:3.8em;
  line-height: 1.3;
}
div.cta-text h2 > span{
  font-family: "Roboto", sans-serif;
  font-size:1.65em;
  color: var(--main-color);
  padding:0 0.15em;
}
span.strong{
  font-size:1.5em;
  line-height:1;
  font-weight:var(--bold);
}
div.cta-button p{
  font-size:1.2em;
  font-weight: var(--bold);
  position: relative;
  display: inline-block;
  margin:0 auto 20px;
}
div.cta-button p::before{
  content:"";
  position: absolute;
  bottom:0; left:0;
  aspect-ratio:1/1;
  width:40px; height:auto;
  background-image:url(../../../svg/accent01.svg);
  background-size: contain;
  background-repeat: no-repeat;
  transform: rotate(-49deg) translate(-30%,-80%);
}
div.cta-button p::after{
  content:"";
  position: absolute;
  bottom:0; right:0;
  aspect-ratio:1/1;
  width:40px; height:auto;
  background-image:url(../../../svg/accent01.svg);
  background-size: contain;
  background-repeat: no-repeat;
  transform: scale(-1,1) rotate(-44deg) translate(-30%,-80%);
}
#options{
  margin-top:140px;
  margin-bottom:180px;
}
#options  div.slide > div{
  width:80%;
  display: flex;
  align-items: flex-start;
  text-align: left;
  margin:0 auto;
}
#options  div.slide:not(:last-of-type){
  margin-bottom:60px;
}
#options div.options-box  div.options01{
  margin-bottom:50px;
}
div.options-box figure{
  aspect-ratio: 1/1;
  width:240px; height: auto;
}
/*div.options-box div.options01 figure{
  aspect-ratio: 382/277;
  width:240px; height: auto;
  }*/
div.options-box div.options02 figure,
div.options-box div.options03 figure{
  width:220px;
}
div.options-box img{
  width:100%;
}
div.options-text:nth-of-type(odd) {
  padding-left:3.4em;
  width:90%;
}
div.options01 div.options-text {
  padding-left:3.2em;
}
#options p{
  font-size:1em;
  font-weight: 500;
  margin: 0 auto;
  width:100%;
}
div.options02 > p{
  padding-left:0;
  padding-right:3em; 
}
span.small{
  font-size:0.7em;
  line-height:1;
  font-weight:500;
  color:#000;
}
#price table{
  margin: 0 auto;
  width:80%; height:auto;
  border:2px solid var(--base-color);
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 20px;
  position: relative;
}
#price thead tr th{
  border-bottom:2px solid var(--base-color);
  border-right:2px solid var(--base-color);
  padding:0.5em 1.5em;
  width:100px;
}
#price thead tr th:last-of-type{
  border-right:none;
}
#price tbody tr td:last-of-type{
  border-right:none;
}
#price tbody td{
  border-right:2px solid var(--base-color);
  text-align: center;
}
#price tbody th{
  text-align: left;
  padding:1em;
  width:140px;
  border-right:2px solid var(--base-color);
}
#price tbody th span{
  font-size:0.85em;
}
#price thead th:nth-of-type(even){
  background-color: var(--base-color);
  color:var(--point-color);  
}
#price tbody tr:nth-of-type(odd){
  background-color: #eee;
}
#price tbody tr:last-of-type{
  border-radius: 20px;
}
#price tbody tr:last-of-type td span{
  font-family: "Roboto", sans-serif;
  font-size:1.5em;
  color: var(--main-color);
  font-weight: var(--bold);
}
#price tbody td sup{
  font-size:0.65rem;
}
#price .material-symbols-outlined {
  font-size: 1.8em;
}
#price table:after{
  content:"";
  position:absolute;
  bottom:-35px; left:0;
  background-image: url(../../../img/plan01.png);
  background-repeat: no-repeat;
  background-size: cover;
  aspect-ratio: 216/162;
  width:200px; height:auto;
  transform: translate(-75%,65%);
}
.price-caution{
  width:80%;
  margin:0.5rem auto 5rem;
  display:flex;
  justify-content:flex-end;
}
.price-caution > .text{
  font-size:0.65rem; line-height:1.6;
  text-align:left;
}
div.price-cta{
  margin-bottom:200px;
}
/*プラン料金2025.12.23*/
#price .price-container{
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap:1rem;
}
.price-container > div{
  display: grid;
  border:2px solid #ccc; 
}
.price-container  .title-box > span{
  font-weight: var(--bold);
  font-size:0.9rem;
}
.price-container  .title-box{
  background-color: #f1f1f1;
  padding:1.5rem 1.2rem 0;
}
.price-container .update{
  border:2px solid var(--main-color);
  position: relative;
}
.price-container .update .recommend{
  font-size:0.9rem;
  color:#fff;
  font-weight: 600;
  background-color:var(--main-color);
  border-radius: 999px;
  padding:0.1rem 1rem 0.1rem;
  position: absolute;
  top:-17px; left:50%;
  transform: translateX(-50%);
}
.price-container .update .title-box{
  background-color: rgba(202,0,0,0.08);
}
#price .price-container h2{
  font-size:1.4rem;
  margin-bottom:0.5rem;
  margin-top:0;
}
.price-container .title-box > p{
  font-size:0.9rem;
}
.price-container .price-box {
  background-color: #f1f1f1;
  padding:0rem 1.2rem 1.2rem;
}
.price-container .update .price-box{
  background-color: rgba(202,0,0,0.08);
}
.price-container .price-box span{
  font-size:2rem;
  font-weight: var(--bold);
}
/*.price-container ul.button-list li a:hover{
  text-decoration: none;
}
.price-container ul.button-list li a{
  font-size: 1rem;
  line-height: 2.5;
  color:var(--main-color);
  border:2px solid var(--main-color);
  font-weight: var(--bold);
  transition-duration: .4s;
  border-radius: 99px;
  display: block;
  width:100%;
  padding:0.2rem 2.2rem 0.3rem 1.5rem;
  position: relative;
}
.price-container ul.button-list li a::after{
  content:'\eaaa';
  font-family:"Material Symbols Outlined";
  font-size:1.2rem;
  color:var(--main-color);
  position: absolute;
  top:52%; right:14px;
  transform: translateY(-50%);
  font-variation-settings:
  'FILL' 1,
  'wght' 500,
  'GRAD' 0,
  'opsz' 24;
}*/
.price-container .plan-contents-box{
  text-align: left;
  padding:0 1.2rem 1.5rem;
  margin-top:1.2rem;
}
.price-container .plan-contents-box p{
  font-size:0.85rem;
  font-weight: var(--bold);
  margin-bottom:0.6rem;
}
.price-container .plan-contents-box ul li{
  margin-bottom:0.2rem;
  position: relative;
  padding-left: 1.4rem;
  font-size: 0.95rem;
}
.price-container .plan-contents-box ul li:not(.no-function)::before{
  content:'\e5ca';
  font-family:"Material Symbols Outlined";
  font-size:1.2rem;
  color:var(--main-color);
  font-weight:var(--bold);
  position: absolute;
  left:0; top:-2px;
}
.price-container .plan-contents-box ul li.no-function{
  color:#aaa;
}
.price-container .plan-contents-box ul li.no-function::before{
  content:'\e5cd';
  font-family:"Material Symbols Outlined";
  font-size:1.2rem;
  color:#aaa;
  position: absolute;
  left:0; top:52%;
  transform: translateY(-50%);
}
.price-caution2025{
  width:100%;
  justify-content: flex-start;
}
#flow{
  position:relative;
  display: flex;
  justify-content: space-between;
  gap:1.2em;
  margin:0 auto 200px;
}
div.flow-title{
  text-align: left;
}
#flow > div.flow-title > div.sub-copy{
  text-align: center;
  display: block;
  width:200px;
}
#flow .schedule-list li{
  display: flex;
  align-items: center;
  text-align:left;
  gap:45px;
  margin-bottom:3em;
}
#flow .schedule-list li h3.heading{
  font-size:1.2rem;  font-weight:var(--bold);
  margin-bottom:0.3rem;
}
#flow .schedule-list li div.schedule-text p{
  font-weight: 400;
  font-size:0.95rem;
}
.number{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 70px;
  height: 70px;
  background-color: #fff;
  border: 2px solid #111;
  border-radius: 50%;
  font-family: var(--eng-font);
  font-size:1.5em;
  z-index: 10;
}
.schedule-list{
  position: relative;
}
.schedule-list::before{
  content: "";
  position: absolute;
  z-index: 0;
  top: 20px;
  left: calc(70px / 2 - 1px);
  width: 2px;
  height: calc(100% - 100px);
  background-color: #111;
  transform:var(--schedule-list-line);
  transform-origin:top;
}
#flow::after{
  content:"";
  position:absolute;
  bottom:0; left:0;
  background-image: url(../../../img/flow01.png);
  background-repeat: no-repeat;
  background-size: contain;
  aspect-ratio: 1/1;
  width:250px; height: auto;
  transform: translateX(-10%);
  opacity:var(--opacity);
}
#faq{
  position:relative;
  display:flex;
  justify-content: space-between;
  margin:0 auto 200px;
}
#faq > div.faq-title{
  text-align: left;
}
#faq > div.faq-title > div.sub-copy{
  text-align: center;
  display: block;
  width:200px;
}
#faq > div.faq-box{
  width:740px;
  text-align: left;
}
#faq > div.faq-box ul li{
  margin-bottom:0.9em;
  border-bottom:1px solid #999999;
}
#faq > div.faq-box ul li:last-of-type{
  margin-bottom:0;
}
div .faq-container > div.question{
  font-size:1.1em;
}
div .faq-container > div.answer{
  display: flex;
  font-size:0.85em;
  font-weight: 400;
  padding-bottom:1em;
}
div.faq-container span.faq-num{
  font-weight: var(--bold);
  font-family: var(--eng-font);
  font-size:1.15em;
  padding-right:1em;
}
div.answer span.faq-num{
  font-size:1.25em;
  line-height:1.8;
}
/*div.answer p{
  display: flex;
}*/
#faq h2{
  margin-bottom:20px;
}
.faq-box .answer-text-box{
  display: flex;
}
#faq ul.faq-list li .question{
	position:relative;
	cursor:pointer;
}
#faq ul.faq-list li .question span.accordion{
	width:16px; height:16px;
	position:absolute;
	top:18%; right:0;
  }
#faq ul.faq-list li .question span.accordion:before{
	content:"";
	width:100%;
	border-top:2px solid var(--base-color);
	position:absolute;
	top:50%; left:0;
	margin-top:-1px;
}
#faq ul.faq-list li .question span.accordion:after{
	content:"";
	height:100%;
	border-left:2px solid var(--base-color);
	position:absolute;
	top:0; left:50%;
	margin-left:-1px;
	transition:0.2s;
}
#faq ul.faq-list li .question.open span.accordion:after{
	content:"";
	height:100%;
	border-left:2px solid var(--base-color);
	position:absolute;
	top:0; left:50%;
	margin-left:-1px;
	transform:rotate(-90deg);
	transition:0.2s;
}
#faq ul.faq-list li .answer{
  display:none;
  padding:0 50px 0 0;
  margin:0 0 15px;
}
#faq ul.faq-list.faq-result li .answer{
  display:block;
}
#faq ul.faq-list li .question {
  padding: 0px 60px 0.9em 0;
}
#faq ul.button-list {
  display: flex;
  justify-content: flex-start;
}
#faq ul.button-list a{
  color:var(--base-color);
  font-size:0.85em;
  border:1px solid #111;
  border-radius: 999px;
  padding:0.5em 3em 0.5em 1.8em;
  transition: all 0.1s ease-in;
  position: relative;
}
#faq ul.button-list a:hover{
  text-decoration: none;
  background-color: var(--base-color);
  color:#fff;
}
#faq ul.button-list a::before,
#faq ul.button-list a::after{
  position: absolute;
  content:'';
}
#faq ul.button-list a::before{
  top: 60%;
  right: 21px;
  transform: translateY(-50%);
  width: 15px;
  height: 1px;
  background: #111;
}
#faq ul.button-list a::after{
  top: 54%;
  right: 18px;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-top: 6px solid transparent;
  border-right: 0 solid transparent;
  border-bottom: 0 solid transparent;
  border-left: 8px solid #111;
}
#faq ul.button-list a:hover::before{
  background: #fff;
}
#faq ul.button-list a:hover::after{
   border-left: 8px solid #fff;
}
#management .management-content{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:2em;
}
#management div.text-box h3{
  margin-bottom:0.3em;
  font-size:1.5em;
}
#management figure{
  aspect-ratio: 507/298;
  width: 38%;
  height:auto;
}
#management figure img{
  width:100%;
}
#management .text-box{
  text-align: left;
  width:62%;
}
#management p{
  font-size:1em; line-height:2.0; font-weight:var(--normal);
  margin-bottom:1em;
}
#management a{
  display: flex;
  align-items: center;
  color:var(--base-color);
}
#management a:hover{
  color:var(--link-color);
  text-decoration: underline;
}
#management span.material-symbols-outlined{
  font-size:1.25em;
  padding-left:0.2em;
}
#document{
  padding:200px calc((100% - 1100px)/2);
  padding-bottom:120px;
}
#document > .text-box{
  width:35%;
  margin-right:10%;
  text-align:left;
}
#document > .form-box{
  flex:1;
}
#document > .text-box > p{
  font-size:1.0rem; line-height:1.8; font-weight:var(--normal);
  margin-bottom:3.0em;
}
#document > .text-box > figure{
  box-sizing:border-box;
  width:75%; height:auto;
  aspect-ratio:364/258;
  margin:0 auto;
  position:relative;
  z-index:2;
}
#document > .text-box > figure >span{
  display:block;
  border:1px solid #f0f0f0;
  position:relative;
  z-index:2;
}
#document > .text-box > figure::before{
  content:"";
  box-sizing:border-box;
  width:100%; height:100%;
  border:1px solid #f0f0f0;
  background-image:url(../../../img/contact/sheet01.jpg);
  background-repeat:no-repeat;
  background-position:center center;
  background-size:cover;
  position:absolute;
  top:5px; left:-50px; z-index:3;
  transform:rotate(-5deg);
}
#document > .text-box > figure::after{
  content:"";
  box-sizing:border-box;
  width:100%; height:100%;
  border:1px solid #f0f0f0;
  background-image:url(../../../img/contact/sheet03.jpg);
  background-repeat:no-repeat;
  background-position:center center;
  background-size:cover;
  position:absolute;
  top:5px; right:-50px; z-index:1;
  transform:rotate(5deg);
}
.hidden-fields-container{
  display: none;
}
table.contact-table{
  width:80%;
  margin:0 auto;
  border-collapse:collapse;
  text-align:left;
}
table.contact-table tr th{
  width:200px;
  padding:5px 20px 10px 0;
  font-weight:var(--bold);
  white-space:nowrap;
  vertical-align:top;
  position:relative;
}
table.contact-table tr th.hissu{
  color:var(--base-color) !important;
}
table.contact-table tr th.hissu::before{
  display:inline-block;
  content:"必須";
  font-size:0.7em; line-height:1.8;
  color:#fff;
  background:var(--main-color);
  padding:0 1em 0;
  position:absolute;
  top:calc(7px + 0.25em); right:25px;
  border-radius: 20px;
}
table.contact-table tr:nth-of-type(2) th.hissu::before{
  right:85px !important;
}
table.contact-table tr:nth-of-type(3) th.hissu::before{
  right:70px !important;
}
table.contact-table tr td{
  background-color: var(--point-color);
  padding:0 50px 20px;
  padding-right:0;
}
table.contact-table tr td .caution{
  font-size:0.85em; line-height:1.6;
  color:#111;
  display: block;
}
table.contact-table tr td.bikou{
  padding:15px 0 0;
  text-align:center;
}
table.contact-table tr td .label{
  font-size:0.9em; line-height:1.8;
  margin-bottom:0.5em;
}
table.contact-table tr td .wpcf7-radio{
  display:flex;
}
table.contact-table tr td .wpcf7-list-item:not(:last-of-type){
  margin-right:1.5em;
}
table.contact-table tr td .wpcf7-list-item > label > .wpcf7-list-item-label{
  margin-left:0.25em;
}
table.contact-table tr td .wpcf7-not-valid-tip{
  font-size:0.9em; line-height:1.8;
  font-weight: var(--bold);
  color:var(--main-color);
}
table.contact-table tr td .acceptance{
  margin:1em auto 1.5em;
  white-space:nowrap;
}
table.contact-table tr td .button-list{
  display:flex;
  justify-content:center;
  margin:30px 0;
}
table.contact-table tr td .button-list input[type="submit"],
table.contact-table tr td .button-list input[type="button"],
table.contact-table tr td .button-list input[type="reset"]{
  margin:0 10px;
}
table.contact-table tr td .button-list input[type="reset"]{
  width:180px;
}
table.contact-table a {
  color:var(--link-color);
  text-decoration: none;
}
table.contact-table a:hover{
  text-decoration:underline;
}
.wpcf7-not-valid-tip{
  color:var(--main-color);
}
.wpcf7 .wpcf7-submit[disabled] {
  cursor: not-allowed;
}
.screen-reader-response{
  display: none;
}
input[type="submit"], input[type="button"] {
  background-color: var(--main-color);
  color: #fff;
}
.wpcf7 form.invalid .wpcf7-response-output, 
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
  border: none;
}
.wpcf7 form .wpcf7-response-output {
  margin:0 !important;
}
footer{
  padding:1.5em 2.5em;
  background:#F3F3f3;
  display:flex;
  justify-content:space-between;
  align-items:center;
}
footer .text-box{
  display:flex;
  align-items:center;
  gap:1.5em;
}
footer .text-box > figure{
  width:100px;
}
footer .text-box > ul{
  display:flex;
  gap:1em;
  align-items:center;
  font-size:0.75em; line-height:1.8; font-weight:var(--normal);
}
footer .text-box > ul > li > a{
  color:#111;
}
footer .copyright{
  font-size:0.7em;
}
.gnav-list li a {
  background:linear-gradient(currentColor 0 0) 0 100% /var(--d, 0) 2px no-repeat,linear-gradient(currentColor 0 0) 100% calc(100% - 6px) /var(--d, 0) 2px no-repeat;
  transition: 0s 0.2s, background-size 0.2s;
}
.gnav-list li a:hover {
  --d: 100%;
  background-position: 0% calc(100% - 3px), 100% calc(100% - 3px);
  transition: 0.2s, background-position 0.2s 0.2s;
}
.gnav-list li.contact-button a:last-of-type {
  background: none;
}
.cta-button span.button a:hover {
  text-decoration: none;
}
.cta-button a {
  display: block;
  width:600px;
  background: var(--main-color);
  border-radius: 99px;
  color: #FFF;
  font-weight: var(--bold);
  font-size:1.2em;
  letter-spacing: .1rem;
  margin:0 auto;
  padding:1.1em 4.5em;
  position: relative;
}
.cta-button a::after{
  content:'\eaaa';
  font-family:"Material Symbols Outlined";
  font-size:1.6rem;
  color:#fff;
  position: absolute;
  top:52%; right:14px;
  transform: translateY(-50%);
  font-variation-settings:
  'FILL' 1,
  'wght' 500,
  'GRAD' 0,
  'opsz' 24;
}
.swiper-slide img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
.swiper-slide figure {
  margin:40px auto 0;
  aspect-ratio: 1/1;
  width:320px;
  height:auto;
}
.swiper-slide p {
  margin-top:1em;
  font-size:1.2em;
}
.swiper {
  width: 400px;
  height: 480px;
  margin-bottom:50px;
}
.swiper-slide {
  display: block;
  align-items: center;
  justify-content: center;
  border-radius: 18px;
  width:300px;
  font-weight: bold;
  font-size:1.25em;
  color: #111;
  position:relative;
  border:2px solid #111;
  text-align: center;
  font-family: var(--eng-font);
  background: #fff;
}
.swiper-pagination-bullet-active{
  background:#111;
}
.swiper-pagination {
  bottom:-30px !important;
}
.pc-none{
  display: none;
}
/*お問い合わせ完了ページ*/
.complete-container{
  padding-top:160px;
  padding-bottom:120px;
}
.complete-container h3{
  font-size:1.6em;
  margin-bottom:1em;
}
.complete-container p{
  font-size:1em;
  margin-bottom:1.5em;
}
.complete-header #logo{
  opacity: 1;
}
.contact-tel-box{
  margin-top:1em;
}

/*faq一覧ページ*/
.faq-contents{
  padding-top:200px;
}
.faq-wrapper #logo{
  opacity:1;
}
