html,
body,
div,
span,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
a,
em,
img,
strong,
sub,
sup,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}

/* 追加のリセットスタイル */
body {
    line-height: 1;
}

ol,
ul {
    list-style: none;
}

blockquote,
q {
    quotes: none;
}

.sp-br {
    display: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
    content: "";
    content: none;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

a {
    text-decoration: none;
    text-decoration-line: none;
    color: inherit;
}

/* ここから記載していく----------------------------------------------------------- */

body {
    margin: 0;
    padding: 0;
    font-family: 'Noto Serif JP', "游明朝", "YuMincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "MS PMincho", serif;
    overflow: hidden;
}

#historybody {
    font-family: 'Noto Serif JP', "游明朝", "YuMincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "MS PMincho", serif;
}

.fade-up {
    opacity: 0;
    transform: translateY(40px);
}

/* トップ----------------------------------------------------------- */
#tophistory {
    background-image: url(img/topimg.jpg);
    background-size: cover;
    background-position: center;
    min-height: 420px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    color: #fff;
    font-family: "游明朝", "YuMincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "MS PMincho", serif;
}


#tophistory .text-s {
    text-align: center;
}


/* スクロール----------------------------------------------------------- */
.scroll-indicator {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 20px;
    opacity: 0;
}

.scroll-indicator .line {
    width: 1px;
    height: 40px;
    background-color: #523d32;
    animation: lineMove 2s ease-in-out infinite;
}

.scroll-indicator .text {
    margin-top: 10px;
    font-size: 14px;
    color: #523d32;
    letter-spacing: 1px;
    font-family: 'Barlow', sans-serif;
}

@keyframes lineMove {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(10px);
    }
}



.text-s {
    font-size: 16px;
    line-height: 1.8;

}

.symbol .text-m {
    font-size: 20px;
    line-height: 1.6;
}

#big-container {
    background-color: #dfd4bc;
}

.box-shadow {
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

/* 歴史----------------------------------------------------------- */
.history-wrap {
    text-align: center;
    padding-top: 80px;
    color: #523d32;
}


#history {
    background: linear-gradient(to bottom, #d8b175, #d3be91);
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
}

#history .text-s {
    text-align: center;
}


#history h2 {
    font-size: 40px;
    letter-spacing: 0.3rem;
    margin-bottom: 20px;
    text-align: center;
}

#tophistory h1 {
    font-size: 45px;
    letter-spacing: 0.05rem;
    margin-bottom: 20px;
    text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);
    font-weight: bold;
}

#tophistory h1 span {
    font-size: 70px;
}


.f-32 {
    font-size: 32px;
    text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);
    margin-bottom: 10px;
}

.f-23 {
    font-size: 23px;
    text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);
    margin-bottom: 10px;
    display: inline-block;
    /* インライン要素にする */
    padding-left: 80px;
    /* 左側に150pxの余白 */
    padding-right: 80px;
    /* 右側に150pxの余白 */
    position: relative;
}

.f-23::before,
.f-23::after {
    content: '';
    /* 擬似要素を使うための空のコンテンツ */
    position: absolute;
    top: 50%;
    width: 80px;
    /* 罫線の長さ */
    height: 1px;
    /* 罫線の太さ */
    background-color: rgb(255, 255, 255);
    /* 罫線の色 */
    text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);
}

.f-23::before {
    left: -10px;
    /* 左側に配置 */
}

.f-23::after {
    right: -10px;
    /* 右側に配置 */
}

/* 創業期----------------------------------------------------------- */
#foundation {
    font-family: "游明朝", "YuMincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "MS PMincho", serif;
    padding-top: 720px;
    color: #333;
}

.green-bk {
    position: relative;
    background-color: #2e5851;
    /* グリーンの背景 */
    padding-top: 140px;
    padding-bottom: 70px;
    z-index: 0;
}

.symbol-wrap {
    position: absolute;
    bottom: 250px;

    left: 45%;
    transform: translateX(-50%);
    z-index: 10;
    width: 100%;
    max-width: 1120px;
}


.zidai {
    max-width: 1360px;
    margin: 0 auto;
    padding: 40px 20px 0;
}

.symbol {
    display: flex;
    flex-direction: column;
    /* 縦に並べる（タイトル上、画像下） */
    align-items: flex-start;
    /* 左寄せ */
    gap: 10px;
    /* タイトルと画像の隙間 */
    border-radius: 12px;
}

