@charset "utf-8";

/* 全体********************************************************************** */
html,
body {
    scroll-behavior: smooth;
    background-color: #f4dad0;
    overflow-x: hidden;
    touch-action: pan-y pinch-zoom;
}

/* ページ内リンクの位置調整********************************************************************** */
.anchor {
    display: block;
    padding-top: 120px;
    margin-top: -120px;
}

/* font********************************************************************** */
html {
    font-family: "Noto Sans JP", sans-serif;
    font-style: normal;
}

.josefin-sans {
    font-family: "Josefin Sans", sans-serif;
    font-style: normal;
}

.noto-sans {
    font-family: "Noto Sans", sans-serif;
    font-style: normal;
}

.jost {
    font-family: "Jost", sans-serif;
    font-style: normal;
}

.fc-kblue {
    color: #72a1c7;
}

.fc-kpurple {
    color: #9c7399;
}

.fc-kdeepred {
    color: #c13932;
}

/* header********************************************************************** */
.header {
    position: fixed;
    top: 0;
    height: 75px;
    /*高さ指定*/
    width: 100%;
    /*横幅指定*/
    /*以下はレイアウトのためのCSS*/
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: rgba(255, 255, 255, 0.7);
    text-align: center;
    /*fixedを設定して固定*/
    z-index: 999;
}

.khi_logo_sp {
    display: none;
}

@media screen and (max-width:768px) {
    .khi_logo_sp {
        display: block;
    }

    .khi_logo_pc {
        display: none;
    }
}

.khi_logo img {
    height: 75px;
    width: auto;
}

.nav-menu {
    display: flex;
    width: 62.5vw;
    min-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    justify-content: space-between;
    align-items: center;
}

#g-nav_sp {
    display: none;
}

.header-right ul {
    display: flex;
    align-items: center;
    font-size: max(0.6vw, 17px);
    font-weight: 600;
    color: #333333;
    gap: 3.5vw;
}

.header-left {
    display: flex;
    align-items: center;
    gap: 1.875vw;
}

.header-left .pagetop_logo {
    font-size: max(1.15vw, 22px);
    font-weight: 600;
    color: #333333;
}

.header-left a {
    transition: all 0.3s;
}

.header-left a.khi_logo:hover {
    opacity: 0.7;
}

.header-left a.pagetop_logo:hover {
    color: #e77400;
}

.header-right a {
    transition: all 0.3s;
}

.header-right a:hover {
    color: #e77400;
}

/* ハンバーガー */
.hamburger-overlay {
    position: fixed;
    top: 13.5px;
    right: 20px;
    z-index: 1000;
    width: 48px;
    height: 48px;
    border: none;
    background: transparent;
    cursor: pointer;
}

.hamburger-overlay__line {
    position: absolute;
    left: 11px;
    width: 26px;
    height: 2px;
    background-color: #333333;
    transition: all .6s;
}

.hamburger-overlay__line:nth-of-type(1) {
    top: 14px;
}

.hamburger-overlay__line:nth-of-type(2) {
    top: 23px;
}

.hamburger-overlay__line:nth-of-type(3) {
    top: 32px;
}


.hamburger-overlay.active .hamburger-overlay__line:nth-of-type(1) {
    transform: translateY(9px) rotate(-45deg);
}

.hamburger-overlay.active .hamburger-overlay__line:nth-of-type(2) {
    opacity: 0;
}

.hamburger-overlay.active .hamburger-overlay__line:nth-of-type(3) {
    transform: translateY(-9px) rotate(45deg);
}

.nav-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: #f7ca9b;
    visibility: hidden;
    opacity: 0;
    transition: all .6s;
    z-index: 900;
}

.nav-overlay small {
    font-size: 9px;
    position: absolute;
    bottom: 5vh;
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
}

.nav-overlay .header-left {
    background-color: rgba(255, 255, 255, 0.7);
}

.nav-overlay.active {
    visibility: visible;
    opacity: 1;
}

.nav-overlay__content {
    position: absolute;
    top: 15%;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
}

.nav-overlay__list {
    text-align: left;
    width: 90vw;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
    display: flex;
    flex-direction: column;
    gap: 55px;
}

.nav-overlay__list li a {
    position: relative;
    width: 90vw;
    max-width: 600px;
    padding-top: 5vh;
    padding-bottom: 5vh;
    padding-left: 14vw;
    border: #333333 1px solid;
    border-radius: 40px;
}

@media (min-width: 769px) and (max-width: 1000px) {
    .nav-overlay__list {
        gap: 3.5vh;
    }

    .nav-overlay__list li a {
        padding-top: 5vh;
        padding-bottom: 5vh;
        border-radius: 2.5vw;
    }
}

@media screen and (max-width:768px) {
    .nav-overlay__list {
        gap: 3.5svh;
    }

    .nav-overlay__list li a {
        padding-top: 4svh;
        padding-bottom: 4svh;
        border-radius: 2.5vw;
    }
}

.nav-overlay__list li a span {
    font-size: 40px;
    font-style: italic;
    font-weight: 400;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 6vw;
}

.nav-overlay__list li:first-child a {
    background-color: #e5edf5;
}

.nav-overlay__list li:nth-child(2) a {
    background-color: #ebe3eb;
}

.nav-overlay__list li:last-child a {
    background-color: #f4dad0;
}

