@charset "UTF-8";

/* -------------------------
    このファイルは future.html（03_ひだまりのこれから）専用のスタイルです。
    ヘッダー・フッター・共通ボタン等は css/common.css を参照しています。
------------------------- */

:root {
    --color-blue-deep: #006c9e;
    --color-water: #41bcd7;
    --color-water-light: #d3f4fb;
    --color-center-orange: #ffa963;
}

.l-main {
    min-width: 1000px;
    background: #fff;
}


/* -------------------------
    ページタイトル（ヒーロー）
------------------------- */

.future-hero {
    position: relative;
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
    height: 621px;
    overflow: hidden;
    border-radius: 0 0 100px 100px;
    background: url(../images/future/bg_hero_lake.webp) center / cover no-repeat;
}

.future-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: inherit;
    filter: url(#future-hero-ripple);
}

.future-hero__filter {
    position: absolute;
    width: 0;
    height: 0;
}

@media (prefers-reduced-motion: reduce) {
    .future-hero::before {
        display: none;
    }

    .future-hero__sp-photo {
        filter: none;
    }
}

.future-hero__inner {
    position: relative;
    width: 100%;
    max-width: 1440px;
    height: 100%;
    margin: 0 auto;
}

.future-hero__title {
    position: absolute;
    left: 135px;
    top: 283px;
    display: inline-flex;
    align-items: center;
    height: 85px;
    padding: 0 60px;
    background: var(--color-blue-deep);
    border-radius: 200px;
    color: #fff;
    font-size: 43px;
    font-weight: 700;
    letter-spacing: 4.3px;
    white-space: nowrap;
}


/* -------------------------
    共通：見出し・本文
------------------------- */

.vision__title,
.network__title,
.guideline__title {
    color: #333;
    font-size: 35px;
    font-weight: 700;
    line-height: 60px;
    letter-spacing: 1.75px;
    text-align: center;
}

.points__title,
.point__title {
    font-weight: 700;
    line-height: 60px;
    text-align: center;
}

.points__title {
    position: relative;
    width: fit-content;
    margin: 0 auto;
    color: #006C9E;
    font-size: 40px;
    letter-spacing: 2px;
}

.points__title::after {
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    margin-top: 8px;
    background: #006C9E;
}

.point__title {
    color: #333;
    font-size: 30px;
    letter-spacing: normal;
}

.network__text,
.guideline__text,
.point__text {
    max-width: 920px;
    margin: 40px auto 0;
    color: #333;
    font-size: 20px;
    line-height: 35px;
    text-align: left;
}

.network__text,
.point__text {
    text-align: justify;
}


/* -------------------------
    ビジョン（持続可能な地域社会に向けた新たな地方都市モデル）
------------------------- */

.vision {
    padding: 160px 0 50px;
}

.vision::after {
    content: "";
    display: block;
    width: 995px;
    margin: 150px auto 0;
    border-bottom: 1px solid #D9D9D9;
}

.vision__inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 20px;
}

.vision__lead {
    max-width: 730px;
    margin: 40px auto 0;
    color: #333;
    font-size: 20px;
    line-height: 50px;
    text-align: center;
}

.ecosystem {
    margin-top: 90px;
    text-align: center;
}

.ecosystem__diagram-img{
    width: 760px;
    margin: 0 auto;
}

.ecosystem__label {
    color: #41BCD7;
    font-size: 27px;
    font-weight: 700;
    letter-spacing: 1px;
    margin-bottom: 20px;
}

/* -------------------------
    「面」で支える地域まるごとケア
------------------------- */

.network {
    padding: 100px 0;
}

.network::after {
    content: "";
    display: block;
    width: 995px;
    margin: 150px auto 0;
    border-bottom: 1px solid #D9D9D9;
}

.network__inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 20px;
    text-align: center;
}

.network__illust {
    display: block;
    width: 100%;
    max-width: 1000px;
    height: auto;
    margin: 60px auto 0;
}

.network__callout {
    max-width: 947px;
    margin: 60px auto;
    color: #333;
    font-size: 29px;
    font-weight: 500;
    line-height: 55px;
    letter-spacing: 1.45px;
    text-align: center;
}
.network__callout-equal {
    display: inline-block;
    transform: rotate(90deg);
}
.network__catch{
    width: 885px;
    margin: 0 auto;
}


/* -------------------------
    「みらい福祉」その指針
------------------------- */

.guideline {
    padding: 100px 0 200px;
}

.guideline__inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 20px;
    text-align: center;
}

.pillars {
    margin: 70px auto 0;
}

.pillars__img {
    display: block;
    width: 100%;
    max-width: 849px;
    height: auto;
    margin: 0 auto;
}


/* -------------------------
    3つのPOINT
------------------------- */

.points {
    position: relative;
    overflow: hidden;
    background: rgba(211, 244, 251, 0.3);
    padding-bottom: 400px;
}

.points__transition-photo-mask {
    position: relative;
    width: 100%;
    min-width: 1000px;
    height: 500px;
    overflow: hidden;
    margin-bottom: 155px;
}

.points__transition-photo {
    display: block;
    position: absolute;
    top: -15%;
    left: 0;
    width: 100%;
    height: 130%;
    object-fit: cover;
}

.points__inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 20px;
}

.points__title {
    margin-bottom: 100px;
}

.point {
    margin-bottom: 150px;
}

.point__label {
    display: block;
    width: 226px;
    height: 55px;
    margin: 0 auto;
    background: var(--color-blue-deep);
    border-radius: 200px;
    color: #fff;
    font-size: 27px;
    font-weight: 700;
    letter-spacing: 2.7px;
    line-height: 55px;
    text-align: center;
}

.point__title {
    margin-top: 20px;
}

.point__illust,
.point__photo {
    display: block;
    width: 100%;
    max-width: 1000px;
    height: auto;
    margin: 60px auto 0;
    border-radius: 20px;
}

.point__illust {
    margin: 80px auto 0;
}

.point__pill {
    max-width: 1000px;
    margin: 60px auto 0;
    padding: 15px 20px;
    background: #41BCD7;
    border-radius: 200px;
    color: #fff;
    font-size: 28px;
    font-weight: 700;
    text-align: center;
    box-sizing: border-box;
}

.care-cards {
    display: flex;
    justify-content: center;
    gap: 20px;
    max-width: 1028px;
    margin: 50px auto 0;
    padding: 0;
    list-style: none;
}

.care-cards__item {
    width: 235px;
    padding: 20px 20px;
    background: #fff;
    border-radius: 20px;
    text-align: center;
}

.care-cards__title {
    color: var(--color-water);
    font-size: 26px;
    font-weight: 700;
    line-height: 1.4;
}

.care-cards__heading {
    margin-top: 10px;
    color: var(--color-water);
    font-size: 18px;
    font-weight: 500;
    letter-spacing: -0.9px;
}

.care-cards__text {
    margin-top: 12px;
    color: rgba(0, 0, 0, 0.8);
    font-size: 18px;
    letter-spacing: -0.9px;
    line-height: 1.4;
    text-align: justify;
}


/* -------------------------
    CTAボタン
------------------------- */

.future-cta {
    display: flex;
    justify-content: center;
    gap: 30px;
    margin-top: 60px;
}

.future-cta .c-btn-more {
    background: var(--color-water);
    text-align: center;
    line-height: 1.3;
}

.future-cta .c-btn-more::after {
    background-image: url("../images/future/icon_btn_arrow.svg");
}

.future-cta .c-btn-more::before {
    background: #1E6FA8;
}
