@charset "UTF-8";

/*-------------------------------------------
　▽初期化▽
-------------------------------------------*/
body {
  margin: 0;
  padding:0;
}

main{
  margin:0;
  padding:0;
}

a {
  text-decoration: none;
}

li {
  list-style: none;
}

ul {
  margin: 0;
  padding: 0;
}

/*-------------------------------------------
　▽全体に関わるレイアウト設定▽
-------------------------------------------*/

html{
  font-size:100%;
  -webkit-text-size-adjust: 100%;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  font-size: 62.5%;/*rem算出をしやすくするために*/
}
body{
  width: 100%;
  /*以下、汎用性のある無難なフォントセット */
  /*https://ics.media/entry/200317/*/
  font-family: "Helvetica Neue",
  Arial,
  "Hiragino Kaku Gothic ProN",
  "Hiragino Sans",
  "Meiryo",
  sans-serif;
  font-weight: bold;
}

/*-------------------------------------------
　▽wrapper設定▽
-------------------------------------------*/
.wrapper{
  max-width:960px;
  margin:100px auto 100px auto;
  padding:0;
  margin: 0;
}

/*-------------------------------------------
　▽header のレイアウト設定▽
-------------------------------------------*/

#header p{
  font-size: 1.5rem;
  margin:0;
  padding:0;
  text-align:center;
  background-color: black;
  font-weight: bold;
  color:#ffffff
}

/*-------------------------------------------
　▽橋村先生の上に行くイラスト▽
-------------------------------------------*/
.page_top_btn img{
	width:18VW;
	animation: fuwafuwa 2s infinite;
}

.page_top_btn {
  display: flex;
  flex-direction: column;

	position: fixed;
	bottom: 0.5vw;
	right: 1vw;
	text-align: center;
	transition: 0.3s0;
	z-index: 300;/*position指定がされてるからこそz-indexが設定できる */
	}

  .page_top_btn p{
    color: #fff;
    -webkit-text-stroke: 0.15vw black;/*ベンダープレフィックス*/
    text-shadow: 0.15vw black;/*1px赤色縁取り*/
    font-size: 2vw;
    margin: 0 auto;
    margin-bottom: 1vw;
    }
	
  /* 上への移動をスムーズに */
  html{
  scroll-behavior: smooth;
  }

  @keyframes fuwafuwa {
    0% {
      transform: translateY(0px);
    }
    50% {
      transform: translateY(-30px);
    }
    100% {
      transform: translateY(0px);
    }
    }


/*-------------------------------------------
　▽mainのレイアウト設定▽
-------------------------------------------*/
.topImg{
  width: 100%;
  height: 100%;
  background-size: cover; /*background-sizeは背景画像に対しての指定になる、object-fitはimg要素に対する指定になる、*/
  object-position: 100% 100%;
  background-repeat : no-repeat;
  background-position: 0 -60px;
  display: flex;
  flex-direction: column;
  padding: 2%;

  position: relative; /* コンテナ内でスライド位置を相対的に設定 */
  overflow: hidden; /* スライドがコンテナ外に出ないように非表示 */
}

.slideimg {
  z-index:0;
	position: absolute; /* 位置を絶対指定で重ねて配置 */
 	inset: 0; /*親要素内にフルサイズで配置*/
	opacity: 0; /* 初期状態で透明に */
	background-size: cover; /* 画像をスライド全体にカバー */
	animation: slideAnime 15s infinite; /* 1サイクル15秒を無限ループ */
}

/* スライド個別設定 */
.slideimg:nth-of-type(1) { background-image: url('../images/front2.JPG'); animation-delay: 0s; }
.slideimg:nth-of-type(2) { background-image: url('../images/award3.JPG'); animation-delay: 3s; }
.slideimg:nth-of-type(3) { background-image: url('../images/book4.JPG'); animation-delay: 6s; }
.slideimg:nth-of-type(4) { background-image: url('../images/Hashimura11.JPG'); animation-delay: 9s; }
.slideimg:nth-of-type(5) { background-image: url('../images/front7.JPG'); animation-delay: 12s; }