.nav-overlay__list li:first-child a:after {
    content: "";
    position: absolute;
    background-image: url(../img/hm_arrow02.png);
    width: 42px;
    height: 42px;
    background-size: cover;
    top: 50%;
    transform: translateY(-50%);
    right: 6vw;
}

.nav-overlay__list li:nth-child(2) a:after {
    content: "";
    position: absolute;
    background-image: url(../img/hm_arrow03.png);
    width: 42px;
    height: 42px;
    background-size: cover;
    top: 50%;
    transform: translateY(-50%);
    right: 6vw;
}

.nav-overlay__list li:last-child a:after {
    content: "";
    position: absolute;
    background-image: url(../img/hm_arrow04.png);
    width: 42px;
    height: 42px;
    background-size: cover;
    top: 50%;
    transform: translateY(-50%);
    right: 6vw;
}

.nav-overlay__item {
    opacity: 0;
    transform: translateY(20px);
    transition: all .6s;
}

.nav-overlay.active .nav-overlay__item {
    opacity: 1;
    transform: translateY(0);
}

.nav-overlay.active .nav-overlay__item:nth-child(1) {
    transition-delay: 0.1s;
}

.nav-overlay.active .nav-overlay__item:nth-child(2) {
    transition-delay: 0.2s;
}

.nav-overlay.active .nav-overlay__item:nth-child(3) {
    transition-delay: 0.3s;
}

.nav-overlay__link {
    display: inline-block;
    color: #333333;
    font-size: min(6vw, 25px);
    font-weight: 600;
    text-decoration: none;
}

/* 1200px以下になるとハンバーガーだけに */
@media screen and (max-width:1200px) {
    .nav-menu {
        width: 100vw;
        min-width: auto;
        margin-left: 0;
    }

    #g-nav_pc {
        display: none;
    }

    #g-nav_sp {
        display: block;
    }
}

/* スマホ */
@media screen and (max-width:768px) {
    .header {
        height: 40px;
    }

    .khi_logo img {
        height: 40px;
    }

    .nav-menu {
        display: flex;
        width: 90vw;
        min-width: 375px;
    }

    .header-left {
        font-size: max(3vw, 14px);
    }

    /* ハンバーガー */
    .hamburger-overlay {
        top: 0px;
        right: 10px;
        width: 40px;
        height: 40px;
    }

    .hamburger-overlay__line {
        left: 6px;
    }

    .hamburger-overlay__line:nth-of-type(1) {
        top: 10px;
    }

    .hamburger-overlay__line:nth-of-type(2) {
        top: 19px;
    }

    .hamburger-overlay__line:nth-of-type(3) {
        top: 28px;
    }
}

/* ハンバーガーの中の川崎重工油圧製品はこちらボタン */

.hm_to_khi_btn {
    position: absolute;
    opacity: 0;
    bottom: 20%;
    left: 50%;
    transform: translateX(-50%);
    transition: all .6s;
    width: 80vw;
    min-width: 300px;
}

.nav-overlay.active .hm_to_khi_btn {
    transition-delay: 0.4s;
    opacity: 1;
}

.hm_to_khi_btn a {
    position: relative;
    color: white;
    font-weight: 400;
    font-size: min(3.5vw, 18px);
    background-color: #e77400;
    border: 1px white solid;
    border-radius: 18px;
    padding-top: 35px;
    padding-bottom: 35px;
    padding-left: 35px;
    padding-right: 70px;
    transition: all 0.3s;
}

.hm_to_khi_btn a:after {
    content: "";
    background-image: url(../img/hm_arrow01.png);
    position: absolute;
    width: 28px;
    height: 28px;
    background-size: cover;
    top: 50%;
    transform: translateY(-50%);
    right: 18px;
}

/* main********************************************************************** */
/* トップへ戻るボタン */
.scroll-top {
    position: fixed;
    bottom: 10%;
    right: 5%;
    z-index: 99;
    display: none;
}

.scroll-top a {
    padding: 10px 30px 10px 16px;
    background-color: white;
    color: #e77400;
    font-size: 15px;
    font-weight: 600;
    border: solid 1px #e77400;
    border-radius: 100px;
    position: relative;
    transition: all 0.3s;
}

.scroll-top a:hover {
    opacity: 0.7;
}

.scroll-top a::after {
    content: "";
    position: absolute;
    width: 15px;
    height: 15px;
    background-image: url(../img/arrow04.svg);
    background-size: cover;
    top: 50%;
    transform: translateY(-50%);
    right: 7%;
}


@media screen and (max-width:768px) {
    .scroll-top {
        display: none !important;
    }
}

/* section */
section {
    width: 100%;
}

.section02 {
    background-image: url(../img/section02_back_img.jpg);
    background-position: top;
    background-size: cover;
}

@media screen and (max-width:768px) {
    .section02 {
        background-image: url(../img/section02_back_img_sp.jpg);
    }
}

.section03 {
    background-image: url(../img/section03_back.png);
    background-position: top;
    background-size: cover;
    position: relative;
    top: -50px;
    overflow: visible;
}

.section04 {
    background-image: url(../img/section04_back.png);
    background-position: top;
    background-size: cover;
    position: relative;
    top: -100px;
    overflow: visible;
}

.section05 {
    background-image: url(../img/section05_back.png);
    background-position: top;
    background-size: cover;
    position: relative;
    top: -150px;
    overflow: visible;
}

