@charset "utf-8";

body {
  background: url(../stained-img/stained-bg.png);
}

main {
  width: 100%;
  max-width: 1400px;
}

.stained-fv {
  height: 396px;
  background: url(../stained-img/stained-glass.png) no-repeat top/100%;
  position: relative;
  text-align: center;
}

.stained-fv h2 {
  font-family: "Aoboshi One", serif;
  font-weight: 400;
  font-size: 35px;
  position: absolute;
  top: 45%;
  right: 0;
  left: 0;
}

.iro-glass {
  width: 35%;
  background-color: #f2f6df;
  border: 4px solid #5c4002;
  margin: 120px auto 0;
  position: relative;
}

.iro-glass img {
  width: 160px;
  position: absolute;
  top: 0px;
  left: -120px;
}

.iro-glass p {
  line-height: 1.8;
  padding: 25px 0 25px 55px;
}

/* ステンドグラスの作り順 */
.flex {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.howto {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}

.flex .howto h3 {
  font-weight: 500;
  font-size: 22px;
}

.flex .howto h3 span {
  font-size: 45px;
  margin-right: 60px;
}

.flex .group {
  width: 250px;
  margin: 140px 60px;
}

.flex .group dl {
  background-color: #f1f5de;
  border: 1px solid #7b4044;
  border-radius: 8px;
  padding: 45px 22px;
}

.flex .group dl dd {
  margin-top: 15px;
}

.flex .group img {
  aspect-ratio: 2/1.5;
  /* 画像の縦横比を3枚とも合わせる */
}

.flex .group dl span {
  text-decoration: underline;
}

/* フェードインのためのCSS */
/* アニメーションスタートの遅延時間を決めるCSS*/
.delay-time02{
  animation-delay: 0.2s;
  }
  
  .delay-time04{
  animation-delay: 0.4s;
  }

  /* スタート時は要素自体を透過0にするためのopacity:0;を指定する */
  .group{
    opacity: 0;
  }
  
  
  .fadeUp {
  animation-name:fadeUpAnime;
  animation-duration:0.5s;
  animation-fill-mode:forwards;
  opacity: 0;
  }
  @keyframes fadeUpAnime{
    from {
      opacity: 0;
    transform: translateY(100px);
    }
  
    to {
      opacity: 1;
    transform: translateY(0);
    }
  }



/* ハンダの注意書き */
.iro-glass2 {
  width: 35%;
  background-color: #f2f6df;
  border: 4px solid #5c4002;
  margin: 0 auto;
  position: relative;
}

.iro-glass2 img {
  width: 160px;
  position: absolute;
  top: 15px;
  right: -120px;
}

.iro-glass2 p {
  line-height: 1.8;
  padding: 25px 0 25px 55px;
}

.iro-glass2 span {
  color: #ff2100;
}

.iro-glass2 span:nth-of-type(2) {
  color: #ff2100;
  text-decoration: underline;
}


/* 商品紹介 */
.flex-2 dl {
  width: 210px;
  margin: 0 60px;
  text-align: center;
}

.flex-2 dl dd {
  font-size: 13px;
}

.flex-2 {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 170px;
}

.flex-2 img {
  aspect-ratio: 2/2.5;
}


/* 料金表 */
table {
  margin: 120px auto 0;
}

table,
td,
th {
  border: 1px solid #595959;
  border-collapse: collapse;
}

tr {
  text-align: center;
}

td,
th {
  width: 220px;
  height: 50px;
}

td {
  background: #f2f6df;
}

th {
  background: #35aa8f;
  color: #f2f6df;
  font-weight: 400;
}

/* 表注意書き */
.table-dr {
  width: 660px;
  margin: 10px auto 0;
}

.table-dr p {
  color: #ff2100;
}

.iro-glass3 {
  width: 35%;
  background-color: #f2f6df;
  border: 4px solid #5c4002;
  margin: 150px auto 0;
  position: relative;
  padding: 25px 0 25px 55px;
}

.iro-glass3 img {
  width: 160px;
  position: absolute;
  top: 0px;
  left: -120px;
}

.iro-glass3 .res {
  line-height: 1.8;
}

.iro-glass3 .color-red {
  color: #ff2100;
  text-decoration: underline;
}

/* .tel p以外のpを指定 */
/* .iro-glass3 p:not(.tel p) {
    line-height: 1.7;
} */

.tel {
  background-color: #ffe2b8;
  width: 60%;
  padding: 5px 0;
  margin: 30px 30px 40px;
}

/* TEL部分 */
.tel p:nth-of-type(1) {
  margin-left: 20px;
}

/* 電話番号部分 */
.tel p:nth-of-type(2) {
  text-align: center;
  font-size: 22px;
  letter-spacing: 3px;
}

.shop-info {
  display: flex;
}

.shop-info2 {
  display: flex;
  margin-top: 9px;
}

.shop-info p:nth-of-type(2) {
  margin-left: 20px;
}

.shop-info2 p:nth-of-type(2) {
  margin-left: 20px;
}

/* 毎週水曜日の前に空白 */
.shop-info .mgn-15 {
  margin-left: 15px;
}

.last-img {
  width: 35%;
  margin: 120px auto 0;
}

@media (max-width: 1350px){
  .stained-fv h2 {
    top: 41%;
    right: 0;
    left: 0;
  }

  .iro-glass2 p {
    padding: 25px 0 25px 30px;
  }

  .iro-glass3 {
    padding: 25px 0 25px 45px;
  }
}

@media (max-width: 1250px){
  .stained-fv h2 {
    top: 36%;
    right: 0;
    left: 0;
  }
  
  .iro-glass img {
    position: absolute;
    top: 0px;
    left: -140px;
  }
  
  .iro-glass p {
    padding: 25px 0 25px 25px;
  }
  

  .iro-glass2 {
    width: 35%;
    margin: 0 auto;
  }
  
  .iro-glass2 img {
    width: 160px;
    position: absolute;
    top: 15px;
    right: -140px;
  }
  
  .iro-glass2 p {
    line-height: 1.8;
    padding: 25px 0 25px 15px;
  }

  .iro-glass3 {
    padding: 25px 0 25px 25px;
  }
  
  .iro-glass3 img {
    position: absolute;
    top: 0px;
    left: -140px;
  }
}

@media (max-width: 1109px){
  .stained-fv h2 {
    top: 30%;
    right: 0;
    left: 0;
    font-size: 30px;
  }

  .iro-glass {
    margin: 70px auto 0;
  }
  
  .iro-glass img {
    position: absolute;
    top: 0px;
    left: -145px;
  }
  
  .iro-glass p {
    padding: 25px 0 25px 15px;
  }

  .flex .group {
    width: 250px;
    margin: 140px 40px;
  }

  .shop-info {
    display: flex;
    flex-wrap: wrap;
  }

  .shop-info2 {
    display: flex;
    flex-wrap: wrap;
    margin-top: 18px;
  }

  .shop-info p:nth-of-type(2) {
    margin-left: 0px;
  }

  .shop-info2 p:nth-of-type(2) {
    margin-left: 20px;
  }

  /* 毎週水曜日の前に空白 */
  .shop-info .mgn-15 {
    margin-left: 15px;
  }
}


@media (max-width: 989px){
  .stained-fv h2 {
    top: 30%;
    right: 0;
    left: 0;
    font-size: 30px;
  }

  .stained-fv {
    height: 300px;
  }

  .iro-glass {
    margin: 30px auto 0;
  }
  
  .iro-glass img {
    position: absolute;
    top: 0px;
    left: -145px;
  }
  
  .iro-glass p {
    padding: 25px 0 25px 15px;
  }

  .flex .group {
    width: 250px;
    margin: 140px 40px 80px;
  }

  .flex .delay-time04{
    margin-top: 0px;
  }

  .iro-glass2 {
    width: 35%;
    margin: 50px auto;
  }

  .flex-2 {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 170px;
  }

  .flex-2 .delay-time04{
    margin-top: 80px;
  }
}


@media (max-width: 880px){
  .stained-fv h2 {
    top: 35%;
    right: 0;
    left: 0;
    font-size: 26px;
  }

  .stained-fv {
    height: 250px;
  }
  
  .iro-glass {
    margin: 100px auto 0;
  }
  
  .iro-glass3 {
    width: 40%;
    padding: 25px 0 25px 20px;
  }

  .flex .group {
    width: 250px;
    margin: 110px 40px 80px;
  }

  .flex .delay-time04{
    margin-top: 0px;
  }

  .last-img {
    width: 40%;
  }
}

@media (max-width:862px) {
.tel {
  background-color: #ffe2b8;
  width: 75%;
  padding: 5px 0;
  margin: 30px 20px 40px;
}
}


@media (max-width: 780px){
  .stained-fv h2 {
    top: 32%;
    right: 0;
    left: 0;
    font-size: 24px;
  }

  .stained-fv {
    height: 230px;
  }

  .iro-glass img {
    position: absolute;
    top: 0px;
    left: -150px;
  }

  .iro-glass2 img {
    width: 160px;
    position: absolute;
    top: 25px;
    right: -140px;
  }

  .iro-glass3 {
    width: 45%;
    padding: 25px 0 25px 20px;
  }

  .last-img {
    width: 45%;
  }
}

@media (max-width: 700px){
  .stained-fv h2 {
    top: 32%;
    right: 0;
    left: 0;
    font-size: 22px;
  }

  .stained-fv {
    height: 210px;
  }

  .iro-glass p{
    font-size: 15px;
  }

  .flex .group dd{
    font-size: 15px;
  }

  .iro-glass2 {
    width: 40%;
    margin: 70px auto 0;
  }
  
  .iro-glass2 img {
    width: 160px;
    position: absolute;
    top: 15px;
    right: -140px;
  }

  .iro-glass2 p {
    line-height: 1.8;
    padding: 25px 5px 25px 15px;
    font-size: 15px;
  }

  .table-dr{
    font-size: 15px;
  }

  .iro-glass3{
    font-size: 15px;
  }

  .iro-glass3 img {
    position: absolute;
    top: -8px;
    left: -140px;
  }

  .last-img {
    width: 35%;
    margin: 90px auto 70px;
  }
}

@media (max-width: 659px){
  .stained-fv h2 {
    top: 30%;
    right: 0;
    left: 0;
    font-size: 21px;
  }

  .stained-fv {
    height: 210px;
  }

  .iro-glass p{
    font-size: 15px;
  }

  .iro-glass img {
    position: absolute;
    top: -10px;
    left: -145px;
  }

  .flex .group {
    width: 250px;
    margin: 110px 40px 0;
  }

  .flex .delay-time02{
    margin-top: 80px;
  }

  .flex .delay-time04{
    margin-top: 70px;
  }

  .flex .group dd{
    font-size: 15px;
  }

  .iro-glass2 {
    width: 40%;
    margin: 130px auto 0;
  }
  
  .iro-glass2 img {
    width: 160px;
    position: absolute;
    top: 20px;
    right: -140px;
  }

  .iro-glass2 p {
    line-height: 1.8;
    padding: 25px 5px 25px 15px;
    font-size: 15px;
  }

  table {
    margin: 120px 20px 0;
  }
  
  .table-dr{
    font-size: 15px;
    margin: 4px 20px;
  }

  .flex-2 .delay-time02{
    margin-top: 80px;
  }

  .flex-2 .delay-time04{
    margin-top: 80px;
  }

  .last-img {
    width: 46%;
    margin: 90px auto 70px;
  }
}

@media (max-width: 630px){
  .last-img {
    width: 44%;
    margin: 90px auto 100px;
  }
}

@media (max-width: 600px){
  .stained-fv h2 {
    top: 28%;
    right: 0;
    left: 0;
    font-size: 20px;
  }
}

@media (max-width: 580px){
  .stained-fv h2 {
    top: 28%;
    right: 0;
    left: 0;
    font-size: 18px;
    line-height: 1.4;
  }
}

@media (max-width: 540px){
  .tel {
    width: 85%;
    padding: 5px 0;
    margin: 30px 10px 40px 10px;
  }
}

@media (max-width: 520px){
  .stained-fv h2 {
    top: 27%;
    right: 0;
    left: 0;
    font-size: 17px;
    line-height: 1.4;
  }
}
@media (max-width: 500px){
  .stained-fv h2 {
    top: 24%;
    right: 0;
    left: 0;
    font-size: 16px;
    line-height: 1.4;
  }
}
@media (max-width: 455px){
  .stained-fv h2 {
    top: 22%;
    right: 0;
    left: 0;
    font-size: 15px;
    line-height: 1.4;
  }
}
@media (max-width: 440px){
  .stained-fv h2 {
    top: 21%;
    right: 0;
    left: 0;
    font-size: 14px;
    line-height: 1.2;
  }
}
@media (max-width: 413px){
  .stained-fv h2 {
    top: 20%;
    right: 0;
    left: 1%;
    font-size: 13px;
    line-height: 1.2;
  }
}

@media (max-width: 375px) {
  .stained-fv {
    height: 200px;
  }

  .stained-fv h2 {
    font-family: "Aoboshi One", serif;
    font-weight: 400;
    font-size: 13px;
    position: absolute;
    top: 20%;
    right: 0;
    left: 0;
  }

  .iro-glass {
    width: 65%;
    margin: 0 26%;
  }

  .iro-glass img {
    width: 100px;
    position: absolute;
    top: 15px;
    left: -90px;
  }

  .iro-glass p {
    font-size: 15px;
    padding: 25px 1px 25px 15px;
  }

  /* ステンドグラスの作り順 */
  .flex {
    margin-top: 70px;
  }

  .flex .group {
    margin: 40px 30px;
  }

  .flex .group dl {
    padding: 45px 22px;
  }

  /* ハンダの注意書き */
  .iro-glass2 {
    width: 65%;
    margin: 18% 11% 0;
    position: relative;
  }

  .iro-glass2 img {
    width: 100px;
    position: absolute;
    top: 0px;
    right: -80px;
  }

  .iro-glass2 p {
    line-height: 1.8;
    padding: 25px 15px 25px 15px;
  }

  .flex-2 dl {
    width: 210px;
    margin: 0 60px 70px;
    text-align: center;
  }

  .flex-2 dl dd {
    font-size: 13px;
  }

  .flex-2 {
    margin-top: 170px;
  }

  .flex-2 img {
    aspect-ratio: 2/2.5;
  }

  /* 料金表 */

  table {
    margin: 30px 10px 0;
  }

  table,
  td,
  th {
    border: 1px solid #595959;
    border-collapse: collapse;
  }

  tr {
    text-align: center;
  }

  td,
  th {
    width: 220px;
    height: 50px;
  }

  td {
    background: #f2f6df;
  }

  th {
    background: #35aa8f;
    color: #f2f6df;
    font-weight: 400;
  }

  /* 表注意書き */
  .table-dr {
    width: 300px;
    margin: 10px auto 0;
  }

  .iro-glass3 {
    width: 65%;
    margin: 40% 24% 0;
    padding: 25px 15px 25px 15px;
  }

  .iro-glass3 img {
    width: 100px;
    position: absolute;
    top: -20px;
    left: -90px;
  }

  .tel {
    width: 80%;
    padding: 5px 0;
    margin: 30px 20px 40px;
  }

  /* TEL部分 */
  .tel p:nth-of-type(1) {
    margin-left: 10px;
  }

  .shop-info {
    display: flex;
    flex-wrap: wrap;
  }

  .shop-info2 {
    display: flex;
    flex-wrap: wrap;
    margin-top: 18px;
  }

  .shop-info p:nth-of-type(2) {
    margin-left: 0px;
  }

  .shop-info2 p:nth-of-type(2) {
    margin-left: 20px;
  }

  /* 毎週水曜日の前に空白 */
  .shop-info .mgn-15 {
    margin-left: 15px;
  }

  .last-img {
    width: 65%;
    margin: 120px auto 0;
  }
}