.symbol .img img {
    width: 100%;
    height: auto;
}



.flex {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
    align-items: center;
}

.symbol .img {
    flex: 1 1 300px;
    position: relative;
}

.symbol .img p {
    font-size: 148px;
    font-weight: bold;
    margin-bottom: 10px;
    opacity: 0.3;
    position: absolute;
    top: -153px;
    right: -80px;
    /* 右側に配置 */
    z-index: -10;
    color: #fff;
    font-style: italic;
    text-align: right;
    /* 右揃え */
}

#growth .symbol .img p,
#global .symbol .img p {
    top: -175px;
}

/* .symbol .img img {
width: 100%;
display: block;
position: relative;
z-index: 1;
} */

.symbol .mini-cmt {
    padding: 20px;
    display: flex;
    gap: 20px;
    align-items: center;
    margin-top: 10px;
    position: absolute;
    bottom: -90px;
    right: -160px;
    z-index: 2;
    background: #efe7d5;
    color: #2e5851;
}


#global .symbol .mini-cmt {
    bottom: -130px;
}

.symbol .mini-img img {
    width: 130px;
    height: auto;
}




.symbol .ttl {
    writing-mode: horizontal-tb;
    /* 横書きに変更 */
    text-align: left;
    font-family: "游明朝", YuMincho, "Hiragino Mincho ProN", serif;
    position: relative;
    padding: 0;
    color: #523d32;
    width: auto;
    max-width: 90%;
    top: 0;
    left: 0;
    order: 1;
    /* 見出しを上に */
    z-index: 20;
}

.symbol .img {
    flex: 1 1 300px;
    position: relative;
    order: 2;
    /* 画像を下に */
}

.symbol .ttl h2 {
    font-size: 67px;
    font-weight: 600;
    margin: 0;
    letter-spacing: 0.01em;
    text-align: left;
}

.symbol .ttl .era-en {
    writing-mode: horizontal-tb;
    transform: rotate(90deg);
    transform-origin: left top;
    font-size: 19px;
    color: #2e5851;
    margin-top: 10px;
    display: inline-block;
    white-space: nowrap;
    margin-left: 10px;
    font-weight: normal;
    position: absolute;
    right: -209px;
    top: 110px;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 800;
    font-style: normal;
    letter-spacing: 0.2rem;
}

/* 装飾ライン削除 */

.symbol .ttl p {
    font-size: 14px;
    opacity: 0.7;
}



.zidai h3 {
    width: fit-content;
    /* 文字幅に合わせる */
    font-size: 32px;
    margin-bottom: 30px;
    color: #fff;
    letter-spacing: 0.02rem;
    position: relative;
    padding-bottom: 10px;
}

.zidai h3::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    /* 文字幅(100%)に合わせる */
    border-bottom: 1px solid rgb(255, 255, 255);
}

.zidai h3::before {
    content: '';
    /* 空のコンテンツ */
    position: absolute;
    bottom: 0;
    /* 下に配置 */
    left: -100vw;
    /* 左側を親要素を貫いて伸ばす */
    width: 100vw;
    /* 画面全体の幅にすることで親要素を貫通させる */
    border-bottom: 1px solid rgb(255, 255, 255);
    /* 罫線 */
}



.zidai .text-s {
    color: #fff;
    font-size: 18px;
    text-align: left;
}



.ayumi {
    color: #ffffff;
    padding: 10px 15px;
    border-radius: 20px;
    font-weight: bold;
    font-size: 18px;
    flex: 0 0 auto;
    padding: 1em 1.8em;
    position: relative;
    box-sizing: border-box;
    letter-spacing: 0.1rem;
    line-height: 1.5rem;
    text-align: center;
}

.ayumi::before,
.ayumi::after {
    content: '';
    width: 12px;
    height: 100%;
    position: absolute;
    box-sizing: border-box;
    border-top: solid 2px #FFF;
    border-bottom: solid 2px #FFF;
    top: 0;
}

.ayumi::before {
    border-left: solid 2px #FFF;
    left: 0;
}

.ayumi::after {
    border-right: solid 2px #FFF;
    right: 0;
}

.ayumi p {
    margin: 0;
    text-align: center;
    font-size: 18px;
}



.dekigoto {
    color: #523d32;
    padding: 80px 0 730px;
    margin: 0 auto;
}

#global .dekigoto {
    color: #523d32;
    padding: 50px 0 700px;
}