/*タイミング設定*/
@keyframes slideAnime {
	0%, 30%, 100% { opacity: 0; } /* 非表示のタイミング */
	10%, 20% { opacity: 1; } /* 表示されるタイミング */
}


.upper-left{
  font-size: 4VW;/*VWで画面幅に合わせて縮小してくれる */
  margin-left: 2%;
  font-weight: bold;
  color: #ff69b4;
  -webkit-text-stroke: 0.1vw black;
  text-shadow:
   5px  5px 5px black,
  -5px  5px 5px black,
   5px -5px 5px black,
  -5px -5px 5px black;
  z-index:100;
}

.bottom-left{
  width: 25VW;/*vhではなく%にすれば画面幅に合わせて縮小してくれる */
  margin-top: 10%;
  margin-left: 3%;
  z-index:100;
}
.bottom-left img{
  width:100%;
  bottom: 30px;
  z-index:100;
}

/*-------------------------------------------------
↑参考サイト：
https://web-camp.io/magazine/archives/94984
https://ameblo.jp/hp-daiko/entry-12171899980.html
-------------------------------------------------*/

/*-------------------------------------------
　電話ボタン
-------------------------------------------*/
/*電話ボタンを設定するための共通設定 */
*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  z-index:100;
}

.btn,
a.btn,
button.btn {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.5;
  position: relative;
  display: inline-block;
  padding: 1rem 4rem;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  letter-spacing: 0.1em;
  color: #212529;
  border-radius: 100vh;/*ボタンの角を丸める */
  z-index:100;
}


.btn--orange,
a.btn--orange {
  display: flex; 
  width:400px;
  color: #fff;
  background-color: #eb6100;
  font-size: 3rem;
  align-items: center;
  margin: 0 0 2% auto;/*margin-right:0 じゃ効かなかったのに・・・ */
  z-index:100;
}

a.btn--orange img{
  width:7rem;
  margin-right: 1rem;
  z-index:100;
}

.btn--orange:hover,
a.btn--orange:hover {
  color: #fff;
  background: #ffa500;
  z-index:100;
}

.btn--orange2,
a.btn--orange2 {
  display: flex; 
  width:50vw;
  background-color: #9acd32;
  font-size: 4vw;
  font-weight: bold;
  align-items: center;
  margin: 0 auto;/*margin-right:0 じゃ効かなかったのに・・・ */
  margin-bottom: 5%;
  justify-content: center;/*これで中央寄せになる */
  z-index:100;
}

a.btn--orange2 img{
  width:5vw;
  margin-right: 1rem;
  z-index:100;
}

.btn--orange2:hover,
a.btn--orange2:hover {
  background: #adff2f;
  z-index:100;
}


/*-------------------------------------------
　本棚と、本棚に重ねる背景
-------------------------------------------*/
.bigWrapper{
  background-image: url("../images/book3-2.png");
  background-size: 100%;
  background-repeat: repeat-y;
}	
.middleWrapper{
  background-color: antiquewhite;
  margin: 0 auto;
  max-width:80vw;
}


/*-------------------------------------------
　ABOUT設定
-------------------------------------------*/
#about{
  padding: 3% 5%;
}

#about .content{
  text-align: center;
  font-size:2vw;
  margin: 0 auto;/*max-width指定時はtext-alignが効かない。代わりにmargin設定で。 */ 
}



#about .content:last-child{
  margin-bottom: 5%;
}

#about .content2{
  display:flex;
  margin:0 auto 30px auto;
  justify-content: center;
  align-items: center;
}

#about .content2 img{
  max-width: 18vw;
  height: auto;
  aspect-ratio: 1/1;/*img要素にaspect-ratioとobject-fit: coverを指定する事でaspect-ratioの比率で画像をトリミングできる */
	object-fit:cover;
	border-radius:50%;
  object-position:-55px 0px;
}

#about .profile:last-child{
  margin-left:4%;
}

