@charset "UTF-8";

/* 共通 */

html {
    font-size: 100%;
}
/* メモ：
    ・htmlのフォントサイズを100%で指定しておくことで、ユーザーがブラウザで設定したフォントサイズが正しく反映されるようになる。
 */

body {
 font-family: "Zen Maru Gothic", sans-serif;
 font-weight: 500;
 overflow-x: hidden; /* ★ここを追加（横スクロール禁止） */
 width: 100%; /* 念のため追加 */}
img {
    max-width: 100%;
    vertical-align: bottom;
}
/* メモ：
    ・「max-width: 100%;」は親要素から画像がはみ出すことを防ぐ
    ・「vertical-align:bottom;」は画像の下にできる隙間を消すために指定する
*/

li {
    list-style: none;
}
a {
    text-decoration: none;
}
a:hover {
    opacity: 0.6;
    transition: 0.4s;
}
a:link {
    color: #000;
}
a:visited {
    color: #000;
}
.wrapper {
    max-width: 920px;
    padding: 0 50px;
    margin: 0 auto;
}
@media screen and (max-width: 767px) {
    .wrapper {
        padding: 30px;
    }
}
.slideIn{
  opacity: 0;
  transform: translateY(100px);
  transition: 0.6s;
}

/* !!!!!!!!!!!! 
ブレイクポイント710px
以下コピペ用
*/
@media screen and (max-width: 710px){
    
}


/* topへスクロールボタン */
/* ボタンの指定 */
.js-backToTop {
  position: fixed;
  display: flex;
  align-items: center;
  justify-content: center;
  right: 20px;
  bottom: 20px;
  width: 80px;
  height: 80px;
  font-size: 20px;
  font-weight: bold;
  color: #fff;
  background: #000;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transition: .3s;
  z-index: 10;
}
/* クラス付与時の指定 */
.is-active{
  opacity: 1;
  visibility: visible;
}