.dekigoto h3 {
    text-align: center;
    font-size: 32px;
    letter-spacing: 0.02rem;
    margin-bottom: 40px;
    color: #523d32;
}

.dekigoto ul {
    list-style: none;
    padding: 0;
    margin: 0;
    max-width: 910px;

    margin: 0 auto;
}

.dekigoto li {
    font-size: 18px;
    letter-spacing: 0.01rem;
    margin-bottom: 15px;
    padding: 0 10px 15px;
    line-height: 1.6;
    position: relative;
    border-bottom: #523d32 1px solid;
    display: flex;
    gap: 7px;
    align-items: baseline;
}

.dekigoto li .year {
    width: auto;
    flex-basis: auto;
    flex-shrink: 0;
    font-weight: bold;
}

#history {
    background: linear-gradient(to bottom, #d8b175, #d3be91);
}

#foundation {
    background: linear-gradient(to bottom, #d3be91, #dfd4bc);
}


.dekigoto {
    background: linear-gradient(to bottom, #d8b175, #dfd4bc);
}



/* 成長期----------------------------------------------------------- */


#growth .symbol .img p {
    left: auto;
    right: -80px;
    text-align: end;
}

#growth .symbol .mini-cmt ul {
    padding: 0px;
    display: flex;
    gap: 15px;
    align-items: center;

    z-index: 2;
    background: #efe7d5;
    color: #2e5851;
}


#growth .symbol .mini-cmt {
    bottom: -85px;
    right: -160px;
    /* 左側(-160px)から右側へ修正 */
    gap: 10px;
    padding: 17px;
    display: flex;
    flex-direction: column;
    width: 360px;
}

#growth .symbol .mini-cmt h4 {
    font-size: 17px;
    border-bottom: 1px solid #2e5851;
    width: 100%;
    padding-bottom: 10px;
    _
}

#growth .symbol .mini-img img {
    width: 150px;
    height: auto;
}

#growth .symbol .text-m {
    font-size: 19px;
    line-height: 1.6;
    text-align: left;
}


#growth .zidai {
    max-width: 1360px;
    margin: 0 auto;
    padding: 40px 20px 0;
    display: flex;
    flex-wrap: nowrap;
    flex-direction: column;
}

/* テレコ修正（右寄せ削除） */




#growth .symbol-wrap,
#global .symbol-wrap {
    position: absolute;
    bottom: 300px;
    left: 45%;
    transform: translateX(-50%);
}

#growth .symbol .ttl {
    top: 0;
    left: 0;
    right: auto;
}

#growth .symbol .mini-cmt {
    bottom: -135px;
    right: -160px;
    /* 左から右に変更 */
}



/* グローバル----------------------------------------------------------- */


.border-none {
    border-bottom: none !important;
}

#now {
    position: relative;
    /* ベージュ系背景 */
    border: 1px solid #523d32;
    /* 茶色の枠線 */
    color: #523d32;
    /* 茶系の文字色 */
    padding: 1.5em 1.5em 1.5em 2em;
    line-height: 1.8;
    max-width: 840px;
    margin: 1em auto;
    font-size: 18px;
    box-sizing: border-box;
    text-align: justify;
}

#now::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 0;
    border-top: 20px solid #523d32;
    /* 茶色の三角 */
    border-right: 20px solid transparent;
}



#global .dekigoto .flex {
    display: flex;
    gap: 4px;
    flex-wrap: nowrap;
    align-items: baseline;
}

#global .dekigoto .flex p {
    font-size: 18px;
    letter-spacing: 0.04rem;
}

.year {
    display: inline-block;
}


#growth .symbol .mini-img img {
    width: 123px;
}


#global .symbol .ttl h2 {
    font-size: 67px;
    font-weight: 600;
    margin: 0;
    letter-spacing: 0.01em;
}

#global .symbol .ttl {
    top: 0;
    left: 0;
}


/* 削除 */

#global .symbol .ttl .era-en {
    right: -239px;
    top: 108px;
}

.symbol .mini-cmt {
    max-width: 360px;
}


#global .dekigoto {
    padding: 80px 0 80px;
}

#global .symbol .mini-img img {
    width: 210px;
    height: auto;
}

/* そして、100年を越えて----------------------------------------------------------- */
.history-container {
    position: relative;
    width: 100%;
    margin: 0 auto;
    aspect-ratio: 4 / 1.5;
    overflow: hidden;
    background-color: #e4d4b8;
}

