@charset "utf-8";

/* ====================================================================================
   Hero Image Slider
==================================================================================== */

#contents .main_img {
    position: relative;
    aspect-ratio: 3004 / 1264;
    overflow: hidden;
    background-color: #fff;
}

#contents .main_img .slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity 1.5s ease-in-out;
    z-index: 1;
}

#contents .main_img .slide.active {
    opacity: 1;
    z-index: 2;
}

#contents .main_img .slide picture,
#contents .main_img .slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}

#contents .main_img h1,
#contents .main_img h2 {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ====================================================================================
   Caption
==================================================================================== */

#contents .caption {
    padding: 80px 40px 90px;
    background: url(../images/home/bg_01.jpg) left top / cover no-repeat;
    text-align: center;
}

#contents .caption p {
    text-shadow: 0 0 3px rgba(255, 255, 255, 0.75),
                 0 0 3px rgba(255, 255, 255, 0.75);
    font-size: 27px;
    letter-spacing: 0.1em;
}

#contents .caption .seo-lead {
    max-width: 1100px;
    margin: 28px auto 0;
    font-size: 17px;
    line-height: 2;
}

@media screen and (max-width: 900px) {
    #contents .caption {
        padding: 4vh 5vw;
        background: url(../images/home/bg_01.jpg) center center / auto 100% no-repeat;
        text-align: left;
    }

    #contents .caption p {
        text-shadow: 0 0 3px rgba(255, 255, 255, 0.75),
                     0 0 3px rgba(255, 255, 255, 0.75);
        font-size: 4vw;
        letter-spacing: 0.1em;
    }

    #contents .caption .seo-lead {
        margin-top: 3vh;
        font-size: 3.5vw;
        line-height: 1.9;
    }
}

/* ====================================================================================
   News Section
==================================================================================== */

#news {
    padding-top: 80px;
}

@media screen and (max-width: 768px) {
    #news {
        padding-top: 6vh;
    }
}

/* ====================================================================================
   Reading / Column Section
==================================================================================== */

.home-reading {
    position: relative;
    padding: 110px 0 120px;
    background:
        radial-gradient(circle at top left, rgba(249, 160, 140, 0.16), transparent 38%),
        radial-gradient(circle at bottom right, rgba(135, 193, 185, 0.16), transparent 34%),
        linear-gradient(180deg, #fff 0%, #faf5ef 100%);
    overflow: hidden;
}

.home-reading::before,
.home-reading::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    opacity: 0.6;
}

.home-reading::before {
    top: -120px;
    right: -80px;
    width: 260px;
    height: 260px;
    background: rgba(249, 160, 140, 0.14);
}

.home-reading::after {
    bottom: -80px;
    left: -100px;
    width: 240px;
    height: 240px;
    background: rgba(135, 193, 185, 0.16);
}

.home-reading .inner {
    position: relative;
    z-index: 1;
}

.home-reading .section-label {
    display: inline-flex;
    margin: 0 auto 18px;
    padding: 8px 16px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.78);
    color: var(--color-cta-teal);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.home-reading h3 {
    margin-bottom: 18px !important;
}

.home-reading .lead {
    max-width: 920px;
    margin: 0 auto 34px;
    text-align: center;
    font-size: 17px;
    line-height: 2;
}

.home-reading .reading-grid {
    margin-bottom: 24px;
}

.home-reading .link-card {
    background: rgba(255, 255, 255, 0.94);
}

.home-reading .reading-card-image {
    margin: -8px -8px 16px;
    border-radius: 14px;
    overflow: hidden;
    background: #f5efe9;
}

.home-reading .reading-card-image img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform 0.35s ease;
}

.home-reading .link-card:hover .reading-card-image img {
    transform: scale(1.03);
}

.home-reading .link-card-label {
    color: var(--color-cta-coral);
}

.home-reading-note {
    text-align: center;
    font-size: 14px;
    line-height: 1.8;
    color: #8b796e;
}

@media screen and (max-width: 768px) {
    .home-reading {
        padding: 10vh 0;
    }

    .home-reading .section-label {
        margin-bottom: 2vh;
        font-size: 3vw;
    }

    .home-reading .lead {
        margin-bottom: 4vh;
        font-size: 3.8vw;
        line-height: 1.9;
        text-align: left;
    }

    .home-reading-note {
        font-size: 3.4vw;
        text-align: left;
    }

    .home-reading .reading-card-image {
        margin: -4px -4px 14px;
        border-radius: 12px;
    }
}