/* ヘッダー */
header {
    background-image: url(../img/akafuji.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    height: 800px;
    position: relative;
    /* gsap */
    /* filter: blur(10px);
    opacity: 0; */
}
header .catchcopy {
    position: absolute;
    text-align: center;
    line-height: 50px;
    left: 37%;
    top: 30%;
}
header .catchcopy .text_mask {
    overflow: hidden;
    width: max-content;
}
header .catchcopy p {
    font-family: "Meiryo UI", "メイリオ", "Meiryo, sans-serif";
    font-size: 25px;
    font-weight: 600;
    color: #fff;
    background-color: #e0c31c;
    padding: 3px 7px;
    margin: 5px;
    letter-spacing: 3px;
    display: inline-block;
}
header .anim_container {
    overflow: hidden;
    width: 100%;
    height: 45%;
    position: absolute;
    bottom: 0;

}
header .animation {
  background: url(../img/amt_all.png) no-repeat;
  background-size: cover;
  width: 400px;
  height: 360px;
  display: inline-block;
  position: absolute;
  left: 35vw;
  animation-delay: 3s;
}
.animation {
  animation: yurucamp 8s steps(13) infinite;
}
@keyframes yurucamp {
  to {
    background-position: -5230px 0;
  }
}

/* sp */
@media screen and (max-width: 767px){
    header {
        background-position: center;
        height: 736px;
    }
    header .catchcopy {
        left: 12%;
    }
    header .catchcopy p {
        font-size: 20px;
    }
    header .animation {
        left: 3vw;
    }
header .anim_container {
    overflow: hidden;
    width: 100%;
    height: 45%;
    position: absolute;
    bottom: 0;
}
header .animation {
  background: url(../img/amt_all.png) no-repeat;
  background-size: cover;
  width: 356px;
  height: 330px;
  display: inline-block;
  position: absolute;
  left: 6vw;
  animation-delay: 3s;
}
.animation {
  animation: yurucamp 8s steps(13) infinite;
}
@keyframes yurucamp {
  to {
    background-position: -4795px 0;
  }
}
}

/* メイン */
/* ナビゲーション */
main {
    background-color: #FFE96B;
    position: static;
    padding-top: 20px;
}
main .menu {
    display: flex;
    justify-content: space-between;
    padding-top: 30px;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
}
main .menu h1 {
    text-shadow: 1px 1px 2px #1f1f1f;
    padding-left: 30px;
}
main .menu h1 a {
    color: #fff;
}
main .menu h1 a:visited {
    color: #fff;
}
main nav {
    padding-top: 8px;
}
main nav ul {
    display: flex;
    justify-content: right;
    margin: 0 50px;
}
main nav ul li {
    font-size: 25px;
    padding: 0 10px;
    text-shadow: 1px 1px 2px #1f1f1f;
}
main nav ul li a:link {
    color: #fff;
}
main nav ul li a:visited {
    color: #fff;
}

/* sp */
@media screen and (max-width: 767px) {
/* ハンバーガーメニュー */
    main .hamburger {
        width: 50px;
        height: 50px;
        cursor: pointer;
        position: fixed;
        top: 20px;
        right: 15px;
        z-index: 30;
        background-color: #fff;
        border: 3px solid #000;
    }
    main .hamburger span {
        width: 30px;
        height: 3px;
        background-color: #000;
        display: inline-block;
        position: absolute;
        left: 7px;
        transition: all 0.4s;
    }
    main .hamburger span:nth-of-type(1) {
        top: 13px;
    }
    main .hamburger span:nth-of-type(2) {
        top: 22px;
    }
    main .hamburger span:nth-of-type(3) {
        top: 31px;
    }
    /* main nav {
        width: 80%;
        height: 100vh;
        background-color: #bcbcbc;
        position: fixed;
        top: 0;
        right: -80%;
        z-index: 20;
        transition: all 0.6s;
    } */
main nav {
        width: 80%;
        height: 100vh;
        /* height: 100dvh;  ←もしiPhone等で下が切れる場合はコメントアウト外して追加してください */
        background-color: #bcbcbc;
        position: fixed;
        top: 0;
        right: -80%; /* ここがはみ出しの原因ですが、bodyのoverflow-x:hiddenで解決します */
        z-index: 20;
        transition: all 0.6s;
    }    main nav ul {
        width: 100%;
        height: 100vh;
        flex-direction: column;
        padding: 60px 0;
        overflow: auto;
        text-align: center;
        margin: 0 auto;
    }
    main nav ul li {
        padding: 10px 0;
        margin-left: 0;
    }
    main nav.active {
        right: 0;
    }
    main .hamburger.active span:nth-last-of-type(1) {
        top: 21px;
        transform: rotate(-45deg);
    }
    main .hamburger.active span:nth-last-of-type(2) {
        opacity: 0;
    }
    main .hamburger.active span:nth-last-of-type(3) {
        top: 21px;
        transform: rotate(45deg);
    }
    /* jsのアクティブ要素付与する際の注意点！
    子要素指定ではなく”and”指定になるため、
    .activeの前はスペースを空けない！
    jsがうまく起動しなかった
    ✖　.hamburger .active ←子要素指定
    〇　.hamburger.active ←and指定
     */
}

/* About */
.content {
    padding-bottom: 40px;
}
.content .section_title {
    text-align: center;
    margin-bottom: 40px;
    padding-top: 50px;
}
.content .section_title span {
    display: block;
    font-size: 15px;
}
.content .section_title h2 {
    font-size: 50px;
    font-weight: bold;
}
.content .detail_pro {
    display: flex;
    justify-content: center;
}
.content .detail_pro img {
    max-width: 200px;
    max-height: 200px;
    border-radius: 50%;
    margin: 0 20px;
}
/* ※吹き出しはコピペ */
/* ここから */
.content .detail_pro p {
  position: relative;
  display: inline-block;
  text-align: center;
  margin-right: 20px;
  padding: 23px;
  border: 2px solid #ffffff;
  border-radius: 80px;
  background-color: #ffffff;
  text-align: left;
  /* font-size: 16px; */
  font-size: 30px;
  line-height: 2;
  color: #000000;
}
.content .detail_pro p::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  border-style: solid;
  border-width: 10px 0 10px 20px;
  border-color: transparent transparent transparent #ffffff;
  translate: 100% -50%;
}
.content .detail_pro p::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  border-style: solid;
  border-width: 7.8px 0 7.8px 15.5px;
  border-color: transparent transparent transparent #ffffff;
  translate: 100% -50%;
}
/* ここまで */