.image-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    /* PC：3列 */
    grid-template-rows: repeat(3, 1fr);
    /* PC：4行 */
    width: 100%;
    height: 100%;
}

.grid-img {
    background-size: cover;
    background-position: center;
    opacity: 0;
    transform: scale(1.05);
}

.catchphrase {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 5.5rem;
    letter-spacing: 0.4rem;
    color: white;
    text-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5);
    opacity: 0;
    z-index: 10;
    font-weight: bold;
    font-size: 4rem;
    width: 100%;
    text-align: center;
}

/* 最後----------------------------------------------------------- */

#saigo h3 {
    margin-bottom: 40px;
    font-size: 34px;
    letter-spacing: 0.02rem;
    color: #523d32;
    text-align: center;
}

#saigo {
    color: #523d32;
    padding: 80px 0 400px;
    background: url(img/btmimg-pc.png) no-repeat bottom center;
    background-size: contain;
    background-color: #e4d4b8;
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

#saigo p {
    text-align: center;
}


.pc {
    display: block;
}


.sp {
    display: none;
}


@media screen and (max-width:1660px) {
    .symbol .ttl {
        top: 0;
    }

    #growth .symbol .ttl {
        top: 0;
    }

    #saigo {
        padding: 80px 0 300px;
    }

    #foundation {
        padding-top: 640px;
    }

    .symbol-wrap {
        max-width: 1000px;
    }

    .symbol .img p {
        font-size: 128px;
        top: -137px;
        right: -60px;
        left: auto;
    }

    .symbol .ttl h2 {
        font-size: 55px;
    }

    .symbol .ttl .era-en {
        display: none;
    }

    .dekigoto {
        padding: 80px 0 670px;
    }

    #growth .symbol .img p,
    #global .symbol .img p {
        top: -152px;
    }

    .green-bk {
        padding-top: 170px;
    }
}


@media screen and (max-width:1380px) {

    #growth .symbol .img p,
    #global .symbol .img p {
        top: -117px;
    }

    #global .symbol .ttl h2 {
        font-size: 47px;
    }

    #growth .zidai {
        max-width: 1099px;
    }

    #saigo {
        padding: 80px 20px 220px;
    }

    #foundation {
        padding-top: 530px;
        bottom: 290px;
    }

    .symbol-wrap {
        max-width: 880px;
        bottom: 290px;
    }

    .symbol .img p {
        font-size: 99px;
        top: -104px;
        right: -40px;
        left: auto;
    }

    .symbol .ttl h2 {
        font-size: 47px;
    }

    .symbol .ttl .era-en {
        display: none;
    }

    .zidai {
        max-width: 1099px;
    }

    .dekigoto {
        padding: 80px 15px 560px;
    }
}



@media screen and (max-width:1199px) {
    #global .symbol .mini-cmt {
        bottom: -60px;
    }

    .symbol .text-m {
        font-size: 17px;
    }

    .symbol-wrap {
        max-width: 780px;
        bottom: 370px;
    }

    .zidai {
        max-width: 1000px;
    }

    #saigo {
        padding: 80px 20px 280px;
    }
}



@media screen and (max-width:991px) {

    #growth .symbol .img p,
    #global .symbol .img p {
        top: -94px;
    }

    .symbol-wrap {
        max-width: 780px;
        padding: 0 40px;
    }

    #foundation {
        padding-top: 380px;
    }

    .symbol .img p {
        font-size: 80px;
        top: -85px;
        right: -20px;
        left: auto;
    }

    .symbol .ttl h2 {
        font-size: 48px;
    }

    .dekigoto {
        padding: 60px 15px 400px;
    }
}



@media screen and (max-width:955px) {

    #growth .symbol .img p,
    #global .symbol .img p {
        top: -84px;
        right: 0px;
    }

    #growth .symbol-wrap,
    #global .symbol-wrap {
        left: 0;
        transform: none;
    }

    .symbol .mini-cmt {
        right: -130px;
    }

    .symbol-wrap {
        max-width: 80%;
        padding: 0;
        bottom: 360px;
    }

    #foundation {
        padding-top: 470px;
    }

    .symbol .img p {
        font-size: 70px;
        top: -75px;
        right: 0;
        left: auto;
    }

    .symbol .ttl h2 {
        font-size: 42px;
    }

    .zidai h3 {
        font-size: 24px;
        width: fit-content !important;
    }

    #growth .symbol-wrap,
    #global .symbol-wrap {
        position: absolute;
        bottom: 350px;
    }

    .dekigoto {
        padding: 50px 15px 450px;
    }

    .symbol-wrap {
        left: 0;
        transform: none;
    }

    #tophistory h1 {
        text-align: center;
        padding: 0 10px;
    }

    #history {
        padding: 0 15px;
    }

}


