.top {
    padding: 1em;
}

section {
    padding-bottom: 80px;
}

main {
    max-width: 1200px;
    margin: auto;
}

.fv {
    position: relative;
    aspect-ratio: 16 / 9;
    width: 100%;
    margin: 20px auto 100px !important;
    max-width: 1200px;
}

.fv-slider {
    overflow: hidden;
    position: absolute;
    inset: 0;
    border-radius: 10px;
}

.fv-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 1.5s ease;
}

.fv-title {
    position: absolute;
    bottom: 8px;
    right: 8px;
    color: #fff;
    font-size: 80%;
    -webkit-text-stroke: 4px #0e405b;
    paint-order: stroke fill;
}

.fv-slide.active {
    opacity: 1;
}

.fv-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}


.fv h2 {
    writing-mode: vertical-rl;
    font-size: clamp(1.2rem, 3vw, 1.5rem);
    font-family: 'A1Gothic';
    background-color: #fff;
    box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.3);
    padding: 8px 2px;
    font-feature-settings: 'kern' 1; 
    color:#0e405b;
    font-weight: bold;
}

.copy-box {
    position: absolute;
    top: -16px;
    right: 8px;
    display: flex;
    flex-direction: row-reverse;
}

.copy-box h2 {
    height: fit-content;
	font-weight: bold;
}

.copy01 {
	position: absolute;
    top: 0;
    right: 0;
    height: 5em!important;
    z-index: 3;
}

.copy02 {
    position:relative;
    
}

.copy02 h2 {
    position:absolute;
	top: 1.5em;
	right:2.1em;
	height:8.1em;
    z-index: 1;
}

.copy03 {
    position: absolute;
    font-size: clamp(2rem, 4vw, 2.5rem) !important;
    bottom: -12px;
    padding-bottom: 0;
    left: 8px;
	font-weight: bold;
}

.subcopy {
    position: absolute;
    bottom: -24px;
    right: 0;
    text-align: right;
    color: #1f3a3d;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: bold;
    font-size: 14px;
}

main section {
    max-width: 1200px;
}

.midashi {
    text-align: center;
    font-family: 'A1Gothic';
    font-size: 1.8em;
    margin-bottom: 40px;
}

.midashi span {
    border-bottom: dotted;
}

.top-button {
    position: relative;
    top: 0;
    display: block;
    max-width: 640px;
    background-color: #fff;
    text-align: center;
    margin: 40px auto 0;
    font-size: 1.5em;
    border-radius: 999px;
    padding: 0.1em 0 0 0;
    box-shadow: 0px 8px 0 #1f3a3d;
    border: solid 1px;
    font-family: 'A1Gothic';
}

.top-button .arrow {
    position: absolute;
    right: 1em;
}

.top-button:hover {
    top: 8px;
    box-shadow: 0px 0px 0 #1f3a3d;
    transition: .2s ease-in-out;
}

.about {
    align-content: center;
    padding-bottom: 10px;
}

.about img {
    display: block;
    width: 100%;
    margin-bottom: 40px;
}

.first-post {
    display: grid;
    z-index: 1;
    position: relative;
    grid-template-columns: 25rem minmax(0, 63.125rem);
    margin-top: -2.25rem;
    gap: 3.125rem;
    padding-bottom: 0;
}

.first-post {
    width: 100%;
    order: 3;
    overflow: hidden;
    grid-column: 1 / 4;
}

.moto-wrapper {
    display: inline-block;
    position: relative;
    overflow: hidden!important;
    width: 100%;
}

.a-image {
    animation: loopAnimation 20s linear infinite;
    transform-origin: bottom left;
    height: 184px;
    max-height: 200px;
}

.a-image img {
    height: 185px;
    width: auto;
}

@keyframes loopAnimation {
  0% {
    transform: translateX(-25%);
  }
  100% {
    transform: translateX(100%); /* 要素の横幅分だけ左に移動 */
  }
}

.first-post .post-container {
    background-color: #fff;
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.ticker-wrap {
    overflow: hidden;
    color: #a2a2a2;
    font-size: 3em;
    width: 100%;
    border-bottom: solid 1px;
    font-weight: 100;
    font-style: italic;
}

.ticker {
    display: flex;
    width: max-content;
    /* テキスト2幅分の正確な合計値を自動計算 */
}

.ticker-item {
    white-space: nowrap;
    padding-right: 50px;
    /* テキスト間の余白 */
    animation: ticker-loop 15s linear infinite;
    /* アニメーションはアイテム側に持たせる */
}

@keyframes ticker-loop {
    0% {
        transform: translate3d(0, 0, 0);
    }

    100% {
        transform: translate3d(-200%, 0, 0);
        /* 1つ分の要素が完全に左に抜けたらリセット */
    }
}

.article {
    position: relative;
    padding: 0 40px 40px 40px;
}

.first-post_image {
    border: #1f3a3d solid 1px;
    border-radius: 5px;
    overflow: hidden;
}

time {
    font-size: 0.8em !important;
}

.post-title {
    font-size: 1.5em;
    word-break: break-all;
}

.tag_and_btn {
    display: flex;
    justify-content: space-between;
}

#contents,
#recent-posts {
    margin-bottom: 0;
    margin-top: 0;
}

.sum-anime {
    height: 185px;
    position: absolute;
    bottom: 0;
    right: 0;
}

.onsen-wrapper {
    background-color: #d4edff;
    padding-bottom: 80px;
}

.onsen-caption {
    max-width: 1000px;
    margin: 0 auto;
    font-size: 100%;
}
@media screen and (max-width: 979px) {
    .fv {
        aspect-ratio: 3 / 4;
    }

    .first-post {
        grid-template-columns: minmax(0, 1fr);
        margin-top: -1.25rem;
        overflow: hidden;
        gap: 4.375rem;
    }

    .post-container {
        order: 1;
    }

    .about {
        order: 2;
    }

    .article {
        padding: 0 20px 20px 20px; 
    }

    .a-image {
        animation: loopAnimation 10s linear infinite;
    }

    .sum-anime {
        bottom: -60px;
    }
}