.section_inn {
    width: 1200px;
    margin-left: auto;
    margin-right: auto;
}

@media screen and (max-width:1200px) {
    .section_inn {
        width: 84vw;
    }
}

@media screen and (max-width:768px) {
    .section03 {
        background-image: url(../img/section03_back-sp.png);
    }

    .section04 {
        background-image: url(../img/section04_back-sp.png);
    }

    .section05 {
        background-image: url(../img/section05_back-sp.png);
        overflow: visible !important;
        padding-bottom: 70px;
    }

    .section_inn {
        width: 90vw;
    }
}

.footer {
    background-image: url(../img/footer_back_img.jpg);
    background-position: top;
    background-size: cover;
}

/* section01 top********************************************************************** */
.section01 {
    position: relative;
    overflow: hidden;
    min-height: 100svh;
    z-index: 10;
}

/* ▼ section01 内のコンテンツを前面に */
.section01 .section_inn {
    position: relative;
    height: 100vh;
    z-index: 1;
}

/* ▼ 背景動画（セクション内全面） */
.section01 .top_video-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    background: url("../video/yuatsu_top_video-poster.jpg") center / cover no-repeat;
}

.section01 .top_video-bg video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}


.section01 .top_video-bg,
.section01 .top_video-bg video {
    pointer-events: none !important;
    touch-action: pan-y !important;
}


/* トップメッセージ */
.top_message {
    position: absolute;
    top: 40%;
    left: 0;
    transform: translateY(-50%);
    max-width: 650px;
    padding: 4vw 3vw;
    background-color: rgba(255, 255, 255, 0.9);
    z-index: 2;
    /* ボタンと同列・前面 */
}

.top_message h1 {
    font-size: 60px;
    font-weight: 600;
    margin-bottom: 46px;
}

.top_message p {
    font-size: min(3.4vw, 16px);
    line-height: 2;
}

@media screen and (max-width:768px) {
    .top_message {
        width: 90vw;
        padding: 8vw 6vw;
        top: 40%;
        left: 50%;
        transform: translate(-50%, -50%);
    }

    .top_message h1 {
        font-size: 35px;
    }

    .top_message p {
        line-height: 1.8;
    }
}

/* KHIサイトへのリンクボタン */
.section01 .to_khi_btn {
    position: absolute;
    left: 0;
    bottom: 12%;
    z-index: 3;
}

/* CTAボタン（共通デザイン） */
.section01 .to_khi_btn a {
    position: relative;
    color: white;
    font-weight: 400;
    font-size: 18px;
    background-color: #e77400;
    border: 1px solid white;
    border-radius: 18px;
    padding: 35px 84px 35px 42px;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    text-wrap: nowrap;
}

/* ボタン内の矢印アイコン */
.section01 .to_khi_btn a svg {
    width: 37px;
    height: 37px;
    position: absolute;
    top: 50%;
    right: 5%;
    transform: translateY(-50%);
    transition: all 0.3s ease;
}

/* hover */
.section01 .to_khi_btn a:hover {
    background-color: #fff;
    color: #e77400;
    border-color: #e77400;
}

.section01 .to_khi_btn a:hover .to_khi_btn-color {
    fill: #e77400;
}

/* ▼ スマホ（位置を底から24pxに） */
@media screen and (max-width:768px) {
    .section01 .to_khi_btn {
        left: 50%;
        transform: translateX(-50%);
        bottom: 10%;
    }

    .section01 .to_khi_btn a {
        font-size: 14px;
        padding: 28px 64px 28px 32px;
    }
}

/* =========================================================
   動きを減らす設定対応
   ========================================================= */
@media (prefers-reduced-motion: reduce) {
    .section01 .top_video-bg video {
        display: none;
    }

    .section01 .top_video-bg {
        background: url('../video/yuatsu_top_video-poster.jpg') center / cover no-repeat;
    }
}

/* section02 btns********************************************************************** */
.section02 .section_inn {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding-top: 200px;
    padding-bottom: 200px;
}

.section02 .section_inn li {
    width: 1000px;
    margin-left: auto;
    margin-right: auto;
}

@media screen and (max-width:1200px) {
    .section02 .section_inn li {
        width: 84vw;
    }
}

@media screen and (max-width:768px) {
    .section02 .section_inn {
        padding-top: 13vw;
        padding-bottom: 26vw;
    }

    .section02 .section_inn li {
        width: 90vw;
    }

    .section02 .section_inn li {
        position: relative;
    }

    .section02 .section_inn li:first-child::after {
        content: "";
        width: 50px;
        height: 50px;
        background-image: url(../img/arrow01_sp.png);
        background-size: cover;
        position: absolute;
        top: 20px;
        right: 20px;
        pointer-events: none;
    }

    .section02 .section_inn li:nth-child(2)::after {
        content: "";
        width: 50px;
        height: 50px;
        background-image: url(../img/arrow02_sp.png);
        background-size: cover;
        position: absolute;
        top: 20px;
        right: 20px;
        pointer-events: none;
    }

    .section02 .section_inn li:last-child::after {
        content: "";
        width: 50px;
        height: 50px;
        background-image: url(../img/arrow03_sp.png);
        background-size: cover;
        position: absolute;
        top: 20px;
        right: 20px;
        pointer-events: none;
    }
}

