/* index base styles */
        /* ==========================================
            Reset CSS
           ========================================== */
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        /* 固定ヘッダー分のスクロールオフセット */
        html {
            scroll-padding-top: 110px;
        }
        @media (max-width: 1023px) {
            html {
                scroll-padding-top: 80px;
            }
        }

        li {
            list-style: none;
        }

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

        button {
            background: none;
            border: none;
            cursor: pointer;
            font-family: inherit;
        }

        html, body {
            width: 100%;
            overflow-x: hidden;
        }

        body {
/* font-family: 'Overpass', 'Zen Kaku Gothic New', sans-serif; */
            font-family: 'Zen Kaku Gothic New', sans-serif;
            line-height: 1.6;
            color: #333333;
            background-image: url(../img/common/bg.png);
            padding-top: 110px;
            -webkit-overflow-scrolling: touch;
        }

        @media (max-width: 1023px) {
            body {
                padding-top: 70px;
            }
        }

        .pc-br {
            display: none;
        }

        @media (min-width: 1024px) {
            .pc-br {
                display: block;
            }
        }

        /* SP/PC 表示切り替え (Breakpoint: 768px) */
        @media (min-width: 768px) {
            .sp { display: none !important; }
        }
        @media (max-width: 767px) {
            .pc { display: none !important; }
        }

        /* ==========================================
            共通レイアウトクラス
           ========================================== */
        .l-inner {
            max-width: 1000px; 
            margin: 0 auto;
            padding: 0 20px;
        }

        /* NEWS専用の幅広インナー (1560px) */
        .l-inner--wide {
            max-width: 1560px;
            margin: 0 auto;
            padding: 0 20px;
        }

        .u-padding-y {
            padding-top: 60px;
            padding-bottom: 60px;
        }

        .l-main-wrapper {
            width: 100%;
        }

        /* ==========================================
            Header Styles
           ========================================== */
        .header {
            position: fixed; 
            top: 0;
            left: 0;
            z-index: 1000;
            width: 100%;
            background-color: rgba(255, 255, 255, 0.8);
            backdrop-filter: blur(8px);
            -webkit-backdrop-filter: blur(8px);
        }

        .header__inner {
            max-width: 1000px;
            margin: 0 auto;
            padding: 30px 20px;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        @media (max-width: 1023px) {
            .header__inner {
                padding: 15px 20px;
                position: relative;
                justify-content: space-between;
            }
        }

        .header__logo {
            width: 238px;
            flex-shrink: 0;
            position: relative;
            z-index: 1200;
        }

        @media (max-width: 1023px) {
            .header__logo {
                width: 160px;
            }
        }

        .header__logo img {
            width: 100%;
            height: auto;
            display: block;
        }

        .header__nav {
            display: none;
        }

        @media (min-width: 1024px) {
            .header__nav {
                display: block;
            }
            .nav-list {
                display: flex;
                align-items: center;
                gap: 20px;
            }
            .nav-list__link {
                font-family: 'Overpass', sans-serif;
                font-size: 13.5px;
                font-weight: 700;
                white-space: nowrap;
            }
        }

        @media (max-width: 1023px) {
            .header__nav.is-open {
                display: block;
                position: fixed;
                inset: 0;
                width: 100%;
                height: 100vh;
                height: 100dvh;
                background-color: #ffffff;
                z-index: 1100;
                padding-top: 70px;
                overflow-y: auto;
            }

            .nav-list {
                display: flex;
                flex-direction: column;
                width: 100%;
                border-top: 1px solid #E5E1D8;
            }

            .nav-list__item {
                width: 100%;
                border-bottom: 1px solid #E5E1D8;
            }

            .nav-list__link {
                display: flex;
                justify-content: space-between;
                align-items: center;
                padding: 20px;
                font-family: 'Overpass', sans-serif;
                font-size: 18px;
                font-weight: 700;
                color: #333333;
            }

            .nav-list__link::after {
                content: "→";
                color: #00367B;
                font-size: 20px;
                font-weight: bold;
            }
        }

        .header__hamburger {
            position: relative;
            width: 30px;
            height: 22px;
            z-index: 1200;
            transition: all .4s;
        }

        @media (max-width: 1023px) {
            .header__hamburger {
                position: absolute;
                right: 20px;
                top: 50%;
                transform: translateY(-50%);
            }
        }

        @media (min-width: 1024px) {
            .header__hamburger {
                display: none;
            }
        }

        .header__hamburger span {
            position: absolute;
            left: 0;
            width: 100%;
            height: 2px;
            background-color: #333333;
            border-radius: 4px;
            transition: all .4s;
        }

        .header__hamburger span:nth-of-type(1) { top: 0; }
        .header__hamburger span:nth-of-type(2) { top: 10px; }
        .header__hamburger span:nth-of-type(3) { top: 20px; }

        .header__hamburger.is-active span:nth-of-type(1) { transform: translateY(10px) rotate(-45deg); }
        .header__hamburger.is-active span:nth-of-type(2) { opacity: 0; }
        .header__hamburger.is-active span:nth-of-type(3) { transform: translateY(-10px) rotate(45deg); }

        /* ==========================================
            Main Visual Styles
           ========================================= */
        .mv {
            position: relative;
            width: 100%;
            height: calc(100vh - 110px); 
            min-height: 600px;
            display: flex;
            align-items: center;
            justify-content: center;
            overflow: visible; 
        }

        .mv__obj {
            position: absolute;
            z-index: 1;
            pointer-events: none;
            will-change: transform;
            transition: transform 0.1s linear;
        }

        .mv__obj--top {top: -30px;left: -30%;width: 170%;object-fit: cover;}
        .mv__obj--left-1 { bottom: 32%; left: 5%; width: 24%; }
        .mv__obj--left-2 { bottom: 30%; left: 0; width: 12%; }
        .mv__obj--right-1 { top: 2%; right: 6%; width: 23%; }
        .mv__obj--right-2 { bottom: -8%; right: 10%; width: 19%; }
        .mv__obj--right-3 { bottom: 38%; right: 0; width: 11%; }

        @media (max-width: 1023px) {
            .mv { 
                height: calc(100dvh - 70px);
                min-height: 400px;
            }
            .mv__obj--left-1 {width: 40%;left: -5%;bottom: 0;top: -2%;opacity: 0.8;}
            .mv__obj--left-2 {width: 30%;left: 0;bottom: 6%;}
            .mv__obj--right-1 {width: 40%;right: 1%;top: 8%;}
            .mv__obj--right-2 {width: 35%;right: 16%;bottom: -3%;}
            .mv__obj--right-3 {width: 21%;right: 0%;bottom: 15%;}
        }

        .mv__content {
            position: relative;
            z-index: 10;
            max-width: 1000px;
            padding: 0 20px;
            text-align: center;
            width: 100%;
        }

        .mv__title {
            font-size: 48px;
            color: #00B48D;
            font-weight: 700;
            line-height: 1.3;
            margin-bottom: 45px;
            word-break: keep-all;
        }

        @media (max-width: 1023px) {
            .mv__title { font-size: 26px; margin-bottom: 30px; }
        }

        .mv__text {
            font-size: 20px;
            color: #333333;
            line-height: 1.8;
            font-weight: 400;
            text-align: center;
            margin: 0 auto;
        }

        /* ==========================================
            Process Section Styles
           ========================================= */
        .p-process { background-color: #E0F6F1;overflow: hidden; }

        .c-section-title { text-align: center; margin-bottom: 50px; }
        .c-section-title__en { display: block; font-size: 24px; color: #00B48D; font-weight: 700; margin-bottom: 5px; }
        .c-section-title__ja { display: block; font-size: 38px; color: #00367B; font-weight: 700; }

        @media (max-width: 1023px) {
            .c-section-title__en { font-size: 18px; }
            .c-section-title__ja { font-size: 26px; }
        }

        .p-process-intro { display: flex; flex-direction: column; align-items: center; gap: 40px; margin-bottom: 80px; }
        @media (min-width: 1024px) { .p-process-intro { flex-direction: row; justify-content: center; gap: 60px; } }
        .p-process-intro__img { width: 338px; flex-shrink: 0; }
        .p-process-intro__img img { width: 100%; height: auto; }
        .p-process-intro__body { max-width: 540px; }
        .p-process-intro__copy { font-size: 30px; color: #00B48D; font-weight: 700; line-height: 1.4; margin-bottom: 25px; }
        .p-process-intro__text { font-size: 16px; line-height: 1.8; color: #333333; }

        @media (max-width: 1023px) {
            .p-process-intro { gap: 30px; margin-bottom: 50px; }
            .p-process-intro__img { width: 260px; }
            .p-process-intro__copy { font-size: 19px; margin-bottom: 15px; }
            .p-process-intro__text { font-size: 14px; line-height: 1.6; }
        }

        .c-sub-heading { text-align: center; margin-bottom: 50px; }
        .c-sub-heading__text { 
            display: inline; 
            font-size: 24px; 
            font-weight: 700; 
            position: relative; 
            z-index: 1;
            line-height: 1.8;
            background: linear-gradient(transparent 60%, rgba(0, 180, 141, 0.3) 0);
            box-decoration-break: clone;
            -webkit-box-decoration-break: clone;
        }

        @media (max-width: 1023px) {
            .c-sub-heading { margin-bottom: 30px; }
            .c-sub-heading__text { font-size: 20px; }
        }

        .p-solution-grid-original { display: flex; flex-direction: column; gap: 30px; }
        @media (min-width: 1024px) { .p-solution-grid-original { flex-direction: row; gap: 40px; } }

        .p-solution-card-original { flex: 1; background-color: #fff; border-radius: 20px; border: 2px solid #00367B; padding: 30px 20px; text-align: center; display: flex; flex-direction: column; align-items: center; }
        .p-solution-card-original--green { border-color: #00B48D; }
        .p-solution-card-original--orange { border-color: #ED6D46; }
        .p-solution-card-original__img { width: 176px; margin-bottom: 20px; }
        .p-solution-card-original__img img { width: 100%; height: auto; }
        .p-solution-card-original__title { font-size: 20px; font-weight: 700; color: inherit; }

        @media (max-width: 1023px) {
            .p-solution-card-original { padding: 30px 20px; }
            .p-solution-card-original__img { width: 120px; margin-bottom: 15px; }
            .p-solution-card-original__title { font-size: 17px; }
        }

        .p-solution-card-original--blue .p-solution-card-original__title { color: #00367B; }
        .p-solution-card-original--green .p-solution-card-original__title { color: #00B48D; }
        .p-solution-card-original--orange .p-solution-card-original__title { color: #ED6D46; }

        /* ==========================================
            Project Section Styles
           ========================================= */
        .p-project { position: relative; }

        .p-project-container {
            position: relative;
            width: 100%;
        }

        .p-project-content {
            position: relative;
            z-index: 10;
        }

        @media (min-width: 1024px) {
            .p-project-content {
                position: absolute;
                top: 0;
                left: 0;
                max-width: 400px;
                pointer-events: none;
            }
            .p-project-content * {
                pointer-events: auto;
            }
            .p-project-content .c-section-title {
                text-align: left;
            }
        }

        .p-project-content__text {
            font-size: 16px;
            line-height: 1.8;
            font-weight: 500;
        }

        .p-project-map {
            position: relative;
            margin: 0 auto;
            width: 1000px; 
        }

        .p-project-map__base {
            width: 100%;
            height: auto;
            display: block;
        }

        /* ピン（ラベル）共通スタイル */
        .p-project-pin {
            position: absolute;
            display: flex;
            align-items: center;
            height: 50px;
            min-width: 158px;
            border-radius: 30px;
            /* Overpassフォントのベースラインに合わせて視覚的に中央に配置 */
            padding: 3px 15px 0 20px; 
            color: #fff;
            font-weight: 700;
            transition: transform 0.3s ease, box-shadow 0.3s ease;
            box-shadow: 0 4px 10px rgba(0,0,0,0.1);
            z-index: 5;
            white-space: nowrap;
        }

        .p-project-pin:hover {
            transform: translateY(-5px);
            box-shadow: 0 8px 20px rgba(0,0,0,0.15);
        }

        .p-project-pin.is-zero {
            background-color: #D9D9D9 !important;
            pointer-events: none;
        }

        .p-project-pin__name { font-size: 16px; font-weight: 500; margin-right: auto; line-height: 1; width: 100%; text-align: center; }
        .p-project-pin__num {
            font-family: 'Overpass', sans-serif;
            font-size: 32px;
            font-weight: 700;
            margin: 0 4px;
            line-height: 1;
            display: inline-block;
        }
        .p-project-pin__unit { font-size: 14px; font-weight: 500; margin-right: 10px; margin-top: 4px; }
        .p-project-pin__arrow { width: 24px; height: 24px; display: block; flex-shrink: 0; object-fit: contain; }

        .p-project-pin--hokkaido     { top: 7.5%;  left: 47%;   background-color: #1D69C9; }
        .p-project-pin--tohoku       { top: 38.5%; left: 77.5%; background-color: #5893CF; }
        .p-project-pin--shutoken     { top: 59.5%; left: 71.5%; background-color: #5893CF; }
        .p-project-pin--chubu        { top: 75.5%; left: 58.5%; background-color: #57BB9D; } 
        .p-project-pin--hokushinetsu { top: 51.2%; left: 32.5%; background-color: #00A473; }
        .p-project-pin--kansai        { top: 81.4%; left: 48.5%; background-color: #94CD9C; }
        .p-project-pin--chugoku      { top: 66.4%; left: 2.5%;  background-color: #EE7A52; }
        .p-project-pin--shikoku      { top: 89%;   left: 36.5%; background-color: #F1926C; }
        .p-project-pin--kyushu       { top: 87.5%; left: -8.5%; background-color: #F1926C; }

        @media (max-width: 1199px) {
            .p-project-map {width: 600px;margin-right: 4vw;}
	        .p-project-pin{height: 45px;}

            .p-project-pin--hokkaido     { top: 6.5%;  left: 37%;   background-color: #1D69C9; }
            .p-project-pin--tohoku       { top: 37.5%; left: 77.5%; background-color: #5893CF; }
            .p-project-pin--shutoken     { top: 58.5%; left: 71.5%; background-color: #5893CF; }
            .p-project-pin--chubu        { top: 73%; left: 62%; background-color: #57BB9D; } 
            .p-project-pin--hokushinetsu { top: 50%; left: 20%; background-color: #00A473; }
            .p-project-pin--kansai        { top: 81.5%; left: 50%; background-color: #94CD9C; }
            .p-project-pin--chugoku      { top: 65%; left: -8%;  background-color: #EE7A52; }
            .p-project-pin--shikoku      { top: 90%;   left: 36.5%; background-color: #F1926C; }
            .p-project-pin--kyushu       { top: 87.5%; left: -18.5%; background-color: #F1926C; }
        }

        @media (max-width: 799px) {
            .p-project-map {width: 760px;margin-right: -4vw;}
            .p-project-pin{ min-width: 128px; }
            .p-project-pin__num{ font-size: 24px; }
        }

        @media (max-width: 799px) {
            .p-project-map {width: 580px;margin-right: 2vw;}
            .p-project-pin {min-width: 110px;height: 30px;padding: 2px 10px 0 12px;}
            .p-project-pin__unit { font-size: 12px; }
            .p-project-pin__arrow { width: 20px; height: 20px; }

            .p-project-pin--hokkaido     { top: 7.5%;  left: 42%;   background-color: #1D69C9; }
            .p-project-pin--tohoku       { top: 38.5%; left: 77.5%; background-color: #5893CF; }
            .p-project-pin--shutoken     { top: 59.5%; left: 71.5%; background-color: #5893CF; }
            .p-project-pin--chubu        { top: 75%; left: 62%; background-color: #57BB9D; } 
            .p-project-pin--hokushinetsu { top: 51%; left: 29%; background-color: #00A473; }
            .p-project-pin--kansai        { top: 82%; left: 50%; background-color: #94CD9C; }
            .p-project-pin--chugoku      { top: 66%; left: -1%;  background-color: #EE7A52; }
            .p-project-pin--shikoku      { top: 89%;   left: 36.5%; background-color: #F1926C; }
            .p-project-pin--kyushu       { top: 87.5%; left: -12.5%; background-color: #F1926C; }
        }

        @media (max-width: 599px) {
            .p-project-map {width: 260px;margin-right: 7vw;}
            .p-project-pin {min-width: 100px;height: 20px;padding: 1px 8px 0 10px;}
            .p-project-pin__num {font-size: 18px;}
            .p-project-pin__name, .p-project-pin__unit { font-size: 10px; }
            .p-project-pin__arrow {width: 16px;height: 16px;}

            .p-project-pin--hokkaido     { top: 7%;    left: 25%; }
            .p-project-pin--tohoku       { top: 37%;   left: 77%; }
            .p-project-pin--shutoken     { top: 58%;   left: 71%; }
            .p-project-pin--chubu        { top: 72%; left: 59%; }
            .p-project-pin--hokushinetsu { top: 50%;   left: 12%; }
            .p-project-pin--kansai        { top: 81%;   left: 47%; }
            .p-project-pin--chugoku      { top: 65%;   left: -16%; }
            .p-project-pin--shikoku      { top: 90%;   left: 37%; }
            .p-project-pin--kyushu       { top: 87%;   left: -26%; }
        }

        @media (max-width: 374px) {
            .p-project-map { width: 240px; margin-right: 3vw; }
            .p-project-pin { min-width: 65px; padding: 1px 6px 0 8px; height: 18px; }
            .p-project-pin__num { font-size: 14px; }
            .p-project-pin__name, .p-project-pin__unit { font-size: 9px; }
            .p-project-pin__arrow { width: 14px; height: 14px; }

            .p-project-pin--hokkaido     { top: 7%;    left: 25%; }
            .p-project-pin--tohoku       { top: 37%;   left: 77%; }
            .p-project-pin--shutoken     { top: 59%;   left: 71%; }
            .p-project-pin--chubu        { top: 73.5%; left: 59%; }
            .p-project-pin--hokushinetsu { top: 50%;   left: 12%; }
            .p-project-pin--kansai        { top: 82%;   left: 47%; }
            .p-project-pin--chugoku      { top: 64%;   left: -10%; }
            .p-project-pin--shikoku      { top: 91%;   left: 37%; }
            .p-project-pin--kyushu       { top: 87%;   left: -11%; }
        }

        /* ==========================================
            News Section Styles
           ========================================= */
        .p-news { background-color: #E0F6F1; }

        .p-news-wrapper {
            position: relative;
            /* 1560pxのコンテンツ幅に対して、ボタンを外に出すための余白を確保 */
            padding: 0 80px; 
            margin: 0 auto;
        }

        @media (max-width: 1023px) {
            .p-news-wrapper { padding: 0 40px; }
        }

        .p-news-swiper {
            /* シャドウが切れないように可視化 */
            padding: 0px 20px 20px;
            margin: 0 auto;
        }

        .p-news-card {
            background-color: #fff;
            border-radius: 20px;
            overflow: hidden;
            /* 精密シャドー: X:6, Y:6, Blur:5, 25% */
            box-shadow: 6px 6px 5px 0 rgba(0, 0, 0, 0.25);
            display: flex;
            flex-direction: column;
            height: 100%;
            transition: transform 0.3s ease;
        }

        .p-news-card:hover {
            transform: translateY(-5px);
        }

        .p-news-card__img {
            width: 100%;
            aspect-ratio: 16 / 11;
            object-fit: cover;
            display: block;
        }

        .p-news-card__body {
            padding: 20px; /* パディング20px指定 */
            flex-grow: 1;
            display: flex;
            flex-direction: column;
        }

        .p-news-card__date {
            font-size: 16px; /* 16px指定 */
            color: #333;
            margin-bottom: 12px;
            display: block;
        }

        .p-news-card__title {
            font-size: 18px; /* 18px指定 */
            font-weight: 700;
            color: #00367B; /* 00367B指定 */
            line-height: 1.5;
            margin-bottom: 30px;
            display: -webkit-box;
            -webkit-line-clamp: 3;
            -webkit-box-orient: vertical;
            overflow: hidden;
            min-height: 4.5em;
        }

        .p-news-card__tags {
            margin-top: auto;
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
        }

        .p-news-card__tag {
            font-size: 12px; /* 12px指定 */
            font-weight: 700;
            color: #fff;
            background-color: #ED6D46;
            padding: 0px 12px;
            height: 22px;
            border-radius: 8px; /* 角丸8px指定 */
            display: flex;
            align-items: center;
            line-height: 1;
        }

        /* Swiper Arrows (コンテンツ外配置) */
        .p-news-arrow {
            width: 48px !important;
            height: 48px !important;
            background-color: #fff;
            border-radius: 50%;
            box-shadow: 0 4px 10px rgba(0,0,0,0.1);
            color: #00367B !important;
            transition: opacity 0.3s;
            margin-top: -40px !important;
        }

        .p-news-arrow::after {
            font-size: 18px !important;
            font-weight: bold;
        }

        .swiper-button-prev.p-news-arrow { left: 0px !important; }
        .swiper-button-next.p-news-arrow { right: 0px !important; }

        @media (max-width: 767px) {
	        .p-news-swiper{ overflow: visible; padding: 0; }
            .p-news-arrow { width: 32px !important; height: 32px !important; }
            .p-news-arrow::after { font-size: 14px !important; }
            .swiper-button-prev.p-news-arrow { left: 5px !important; }
            .swiper-button-next.p-news-arrow { right: 5px !important; }
        }

        /* 一覧ボタン */
        .p-news__btn-wrap {
            text-align: center;
            margin-top: 40px;
        }

        .c-btn-more {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            background-color: #00367B;
            color: #fff;
            font-size: 16px;
            font-weight: 700;
            padding: 15px 40px;
            border-radius: 30px;
            box-shadow: 4px 4px 0 rgba(0, 54, 123, 0.4);
            transition: transform 0.2s, box-shadow 0.2s;
        }

        .c-btn-more:hover {
            transform: translate(2px, 2px);
            box-shadow: 0 0 0 transparent;
        }

        .c-btn-more__icon {
            width: 20px;
            height: auto;
            filter: brightness(0) invert(1);
        }

        @media (max-width: 767px) {
            .p-news-card__title { font-size: 16px; min-height: 3em; -webkit-line-clamp: 2; }
        }

        /* ==========================================
            Pick Up Section (Solution Examples)
           ========================================= */
        .p-pickup {}

        .p-solution-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 40px; /* 各コンテンツの余白40px */
            max-width: 1000px;
            margin: 0 auto;
        }

        @media (max-width: 767px) {
            .p-solution-grid { grid-template-columns: 1fr; gap: 30px; }
        }

        .p-solution-card {
            background-color: #fff;
            border-radius: 20px; /* 角丸20px指定 */
            overflow: hidden;
            box-shadow: 6px 6px 5px 0 rgba(0, 0, 0, 0.25); /* 精密シャドウ指定 */
            display: flex;
            flex-direction: column;
            position: relative;
            cursor: pointer;
        }

        .p-solution-card__head {
            color: #fff;
            font-size: 16px; /* 背景付き部分16px */
            font-weight: 700;
            padding: 12px 20px;
            text-align: center;
            line-height: 1.2;
        }

        /* テーマカラーバリエーション */
        .p-solution-card--blue .p-solution-card__head   { background-color: #00367B; }
        .p-solution-card--orange .p-solution-card__head { background-color: #ED6D46; }
        .p-solution-card--green .p-solution-card__head  { background-color: #00AB84; }

        .p-solution-card__body {
            padding: 40px 20px;
            display: flex;
            align-items: center;
            justify-content: center;
            min-height: 140px;
        }

        .p-solution-card__title {
            font-size: 24px; /* その下の大きいテキスト24px */
            font-weight: 700;
            color: #333;
            text-align: center;
        }

        .p-solution-card__plus {
            position: absolute;
            right: 15px;
            bottom: 15px;
            width: 24px; /* 右下のアイコンの丸のサイズは24px */
            height: 24px;
            background-color: #00AB84;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: transform 0.4s ease;
        }

        .p-solution-card__plus::before,
        .p-solution-card__plus::after {
            content: "";
            position: absolute;
            background-color: #fff;
            transition: transform 0.4s ease;
        }
        .p-solution-card__plus::before { width: 12px; height: 2px; }
        .p-solution-card__plus::after  { width: 2px; height: 12px; }

        /* hoverでプラスマークが回転 */
        .p-solution-card:hover .p-solution-card__plus {
            transform: rotate(90deg);
        }

        /* ==========================================
            Movie Section Styles (Format from NEWS)
           ========================================= */
        .p-movie { background-color: #E0F6F1; }

        .p-movie-wrapper {
            position: relative;
            padding: 0 80px; 
            margin: 0 auto;
        }

        @media (max-width: 1023px) {
            .p-movie-wrapper { padding: 0 40px; }
        }

        .p-movie-swiper {
            padding: 0px 20px 20px;
            margin: 0 auto;
        }

        .p-movie-card {
            background-color: #fff;
            border-radius: 20px;
            overflow: hidden;
            box-shadow: 6px 6px 5px 0 rgba(0, 0, 0, 0.25);
            display: flex;
            flex-direction: column;
            height: 100%;
            transition: transform 0.3s ease;
            position: relative;
        }

        .p-movie-card:hover {
            transform: translateY(-5px);
        }

        .p-movie-card__img-wrap {
            position: relative;
            width: 100%;
            aspect-ratio: 16 / 11;
        }

        .p-movie-card__img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
        }

        .p-movie-card__body {
            padding: 20px;
            flex-grow: 1;
            display: flex;
            flex-direction: column;
        }

        .p-movie-card__date {
            font-size: 16px;
            color: #333;
            margin-bottom: 12px;
            display: block;
        }

        .p-movie-card__title {
            font-size: 18px;
            font-weight: 700;
            color: #00367B;
            line-height: 1.5;
            margin-bottom: 30px;
            display: -webkit-box;
            -webkit-line-clamp: 3;
            -webkit-box-orient: vertical;
            overflow: hidden;
            min-height: 4.5em;
        }

        .p-movie-card__tags {
            margin-top: auto;
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
        }

        .p-movie-card__tag {
            font-size: 12px;
            font-weight: 700;
            color: #fff;
            background-color: #ED6D46;
            padding: 0px 12px;
            height: 22px;
            border-radius: 8px;
            display: flex;
            align-items: center;
        }

        .p-movie-arrow {
            width: 48px !important;
            height: 48px !important;
            background-color: #fff;
            border-radius: 50%;
            box-shadow: 0 4px 10px rgba(0,0,0,0.1);
            color: #00367B !important;
            transition: opacity 0.3s;
            margin-top: -40px !important;
        }

        .p-movie-arrow::after {
            font-size: 18px !important;
            font-weight: bold;
        }

        .swiper-button-prev.p-movie-arrow { left: 0px !important; }
        .swiper-button-next.p-movie-arrow { right: 0px !important; }

        @media (max-width: 767px) {
            .p-movie-swiper { overflow: visible; padding: 0; }
            .p-movie-arrow { width: 32px !important; height: 32px !important; }
            .p-movie-arrow::after { font-size: 14px !important; }
            .swiper-button-prev.p-movie-arrow { left: 5px !important; }
            .swiper-button-next.p-movie-arrow { right: 5px !important; }
        }

        /* ==========================================
            Event Section Styles
           ========================================= */
        .p-event { background-color: transparent;  }

        .p-event-wrapper {
            position: relative;
            padding: 0 80px; 
            margin: 0 auto;
        }

        @media (max-width: 1023px) {
            .p-event-wrapper { padding: 0 40px; }
        }

        .p-event-list {
            margin-top: 40px;
            border-top: 1px solid rgba(0, 0, 0, 0.2);
        }

        .p-event-item {
            display: flex;
            align-items: flex-start;
            padding: 20px 0;
            border-bottom: 1px solid rgba(0, 0, 0, 0.2);
            gap: 15px;
            transition: background-color 0.3s;
        }

        .p-event-item:hover {
            background-color: rgba(255, 255, 255, 0.5);
        }

        .p-event-item__date {
            font-size: 18px;
            color: #767676;
            flex-shrink: 0;
            width: 140px;
            font-weight: 500;
        }

        .p-event-item__title {
            font-size: 18px;
            color: #333;
            font-weight: 700;
            line-height: 1.6;
        }

        @media (max-width: 767px) {
            .p-event-item {
                flex-direction: column;
                gap: 8px;
                padding: 20px 0;
            }
            .p-event-item__date {
                width: auto;
                font-size: 15px;
            }
            .p-event-item__title {
                font-size: 16px;
            }
        }

        /* ==========================================
            Digital Pamphlet Section Styles
           ========================================= */
        .p-pamphlet { background-color: rgba(0, 54, 123, 0.06); }

        .p-pamphlet__box {
            background-color: #fff;
            border-radius: 20px;
            padding: 30px 60px;
            display: flex;
            align-items: center;
            gap: 50px;
            color: #333;
        }

        .p-pamphlet__img {
            width: 208px;
            flex-shrink: 0;
        }

        .p-pamphlet__img img {
            width: 100%;
            height: auto;
            display: block;
            border-radius: 4px;
        }

        .p-pamphlet__content {
            flex-grow: 1;
        }

        .p-pamphlet__en {
            display: block;
            font-family: 'Overpass', sans-serif;
            font-size: 20px;
            font-weight: 700;
            color: #00B48D;
            margin-bottom: 5px;
        }

        .p-pamphlet__ja {
            font-size: 32px;
            font-weight: 700;
            margin-bottom: 20px;
            line-height: 1.3;
            color: #00367B;
        }

        .p-pamphlet__text {
            font-size: 16px;
            line-height: 1.8;
            margin-bottom: 30px;
            font-weight: 400;
        }

        @media (max-width: 767px) {
            .p-pamphlet__box {
                flex-direction: column;
                padding: 40px 20px;
                gap: 30px;
                text-align: center;
            }
            .p-pamphlet__img {
                width: 200px;
            }
            .p-pamphlet__ja {
                font-size: 24px;
            }
        }

        /* ==========================================
            Footer Styles
           ========================================== */
        .l-footer { width: 100%; background-color: #E0F6F1;padding: 60px 20px; }

        /* 上部お問い合わせエリア */
        .p-footer-contact {
            background-color: #fff;
            padding: 40px 0;
            text-align: center;
            border-radius: 20px; 
            max-width: 1000px;
            margin: 0 auto 60px;
        }

        .p-footer-contact__lead {
            font-size: 20px;
            font-weight: 700;
            margin-bottom: 15px;
            color: #333;
            line-height: 1.8;
        }

        .p-footer-contact__lead span {
            border-bottom: 2px solid rgba(0, 54, 123, 0.4);
            display: inline-block;
            padding-bottom: 0px; /* 文字に近づける */
            margin: 0 5px;
        }

        .p-footer-contact__title {
            font-size: 36px;
            font-weight: 700;
            color: #00367B;
            margin-bottom: 40px;
            letter-spacing: 0.02em;
        }

        /* お問い合わせボタン */
        .c-btn-contact {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 24px;
            width: 100%;
            max-width: 340px;
            height: 94px;
            border-radius: 50px;
            background: linear-gradient(90deg, #00B48D 0%, #0063E1 100%);
            color: #fff;
            font-size: 24px;
            font-weight: 700;
            /* 指定のシャドウ設定 (X:4, Y:4, Blur:0, Color: #00367B 40%) */
            box-shadow: 4px 4px 0 rgba(0, 54, 123, 0.4);
            transition: transform 0.2s, box-shadow 0.2s;
            position: relative;
        }

        /* ホバーアクションの統一 (押し込み) */
        .c-btn-contact:hover {
            transform: translate(4px, 4px);
            box-shadow: 0 0 0 transparent;
        }

        .c-btn-contact__icon {
            width: 54px; /* アイコンサイズ54px */
            height: auto;
            display: block;
            margin-left: -40px;
        }

        /* 下部エリア */
        .p-footer-bottom {
            padding: 0 0 60px;
            text-align: left; /* 左揃えに変更 */
        }

        .p-footer-logo {
            width: 238px;
            margin: 0 0 50px; /* 中央揃え解除 */
        }
        .p-footer-logo img { width: 100%; height: auto; }

        /* リンクナビ */
        .p-footer-nav {
            display: flex;
            flex-wrap: wrap;
            justify-content: flex-start; /* 左揃えに変更 */
            margin-bottom: 60px;
            max-width: 1200px;
            /* gapで距離を制御 (上下68px, 左右80px) */
            gap: 30px 40px;
        }

        .p-footer-nav__item {
            /* paddingを削除し、内容物の制御のみ残す */
            display: flex;
            align-items: center;
            gap: 10px;
            font-size: 14px;
            font-weight: 700;
            color: #333;
            transition: color 0.3s;
        }

        .p-footer-nav__item:hover { color: #00367B; }
        .p-footer-nav__icon { width: 20px; height: auto; flex-shrink: 0; }

        /* SNS */
        .p-footer-sns {
            display: flex;
            justify-content: center; /* デザイン通り中央を維持 */
            gap: 80px; 
            margin-bottom: 50px;
        }

        .p-footer-sns__link {
            width: 40px;
            height: 40px;
            transition: opacity 0.3s;
        }

        .p-footer-sns__link:hover { opacity: 0.7; }
        .p-footer-sns__link img { width: 100%; height: auto; }

        /* コピーライト */
        .p-footer-copy {
            font-size: 12px;
            font-weight: 400;
            color: #333;
            letter-spacing: 0.05em;
            text-align: center; /* デザイン通り中央を維持 */
        }

        @media (max-width: 767px) {
	        .l-footer { padding: 40px 0; }
            .p-footer-contact { padding: 40px 20px; margin: 0 20px 40px; }
            .p-footer-contact__lead { font-size: 14px; }
            .p-footer-contact__title { font-size: 20px; margin-bottom: 30px; }
            .c-btn-contact { font-size: 18px; height: 70px; gap: 15px; max-width: 320px; box-shadow: 2px 2px 0 rgba(0, 54, 123, 0.4); }
            .c-btn-contact:hover { transform: translate(2px, 2px); }
            .c-btn-contact__icon { width: 40px;margin-left: 0; }
            .p-footer-nav { gap: 16px 40px; }
            .p-footer-nav__item { font-size: 14px; }
            .p-footer-sns { gap: 40px; }
        }

        /* ==========================================
            Modal Internal Styles
           ========================================== */
        #modal {
            position: fixed;
            inset: 0;
            z-index: 2000;
            background-color: rgba(0, 54, 123, 0.85);
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 20px;
            opacity: 0;
            visibility: hidden;
            pointer-events: none;
            transition: opacity 0.4s ease, visibility 0.4s ease;
        }

        #modal.is-active {
            opacity: 1;
            visibility: visible;
            pointer-events: auto;
        }

        .modalwin {
            display: block;
            position: absolute;
            top: 50%;
            left: 50%;
            width: min(900px, 100%);
            opacity: 0;
            transform: translate(-50%, -50%) translateY(20px);
            transition: opacity 0.4s ease, transform 0.4s ease;
            background-color: #fff;
            max-height: 90vh;
            border-radius: 20px;
            z-index: 10;
            overflow-y: auto;
            box-shadow: 0 10px 40px rgba(0,0,0,0.3);
            pointer-events: none;
        }

        .modalwin.is-active {
            opacity: 1;
            transform: translate(-50%, -50%) translateY(0);
            pointer-events: auto;
        }

        .inmodal { padding: 60px 40px; }
        @media (max-width: 767px) { .inmodal { padding: 40px 20px; } }

        .ttlwrap {
            border-bottom: 2px solid #00AB84;
            margin-bottom: 30px;
            padding-bottom: 15px;
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
        }

        .ttlwrap h1 { font-size: 28px; color: #00367B; font-weight: 700; line-height: 1.3; }
        .ttlwrap .subtxt { display: block; font-size: 14px; color: #666; font-weight: 700; margin-bottom: 8px; }

        .btnclose { cursor: pointer; }
        .btnclose span {
            font-weight: 700; font-size: 12px; color: #00367B; padding: 6px 14px;
            border: 2px solid #00367B; border-radius: 30px; display: inline-block;
            transition: all 0.3s;
        }
        .btnclose:hover span { background-color: #00367B; color: #fff; }

        /* モーダル内見出しデザイン (c-sub-headingと同じデザインへ最適化) */
        .mainarea h2 { 
            font-size: 22px; 
            color: #00367B; 
            margin: 40px 0 25px; 
            font-weight: 700; 
            line-height: 1.8; 
            text-align: center; 
        }
        .mainarea h2 span { 
            display: inline;
            position: relative; 
            z-index: 1;
            background: linear-gradient(transparent 60%, rgba(0, 180, 141, 0.3) 0);
            box-decoration-break: clone;
            -webkit-box-decoration-break: clone;
        }

        .mainarea p { font-size: 16px; line-height: 1.8; color: #333; margin-bottom: 20px; }

        .imgR1, .imgL1 { display: flex; gap: 40px; margin-bottom: 40px; align-items: flex-start; }
        .imgR1.reverse { flex-direction: row-reverse; }
        .imgR1 .img, .imgL1 .img { flex: 0 0 45%; }
        .imgR1 .txt, .imgL1 .txt { flex: 1; }

        @media (max-width: 767px) {
            .imgR1, .imgL1 { flex-direction: column !important; gap: 20px; }
            .imgR1 .img, .imgL1 .img { width: 100%; }
        }

        .half { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; margin-bottom: 40px; }
        @media (max-width: 767px) { .half { grid-template-columns: 1fr; gap: 30px; } }

        .half h3 { font-size: 18px; color: #00367B; margin-bottom: 12px; font-weight: 700; }
        .half h4 { font-size: 14px; color: #ED6D46; margin-bottom: 8px; font-weight: 700; }
        .half figcaption { font-size: 12px; text-align: center; margin-top: 8px; color: #666; font-weight: 500; }

        .list2, .list4 { margin-bottom: 20px; padding-left: 0; }
        .list2 li, .list4 li { margin-bottom: 10px; position: relative; padding-left: 1.5em; list-style: none; }
        .list2 li::before, .list4 li::before { content: "●"; color: #00AB84; position: absolute; left: 0; top: 0; font-size: 12px; }

        /* 番号付きリスト設定 */
        .list3 { 
            margin-bottom: 20px; 
            padding-left: 0; 
            counter-reset: modal-list; 
        }
        .list3 > li { 
            margin-bottom: 15px; 
            position: relative; 
            padding-left: 1.8em; 
            list-style: none; 
        }
        .list3 > li::before { 
            counter-increment: modal-list;
            content: counter(modal-list) "."; 
            color: #00367B; 
            position: absolute; 
            left: 0; 
            top: 0; 
            font-weight: 700;
        }

        .box1 { background-color: #f8f9fa; padding: 30px; border-radius: 15px; margin-bottom: 40px; }
        .box1 h3 { font-size: 19px; color: #00367B; margin-bottom: 20px; font-weight: 700; }
        .box1 h4 { font-size: 16px; color: #333; margin-bottom: 10px; font-weight: 700; }

        .col3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: 40px; }
        @media (max-width: 767px) { .col3 { grid-template-columns: 1fr; } }
        .col3 figcaption { font-size: 12px; text-align: center; margin-top: 8px; }

        .modalwin figure img { width: 100%; height: auto; border-radius: 12px; display: block; }
        .imgper100 img { width: 100%; height: auto; margin: 30px 0; border-radius: 12px; }
        .cover { position: fixed; inset: 0; z-index: 5; }

        /* Sticky お問い合わせボタン */
        .contact-btn {
            position: fixed;
            bottom: 30px;
            right: 30px;
            z-index: 150;
            background-color: #00367B;
            color: #fff;
            width: 208px;
            height: 58px;
            border-radius: 20px;
            font-weight: 700;
            font-size: 18px;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 12px;
            box-shadow: 4px 4px 0 rgba(0, 54, 123, 0.4);
            transition: transform 0.2s, box-shadow 0.2s;
        }

        @media (max-width: 767px) {
            .contact-btn { bottom: 20px; right: 20px; width: 180px; height: 50px; font-size: 16px; }
        }

        .contact-btn:hover { transform: translate(4px, 4px); box-shadow: 0 0 0 rgba(0, 54, 123, 0); }
        .contact-btn__icon { width: 22px; height: auto; display: block; }


/* movie-list02/list page styles */
        /* ==========================================
            Reset CSS
           ========================================== */
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        li {
            list-style: none;
        }

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

        button {
            background: none;
            border: none;
            cursor: pointer;
            font-family: inherit;
        }

        html, body {
            width: 100%;
            overflow-x: hidden;
        }

        body {
            font-family: 'Zen Kaku Gothic New', sans-serif;
            line-height: 1.6;
            color: #333333;
            background-image: url(../img/common/bg.png);
            padding-top: 110px;
            -webkit-overflow-scrolling: touch;
            overflow-x: visible !important;
        }

        @media (max-width: 1023px) {
            body {
                padding-top: 70px;
            }
        }

        .pc-br {
            display: none;
        }

        @media (min-width: 1024px) {
            .pc-br {
                display: block;
            }
        }

        /* SP/PC 表示切り替え */
        @media (min-width: 768px) {
            .sp { display: none !important; }
        }
        @media (max-width: 767px) {
            .pc { display: none !important; }
        }

        /* ==========================================
            共通レイアウトクラス
           ========================================== */
        .l-inner {
            max-width: 1000px; 
            margin: 0 auto;
            padding: 0 20px;
        }

        .l-inner--wide {
            max-width: 1560px;
            margin: 0 auto;
            padding: 0 20px;
        }

        .l-main-wrapper {
            width: 100%;
            overflow: hidden;
        }

        /* ==========================================
            Header Styles
           ========================================== */
        .header {
            position: fixed; 
            top: 0;
            left: 0;
            z-index: 1000;
            width: 100%;
            background-color: rgba(255, 255, 255, 0.8);
            backdrop-filter: blur(8px);
            -webkit-backdrop-filter: blur(8px);
        }

        .header__inner {
            max-width: 1000px;
            margin: 0 auto;
            padding: 30px 20px;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        @media (max-width: 1023px) {
            .header__inner {
                padding: 15px 20px;
                position: relative;
                justify-content: space-between;
            }
        }

        .header__logo {
            width: 238px;
            flex-shrink: 0;
            position: relative;
            z-index: 1200;
        }

        @media (max-width: 1023px) {
            .header__logo {
                width: 160px;
            }
        }

        .header__logo img {
            width: 100%;
            height: auto;
            display: block;
        }

        .header__nav {
            display: none;
        }

        @media (min-width: 1024px) {
            .header__nav {
                display: block;
            }
            .nav-list {
                display: flex;
                align-items: center;
                gap: 20px;
            }
            .nav-list__link {
                font-family: 'Overpass', sans-serif;
                font-size: 13.5px;
                font-weight: 700;
                white-space: nowrap;
            }
        }

        @media (max-width: 1023px) {
            .header__nav.is-open {
                display: block;
                position: fixed;
                inset: 0;
                width: 100%;
                height: 100vh;
                height: 100dvh;
                background-color: #ffffff;
                z-index: 1100;
                padding-top: 70px;
                overflow-y: auto;
            }

            .nav-list {
                display: flex;
                flex-direction: column;
                width: 100%;
                border-top: 1px solid #E5E1D8;
            }

            .nav-list__item {
                width: 100%;
                border-bottom: 1px solid #E5E1D8;
            }

            .nav-list__link {
                display: flex;
                justify-content: space-between;
                align-items: center;
                padding: 20px;
                font-family: 'Overpass', sans-serif;
                font-size: 18px;
                font-weight: 700;
                color: #333333;
            }

            .nav-list__link::after {
                content: "→";
                color: #00367B;
                font-size: 20px;
                font-weight: bold;
            }
        }

        .header__hamburger {
            position: relative;
            width: 30px;
            height: 22px;
            z-index: 1200;
            transition: all .4s;
        }

        @media (max-width: 1023px) {
            .header__hamburger {
                position: absolute;
                right: 20px;
                top: 50%;
                transform: translateY(-50%);
            }
        }

        @media (min-width: 1024px) {
            .header__hamburger {
                display: none;
            }
        }

        .header__hamburger span {
            position: absolute;
            left: 0;
            width: 100%;
            height: 2px;
            background-color: #333333;
            border-radius: 4px;
            transition: all .4s;
        }

        .header__hamburger span:nth-of-type(1) { top: 0; }
        .header__hamburger span:nth-of-type(2) { top: 10px; }
        .header__hamburger span:nth-of-type(3) { top: 20px; }

        .header__hamburger.is-active span:nth-of-type(1) { transform: translateY(10px) rotate(-45deg); }
        .header__hamburger.is-active span:nth-of-type(2) { opacity: 0; }
        .header__hamburger.is-active span:nth-of-type(3) { transform: translateY(-10px) rotate(45deg); }

        /* ==========================================
            Subpage MV Styles
           ========================================= */
        .l-sub-mv {
            background-color: #00367B;
            padding: 40px 20px 30px;
            text-align: center;
            width: 100%;
        }

        .c-sub-label {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            height: 28px;
            padding: 0 12px;
            background-color: #00B48D;
            color: #ffffff;
            font-size: 14px;
            font-weight: 700;
            border-radius: 8px;
            margin-bottom: 20px;
        }

        .c-sub-ttl {
            font-size: 38px;
            font-weight: 700;
            color: #ffffff;
            margin-bottom: 10px;
            line-height: 1.3;
        }

        .c-sub-subttl {
            font-size: 20px;
            color: #ffffff;
            font-weight: 400;
            line-height: 1.5;
        }

        @media (max-width: 767px) {
            .l-sub-mv { padding: 30px 20px 25px; }
            .c-sub-ttl { font-size: 24px; }
            .c-sub-subttl { font-size: 14px; }
        }

        /* ==========================================
            Breadcrumb Styles (Updated Master)
           ========================================= */
        .p-breadcrumb {
            padding: 10px 0;
            background-color: #fff;
        }

        .p-breadcrumb__list {
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 10px;
            font-size: 12px;
            color: #00367B;
            font-weight: 400;
        }

        .p-breadcrumb__item a {
            text-decoration: underline;
            transition: opacity 0.3s;
        }

        .p-breadcrumb__item a:hover { opacity: 0.7; }

        .p-breadcrumb__item:not(:last-child)::after {
            content: ">";
            margin-left: 10px;
            text-decoration: none;
            display: inline-block;
        }

        @media (max-width: 767px) {
            .p-breadcrumb { padding: 10px 0;  }
        }

        /* ==========================================
            共通セクション見出し
           ========================================= */
        .p-panel-article__head {
            margin-bottom: 40px;
            text-align: left;
        }

        .p-panel-article__title {
            font-size: 38px;
            font-weight: 700;
            color: #333;
            line-height: 1;
            margin: 0;
            margin-top: 10px; 
        }

        .p-panel-article {
            width: 100%;
            padding-bottom: 40px;
        }
        .p-breadcrumb + section{
            /* overflow: hidden; */
        }

        @media (max-width: 767px) {
            .p-panel-article__head { margin-bottom: 30px; }
            .p-panel-article__title { font-size: 22px; }
        }

        /* ==========================================
            Filter Section Styles
           ========================================= */
        .p-news-filter {
            background-color: rgba(0, 180, 141, 0.12);
            padding: 40px 0;
            width: 100%;
        }

        .p-filter-group { margin-bottom: 30px; }
        .p-filter-group:last-child { margin-bottom: 0; }
        .p-filter-group__label { font-size: 20px; font-weight: 700; color: #00B48D; margin-bottom: 15px; display: block; }
        .p-filter-list { display: flex; flex-wrap: wrap; gap: 15px 20px; }
        .p-filter-btn { display: inline-flex; align-items: center; justify-content: center; height: 48px; padding: 0 20px; border-radius: 14px; border: 2px solid #00367B; background-color: #fff; color: #00367B; font-size: 20px; font-weight: 700; transition: all 0.3s; cursor: pointer; }
        .p-filter-btn:hover { background-color: rgba(0, 54, 123, 0.05); }
        .p-filter-btn.is-active { background-color: #00367B; color: #fff; }

        @media (max-width: 767px) {
            .p-news-filter { padding: 30px 0; }
            .p-filter-group__label { font-size: 16px; margin-bottom: 10px; }
            .p-filter-btn { height: 40px; padding: 0 15px; font-size: 15px; border-radius: 10px; }
        }

        /* ==========================================
            Main News List Section
           ========================================= */
        .p-news-main-list {
            width: 100%;
            padding: 60px 0 80px;
        }

        .p-grid-container {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 40px 30px;
            padding-bottom: 10px;
        }

        .p-card {
            background-color: #fff;
            border-radius: 20px;
            overflow: hidden;
            box-shadow: 6px 6px 5px 0 rgba(0, 0, 0, 0.25);
            display: flex;
            flex-direction: column;
            height: 100%;
            transition: transform 0.3s ease;
        }

        .p-card:hover { transform: translateY(-5px); }

        .p-card__img {
            width: 100%; aspect-ratio: 16 / 11; object-fit: cover; display: block;
        }

        .p-card__body {
            padding: 20px; flex-grow: 1; display: flex; flex-direction: column;
        }

        .p-card__date { font-size: 16px; color: #333; margin-bottom: 12px; display: block; }

        .p-card__title {
            font-size: 18px; font-weight: 700; color: #00367B; line-height: 1.5;
            display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
        }

        .p-card__tags { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 8px; }

        .p-card__tag {
            font-size: 12px; font-weight: 700; color: #fff; background-color: #ED6D46;
            padding: 0 12px; height: 22px; border-radius: 8px; display: flex; align-items: center;
        }

        .p-card__tag--green { background-color: #00B48D; }

        .p-panel-grid-accordion {
            display: grid;
            grid-template-rows: 0fr;
            transition: grid-template-rows 0.6s cubic-bezier(0.4, 0, 0.2, 1);
            overflow: hidden;
            width: calc(100% + 80px);
            margin-left: -40px;
            margin-right: -40px;
        }

        .p-panel-grid-accordion.is-active {
            grid-template-rows: 1fr;
        }

        .p-panel-grid-accordion__inner {
            min-height: 0;
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 40px 30px;
            padding: 0 40px;
            opacity: 0;
            transform: translateY(20px);
            transition: opacity 0.4s ease, transform 0.4s ease, padding 0.6s;
        }

        .p-panel-grid-accordion.is-active .p-panel-grid-accordion__inner {
            opacity: 1;
            transform: translateY(0);
            padding-top: 40px;
            padding-bottom: 30px;
            transition-delay: 0.1s;
        }

        .c-btn-accordion {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            background-color: #00367B;
            color: #fff;
            font-size: 16px;
            font-weight: 700;
            padding: 15px 40px;
            border-radius: 30px;
            box-shadow: 4px 4px 0 rgba(0, 54, 123, 0.4);
            transition: transform 0.2s, box-shadow 0.2s;
            cursor: pointer;
        }

        .c-btn-accordion:hover {
            transform: translate(2px, 2px);
            box-shadow: 0 0 0 transparent;
        }

        .c-btn-accordion__icon {
            font-size: 18px;
            transition: transform 0.4s ease;
            display: inline-block;
        }

        .c-btn-accordion.is-active .c-btn-accordion__icon {
            transform: rotate(180deg);
        }

        @media (max-width: 1023px) {
            .p-grid-container, .p-panel-grid-accordion__inner { grid-template-columns: repeat(2, 1fr); }
        }

        @media (max-width: 767px) {
            .p-panel-article { padding-bottom: 30px; }
            .p-grid-container, .p-panel-grid-accordion__inner { grid-template-columns: 1fr; gap: 30px; }
            .p-panel-grid-accordion { width: calc(100% + 40px); margin-left: -20px; margin-right: -20px; }
            .p-panel-grid-accordion__inner { padding: 0 20px 30px 20px; }
            .p-panel-article__btn-wrap { display: flex; justify-content: center; margin-top: 15px; }
            .c-btn-accordion { font-size: 14px; padding: 12px 30px; box-shadow: 2px 2px 0 rgba(0, 54, 123, 0.4); }
        }

        .p-panel-article__btn-wrap {
            display: flex;
            justify-content: center;
            margin-top: 40px;
        }

        .p-pagination {
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 15px;
            margin-top: 60px;
        }

        .p-pagination__link {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 48px;
            height: 48px;
            border-radius: 50%;
            border: 2px solid #00367B;
            background-color: #fff;
            color: #00367B;
            font-size: 20px;
            font-weight: 700;
            transition: all 0.3s;
        }

        .p-pagination__link:hover { background-color: rgba(0, 54, 123, 0.05); }
        .p-pagination__link.is-active { background-color: #00367B; color: #fff; }

        @media (max-width: 1023px) {
            .p-grid-container { grid-template-columns: repeat(2, 1fr); }
        }

        @media (max-width: 767px) {
            .p-news-main-list { padding: 40px 0 60px; }
            .p-grid-container { grid-template-columns: 1fr; gap: 30px; }
            .p-card__title { font-size: 16px; }
            .p-pagination { gap: 10px; margin-top: 40px; }
            .p-pagination__link { width: 40px; height: 40px; font-size: 16px; }
        }

        /* ==========================================
            Footer Styles
           ========================================== */
        .l-footer { width: 100%; background-color: #E0F6F1; padding: 60px 20px; }

        .p-footer-contact {
            background-color: #fff; padding: 40px 0; text-align: center; border-radius: 20px; max-width: 1000px; margin: 0 auto 60px;
        }

        .p-footer-contact__lead { font-size: 20px; font-weight: 700; margin-bottom: 15px; color: #333; line-height: 1.8; }
        .p-footer-contact__lead span { border-bottom: 2px solid rgba(0, 54, 123, 0.4); display: inline-block; padding-bottom: 0; margin: 0 5px; }
        .p-footer-contact__title { font-size: 36px; font-weight: 700; color: #00367B; margin-bottom: 40px; letter-spacing: 0.02em; }
        .c-btn-contact { display: inline-flex; align-items: center; justify-content: center; gap: 24px; width: 100%; max-width: 340px; height: 94px; border-radius: 50px; background: linear-gradient(90deg, #00B48D 0%, #0063E1 100%); color: #fff; font-size: 24px; font-weight: 700; box-shadow: 4px 4px 0 rgba(0, 54, 123, 0.4); transition: transform 0.2s, box-shadow 0.2s; position: relative; }
        .c-btn-contact:hover { transform: translate(4px, 4px); box-shadow: 0 0 0 transparent; }
        .c-btn-contact__icon { width: 54px; height: auto; display: block; margin-left: -40px; }
        .p-footer-bottom { padding: 0 0 60px; text-align: left; }
        .p-footer-logo { width: 238px; margin: 0 0 50px; }
        .p-footer-logo img { width: 100%; height: auto; }
        .p-footer-nav { display: flex; flex-wrap: wrap; justify-content: flex-start; margin-bottom: 60px; max-width: 1200px; gap: 30px 40px; }
        .p-footer-nav__item { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 700; color: #333; transition: color 0.3s; }
        .p-footer-nav__item:hover { color: #00367B; }
        .p-footer-nav__icon { width: 20px; height: auto; flex-shrink: 0; }
        .p-footer-sns { display: flex; justify-content: center; gap: 80px; margin-bottom: 50px; }
        .p-footer-sns__link { width: 40px; height: 40px; transition: opacity 0.3s; }
        .p-footer-sns__link:hover { opacity: 0.7; }
        .p-footer-sns__link img { width: 100%; height: auto; }
        .p-footer-copy { font-size: 12px; font-weight: 400; color: #333; letter-spacing: 0.05em; text-align: center; }

        @media (max-width: 767px) {
            .l-footer { padding: 40px 0; }
            .p-footer-contact { padding: 40px 20px; margin: 0 20px 40px; }
            .p-footer-contact__lead { font-size: 14px; }
            .p-footer-contact__title { font-size: 20px; margin-bottom: 30px; }
            .c-btn-contact { font-size: 18px; height: 70px; gap: 15px; max-width: 320px; box-shadow: 2px 2px 0 rgba(0, 54, 123, 0.4); }
            .c-btn-contact:hover { transform: translate(2px, 2px); }
            .c-btn-contact__icon { width: 40px; margin-left: 0; }
            .p-footer-nav { gap: 16px 40px; }
            .p-footer-sns { gap: 40px; }
        }

        /* Sticky お問い合わせボタン */
        .contact-btn {
            position: fixed; bottom: 30px; right: 30px; z-index: 150; background-color: #00367B; color: #fff; width: 208px; height: 58px; border-radius: 20px; font-weight: 700; font-size: 18px; display: flex; align-items: center; justify-content: center; gap: 12px; box-shadow: 4px 4px 0 rgba(0, 54, 123, 0.4); transition: transform 0.2s, box-shadow 0.2s;
        }

        @media (max-width: 767px) {
            .contact-btn { bottom: 20px; right: 20px; width: 180px; height: 50px; font-size: 16px; }
        }

        .contact-btn:hover { transform: translate(4px, 4px); box-shadow: 0 0 0 rgba(0, 54, 123, 0); }
        .contact-btn__icon { width: 22px; height: auto; display: block; }


/* event/article page styles */
        /* ==========================================
            Reset & Base CSS
           ========================================== */
        * { margin: 0; padding: 0; box-sizing: border-box; }
        li { list-style: none; }
        a { text-decoration: none; color: inherit; transition: opacity 0.3s; }
        a:hover { opacity: 0.7; }
        button { background: none; border: none; cursor: pointer; font-family: inherit; }
        html, body { width: 100%; }

        body {
            font-family: 'Zen Kaku Gothic New', sans-serif;
            line-height: 1.6;
            color: #333333;
            background-image: url(../img/common/bg.png);
            padding-top: 110px; 
            -webkit-overflow-scrolling: touch;
        }

        /* ==========================================
            Common Layout
           ========================================== */
        .l-inner { max-width: 1000px; margin: 0 auto; padding: 0 20px; }
        .l-main-wrapper { 
            width: 100%; 
            position: relative; 
            overflow: clip; 
        }

        /* ==========================================
            Header Styles
           ========================================== */
        .header {
            position: fixed; top: 0; left: 0; z-index: 1000; width: 100%;
            background-color: rgba(255, 255, 255, 0.8);
            backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
        }
        .header__inner { max-width: 1000px; margin: 0 auto; padding: 30px 20px; display: flex; justify-content: space-between; align-items: center; }
        .header__logo { width: 238px; flex-shrink: 0; }
        .header__logo img { width: 100%; height: auto; display: block; }
        .nav-list { display: flex; align-items: center; gap: 20px; }
        .nav-list__link { font-family: 'Overpass', sans-serif; font-size: 13.5px; font-weight: 700; white-space: nowrap; }

        @media (max-width: 1023px) {
            .header__inner { padding: 15px 20px; }
            .header__logo { width: 160px; }
            .header__nav { display: none; }
            body { padding-top: 70px; }
        }

        /* ==========================================
            Subpage MV & Breadcrumb
           ========================================= */
        .l-sub-mv { background-color: #00367B; padding: 40px 20px 30px; text-align: center; width: 100%; }
        .c-sub-label { display: inline-flex; align-items: center; justify-content: center; height: 28px; padding: 0 12px; background-color: #00B48D; color: #ffffff; font-size: 14px; font-weight: 700; border-radius: 8px; margin-bottom: 20px; }
        .c-sub-ttl { font-size: 38px; font-weight: 700; color: #ffffff; margin-bottom: 10px; line-height: 1.3; }
        .c-sub-subttl { font-size: 20px; color: #ffffff; font-weight: 400; }

        .p-breadcrumb { padding: 10px 0; background-color: #fff; }
        .p-breadcrumb__list { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; font-size: 12px; color: #00367B; }

        @media (max-width: 767px) {
            .c-sub-ttl { font-size: 24px; }
            .c-sub-subttl { font-size: 14px; }
            .p-breadcrumb {  }
        }

        /* ==========================================
            Article Detail Layout (Shared)
           ========================================== */
        .p-article-container { 
            display: flex; 
            gap: 40px; 
            margin-bottom: 60px; 
            position: relative; 
            align-items: flex-start;
        }

        /* Sidebar SNS (Sticky / Master Design) */
        .p-article-share { 
            width: 40px; 
            position: -webkit-sticky; 
            position: sticky; 
            top: 130px; 
            z-index: 10;
            display: flex;
            flex-direction: column;
            align-items: center;
            align-self: start;
        }
        .p-article-share__label { 
            font-size: 12px; font-weight: 700; letter-spacing: 0.1em; 
            writing-mode: vertical-lr; margin-bottom: 20px; 
            text-transform: uppercase; color: #333; 
        }
        .p-article-share__list { display: flex; flex-direction: column; align-items: center; gap: 20px; }
        .p-article-share__link { display: block; width: 20px; }
        .p-article-share__link img { width: 100%; height: auto; display: block; }

        /* Main Content Box */
        .p-article-detail { flex: 1; background-color: #fff; border-radius: 10px; padding: 30px; min-width: 0; }
        
        .p-article-head { display: flex; align-items: center; gap: 15px; margin-bottom: 30px; }
        .p-article-head__date { font-size: 14px; font-weight: 700; }
        .p-article-head__cat {
            display: inline-flex; align-items: center; justify-content: center;
            height: 20px; padding: 0 8px; background-color: #00367B; color: #fff;
            font-size: 12px; font-weight: 700; border-radius: 6px;
        }

        /* Typography & General Contents */
        .p-article-body { font-size: 16px; font-weight: 400; line-height: 2; color: #333; overflow-wrap: break-word; word-break: break-word; }
        .p-article-body p { margin-bottom: 2em; }
        .p-article-body a { color: #00367B; text-decoration: underline; }
        .p-article-body img { max-width: 100%; height: auto; }
        .p-article-body table { display: block; max-width: 100%; overflow-x: auto; }

        /* Shared: Responsive Video Container */
.p-article-video {
	position: relative;
	width: 100%;
	padding-top: 56.25%;
	margin: 40px 0;
	background: #000;
	overflow: hidden;
}

.p-article-video video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
}
        /* Shared: Content Heading */
        .p-article-body h2 { 
            font-size: 30px; font-weight: 700; text-align: center; margin: 60px 0 30px; 
            position: relative; padding-bottom: 15px;
        }
        .p-article-body h2::after {
            content: ""; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%);
            width: 40px; height: 4px; background-color: #00B48D; border-radius: 2px;
        }

        /* Shared: Standard Image */
        .p-article-img { margin: 40px 0; }
        .p-article-img img { width: 100%; height: auto; display: block; }
        .p-article-img__cap { font-size: 14px; color: #6D6E70; text-align: center; margin-top: 15px; }

        /* WordPress Classic Editor 出力への対応 */
        .p-article-body .wp-caption { margin: 40px 0; max-width: 100% !important; width: 100% !important; }
        .p-article-body .wp-caption img { width: 100%; height: auto; display: block; }
        .p-article-body .wp-caption-text { font-size: 14px; color: #6D6E70; text-align: center; margin-top: 15px; margin-bottom: 0; }

        /* WordPress Gutenberg ブロックエディター出力への対応 */
        .p-article-body .wp-block-image { margin: 40px 0; }
        .p-article-body .wp-block-image img { width: 100%; height: auto; display: block; }
        .p-article-body .wp-block-image figcaption,
        .p-article-body .wp-block-image .wp-element-caption { font-size: 14px; color: #6D6E70; text-align: center; margin-top: 15px; }
        .p-article-body .wp-block-image.aligncenter { margin-left: auto; margin-right: auto; }
        .p-article-body .wp-block-image.alignwide,
        .p-article-body .wp-block-image.alignfull { width: 100%; }

        /* Gutenberg 見出しブロック */
        .p-article-body .wp-block-heading { margin-bottom: 1em; }

        /* Gutenberg リストブロック */
        .p-article-body .wp-block-list { margin-bottom: 2em; }
        .p-article-body .wp-block-list li { position: relative; padding-left: 1.2em; margin-bottom: 0.5em; }
        .p-article-body .wp-block-list li::before { content: ""; position: absolute; left: 0; top: 0.6em; width: 6px; height: 6px; background-color: #00B48D; border-radius: 1px; }

        /* Gutenberg 段落ブロック */
        .p-article-body .wp-block-paragraph { margin-bottom: 1.5em; }

        /* Shared: List Style */
        .p-article-list { margin-bottom: 2em; }
        .p-article-list li { position: relative; padding-left: 1.2em; margin-bottom: 0.5em; }
        .p-article-list li::before { content: ""; position: absolute; left: 0; top: 0.6em; width: 6px; height: 6px; background-color: #00B48D; border-radius: 1px; }

        /* Panel Specific: PDF Thumbnail Styles */
        .p-article-pdf {
            text-align: center;
            margin: 40px 0 60px;
        }
        .p-article-pdf__link {
            display: inline-block;
            max-width: 320px;
            width: 100%;
        }
        .p-article-pdf__thumb {
            width: 100%;
            height: auto;
            aspect-ratio: 1 / 1.414;
            background-color: #E5E5E5;
            box-shadow: 0 4px 15px rgba(0,0,0,0.1);
            display: flex;
            align-items: center;
            justify-content: center;
            color: #999;
            font-size: 14px;
            margin-bottom: 15px;
            transition: transform 0.3s ease, box-shadow 0.3s ease;
            position: relative;
            overflow: hidden;
            /* Corner Fold Effect */
            background: linear-gradient(135deg, transparent 20px, #E5E5E5 0);
        }
        .p-article-pdf__thumb::after {
            content: "";
            position: absolute;
            top: 0;
            right: 0;
            width: 20px;
            height: 20px;
            background: linear-gradient(225deg, #fff 50%, #C0C0C0 0);
            box-shadow: -1px 1px 2px rgba(0,0,0,0.1);
            border-bottom-left-radius: 2px;
        }
        .p-article-pdf__link:hover .p-article-pdf__thumb {
            transform: translateY(-5px);
            box-shadow: 0 8px 25px rgba(0,0,0,0.15);
        }
        .p-article-pdf__thumb img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
        .p-article-pdf__info {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            font-size: 14px;
            color: #333;
            font-weight: 500;
        }
        .p-article-pdf__icon {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background-color: #A7A9AC;
            color: #fff;
            font-size: 10px;
            font-weight: 700;
            padding: 2px 6px;
            border-radius: 3px;
            height: 18px;
        }

        /* Shared: Notes Area (F7F7F7) */
        .p-article-notes { background-color: #F7F7F7; border-radius: 10px; padding: 20px; margin-top: 40px; }
        .p-article-notes__item { font-size: 16px; color: #6D6E70; margin-bottom: 10px; display: flex; gap: 10px; }
        .p-article-notes__item:last-child { margin-bottom: 0; }
        .p-article-notes__item > span:first-child { flex-shrink: 0; }
        .p-article-notes__body { display: block; flex: 1; min-width: 0; overflow-wrap: break-word; }
        .p-article-notes__item:not(:last-child) .p-article-notes__body { margin-bottom: 10px; }
        .p-article-notes__item a { color: #00367B; text-decoration: underline; display: block; margin-top: 4px; }

        @media (max-width: 767px) {
            .p-article-container { flex-direction: column; gap: 20px; }
            .p-article-share { 
                position: static; width: 100%; display: flex; flex-direction: row;
                align-items: center; gap: 20px; margin-bottom: 0; 
            }
            .p-article-share__label { writing-mode: horizontal-tb; margin-bottom: 0; }
            .p-article-share__list { flex-direction: row; gap: 15px; }
            .p-article-detail { padding: 20px; width: 100%; overflow: hidden; }
            .p-article-body h2 { font-size: 22px; }
            .p-article-pdf { margin: 30px 0; }
            .p-article-pdf__link { max-width: 240px; }
            .p-article-img { margin: 30px 0; }
        }

        /* ==========================================
            Navigations & Back Button
           ========================================== */
        .p-article-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 60px; }
        .p-article-nav__item {
            display: flex;
            flex-direction: column;
            justify-content: center;
            background: #fff;
            padding: 20px;
            border-radius: 10px;
            box-shadow: 4px 4px 0 rgba(0, 54, 123, 0.1);
            max-width: 250px;
            align-items: center;
        }
        .p-article-nav__label {
            font-size: 14px;
            font-weight: 400;
            color: #00AB84;
            margin-bottom: 12px;
            display: block;
        }
        .p-article-nav__title {
            font-size: 16px;
            font-weight: 400;
            color: #333;
            line-height: 1.4;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }
        .p-article-nav__item:last-child {
            justify-self: end;
            text-align: right;
        }
        
        .p-article-back { text-align: center; }
        .c-btn-back {
            display: inline-flex; align-items: center; justify-content: center; gap: 12px;
            width: 240px; height: 54px; background-color: #00367B; color: #fff;
            font-size: 16px; font-weight: 700; border-radius: 27px;
            box-shadow: 4px 4px 0 rgba(0, 54, 123, 0.4);
        }

        .p-article-nav--next-only .p-article-nav__item { grid-column: 2; }

        @media (max-width: 767px) {
            .p-article-nav { grid-template-columns: 1fr; }
            .p-article-nav__item{ max-width: 100%; width: 100%;}
            .p-article-nav--next-only .p-article-nav__item { grid-column: 1; }
        }

        /* ==========================================
            Footer Styles
           ========================================== */
        .l-main-wrapper > section:last-child {

        }
        .l-footer { width: 100%; background-color: #E0F6F1; padding: 60px 20px;  }
        .p-footer-contact { background-color: #fff; padding: 40px 0; text-align: center; border-radius: 20px; max-width: 1000px; margin: 0 auto 60px; }
        .p-footer-contact__lead { font-size: 20px; font-weight: 700; margin-bottom: 15px; color: #333; }
        .p-footer-contact__lead span { border-bottom: 2px solid rgba(0, 54, 123, 0.4); display: inline-block; }
        .p-footer-contact__title { font-size: 36px; font-weight: 700; color: #00367B; margin-bottom: 40px; }
        .c-btn-contact { display: inline-flex; align-items: center; justify-content: center; gap: 24px; width: 340px; height: 94px; border-radius: 50px; background: linear-gradient(90deg, #00B48D 0%, #0063E1 100%); color: #fff; font-size: 24px; font-weight: 700; box-shadow: 4px 4px 0 rgba(0, 54, 123, 0.4); }
        
        .p-footer-bottom { text-align: left; max-width: 1000px; margin: 0 auto; }
        .p-footer-logo { width: 238px; margin-bottom: 50px; }
        .p-footer-nav { display: flex; flex-wrap: wrap; gap: 30px 40px; margin-bottom: 60px; }
        .p-footer-nav__item { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; color: #333; }
        .p-footer-copy { font-size: 12px; color: #333; text-align: center; border-top: 1px solid rgba(0,0,0,0.1); padding-top: 30px; }

        @media (max-width: 767px) {
            .p-footer-contact__title { font-size: 20px; }
            .c-btn-contact { width: 280px; height: 70px; font-size: 18px; }
            .p-footer-logo { width: 160px; }
        }

        /* Sticky お問い合わせ (Shared) */
        .contact-btn {
            position: fixed; bottom: 30px; right: 30px; z-index: 150; background-color: #00367B; color: #fff; width: 208px; height: 58px; border-radius: 20px; font-weight: 700; display: flex; align-items: center; justify-content: center; gap: 12px; box-shadow: 4px 4px 0 rgba(0, 54, 123, 0.4);
        }

        .p-event-main-list {
            padding-bottom: 60px;
        }

        .p-article-back {
            padding-bottom: 60px;
        }


        /* ==========================================
    Dynamic Background Objects (NEW)
   ========================================== */
.c-bg-obj {
    position: absolute;
    z-index: 1; /* 背景色の上に表示 */
    width: 400px;
    height: auto;
    pointer-events: none; /* コンテンツの邪魔をしない */
    will-change: transform;
}

@media (max-width: 767px) {
    .c-bg-obj {
        width: 200px;
    }
}

/* ==========================================
	movie-list.html fix
   ========================================== */
.p-movie-main-list {
	padding-top: 0;
}

.p-movie-main-list .p-grid-container {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px 30px;
	padding-bottom: 10px;
}

.p-movie-main-list .p-card {
	background-color: #fff;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 6px 6px 5px 0 rgba(0, 0, 0, 0.25);
	display: flex;
	flex-direction: column;
	height: 100%;
	transition: transform 0.3s ease;
}

.p-movie-main-list .p-card:hover {
	transform: translateY(-5px);
}

.p-movie-main-list .p-card__img-wrap {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 11;
	overflow: hidden;
}

.p-movie-main-list .p-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.p-movie-main-list .p-card__play-icon {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 64px;
	height: 64px;
	background-color: rgba(255, 255, 255, 0.85);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 2;
	transition: background-color 0.3s;
}

.p-movie-main-list .p-card:hover .p-card__play-icon {
	background-color: #ffffff;
}

.p-movie-main-list .p-card__play-icon::after {
	content: "";
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 12px 0 12px 20px;
	border-color: transparent transparent transparent #00367B;
	margin-left: 6px;
}

.p-movie-main-list .p-card__body {
	padding: 20px;
	flex-grow: 1;
	display: flex;
	flex-direction: column;
}

.p-movie-main-list .p-card__date {
	font-size: 16px;
	color: #333;
	margin-bottom: 12px;
	display: block;
}

.p-movie-main-list .p-card__title {
	font-size: 18px;
	font-weight: 700;
	color: #00367B;
	line-height: 1.5;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin-bottom: 0;
}

.p-movie-main-list .p-pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 15px;
	margin-top: 60px;
}

.p-movie-main-list .p-pagination__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	border: 2px solid #00367B;
	background-color: #fff;
	color: #00367B;
	font-size: 20px;
	font-weight: 700;
	transition: all 0.3s;
}

.p-movie-main-list .p-pagination__link:hover {
	background-color: rgba(0, 54, 123, 0.05);
}

.p-movie-main-list .p-pagination__link.is-active {
	background-color: #00367B;
	color: #fff;
}

@media (max-width: 1023px) {
	.p-movie-main-list .p-grid-container {
		grid-template-columns: repeat(2, 1fr);
	}

	.p-movie-main-list .p-card__play-icon {
		width: 50px;
		height: 50px;
	}

	.p-movie-main-list .p-card__play-icon::after {
		border-width: 10px 0 10px 16px;
	}
}

@media (max-width: 767px) {
	.p-movie-main-list .p-grid-container {
		grid-template-columns: 1fr;
		gap: 30px;
	}

	.p-movie-main-list .p-card__title {
		font-size: 16px;
	}

	.p-movie-main-list .p-pagination {
		gap: 10px;
		margin-top: 40px;
	}

	.p-movie-main-list .p-pagination__link {
		width: 40px;
		height: 40px;
		font-size: 16px;
	}
}







.l-main-wrapper section:not(.mv):not(.l-sub-mv):not(.p-breadcrumb):not(.header):not(.l-footer) {
	position: relative;
}

.l-main-wrapper section:not(.mv):not(.l-sub-mv):not(.p-breadcrumb):not(.header):not(.l-footer) > .js-objParallaxSectionWrap {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 0;
}

.l-main-wrapper section:not(.mv):not(.l-sub-mv):not(.p-breadcrumb):not(.header):not(.l-footer) .js-objParallax {
	position: absolute;
	width: 260px;
	will-change: transform;
}

.l-main-wrapper section:not(.mv):not(.l-sub-mv):not(.p-breadcrumb):not(.header):not(.l-footer) .js-objParallax img {
	width: 100%;
}

.l-main-wrapper section:not(.mv):not(.l-sub-mv):not(.p-breadcrumb):not(.header):not(.l-footer) > *:not(.js-objParallaxSectionWrap) {
	position: relative;
	z-index: 1;
}

@media screen and (max-width: 767px) {
	.l-main-wrapper section:not(.mv):not(.l-sub-mv):not(.p-breadcrumb):not(.header):not(.l-footer) > .js-objParallaxSectionWrap {
		display: none;
	}
}

.p-panel-article,
.p-movie-main-list,
.p-article-container{
    padding-top: 40px;
}

.l-sub-mv,.p-breadcrumb{
    position: relative;
    z-index: 3;
}

/* 404 */
.p-404 { padding: 80px 0 120px; }
.p-404__body { text-align: center; }
.p-404__text { font-size: 16px; line-height: 2; margin-bottom: 48px; }
.p-404__links { display: flex; gap: 20px; justify-content: center; flex-wrap: wrap; }