.content .detail_pro span{
    font-size: 30px;
}
/* .content .detail_qa {
    margin: 0 auto;
}
.content .detail_qa ul li{
    display: flex;
}
.content .detail_qa ul li img {
    object-fit: cover;
}
.content .detail_qa ul li:nth-child(even) {
    background-color: #ffc9c9;
}
.content .detail_qa ul li img:nth-child(even) {
    display: block;
    float: right;
}
.content .detail_qa ul li:nth-child(odd)::before {
} */

.content .detail_qa {
    max-width: 600px;
    margin: 0 auto;
    padding-bottom: 30px;
}
.content .detail_qa .question {
    margin: 60px 0;
    /* width: auto; */
    max-height: 200px;
}
.content .detail_qa .question img{
    float: left;
    margin-right: 10px;
    /* max-width: 100px;
    max-height: 100px; */
    border-radius: 50%;
    width: 22%;
}
.content .detail_qa .question p {
  position: relative;
  display: inline-block;
  /* margin-left: 20px; */
  margin: 30px 0 30px 33px;
  padding: 16px;
  border: 2px solid #ffffff;
  border-radius: 30px;
  background-color: #ffffff;
  text-align: left;
  /* font-size: 16px; */
  font-size: 25px;
  line-height: 1.5;
  color: #000000;
}
.content .detail_qa .question p::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  border-style: solid;
  border-width: 10px 20px 10px 0;
  border-color: transparent #ffffff transparent transparent;
  translate: -100% -50%;
}
.content .detail_qa .question p::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  border-style: solid;
  border-width: 7.8px 15.5px 7.8px 0;
  border-color: transparent #ffffff transparent transparent;
  translate: -100% -50%;
}
.content .detail_qa .answer {
    margin: 30px 0;
}
.content .detail_qa .answer img{
    float: right;
    padding-left: 10px;
    /* max-width: 100px;
    max-height: 100px; */
    border-radius: 50%;
    width: 22%;
}
/* .content .detail_qa .answer_big img {
    float: right;
    padding-left: 10px;
    border-radius: 50%;
    width: 27%;
} */
.content .detail_qa .answer p {
  width: 400px;
  position: relative;
  display: inline-block;
  margin-left: 30px;
  padding: 16px;
  border: 2px solid #ffffff;
  border-radius: 30px;
  background-color: #ffffff;
  text-align: left;
  font-size: 16px;
  line-height: 1.5;
  color: #000000;
}
.content .detail_qa .answer p::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  border-style: solid;
  border-width: 10px 0 10px 20px;
  border-color: transparent transparent transparent #ffffff;
  translate: 100% -50%;
}
.content .detail_qa .answer p::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  border-style: solid;
  border-width: 7.8px 0 7.8px 15.5px;
  border-color: transparent transparent transparent #ffffff;
  translate: 100% -50%;
}
.content .detail_qa .answer p span {
    font-size: 30px;
}
/* メモ：
floatで横並びにした後、文章が短いものは吹き出しと
画像が横並びになったが、文章が長くなると横並びが解除
される現象が発生。以下floatについての注意点

合計横幅を100%超えると横並びが解除される。
marginを指定していない場合は「box-sizing:border-box;」
を指定すると横並びを維持することができる。
※borderとpaddingがwidthの外に出ないようになる
ただし、marginは含まれないので注意！

今回は吹き出しにwidthを指定することによって解決
*/