.section02 .section_inn li:first-child {
    background-color: #e5edf5;
    border: 2px solid #333333;
    border-radius: 36px;
}

.section02 .section_inn li:nth-child(2) {
    background-color: #ebe3eb;
    border: 2px solid #333333;
    border-radius: 36px;
}

.section02 .section_inn li:last-child {
    background-color: #f4dad0;
    border: 2px solid #333333;
    border-radius: 36px;
}

.btn_box {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding: 50px 70px;
}

.btn_txt {
    display: flex;
    flex-direction: row;
    align-items: center;
}

.btn_txt h2 {
    font-size: 140px;
    font-weight: 400;
    font-style: italic;
}

.btn_txt .btn_txt_box {
    margin-left: 88px;
}

.btn_txt .btn_txt_box p:first-child {
    font-size: 20px;
    font-weight: 600;
}

.btn_txt .btn_txt_box p:nth-child(2) {
    font-size: 48px;
    font-weight: 600;
    margin-top: 28px;
    margin-bottom: 32px;
}

.btn_txt .btn_txt_box p:last-child {
    font-size: 16px;
}

.btn_img {
    width: 68px;
    height: 68px;
}

@media screen and (max-width:1200px) {
    .btn_txt .btn_txt_box p:nth-child(2) {
        font-size: min(4vw, 48px);
    }
}

@media screen and (max-width:768px) {
    .btn_box {
        display: block;
        padding: 24px 24px 48px 24px;
    }

    .btn_txt {
        flex-direction: column;
        align-items: start;
    }

    .btn_txt h2 {
        font-size: 50px;
        margin-bottom: 18px;
    }

    .btn_txt .btn_txt_box {
        margin-left: 0px;
    }

    .btn_txt .btn_txt_box p:first-child {
        font-size: 13px;
    }

    .btn_txt .btn_txt_box p:nth-child(2) {
        font-size: max(5vw, 28px);
        margin-top: 14px;
        margin-bottom: 28px;
    }

    .btn_txt .btn_txt_box p:last-child {
        font-size: 16px;
    }

    .btn_img {
        display: none;
    }
}

.section02 .section_inn li:first-child a .btn_img {
    transition: all 0.3s;
}

.section02 .section_inn li:nth-child(2) a .btn_img {
    transition: all 0.3s;
}

.section02 .section_inn li:last-child a .btn_img {
    transition: all 0.3s;
}

.section02 .section_inn li:first-child a:hover .btn_img {
    scale: 1.2;
}

.section02 .section_inn li:nth-child(2) a:hover .btn_img {
    scale: 1.2;
}

.section02 .section_inn li:last-child a:hover .btn_img {
    scale: 1.2;
}

.section02 .section_inn li:first-child a .arrow01_white {
    transition: all 0.3s;
}

.section02 .section_inn li:first-child a .arrow01_color {
    transition: all 0.3s;
}

.section02 .section_inn li:nth-child(2) a .arrow02_white {
    transition: all 0.3s;
}

.section02 .section_inn li:nth-child(2) a .arrow02_color {
    transition: all 0.3s;
}

.section02 .section_inn li:last-child a .arrow03_white {
    transition: all 0.3s;
}

.section02 .section_inn li:last-child a .arrow03_color {
    transition: all 0.3s;
}

.section02 .section_inn li:first-child a:hover .arrow01_white {
    fill: #72a1c7;
}

.section02 .section_inn li:first-child a:hover .arrow01_color {
    fill: white;
}

.section02 .section_inn li:nth-child(2) a:hover .arrow02_white {
    fill: #9c7399;
}

.section02 .section_inn li:nth-child(2) a:hover .arrow02_color {
    fill: white;
}

.section02 .section_inn li:last-child a:hover .arrow03_white {
    fill: #c13932;
}

.section02 .section_inn li:last-child a:hover .arrow03_color {
    fill: white;
}

/* section03-05********************************************************************** */
.section03 .section_inn,
.section05 .section_inn {
    padding-top: 200px;
    padding-bottom: 200px;
}

.section04 .section_inn {
    padding-top: 200px;
    padding-bottom: 200px;
}

@media screen and (max-width:768px) {

    .section03 .section_inn {
        padding-top: 13vw;
        padding-bottom: 26vw;
    }

    .section04 .section_inn {
        padding-top: 13vw;
        padding-bottom: 26vw;
    }

    .section05 .section_inn {
        padding-top: 13vw;
        padding-bottom: 13vw;
    }
}

.section_img img {
    width: 90%;
}

@media screen and (max-width:1200px) {
    .section_img img {
        width: 60vw;
    }

    .section05 .section_img img {
        width: 40vw;
    }
}

.section03 .section_img,
.section04 .section_img,
.section05 .section_img {
    position: absolute;
    top: 150px;
}

.section03 .section_img {
    right: 0;
}

.section04 .section_img {
    left: 5vw;
}

.section05 .section_img {
    right: 14vw;
}

.section_txt {
    display: flex;
    flex-direction: column;
    width: 520px;
}

@media screen and (max-width:1200px) {
    .section04 .section_img {
        left: -100px;
    }

    .section05 .section_img {
        right: 5vw;
    }

    .section03 .section_txt {
        width: 30vw;
    }

    .section04 .section_txt {
        width: 45vw;
    }

    .section05 .section_txt {
        width: 45vw;
    }
}