#about .content2 h2{
  margin: 0;
  font-size: 4vw;
}
#about .content2 p{
  max-width:500px;
  font-size: 2vw;
}

.profile h3{
  margin: 0;
  font-size: 2vw;
  color: gray;
}


/*-------------------------------------------
　sectionごとのレイアウト設定
-------------------------------------------*/
.panelHeader{
  text-align: center;
  font-size: 3vw;
  /*aboutの背景色を変えたら、なぜか白い部分が残っていた。見てみるとこの設定内で勝手に上にも余白ができていたのでわざわざ0を指定したら直った。*/
  margin-top: 0;
  margin-bottom: 0;
}
.panelHeader span.line{
  background:linear-gradient(transparent 60%, #ffd700 60%);
  /*html上でspanタグのみにしても微調整ができない。まずspanを「span class」とクラス属性を与え、css側で設定する事で調整可能。今回は色付きのマーカーを文字の下に引いた。*/
}
.panelHeader span.purple{
  color: purple;
  font-size: 5vw;
}
.panelHeader span.red{
  color: red;
  font-size: 5vw;
}
.panelHeader span.orange{
  color: #ff8c00;
  font-size: 5vw;
}
.panelHeader span.blue{
  color: #1e90ff;
  font-size: 5vw;
}
.panelHeader span.green{
  color: green;
  font-size: 5vw;
}

.panelHeader span.pink{
  color: #ff69b4;
  font-size: 5vw;
}

.miniHeader{
  font-size: 2vw;
  color: gray;
  text-align: center;
  margin: 0;
}

.textHeader{
  font-size:2.5rem;
  letter-spacing:0.1em;/*letter-spacingで文字間隔を開ける*/
}


/*▽資格写真▽*/
.List {
  display: flex;
  flex-wrap: wrap;/*4記事以上ある場合、折り返しできるように指定*/
  justify-content: space-between;
  margin-bottom: 3%;
}
.List li {
  width: 33%;
  text-align: center;
}

.List li figure {
  width: 100%;
  position: relative;/* 画像をぼかす魔法その１ */
  padding-top: 100%;
  margin: 0 auto;/* これがないと右にはみ出る */
}

.List li figure::after {/* 画像をぼかす方法その２ */
  position: absolute;
  display: block;
  content: "";
  top: 0;
  left: 0;
  width: 100%;/* これと下の値を弄ると正しく全体がボケなくなる */
  height: 100%;
  box-shadow:
  inset 0 0 25px antiquewhite /* 背景色と同じ色 */,
  inset 0 0 25px antiquewhite,
  inset 0 0 25px antiquewhite,
  inset 0 0 25px antiquewhite;
}
.List li h1{
  font-size: 1.5vw;
  color:#0000cd;
}

.List li figure img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/*html側でflexitem内のimgタグを閉じ忘れていたがために、画像が縦に規則的に小さくなっていく不具合に苦しめられた*/

.List2 {
  display: flex;
  flex-wrap: wrap;/*4記事以上ある場合、折り返しできるように指定*/
  justify-content: space-between;
  margin:3%;
  gap: 10px 5px;
}
.List2 li {
  width: 20%;
  text-align: center;
  background-color: #ffd700;
  margin: 0 auto;
  border-radius: 1.5vw 1.5vw 1.5vw 1.5vw; /* 左上・右上・右下・左下 */
  padding: 1%;
  border-color : black;
  border-width : 5px;
  border-style : solid;
}

.List2 li p{
  font-size: 2vw;
  margin: 0;
}




.technique{
  display: flex;
  margin: 0 auto;
  width:50vw;
}

.technique img{
  width: 100%;
}


.smallBox{
  width: 40vw;
  text-align: center;
  font-size: 1.5vw;
  margin: 0 auto;
  background-color: #ffd700;
  border: 0.6vw solid #000;
  border-radius:30px 30px 30px 30px;
}
.smallBox p{
  margin: 0;
  padding: 0;
}


.info{
  text-align: center;/* 親要素に指定。子要素を中央揃えに */
  margin-bottom: 3%;
}

.info p{
  display:inline-block;/* 子要素に指定。横幅は内容物のサイズにフィットする。ただし行として認識されてしまい、margin:0 autoが効かない */
  font-size: 2vw;
  margin: 0;
}

.info p:last-child{
  border-top: 1.5px solid #808080;
}

.map {
  width: 100%;
  position: relative;
  padding-top: 56.25%;
  margin-bottom: 5%;
}

.map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/*-------------------------------------------
　footerのレイアウト設定
-------------------------------------------*/

#footer{
  text-align: center;
  background-color: black;
  color:#ffffff;
  font-size:0.5rem;
  padding:10px 20px;
}