/* 修正　以下追加 */
.content .detail_qa .answer_small p {
  width: 350px;
  position: relative;
  display: inline-block;
  margin-left: 30px;
  padding: 16px;
  border: 2px solid #ffffff;
  border-radius: 30px;
  background-color: #ffffff;
  text-align: left;
  font-size: 16px;
  line-height: 1.5;
  color: #000000;
}
.content .detail_qa .answer_small p::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  border-style: solid;
  border-width: 10px 0 10px 20px;
  border-color: transparent transparent transparent #ffffff;
  translate: 100% -50%;
}
.content .detail_qa .answer_small p::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  border-style: solid;
  border-width: 7.8px 0 7.8px 15.5px;
  border-color: transparent transparent transparent #ffffff;
  translate: 100% -50%;
}
.content .detail_qa .answer_small p span {
    font-size: 25px;
    font-weight: 600;
} 
.content .detail_qa .answer_small img {
    float: right;
    padding-left: 10px;
    border-radius: 50%;
    width: 36%;
}
/* sp */
@media screen and (max-width: 767px){
    .content .detail_pro img {
        width: 150px;
        height: auto;
    }
    .content .detail_pro {
        flex-direction: column;
        align-items: center;
        margin-bottom: 70px;
    }
    .content .detail_pro p {
        padding: 24px 16px;
        margin-bottom: 30px;
        font-size: 18px;
        line-height: 1.5;
    }
    .content .detail_pro p::before {
        bottom: 0;
        top: auto;
        right: auto;
        left: 50%;
        border-width: 20px 10px 0 10px;
        border-color: #ffffff transparent transparent;
        translate: -50% 100%;
    }
    .content .detail_pro p::after {
        top: auto;
        right: auto;
        bottom: 0;
        left: 50%;
        border-width: 15.5px 7.8px 0 7.8px;
        border-color: #ffffff transparent transparent;
        translate: -50% 100%;
    }
    .content .detail_qa {
        max-width: auto;
    }
    .content .detail_qa .question {
        margin: 0 0 30% 0;
        max-height: auto;
        position: relative;
    }
    .content .detail_qa .question img {
        width: 30%;
        position: absolute;
        top: -5vh;
        z-index: 10;
    }
    .content .detail_qa .question p {
        margin: 7% 0 0 82px;
        font-size: 18px;
        width: 60%;
        text-align: center;
    }
    .content .detail_qa .question p::before {
        display: none;
    }
    .content .detail_qa .question p::after {
        display: none;
    }
    .content .detail_qa .answer{
        margin: 0 0 70px 0;
        position: relative;
    }
    .content .detail_qa .answer p {
        width: auto;
        margin-left: 0;
        /* width: 60%; */
        font-size: 18px;
    }
    .content .detail_qa .answer p::before {
        display: none;
    }
    .content .detail_qa .answer p::after {
        display: none;
    }
    .content .detail_qa .answer p span {
        font-size: 25px;
    }
    .content .detail_qa .answer img{
        width: 30%;
        padding-left: 0;
        position: absolute;
        z-index: 10;
        left: 64vw;
        top: -10.5vh;
    }
    /* メモ 
    文章量に応じて縦横幅が変わる<p>要素が親、画像を子に
    した場合、pxやemなどの絶対値の指定をすると画面幅に
    応じて画像の位置が変わってしまう。
    %指定も思うように調整ができなかった。
    この場合、正しいのは”vw vh”単位での指定。
    ブラウザの表示領域を軸として位置を指定するので、
    可変性のオブジェクトを親とする場合は有用。
    */
    .content .detail_qa .answer_small {
        position: relative;
    }
    .content .detail_qa .answer_small img {
        position: absolute;
        z-index: 10;
        left: 60vw;
        top: -12vh;
    }
    .content .detail_qa .answer_small p {
        width: auto;
        margin-left: 0;
    }
    .content .detail_qa .answer_small p::before {
        display: none;
    }
    .content .detail_qa .answer_small p::after {
        display: none;
    }
}

