/* ベース */
body {
    position: relative;
    z-index: 1;
}


.iMain {
    margin: 0;
    overflow-x: hidden;
    text-align: center;
}

.iLead {
    margin: 100px 0;
    padding: 0 15%;
    text-align: center;
    font-size: 36px;
    color: #874897;

}

.iText {
    line-height: 1.8;
    font-size: 18px;
    padding: 0 15%;
    letter-spacing: 0.05em;
    margin: 30px 0;
    text-align: center;

}

.stageImg {
    display: block;
    max-width: 60%;
    height: auto;
}

.iMain h3 {
    margin: 40px auto
}


[id]::before {
    content: "";
    display: block;
    height:   80px;
    margin-top: -80px;
    visibility: hidden;
 }



/* 説明 */
.stage {
    padding: 0 10%;

}

.stage h2{
    margin: 0;
    padding: 150px 0 60px 0;
}

.stageImg{
    display: block;
    margin: auto;
    height: auto;
    transform: translateY(-20px);
    transition: opacity 2s ease-out, transform 2s ease-out;
}


.imageWrapper {
    display: flex;
    gap: 10px;
    align-items: stretch;
    padding: 40px 20px;
    margin: 0;
}

.imageBox {
    flex: 1;
    aspect-ratio: 16 / 9;
    background-size: cover;

    aspect-ratio: 16 / 9;
    background-repeat: no-repeat;
    background-position: center;
}


.charm {
    margin: 0;
    padding: 150px 10% 100px 10%;

}



.titleText {
    display: block;
    margin: 5px;
    font-size: 30px;
    color: #874897;

}

.icon {
    width: 30px;
    height: 30px;
    margin: auto;
    z-index: 1;
}

.iImage {
    align-items: center;
    margin: auto;
}


.time {
    display: inline-block;
    font-size: var(--font-l);
    margin: 20px auto 80px;
    letter-spacing: 0.1em;
    line-height: 2.5;
    width: 100%;
}


/* グリット */
.charmBlock {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 60px 20px;
    justify-content: center;
    align-items: center;
    margin: 100px  auto 0;
    height: auto;
    place-items: center;

}


.itemTitle {
    height: auto;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 30px;
}



.group{
    width: 500px;
    place-items: center;
}

.itemImg {
    display: block;
    width: 500px;
    height: 300px;
    object-fit: contain;
    padding: 20px;
}

.groupTextWrapper {
    display: flex;
    flex-direction: row-reverse; 
    gap: 30px; 
    justify-content: center;
    height: 350px;

}

.groupTitle{
    writing-mode: vertical-rl;
    text-align: left;
    min-height: 100px;
    font-size: 24px;
}


.groupText {
    writing-mode: vertical-rl;
    text-align: left;
    min-height: 100px;
    font-size: 18px;
    margin-top: 20px;

}

.groupContainer {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    width: 100vw;
    padding: 20px;
    box-sizing: border-box;
}

.subGroup {
    background-color: #fff;
    padding: 10px;
    border: 1px solid #ccc;
    text-align: center;
}

/* タブレットレスポンシブ */

@media (max-width: 1024px) {



    .background::before,
    .background::after {
        width: 5%;
    }

    .iFirstview h1{
        font-size: 38px;
    }

    .iFirstview p {
        font-size: 36px;
    }

    .iLead {
        font-size: 26px;
        padding: 100px;
        margin: 0;
    }



    .iText {
        line-height: 1.8;
        font-size: 16px;
        margin-bottom: 24px;
        padding: 0 15%;
    }

    .titleText{
        font-size: 26px;
    }
    
    

    .charm{
        padding: 0 7%;
    }

    .charmBlock{
        width: 100%;
    }

    .group{
        width: 100%;
    }

    .itemImg{
        width: 100%;
    }

    .itemTitle{
        margin-top: 80px;
        font-size: 18px;
    }

    .groupTextWrapper{
        gap: 20px;
    }

    .groupText{
        font-size: 14px;
    }

    }

    @media(max-width: 600px) {

        .iText{
            padding: 0;
        }

        .imageWrapper{
            padding: 0;
        }

        .itemTitle{
            margin-bottom: 40px;
        }

        .charmBlock {
          display: block;
          grid-template-columns: none;
          place-items: unset;
          justify-content: unset;
          align-items: unset;
        }

      
        .group{
            margin: 30px auto 0 ;
        }

        .groupTextWrapper{
            gap: 40px;
            max-height: 300px;
        }

        .groupText {
            max-height: 250px;
        
        }
      }
      