#footer p{
  font-size: 1vw;
  margin:0;
}
/*paddingを活用することで上下中央に文字を配置できることに気づいた*/
 

/*-------------------------------------------
　スマートフォンのレイアウト設定
-------------------------------------------*/
@media screen and (max-width: 800px) {
  .topImg{
    text-align: center;/*親要素を元にして子要素をどこに配置するかを決めるプロパティの為、親要素に text-alignを指定する*/
    align-items: center;
    flex-direction: column;
    background-size: 900px;/*widthをpxで固定して、object-fit:coverにすれば大きさ変わらず左右をトリミングできる */
    object-fit: cover;
    background-position:20% 20%;
  }
  .topImg .upper-left{
    text-align: center;
    font-size: 5vw;
    margin:auto;
    right:0;
    left: 0;
    margin-bottom: 30%;
  }
  .bottom-left{
    width: 200px;/*vhではなく%にすれば画面幅に合わせて縮小してくれる */
    margin-top: 0%;
    margin-left: 0%;
    margin-bottom: 10%;
  }
  .bottom-left img{
    width:100%;
    bottom: 30px;
  }
  .btn--orange,
  a.btn--orange {
    width:300px;
    font-size: 1.5rem;
    align-items: center;
    margin: 0;/*margin-right:0 じゃ効かなかったのに・・・ */
    margin-bottom: 5%;
  }
    a.btn--orange img{
    width:5rem;
    margin-right: 1rem;
  }



.middleWrapper{
  text-align: center;/*親要素を元にして子要素をどこに配置するかを決めるプロパティの為、親要素に text-alignを指定する*/
  align-items: center;
  flex-direction: column;
}

/*▽橋村先生のプロフ調整▽*/
#about .content2{
  display:flex;  
  text-align: center;/*親要素を元にして子要素をどこに配置するかを決めるプロパティの為、親要素に text-alignを指定する*/
  flex-direction: column;
  width:60vw;
}
#about .content2 img{
  object-position:-18px 0px;
}

/*▽List共通調整▽*/

.List li {
  width: 50%;
}
.List2 {
  gap: 5px 5px;
}
.List2 li {
  width: 40%;
}
.List2 li p{
  font-size: 3vw;
}

.btn--orange2,
a.btn--orange2 {
  display: flex; 
  width:55vw;
  font-size: 1.3rem;
  align-items: center;
  margin-bottom: 5%;
}

a.btn--orange2 img{
  width:7vw;
  margin-right: 1%;
}

  #about .container2{
    display:block;
    margin:0;
   /*上の方でのmax-widthの影響が残り、中途半端な幅に背景色が付いてしまった。そのため、ステータスをinitialにする事で初期化↓*/
    max-width:initial;
   /*画像とテキストが左端についたまま苦戦。justify-content:centerでも効かず。ところがtext-alignを指定したらあっさり解決。↓*/
    text-align: center;
}

  #about .container2 img{
    max-width: 200px;
  }
  #about .profile{
    margin-right:auto;
    margin-left:auto;
  }
  #about .profile:last-child{
    margin-left:0;
  }
  #about .container2 p{
    max-width:initial;
    }



}


@media screen and (max-width: 600px) {

  #header{
    max-width: 100%;
    height: auto;
    flex-direction: column;
    margin-bottom:0;
  }

  #header p{
    font-size: 2vw;
  }

  li a{
    font-size: 3vw;
}

}