/* Books */
.content .text_box {
    max-width: 500px;
    margin: 0 auto 40px;
    padding: 30px;
    border: 5px solid #c4c4c4;
    border-radius: 30px;
    box-shadow: 6px 9px 0 #c4c4c4;
}
.content .text_box h2 {
    text-align: center;
    font-weight: 500;
    font-size: 18px;
}
.content .text_box h3 {
    color: #c4c4c4;
    margin-bottom: 10px;
}
.text_box p {
    font-size: 16px;
    font-weight: 500;
}
.content .slider .slider_img{
    margin-bottom: 50px;
}
.content .slider .slider_img img {
    margin: 0 auto;
    width: 250px;
    filter: drop-shadow(6px 6px 6px #a1a1a1);
}

.content .text_box .comment {
    position: relative;
}
.content .text_box .comment img {
    position: absolute;
    left: -27%;
    bottom: 17%;
    max-width: 130px;
    border-radius: 50%;
   transform: scale(-1, 1);
}
/* メモ：
テキストを囲んでいるボックスを親要素にして、丸くくりぬいた画像を
浮かせて表示させた場合、文章量に合わせてボックスの形状が変化するため、
画像にズレが生じた。この場合、不変である要素を親にしないといけないので、
今回は「Comment」のh2と丸い画像のimgをdivで囲い、そのdivを親要素とすることによって
解決することができた。

 */

 /* sp */
 @media screen and (max-width: 767px) {
    .content .slide_page {
        padding: 0 10px;
        width: 100%;
    }
    .content .text_box {
        padding: 15px;
    }
    .content .slider .slider_img img {
        width: 200px;
        margin-bottom: 40px;
    }
    .content .text_box h3 {
        margin-left: 53px;
    }
    .content .text_box .comment img {
        width: 80px;
        left: -11%;
        top: -180%;
    }
}
/* メモ：
スライダーのページ間の隙間がなく、次スライドの端が見切れていたので、
スライドごとにdivで括り、クラスを付与
widthを100%にすることによって、画面いっぱいにスライドが表示され、
見切れる現象を解決できた。
*/


/* slick カスタマイズ */
.slick-prev::before{
    color: #676767;
    font-size: 30px;
}
.slick-next::before{
    color: #676767;
    font-size: 30px;
}
.slick-dots {
    bottom: 0;
}
/* sp */
@media screen and (max-width: 767px) {
    .slick-prev, .slick-next {
        top: 30%;
        width: auto;
    }
}
/* フォーム */

.content .wrapper_form {
    background-color: #FFE96B;
    border-radius: 30px;
    padding: 30px
}
.content .form {
    max-width: 50%;
    margin: 0 auto;
}
.content .form .form_item {
    margin: 30px 0;
}
.content .form .form_item  input[type="text"] {
    margin: 0 auto;
    width: 100%;
    height: 40px;
    border-radius: 10px;
    border-color: #ffffff;
}
.content .form .form_item  textarea{
    width: 100%;
    height: 150px;
    border-radius: 10px;
    border-color: #ffffff;
}
.content .form .form_item  input[type="submit"] {
    width: 100%;
    height: 60px;
    text-align: center;
    border-radius: 10px;
    background-color: #676767;
    color: #fff;
    border-color: #676767;
}
/* sp */
@media screen and (max-width: 767px) {
    .content .wrapper_form {
        padding: 17px;
    }
    .content .form {
        max-width: 90%;
    }
}

/* ギャラリー */
.gallery {
    /* height: 390px;
    background-image: url(../img/footer.png);
    background-size: 100%;
    background-repeat: no-repeat; */
    margin-bottom: 30px;
    width: 100%;
    height: auto;
    border-bottom: 4px solid #444444;
}
.gallery img {
    width: 100%;
}
.gallery .slider_auto {
    width: 100%;
}
.gallery .slider_auto img {
    width: 100%;
    height: 300px;
    object-fit: cover;
}
/* メモ：object-fitは、必ず幅と高さを指定すること */
.gallery .slider_auto .slick-slide {
    height: 280px!important;
}
/* フッター */
.content .footer_nav {
    display: flex;
    justify-content: space-between;
}

.footer .footer_logo h2 a {
    font-size: 40px;
    font-weight: 600;
}
.footer .footer_nav .sitemap ul li{
    font-size: 30px;
}
.footer .footer_nav .sns .sns_links {
    text-align: center;
}
.footer .footer_nav .sns .sns_links p {
    font-size: 30px;
    padding-left: 40px;
}
.footer .footer_nav .sns .sns_links ul {
    display: flex;
    justify-content: center;
}
.footer .footer_nav .sns .sns_links ul li {
    margin: 5px;
    width: 50px;
}
.footer_p {
    width: 100%;
    background-color: #444444;
    color: #fff;
    text-align: center;
    font-size: 15px;
    padding: 20px 0;
}

/* .footer .footer_nav .sns .sns_links ul li{
    width: 100px;
    border-radius: 50%;
    border: solid 4px #000;
} */
/* .footer .footer_nav .sns .sns_links ul li a img{
    width: 80px;
} */
 /* sp */
 @media screen and (max-width: 767px) {
    .footer .footer_logo h2 a {
        font-size: 25px;
    }
    .footer .footer_nav .sitemap ul li{
        font-size: 20px;
    }
    .footer .footer_nav .sns .sns_links p {
        font-size: 20px;
    }
     .footer .footer_nav .sns .sns_links ul li {
        width: 33px;
    }
 }