@media screen and (max-width:768px) {

    .section03 .section_img,
    .section04 .section_img {
        top: 0;
    }

    .section03 .section_img {
        right: -20%;
    }

    .section04 .section_img {
        left: auto;
        right: -25%;
    }

    .section05 .section_img {
        top: 40px;
        right: 0;
    }

    .section03 .section_txt,
    .section04 .section_txt,
    .section05 .section_txt {
        width: 90vw;
        margin-bottom: 32px;
    }
}

.section03 .section_txt {
    margin-left: 0;
    margin-right: auto;
}

.section04 .section_txt {
    margin-left: auto;
    margin-right: 0;
}

.section05 .section_txt {
    margin-left: 0;
    margin-right: auto;
}

.section_txt h2 {
    font-size: 140px;
    font-weight: 400;
    font-style: italic;
    margin-bottom: 40px;
}

.section_txt .section_txt_box p:first-child {
    font-size: 20px;
    font-weight: 600;
}

.section_txt .section_txt_box p:nth-child(2) {
    font-size: 48px;
    font-weight: 600;
    margin-top: 28px;
    padding-bottom: 32px;
    margin-bottom: 32px;
}

.section03 .section_txt .section_txt_box p:nth-child(2) {
    border-bottom: 6px dotted #72a1c7;
}

.section04 .section_txt .section_txt_box p:nth-child(2) {
    border-bottom: 6px dotted #9c7399;
}

.section05 .section_txt .section_txt_box p:nth-child(2) {
    border-bottom: 6px dotted #c13932;
}

.section_txt .section_txt_box p:last-child {
    font-size: 16px;
    line-height: 2;
}

@media screen and (max-width:1200px) {
    .section_txt .section_txt_box p:nth-child(2) {
        font-size: min(5vw, 48px);
    }
}

@media screen and (max-width:768px) {
    .section_txt h2 {
        font-size: 50px;
        margin-bottom: 32px;
    }

    .section_txt .section_txt_box p:first-child {
        font-size: 13px;
    }

    .section_txt .section_txt_box p:nth-child(2) {
        font-size: max(5vw, 28px);
        margin-top: 16px;
        padding-bottom: 24px;
        margin-bottom: 24px;
    }
}

/* section03********************************************************************** */

.section03 .section_inn {
    position: relative;
}

.section03 .youtube-thumb {
    width: 622px;
    aspect-ratio: 15.6/9;
    /* aspect-ratio: 16/9; */
    position: absolute;
    bottom: 200px;
    right: 0;
    border: #72a1c7 10px solid;
    box-sizing: border-box;
    border-radius: 20px;
    background: #000;
    overflow: hidden;
}

.youtube-thumb .thumb-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.youtube-thumb .play-button {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 50px;
    height: 50px;
    background: url("../img/play_btn.png") no-repeat center center / contain;
    transform: translate(-50%, -50%);
    pointer-events: none;
}


@media screen and (max-width:1200px) {
    .section03 .youtube-thumb {
        width: 52vw;
    }
}

@media screen and (max-width:768px) {
    .section03 .section_inn {
        position: static;
    }

    .section03 .youtube-thumb {
        width: 90vw;
        position: relative;
        border: #72a1c7 0.85vw solid;
        bottom: 0;
    }
}

/* .section03 video {
    width: 622px;
    position: absolute;
    bottom: 200px;
    right: 0;
    border: #72a1c7 10px solid;
    border-radius: 20px;
}

@media screen and (max-width:1200px) {
    .section03 video {
        width: 52vw;
    }
}

@media screen and (max-width:768px) {
    .section03 .section_inn {
        position: static;
    }

    .section03 video {
        width: 90vw;
        position: static;
        border: #72a1c7 0.85vw solid;
    }
} */

/* section04********************************************************************** */
.section04 .yuatsu_map img {
    width: 100%;
}

.section04 .yuatsu_map {}

@media screen and (max-width:1200px) {
    .section04 .yuatsu_map {
        width: 100%;
    }
}

/* === map エリア：縦スクロールは許可、縦スクロールバーは非表示、横は引き続き可 === */
.map_scrollhint,
.map_scrollhint .scroll-hint,
.map_scrollhint .scroll-hint-wrap {
    /* スクロール方向 */
    overflow-x: auto;
    /* 横スクロール（ScrollHint が付与する横ガイドは活かす） */
    overflow-y: auto;
    /* 縦スクロールは “可能” にしておく（ページへの伝播も期待できる） */

    /* iOS 慣性 */
    -webkit-overflow-scrolling: touch;

    /* ジェスチャー：縦をブロックしない（必要なら auto でも OK） */
    touch-action: pan-y pan-x;

    /* スクロールの伝播：外側（ページ）に抜けたいので contain は外す */
    overscroll-behavior: auto;
}

/* 縦スクロールバーを視覚的に消す（主要ブラウザ対応） */
.map_scrollhint,
.map_scrollhint .scroll-hint,
.map_scrollhint .scroll-hint-wrap {
    scrollbar-width: none;
    /* Firefox */
    -ms-overflow-style: none;
    /* IE / 旧 Edge */
}

.map_scrollhint::-webkit-scrollbar,
.map_scrollhint .scroll-hint::-webkit-scrollbar,
.map_scrollhint .scroll-hint-wrap::-webkit-scrollbar {
    display: none;
    /* Chrome / Safari / 新 Edge */
}


