@charset "utf-8";

/***************************************************************************

  共通

***************************************************************************/
/*****************************************
  リンク
*****************************************/
a.linkBtnSearch {
	background: #00a4af url(../images/arw_white.png) no-repeat right 20px center;
	background-size: 8px auto;
	color: #fff;
	width: 60%;
	padding: 15px 20px;
	display: inline-block;
	font-weight: bold;
	font-size: 106.66%;
	border-radius: 30px;
}
a.linkBtnSearch:hover {
	opacity: 0.7;
}

@media screen and (max-width: 767px) {
  a.linkBtnSearch {
    background-position: right 10px center;
    background-size: 7px auto;
    width: 100%;
    padding: 10px 10px 10px 5px;
  }
}


/*****************************************
  タイトル
*****************************************/
.lowerTtlBlock.nobinobiTtl h2 {
  padding: 102px 0 96px 0;
}

.lowerTtlBlock.nobinobiTtl h2 span {
  line-height: 80px;
  display: block;
  font-size: 240%;
  letter-spacing: 0.1em;
  font-weight: bold;
  color: #2a0e00;
  padding: 0 0 0 100px;
  background: url(../images/ouentai_icn.png) no-repeat left center;
  background-size: 80px auto;
}

.ouentaiPassport {
  background: #fff;
  border-radius: 54px;
  border: solid 2px #afd7af;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 37px 12px 50px;
}

.ouentaiPassport img {
  width: 131px;
}

.ouentaiPassport .ouentaiPassportGet {
  padding: 0 0 0 26px;
}

.ouentaiPassport span {
  font-size: 16px;
  font-weight: bold;
  line-height: 1;
  letter-spacing: 0;
  display: block;
}

.ouentaiPassport a {
  display: block;
  line-height: 1;
  background: #00bc00 url(../images/arw_white.png) no-repeat right 15px center;
  background-size: 8px auto;
  border-radius: 18px;
  width: 230px;
  color: #fff;
  margin: 12px 0 0;
  padding: 12px 12px;
  text-align: center;
  font-size: 14px;
  letter-spacing: 0.05em;
  transition: 0.3s;
}

.ouentaiPassport a:hover {
  opacity: 0.7;
}

@media screen and (max-width: 767px) {
  .lowerTtlBlock.nobinobiTtl .wrap {
    display: block;
    text-align: center;
  }
  .lowerTtlBlock.nobinobiTtl h2 {
    padding: 30px 0 20px;
    text-align: center;
    margin: 0 auto;
    display: inline-block;
  }
  .lowerTtlBlock.nobinobiTtl h2 span {
    line-height: 40px;
    font-size: 167.5%;
    padding: 0 0 0 50px;
    background-size: 40px auto;
  }
  .ouentaiPassport {
    padding: 10px 20px 10px 25px;
    margin: 0 auto 40px;
    width: calc(100% - 40px);
  }
  .ouentaiPassport .ouentaiPassportGet {
    padding: 0 0 0 10px;
  }
  .ouentaiPassport span {
    font-size: 100%;
    padding: 5px 0 0 0;
  }
  .ouentaiPassport a {
    background-size: 6px auto;
    border-radius: 18px;
    width: 80%;
    margin: 8px auto 0;
    padding: 8px 8px;
    font-size: 91.5%;
  }
  .ouentaiPassport img {
    width: 75px;
  }
}


/*****************************************
  サイドナビ
*****************************************/
.navBlock dl {
  border: dashed 2px #9edade;
  padding-bottom: 5px;
}
.navBlock dl dt {
  margin: 0;
  background-color: #E3F9FA;
  color: #0099AD;
}
.navBlock dl dd {
  padding: 0;
}

/***************************************************************************

  詳細ページ

***************************************************************************/

/*****************************************
  基本情報
*****************************************/
.nobinobiDetBlock {
	width: 100%;
  background: #fff;
  padding: 35px 40px 50px;
  margin: 0 0 60px;
  border-radius: 20px;
  border-top: solid 6px #9edade;
}

h3.nobinobiTtlh3 {
    font-size: 190%;
    font-weight: bold;
    margin: 0 0 30px;
    position: relative;
}
h3.nobinobiTtlh3::before {
    content: "●";
    margin: 0 10px 0 0;
    font-size: 90%;
    color: #0099AD;
}

.nobinobiDetBlock h3 {
    display: inline-block;
    font-size: 160%;
    font-weight: bold;
    line-height: 1.5;
    color: #00a4af;
    letter-spacing: 0.1em;
    padding: 0 0 10px;
    margin: 30px 0 20px;
    border-bottom: dotted 2px #7fd1d7;
}
.nobinobiDetBlock h4 {
    margin: 20px 0 5px;
}
.nobinobiDetBlock h4 span {
    display: inline-block;
    text-align: left;
    color: #00a4af;
    line-height: 1.4;
    font-size: 100%;
    font-weight: bold;
    background: #E3F9FA;
    border-radius: 20px;
    margin: 0 0 10px 0;
    padding: 9px 20px;
}
.nobinobiDetBlock h5 {
    font-weight: bold;
    color: #00a4af;
    margin: 15px 0 5px;
}
.nobinobiDetBlock p {
    margin-bottom: 15px;
}

.nobinobiDetBlock ul.listText li {
    position: relative;
    margin: 0 0 5px 1.2em;
    text-indent: -1.2em;
}
.nobinobiDetBlock ul.listText li::before {
    content: "●";
    color: #7fd1d7;
    padding: 0 0.2em 0 0;
}

.nobinobiDetBlock ol.listDecimal {
    list-style-type: decimal;
    margin: 0 0 10px 1.5em;
}
.nobinobiDetBlock ol.listDecimal li {
    margin: 0 0 5px;
}