@media screen and (max-width:799px) {

    #now {
        text-align: left;
    }

    #growth .symbol .mini-cmt h4 {
        font-size: 16px;
        text-align: left;
    }

    #growth .symbol .text-m {
        font-size: 16px;
    }

    .ayumi {
        text-align: left;
    }

    #saigo {
        color: #523d32;
        background: url(img/btmimg.png) no-repeat bottom center;
        background-size: contain;
        background-color: #e4d4b8;
        display: flex;
        flex-wrap: nowrap;
        justify-content: center;
        align-items: center;
        flex-direction: column;
    }



    .fade-up {
        opacity: 1 !important;
        transform: none !important;
    }


    .fade-sp {
        opacity: 0;
        transform: translateY(40px);
    }

    .era-en {
        opacity: 1 !important;
    }

    .animated-title h2 span {
        display: inline-block;
        opacity: 0;
        transform: translateY(30px) scale(0.9);
        filter: blur(6px);
        transition: all 0.3s ease;
        white-space: pre-wrap;
        /* スペース（半角スペース等）を保持する */
    }




    li.ttl {
        filter: none;
        /* 親要素にfilterが適用されていないか確認 */
    }

    h2 {
        filter: none;
        /* h2にもfilterがないか確認 */
    }

    .pc {
        display: none;
    }


    .sp {
        display: block;
    }

    #tophistory {
        min-height: 240px;
    }

    .f-32 {
        font-size: 22px;
    }

    .f-23 {
        font-size: 20px;
    }

    .f-23::before,
    .f-23::after {
        width: 40px;
    }

    .f-23::before {
        left: 30px;
    }

    .f-23::after {
        right: 30px;
    }

    #tophistory h1 {
        font-size: 28px;
    }

    #tophistory h1 span {
        font-size: 40px;
    }

    .history-wrap {
        padding-top: 50px;
    }

    #history h2 {
        font-size: 30px;
    }

    .pc {
        display: none;
    }


    .sp {
        display: block;
    }

    #global .dekigoto .flex {
        display: block;
    }

    #global .dekigoto .flex p {
        margin-bottom: 0;
    }

    .symbol {
        display: flex;
        flex-direction: column;
    }


    #foundation {
        padding-top: 820px;
    }

    .symbol-wrap {
        max-width: 100%;
    }

    .symbol .mini-cmt {
        right: auto;
    }

    .symbol .img p {
        left: 15px;
    }

    .symbol-wrap {
        left: 0;
        transform: none;
        max-width: 100%;
    }

    .symbol .img p {
        font-size: 79px;
        top: -84px;
        left: 0px;
    }

    .symbol .mini-cmt {
        left: 0;
    }

    #global .symbol .mini-cmt {
        bottom: -90px;
    }

    .symbol {
        flex-direction: column;
    }


    .symbol .ttl {
        display: flex;
        align-items: center;
        width: 100%;
        padding: 0 0 0 15px;
    }

    .symbol .ttl::before {
        display: none;
    }

    .symbol .ttl h2 {
        position: relative;
        display: inline-block;
        font-size: 48px;
    }

    .symbol .ttl h2::before {
        display: none;
    }

    .symbol .ttl .era-en {
        right: -179px;
        top: 45px;
    }

    #foundation {
        padding-top: 67vw;
    }

    .symbol .img img {
        width: 90%;
    }

    .flex {
        display: block;
    }

    .ayumi::before,
    .ayumi::after {
        display: none;
    }

    .ayumi {
        padding: 0;
        margin-bottom: 15px;
    }

    .zidai {
        padding: 40px 15px 0;
    }



    .symbol .mini-img img {
        width: 80px !important;
    }

    .zidai h3::after {
        width: 100%;
    }

    .zidai h3 {
        width: fit-content !important;
    }

    .symbol-wrap {
        bottom: 420px;
    }

    .green-bk {
        padding-top: 140px;
        padding-bottom: 40px;
    }

    .dekigoto {
        padding: 50px 15px 523px;
    }


    #growth .symbol {
        flex-direction: column;
    }

    #growth .symbol-wrap {
        left: auto;
    }

    #growth .symbol .ttl {
        right: auto;
    }

    #growth .symbol .img p {
        left: 0;
        right: 0;
        text-align: end;
    }

    #growth .symbol .img {
        text-align: end;
    }

    #growth .symbol .mini-cmt {
        bottom: -125px;
        left: 0;
    }

    #growth .symbol-wrap {
        bottom: 485px;
    }

    #growth .ayumi {
        text-align: left;
    }

    #growth .symbol .img p,
    #global .symbol .img p {
        top: -94px;
    }

    #growth .symbol .ttl .era-en {

        top: 44px;
    }


    #global .dekigoto {
        padding: 50px 15px;
    }


    #saigo h3 {
        font-size: 25px;
    }

    #global .symbol .ttl .era-en {
        top: 43px;
    }





    #global .symbol-wrap {
        bottom: 380px;
    }

    #growth .dekigoto {
        padding: 50px 15px 500px;
    }

    .zidai h3::after {
        width: 100% !important;
        left: 0;
    }

    .zidai h3 {
        width: fit-content !important;
        display: inline-block !important;
        position: relative;
    }

    .dekigoto li {
        flex-direction: column;
        gap: 5px;
    }

    .dekigoto li .year,
    #foundation .dekigoto li .year {
        width: 100%;
    }

    /* 画像グリッドをスマホ向けに3x4に変更 */
    .history-container {
        aspect-ratio: 3 / 4;
    }

    .image-grid {
        grid-template-columns: repeat(3, 1fr);
        grid-template-rows: repeat(4, 1fr);
    }
}