/* section05********************************************************************** */
.card_info img {
    width: 100%;
}

.card_info {
    text-align: center;
    margin-bottom: 35px;
    width: 650px;
    margin-left: auto;
    margin-right: auto;
}

@media screen and (max-width:1200px) {
    .card_info {
        width: 50vw;
    }
}

@media screen and (max-width:768px) {
    .card_info {
        width: 90vw;
    }
}

@media screen and (min-width:769px) {
    #section05 .card_box {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        gap: min(3.333vw, 30px);
    }
}

.card_box {
    width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding-bottom: 100px;
}

.card {
    position: relative;
    width: 277.5px;
    height: 470px;
    perspective: 1000px;
    transform-style: preserve-3d;
    cursor: pointer;
}

.card_box .cardface {
    position: absolute;
    top: 0;
    left: 0;
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    transition: transform 0.6s;
    backface-visibility: hidden;
}

@media screen and (max-width:1200px) {
    .card_box {
        width: 90vw;
        gap: 3vw;
        padding-bottom: 50px;
    }

    .card {
        width: 20vw;
        height: 33.8738vw;
    }
}

@media screen and (max-width:768px) {
    .card_box {
        width: 100vw;
    }

    .card {
        width: 207px;
        height: 350px;
    }
}

.card_box .card01 .cardface {
    background-image: url(../img/card01_front.png);
    background-size: cover;
}

.card_box .card02 .cardface {
    background-image: url(../img/card02_front.png);
    background-size: cover;
}

.card_box .card03 .cardface {
    background-image: url(../img/card03_front.png);
    background-size: cover;
}

.card_box .card04 .cardface {
    background-image: url(../img/card04_front.png);
    background-size: cover;
}

.card_box .card05 .cardface {
    background-image: url(../img/card05_front.png);
    background-size: cover;
}

.card_box .card06 .cardface {
    background-image: url(../img/card06_front.png);
    background-size: cover;
}

.card_box .card07 .cardface {
    background-image: url(../img/card07_front.png);
    background-size: cover;
}

.card_box .card08 .cardface {
    background-image: url(../img/card08_front.png);
    background-size: cover;
}

/* 前面 */
.cardface__front {
    transform: none;
}

/* 前面 - ひっくり返ったとき */
.is-flipped .cardface__front {
    transform: rotateY(180deg);
}

/* 背面 */
.cardface__back {
    transform: rotateY(180deg);
    position: relative;
}

.card_box .card01 .cardface__back {
    background-image: url(../img/card01_back.png);
}

.card_box .card02 .cardface__back {
    background-image: url(../img/card02_back.png);
}

.card_box .card03 .cardface__back {
    background-image: url(../img/card03_back.png);
}

.card_box .card04 .cardface__back {
    background-image: url(../img/card04_back.png);
}

.card_box .card05 .cardface__back {
    background-image: url(../img/card05_back.png);
}

.card_box .card06 .cardface__back {
    background-image: url(../img/card06_back.png);
}

.card_box .card07 .cardface__back {
    background-image: url(../img/card07_back.png);
}

.card_box .card08 .cardface__back {
    background-image: url(../img/card08_back.png);
}

/* 背面 - ひっくり返ったとき */
.is-flipped .cardface__back {
    transform: rotateY(360deg);
}

.cardface__back img {
    width: 100%;
    position: absolute;
}

.cardface__back .detail_btn {
    position: absolute;
    bottom: 30px;
    z-index: 100;
}

.cardface__back .detail_btn a {
    font-size: 16px;
    color: white;
    padding: 8px 16px 8px 48px;
    background-color: #c13932;
    border-radius: 100px;
    transition: all 0.3s;
    box-shadow: 0px 0px 15px -5px #777777;
}

.cardface__back .detail_btn a svg {
    width: 20px;
    height: 20px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 16px;
}

@media screen and (max-width: 1200px) and (min-width: 769px) {
    .cardface__back .detail_btn {
        bottom: 2.5vw;
    }

    .cardface__back .detail_btn a {
        font-size: max(1.3vw, 10px);
        padding: 0.7vw 1.4vw 0.7vw 4.5vw;
    }

    .cardface__back .detail_btn a svg {
        scale: 0.7;
        left: 1.4vw;
    }
}

@media screen and (min-width:769px) {
    .cardface__back .detail_btn a:hover {
        background-color: #fff;
        color: #c13932;
        border: #c13932 solid 1px;
    }

    .cardface__back .detail_btn a:hover .detail_btn-color {
        fill: #c13932;
    }
}

/* モーダルウィンドウの中 */

.remodal {
    width: 90vw;
    max-width: 1100px;
    border-radius: 30px;
}


.remodal-cancel {
    color: #fff;
    font-size: 22px;
    background: #c13932;
    padding: 14px 30px 14px 70px;
    border-radius: 100px;
    margin-top: 60px;
    position: relative;
    box-shadow: 0px 0px 15px -5px #777777;
}

.remodal-cancel:hover {
    color: #c13932;
    background-color: #fff;
    border: 1px solid #c13932;
}

.remodal-cancel svg {
    position: absolute;
    width: 27px;
    height: 27px;
    top: 50%;
    transform: translateY(-50%);
    left: 16px;
}