.nobinobiDetBlock h3:first-child {
    margin-top: 0;
}
.nobinobiDetBlock h3 + h4,
.nobinobiDetBlock h4 + h5 {
    margin-top: 0;
}
.nobinobiDetBlock ul + p {
	margin-top: 20px;
}
.nobinobiDetBlock ol.listDecimal li > ul {
	margin: 10px 0 10px 1em;
}
.nobinobiDetBlock .imageBlock.lineFlow {
	align-items: center;
	gap: 0;
}
.nobinobiDetBlock .imageBlock.lineFlow figure {
	width: 32%;
	padding: 0 25px 0 35px;
	background: url(../images/lower/next_blue.png) no-repeat left center;
	background-size: 15px auto;
}
.nobinobiDetBlock .imageBlock.lineFlow figure img {
	border: 1px solid #CCC
}
@media screen and (min-width: 768px) {
.nobinobiDetBlock .imageBlock.lineFlow figure:nth-child(1) {
	background: none;
}
}
@media screen and (max-width: 767px) {
  .nobinobiDetBlock {
    width: calc(100% - 40px);
    padding: 20px 20px 10px;
    margin: 0 auto 30px;
  }
  h3.nobinobiTtlh3 {
    font-size: 150%;
    margin: 0 20px 15px;
  }
  .nobinobiDetBlock h3 {
    font-size: 134%;
    padding: 5px 0 10px;
    margin: 10px 0 15px;
  }
  .nobinobiDetBlock .imageBlock.lineFlow figure {
    width: 50%;
    padding: 0;
    margin-bottom: 15px;
    background-size: 10px auto;
  }
  .nobinobiDetBlock .imageBlock.lineFlow figure:nth-child(odd) {
    background: none;
    padding: 0 15px 0px 15px;
  }
  .nobinobiDetBlock .imageBlock.lineFlow figure:nth-child(even) {
    padding: 0 10px 0 20px;
  }
}


/*****************************************
  お問い合わせ先
*****************************************/
.contactBox {
    margin: 30px 0 20px 0;
    padding: 20px 20px 10px;
    border: 2px dashed #9edade;
    border-radius: 10px;
}
.contactBox dl dt {
    display: inline-block;
    text-align: center;
    color: #00a4af;
    line-height: 1;
    font-size: 100%;
    font-weight: bold;
    background: #E3F9FA;
    border-radius: 15px;
    margin: 0 0 10px 0;
    padding: 9px 20px;
}
.contactBox dl dd {
    margin: 5px 0 0 20px;
}

@media screen and (max-width: 767px) {
  .contactBox {
    margin: 20px 0;
    padding: 15px 15px 10px;
  }
  .contactBox dl dt {
    margin: 0 0 10px 0;
    padding: 8px 15px;
  }
  .contactBox dl dd {
    margin: 5px 0 0 0;
  }
}


.qaBlock details {
	margin: 0 0 15px;
  --arrow-size: 18px;
  --anime-speed: 0.3s;
}

.qaBlock details summary {
  box-sizing: border-box;
  position: relative;
  display: block;
  font-weight: 700;
  padding: 15px calc(var(--arrow-size) + 20px) 15px 50px;
  background: #E3F9FA;
	color: #00a4af;
	border-radius: 20px;
  cursor: pointer;
  letter-spacing: 0.05em;
}

.qaBlock details summary::-webkit-.qaBlock details-marker {
  /* iOSで表示されるデフォルトの三角形アイコンを消す */
  display: none;
}

.qaBlock details summary::before {
  content: "Q.";
  position: absolute;
  top: 15px;
  left: 20px;
}

/* ※本来はafter要素の装飾で十分だが、iOSだと疑似要素に「transition」が効かないので、通常のタグを装飾 */
.qaBlock details summary .ico {
  position: absolute;
  top: 0;
  right: 20px;
  bottom: 0;
  display: block;
  width: var(--arrow-size);
  height: calc(var(--arrow-size) * 0.6);
  /*aspect-ratio: 1/0.6;*/
  /* ※追記 Windows版Chrome124にてaspect-ratioを指定した要素と、position: absoluteの位置調整の組み合わせに不具合が発生したため、height値をcalcの計算に切り替え */
  margin: auto;
  background: #00a4af;
  clip-path: polygon(100% 13%, 50% 100%, 0 13%, 8% 0, 50% 73%, 92% 0);
  transition: transform var(--anime-speed);
}

.qaBlock details[open] summary .ico {
  transform: rotate(180deg);
}

.qaBlock details div {
  position: relative;
  padding: 15px 20px 15px 50px;
  letter-spacing: 0.05em;
}

.qaBlock details div::before {
  content: "A.";
  position: absolute;
  top: 15px;
  left: 20px;
  font-weight: 700;
}

@media screen and (max-width: 767px) {
  .qaBlock details {
    margin: 0 0 10px;
    --arrow-size: 11px;
  }
  .qaBlock details summary {
    padding: 10px calc(var(--arrow-size) + 15px) 10px 32px;
    border-radius: 15px;
    line-height: 1.4;
  }
  .qaBlock details summary::-webkit-.qaBlock details-marker {
    /* iOSで表示されるデフォルトの三角形アイコンを消す */
    display: none;
  }
  .qaBlock details summary::before {
    top: 10px;
    left: 12px;
  }
  .qaBlock details summary .ico {
    right: 12px;
  }
  .qaBlock details div {
    padding: 10px 15px 10px 32px;
  }
  .qaBlock details div::before {
    top: 10px;
    left: 12px;
  }
}