@media screen and (max-width:640px) {

    .dekigoto {
        padding: 50px 15px 463px;
    }

    #global .symbol-wrap {
        bottom: 430px;
    }

    .catchphrase {
        font-size: 2rem;
    }

    .symbol .ttl {
        padding: 0;
    }
}




@media screen and (max-width:540px) {
    .sp-br {
        display: block;
    }

    /* 絶対配置を解除して、コンテンツの高さに合わせる */
    .symbol-wrap,
    #growth .symbol-wrap,
    #global .symbol-wrap {
        position: relative;
        bottom: auto;
        left: auto;
        right: auto;
        transform: none;
        width: auto;
        margin: 0 15px -180px;
        /* margin-bottomを追加して、topで空いた分を埋める */
        z-index: 10;
        top: -180px;
    }

    .symbol .mini-cmt {
        position: relative;
        /* absoluteから戻す */
        margin: -40px auto 0;
        /* 画像の上に重ねる */
        width: 90%;
        max-width: 320px;
        left: auto;
        right: auto;
        bottom: auto;
    }

    /* ID個別の設定もリセット */
    #growth .symbol .mini-cmt,
    #global .symbol .mini-cmt {
        bottom: auto;
        left: auto;
        right: auto;
        margin: -20px auto 0;
    }

    .symbol .img img {
        width: 100%;
    }





    /* 巨大なパディングを通常のセクション余白にする */
    .dekigoto,
    #growth .dekigoto,
    #global .dekigoto {
        padding: 50px 15px 230px;
    }

    /* zidai（時代解説）との間隔 */
    .green-bk {
        padding-bottom: 30px;
        padding-top: 0;
    }

    #foundation {
        padding-top: 220px;
    }

    #global .symbol .ttl h2,
    .symbol .ttl h2 {
        font-size: 28px;
    }

    .dekigoto h3 {
        text-align: center;
        font-size: 25px;
    }

    .dekigoto li {
        font-size: 16px;
    }

    #global .dekigoto .flex p {
        font-size: 16px;
    }

    #now {
        font-size: 16px
    }

    #global .dekigoto {
        padding: 50px 15px 70px;
    }


    .zidai h3 {
        font-size: 20px;
        width: fit-content !important;
    }

    .zidai .text-s {
        font-size: 16px;
    }

    #saigo {
        padding: 80px 20px 180px;
    }

    .symbol .img p {
        font-size: 60px;
        padding-right: 20px;
        /* イタリック体のはみ出し・欠け防止 */
        top: -63px;
        right: -20px;
    }

    #growth .symbol .img p,
    #global .symbol .img p {
        top: -71px;
        right: -20px;
    }
}