.remodal-cancel:hover .close_btn-color {
    fill: #c13932;
}

@media screen and (max-width:768px) {
    .remodal-cancel {
        font-size: 16px;
        padding: 7px 15px 7px 35px;
        margin-top: 30px;
        position: relative;
    }

    .remodal-cancel svg {
        display: none;
    }

    .remodal-cancel::before {
        position: absolute;
        content: "";
        width: 16px;
        height: 16px;
        background-image: url(../img/close_btn.png);
        background-size: cover;
        top: 50%;
        transform: translateY(-50%);
        left: 10%;
    }
}

/* モーダルの中身 */
.card_inn_box {
    padding: 100px 112px 46px 112px;
}

.card_inn {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 112px;
    justify-content: space-between;
}

.card_inn_img img {
    width: 100%;
    min-width: 207px;
}

.card_inn_txt {
    line-height: 2;
    font-size: 25px;
    text-align: left;
}

@media screen and (max-width:768px) {
    .card_inn_box {
        padding: 28px 28px;
    }

    .card_inn {
        flex-direction: column;
        gap: 30px;
    }

    .card_inn_img img {
        width: 80%;
        min-width: auto;
    }

    .card_inn_txt {
        font-size: 16px;
    }
}

/* スマホのみslick */
/* ====== スマホ（<=768px）で Slick を使うための上書き ====== */
@media screen and (max-width:768px) {

    /* セクションのはみ出しを許可（左右のカード“チラ見せ”用） */
    #section05 {
        overflow: visible;
    }

    /* Slick 初期化時だけ UL の flex を無効化（PC時のflexと競合防止） */
    #section05 .card_box.slick-initialized {
        display: block;
    }

    /* ULリセット */
    #section05 .sliderArea .slider {
        margin: 0;
        padding: 0;
        list-style: none;
    }

    /* 隣スライドを見せる */
    #section05 .sliderArea .slick-list {
        overflow: visible;
        position: relative;
        /* 矢印配置の基準 */
        margin: 0 -10px;
        /* スライド間隔オフセット */
    }

    /* 高さそろえ */
    #section05 .sliderArea .slick-track {
        display: flex;
        align-items: stretch;
        padding-bottom: 30px;
    }


    /* 基本：すべて半透明＆縮小（初期化済みスライダ限定で競合に勝つ） */
    #section05 .sliderArea .slider.slick-initialized .slick-slide {
        opacity: .55;
        transform: scale(.9);
        transition: opacity .12s linear, transform .12s linear;
        /* ← 短くして体感遅延を解消 */
        margin: 0 10px;
    }

    /* 中央 or 次に中央になるものは不透明＆等倍（即時に見せる） */
    #section05 .sliderArea .slider.slick-initialized .slick-slide.slick-current,
    #section05 .sliderArea .slider.slick-initialized .slick-slide.is-next {
        opacity: 1;
        transform: scale(1);
    }

    /* ドラッグ中／アニメ中はトランジションを切る（遅延ゼロ） */
    #section05 .sliderArea .slider .slick-list.dragging .slick-slide,
    #section05 .sliderArea .slider .slick-track.slick-animating .slick-slide {
        transition: none !important;
    }

    /* （任意）キーボードフォーカス時も強調 */
    #section05 .sliderArea .slider.slick-initialized .slick-slide:focus-within {
        opacity: 1;
        transform: scale(1);
    }


    /***********************
     *  見える矢印ボタン
     ***********************/
    #section05 .sliderArea .kx-arrow {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        width: 44px;
        /* 矢印ボタンサイズ */
        height: 44px;
        border-radius: 999px;
        background: #c13932;
        border: none;
        z-index: 6;
        /* スライドよりも上 */
        cursor: pointer;
        display: grid;
        place-items: center;
        box-shadow: 0 4px 12px rgba(0, 0, 0, .2);
    }

    /* CSSで描く矢印アイコン */

    #section05 .sliderArea .kx-arrow::before {
        content: "";
        display: block;
        width: 0;
        height: 0;
        opacity: 1;
    }

    /* 左矢印（三角形を左向きに） */
    #section05 .sliderArea .slick-prev.kx-arrow::before {
        border-top: 8px solid transparent;
        border-bottom: 8px solid transparent;
        border-right: 12px solid #fff;
        /* ← 白い塗りの三角 */
    }

    /* 右矢印（三角形を右向きに） */
    #section05 .sliderArea .slick-next.kx-arrow::before {
        border-top: 8px solid transparent;
        border-bottom: 8px solid transparent;
        border-left: 12px solid #fff;
        /* ← 白い塗りの三角 */
    }


    /* 左右配置（隣スライドの上に乗る） */
    #section05 .sliderArea .slick-prev.kx-arrow {
        left: 10%;
        /* ← お好みの位置に調整可能（12%〜20%推奨） */
    }

    #section05 .sliderArea .slick-next.kx-arrow {
        right: 10%;
    }

    /***********************************
     *  過去の“透明クリックゾーン”のリセット
     ***********************************/
    #section05 .slick-prev,
    #section05 .slick-next {
        background: none;
        width: 44px;
    }

    /* ドット（任意） */
    #section05 .slick-dots {
        bottom: -24px;
    }

    #section05 .slick-dots li button:before {
        font-size: 30px;
        color: #fff;
        opacity: 1;
    }

    #section05 .slick-dots li.slick-active button:before {
        color: #c13932;
    }
}

/* PCだけ：カードをホバーで少し拡大（影なし） */
@media screen and (min-width:769px) {
    .card {
        transition: transform 0.18s ease;
        will-change: transform;
    }

    .card:hover {
        transform: scale(1.05);
        /* お好みで 1.02〜1.05 */
        z-index: 5;
        /* 隣カードより前面に（影なしでも重なり対策） */
    }

    /* 反転中も拡大が効くように（任意） */
    .card.is-flipped:hover {
        transform: scale(1.05);
    }

    /* 裏面が見えている時だけ、裏面をクリック可能にする */
    .card .cardface__back {
        pointer-events: none;
    }

    .card.is-flipped .cardface__back {
        pointer-events: auto;
    }

    /* 裏面の「詳しく見る」ボタンのヒット精度と前面度を少し上げる */
    .cardface__back .detail_btn {
        position: absolute;
        z-index: 20;
        /* 既存の10より少し強め */
        transform: translateZ(1px);
        /* 3D文脈で前へ出す */
    }

    /* 念のため：3D反転の背面描画ぶれ対策（既に指定済みでも重ねてOK） */
    .cardface__front,
    .cardface__back {
        backface-visibility: hidden;
    }

}

/* （任意）ホバー中に「詳しく見る」ボタンのz順が負けないように */
.cardface__back .detail_btn {
    position: absolute;
    z-index: 10;
}

/* スマホで slick が縦スクロールを奪わないようにする */
@media screen and (max-width:768px) {

    #section05 .slick-slide,
    #section05 .slick-track,
    #section05 .slick-list {
        touch-action: pan-y !important;
    }
}


@media screen and (max-width:768px) {
    #section05 .card {
        touch-action: pan-y !important;
        pointer-events: auto;
    }

    #section05 .cardface__front,
    #section05 .cardface__back {
        pointer-events: none;
        /* ← これでスクロールは通す */
    }

    #section05 .detail_btn a,
    #section05 [data-remodal-target] {
        pointer-events: auto;
        /* ボタンだけは触れるように戻す */
    }
}


/* =========================================
   PC向け：カード裏面ボタンのヒット安定化
   ========================================= */
   @media screen and (min-width:769px) {
    /* 裏面が見えている時だけ、裏面をクリック可能に */
    .card .cardface__back { pointer-events: none; }
    .card.is-flipped .cardface__back { pointer-events: auto; }
  
    /* 裏面の「詳しく見る」ボタンのz順とヒット精度 */
    .cardface__back .detail_btn {
      position: absolute;
      z-index: 20;
      transform: translateZ(1px);
    }
  
    /* 念のため：3D描画ぶれ対策（既に指定済みでも可） */
    .cardface__front,
    .cardface__back {
      backface-visibility: hidden;
    }
  }
  

/* footer********************************************************************** */
.footer {
    height: 420px;
    text-align: center;
    margin-top: -100px;
}

.footer h3 {
    font-size: 35px;
    color: white;
    padding-top: 100px;
}

.footer ul {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}

.footer ul li a {
    display: block;
    width: 280px;
    height: 30px;
    font-size: 20px;
    font-weight: 400;
    color: white;
    margin-top: 80px;
    margin-bottom: 112px;
    transition: all 0.3s;
    position: relative;
}

.footer ul li a:hover {
    opacity: 0.7;
}

.footer ul li a::after {
    content: "";
    width: 1.5px;
    height: 35px;
    background-color: #fff;
    position: absolute;
    top: 40%;
    transform: translateY(-50%);
    right: 0;
}

.footer ul li:last-child a::after {
    background-color: #ffffff00;
}

.footer small {
    color: white;
}

@media screen and (max-width:768px) {
    .footer {
        width: 100vw;
        height: 120px;
    }

    .footer h3 {
        font-size: min(4.8vw, 18px);
        padding-top: 32px;
        padding-bottom: 20px;
    }

    .footer ul {
        display: none;
    }

    .footer small {
        font-size: min(2.4vw, 9px);
    }
}

/* ===== スクロールリビール：.section_img だけ拡大しながらふわっと ===== */

/* 初期状態：少し下・小さめ・透明 */
.section_img.reveal-zoom {
    opacity: 0;
    transform: translateY(24px) scale(0.96);
    transform-origin: center center;
    /* 拡大の基点：中央 */
    transition:
        opacity 600ms ease,
        transform 600ms ease;
    will-change: opacity, transform;
}

/* 表示状態：元の位置・等倍・不透明 */
.section_img.reveal-zoom--in {
    opacity: 1;
    transform: translateY(0) scale(1);
}

/* 少しゆっくり見せたい時（任意） */
.section_img.reveal-zoom--slow {
    transition-duration: 900ms;
}

/* もっと拡大感を出したい時（任意） */
.section_img.reveal-zoom--large {
    /* 初期を小さめに、ゴールを少し大きめにしたい場合は
       --in 側で scale(1.02) にし、別途収束アニメを当てる…なども可 */
    transform: translateY(28px) scale(0.92);
}

/* モーション低減を尊重（OS設定が「減らす」の時はアニメを無効） */
@media (prefers-reduced-motion: reduce) {
    .section_img.reveal-zoom {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}