            body {
                font-family: "Noto Sans JP", 'Hiragino Sans', Meiryo, sans-serif;
                font-weight: normal;
                color: var(--c-primary);
            }
            
            @media (max-width: 768px) {
                body {
                    overflow-x: hidden;
                }
            }
            
            .swiper {
                padding: 32px 0 0!important;
            }
            
            .trafficRules-button .button-img--traffic-rules {
                position: relative;
                display: inline-block;
                width: 700px;
                height: 114px;
            }
            
            @media (max-width: 768px) {
                .trafficRules-button .button-img--traffic-rules {
                    width: 298px;
                    height: 72px;
                }
            }
            
            .trafficRules-button .button-img--traffic-rules img {
                width: 700px;
                height: 114px;
                position: absolute;
                top: 0;
                left: 0;
                object-fit: contain;
                border-radius: 8px;
                display: block;
            }
            
            @media (max-width: 768px) {
                .trafficRules-button .button-img--traffic-rules img {
                    width: 298px;
                    height: 72px;
                }
            }
            
            .trafficRules-button .button-img--traffic-rules .btn-normal {
                opacity: 1;
                z-index: 1;
            }
            
            .trafficRules-button .button-img--traffic-rules .btn-hover {
                opacity: 0;
                z-index: 2;
                pointer-events: none;
            }
            
            .trafficRules-button .button-img--traffic-rules:hover .btn-normal,
            .trafficRules-button .button-img--traffic-rules:focus .btn-normal {
                opacity: 0;
            }
            
            .trafficRules-button .button-img--traffic-rules:hover .btn-hover,
            .trafficRules-button .button-img--traffic-rules:focus .btn-hover {
                opacity: 1;
            }
            
            .otherContent-button .button-img.button-img--large {
                width: 700px;
                height: 114px;
            }
            
            @media (max-width: 768px) {
                .otherContent-button .button-img.button-img--large {
                    width: 298px;
                    height: 72px;
                }
            }
            
            .otherContent-button .button-img.button-img--large img {
                width: 700px;
                height: 114px;
                position: absolute;
                top: 0;
                left: 0;
                object-fit: contain;
                border-radius: 8px;
                display: block;
            }
            
            @media (max-width: 768px) {
                .otherContent-button .button-img.button-img--large img {
                    width: 298px;
                    height: auto;
                    margin: 0 auto;
                }
            }
            
            .otherContent-button .button-img.button-img--large .btn-normal {
                opacity: 1;
                z-index: 1;
            }
            
            .otherContent-button .button-img.button-img--large .btn-hover {
                opacity: 0;
                z-index: 2;
                pointer-events: none;
            }
            
            .otherContent-button .button-img.button-img--large:hover .btn-normal,
            .otherContent-button .button-img.button-img--large:focus .btn-normal {
                opacity: 0;
            }
            
            .otherContent-button .button-img.button-img--large:hover .btn-hover,
            .otherContent-button .button-img.button-img--large:focus .btn-hover {
                opacity: 1;
            }
            
            .button-img {
                position: relative;
                display: inline-block;
                height: 110px;
            }
            
            .button-img img {
                position: absolute;
                top: 0;
                left: 0;
                height: 110px;
                object-fit: contain;
                border-radius: 8px;
                display: block;
            }
            
            .button-img .btn-normal {
                opacity: 1;
                z-index: 1;
            }
            
            .button-img .btn-hover {
                opacity: 0;
                z-index: 2;
                pointer-events: none;
            }
            
            .button-img:hover .btn-normal,
            .button-img:focus .btn-normal {
                opacity: 0;
            }
            
            .button-img:hover .btn-hover,
            .button-img:focus .btn-hover {
                opacity: 1;
            }
            
            @media (min-width: 1440px) {
                .cards-grid {
                    display: flex;
                    flex-wrap: wrap;
                    gap: 60px;
                    justify-content: center;
                }
            }
            /* =====================================
Tokens (colors / sizes / images)
===================================== */
            
             :root {
                --c-primary: #004678;
                --w-title: 460px;
                --h-title: 124px;
                --fs-lead: 24px;
                --lh-lead: 34px;
                --container: 1145px;
                --img-title-frame: url("../img/img-title-frame.svg");
                --bg-beige: url("../img/img-bg-beige.webp");
                --bg-skyblue: url("../img/img-bg-skyblue.webp");
                --bg-brown: url("../img/img-bg-brown.webp");
                --bg-pink: url("../img/img-bg-pink.webp");
                --bg-green: url("../img/img-bg-green.webp");
                --bg-yellow: url("../img/img-bg-yellow.webp");
                --bg-blue: url("../img/img-bg-blue.webp");
            }
            /* =====================================
Layout utilities
===================================== */
            
            .container,
            .l-section>div {
                margin: 0 auto;
                width: 100%;
            }
            
            .l-section__inner {
                margin-bottom: 124px;
                margin: 0 auto;
                box-sizing: content-box;
            }
            
            @media (max-width: 924px) {
                .l-section__inner {
                    padding: 0;
                }
            }
            
            .l-section__inner.-under {
                margin-top: 124px;
            }
            
            @media (max-width: 768px) {
                .l-section__inner.-under {
                    margin-top: 64px;
                }
            }
            
            .l-section-title-wrapper {
                text-align: center;
                margin-bottom: 32px;
            }
            
            @media (max-width: 768px) {
                .l-section-title-wrapper {
                    margin-bottom: 6px;
                }
            }
            /* =====================================
Section title (frame & deco)
===================================== */
            
            .c-title {
                text-align: center;
                font-size: 80px;
                line-height: 90px;
                margin-bottom: 48px;
            }
            
            @media (max-width: 768px) {
                .c-title {
                    font-size: 40px;
                    line-height: 30px;
                    margin-bottom: 30px;
                }
            }
            
            .c-lead {
                margin-bottom: 56px;
                text-align: center;
                font-weight: bold;
                font-size: var(--fs-lead);
                line-height: var(--lh-lead);
            }
            
            @media (max-width: 768px) {
                .c-lead {
                    font-size: 15px;
                    line-height: 25px;
                    margin-bottom: 20px;
                    padding: 0 8px;
                }
            }
            
            .l-section-title {
                position: relative;
                display: inline-block;
                padding: 12px 48px;
            }
            
            .l-section-title::before {
                content: "";
                position: absolute;
                left: 50%;
                top: -30px;
                transform: translateX(-50%);
                width: var(--w-title);
                height: var(--h-title);
                background: var(--img-title-frame) no-repeat center/contain;
                z-index: 0;
                pointer-events: none;
                display: block;
            }
            
            @media (max-width: 768px) {
                .l-section-title::before {
                    top: -16px;
                    width: 316px;
                    height: 82px;
                }
            }
            
            .l-section-title h3 {
                font-size: 26px;
                font-weight: 700;
            }
            
            @media (max-width: 768px) {
                .l-section-title h3 {
                    font-size: 19px;
                    line-height: 26px;
                    white-space: nowrap;
                }
            }
            /* =====================================
			l-Section (title SVG floating)
			===================================== */
            
            .l-section {
                position: relative;
                padding: 112px 0 224px;
            }
            
            .l-section__title-svg {
                position: absolute;
                left: 50%;
                top: -56px;
                transform: translateX(-50%);
                width: var(--w-title);
                height: var(--h-title);
                z-index: 2;
                display: block;
                pointer-events: none;
            }
            
            @media (max-width: 768px) {
                .l-section__title-svg {
                    width: 234px;
                    height: auto;
                    top: -34px;
                }
            }
            
            .l-section-title.-twoRow {
                padding: 12px 12px;
            }
            /* =====================================
			In Town section
			===================================== */
            
            .inTown {
                background: var(--bg-skyblue) no-repeat center top/cover;
            }
            
            @media (max-width: 768px) {
                .inTown {
                    padding-top: 64px;
                    padding-bottom: 108px;
                }
            }
            /* =====================================
			At Facilities section
			===================================== */
            
            .atFacilities {
                background: var(--bg-brown) no-repeat center top/cover;
                padding: 112px 0 304px;
            }
            
            @media (max-width: 768px) {
                .atFacilities {
                    padding-top: 64px;
                    padding-bottom: 102px;
                }
            }
            
            .atFacilities-lead {
                margin-bottom: 112px;
            }
            
            @media (max-width: 768px) {
                .atFacilities-lead {
                    margin-bottom: 20px;
                }
            }
            
            .atFacilities-content {
                display: flex;
                max-width: 1035px;
                margin: 0 auto;
                flex-wrap: wrap;
                gap: 80px 0;
            }
            
            .atFacilities__inner {
                max-width: 460px;
                margin: 0 auto;
                display: flex;
                flex-direction: column;
                justify-content: flex-start;
            }
            
            .atFacilities__inner .card-image {
                display: flex;
                justify-content: center;
            }
            /* 769–1024px帯でAt Facilitiesのブロックを画面幅に合わせて縮小 */
            
            @media (min-width: 769px) and (max-width: 1024px) {
                .atFacilities-content {
                    gap: 40px 0;
                }
                .atFacilities__inner .l-section-title {
                    padding: 0;
                    height: 64px;
                    display: flex;
                    align-items: center;
                }
                .atFacilities-content h3 {
                    font-size: 20px;
                }
                .atFacilities__inner {
                    flex: 0 1 calc(36.2% - 64px);
                    max-width: calc(36.2% - 64px) !important;
                    padding: 0 64px;
                    align-items: center;
                }
                .atFacilities__inner .l-section-title {
                    white-space: nowrap;
                    ;
                }
                .atFacilities__inner .l-section-title::before {
                    width: 360px;
                }
                .atFacilities__inner .card-image img {
                    width: 100%;
                    height: auto;
                }
            }
            /* =====================================
Using Restrooms section
===================================== */
            
            .usingRestrooms {
                background: var(--bg-pink) no-repeat center top/cover;
                padding-bottom: 280px;
            }
            
            @media (max-width: 768px) {
                .usingRestrooms {
                    padding-top: 64px;
                    padding-bottom: 112px;
                }
            }
            
            .usingRestrooms-lead {
                margin-bottom: 56px;
                text-align: center;
                font-size: var(--fs-lead);
                line-height: var(--lh-lead);
            }
            /* =====================================
On the Mountain section
===================================== */
            
            .onTheMountain {
                background: var(--bg-green) no-repeat center top/cover;
                padding-bottom: 280px;
            }
            
            @media (max-width: 768px) {
                .onTheMountain {
                    padding-top: 64px;
                    padding-bottom: 104px;
                }
            }
            
            .onTheMountain-lead {
                margin-bottom: 56px;
                text-align: center;
                font-size: var(--fs-lead);
                line-height: var(--lh-lead);
            }
            /* =====================================
Traffic Rules section
===================================== */
            
            .trafficRules {
                background: var(--bg-yellow) no-repeat center top/cover;
                padding-bottom: 332px;
            }
            
            @media (max-width: 768px) {
                .trafficRules {
                    padding-top: 64px;
                    padding-bottom: 130px;
                }
            }
            
            .trafficRules-lead {
                margin-bottom: 56px;
                text-align: center;
                font-size: var(--fs-lead);
                line-height: var(--lh-lead);
            }
            
            .trafficRules-button {
                text-align: center;
                margin-top: 80px;
            }
            
            .trafficRules-button p {
                font-size: 24px;
                line-height: 40px;
                margin-bottom: 44px;
                font-weight: bold;
            }
            
            @media (max-width: 768px) {
                .trafficRules-button p {
                    font-size: 18px;
                    line-height: 28px;
                    margin-bottom: 24px;
                }
            }
            
            .trafficRules-button a img {
                display: inline-block;
                margin: 0 auto;
            }
            
            .trafficRules-button a img:hover {
                content: url("../img/img-button-traffic-rules-on.webp");
            }
            /* =====================================
Emergency Contact  section
===================================== */
            
            .emergencyContact {
                background: var(--bg-blue) no-repeat center top/cover;
                padding-bottom: 184px;
            }
            
            @media (max-width: 768px) {
                .emergencyContact {
                    padding-top: 52px;
                    padding-bottom: 154px;
                }
            }
            
            .emergencyContact-title {
                margin-bottom: 86px;
            }
            
            @media (max-width: 768px) {
                .emergencyContact-title {
                    font-size: 40px;
                    line-height: 50px;
                    margin-bottom: 40px;
                }
            }
            
            .emergencyContact-lead {
                margin-bottom: 32px;
                text-align: center;
                font-size: var(--fs-lead);
                line-height: var(--lh-lead);
            }
            
            @media (max-width: 768px) {
                .emergencyContact-lead {
                    font-size: 14px;
                    line-height: 24px;
                    margin-bottom: 16px;
                }
            }
            
            .emergencyContact-content {
                text-align: center;
                margin-top: 48px;
            }
            
            @media (max-width: 768px) {
                .emergencyContact-content {
                    margin-top: 0;
                }
            }
            
            .emergencyContact-content p {
                font-size: 40px;
                line-height: 50px;
                font-weight: bold;
            }
            
            @media (max-width: 768px) {
                .emergencyContact-content p {
                    font-size: 20px;
                    line-height: 40px;
                }
            }
            
            .emergencyContact-content a {
                font-size: 70px;
                line-height: 80px;
                font-weight: bold;
                text-decoration: none;
                color: var(--c-primary)
            }
            
            @media (max-width: 768px) {
                .emergencyContact-content a {
                    font-size: 35px;
                    line-height: 40px;
                }
            }
            /* =====================================
other content section
===================================== */
            
            .otherContent {
                background: var(--bg-beige) no-repeat center top/cover;
                padding-bottom: 400px;
            }
            
            @media (max-width: 768px) {
                .otherContent {
                    padding-top: 52px;
                    padding-bottom: 124px;
                }
            }
            
            .otherContent-title {
                margin-bottom: 108px;
            }
            
            @media (max-width: 768px) {
                .otherContent-title {
                    font-size: 33px;
                    line-height: 50px;
                    margin-bottom: 40px;
                }
            }
            
            .otherContent-lead {
                margin-bottom: 56px;
                text-align: center;
                font-size: var(--fs-lead);
                line-height: 40px;
            }
            
            @media (max-width: 768px) {
                .otherContent-lead {
                    font-size: 14px;
                    line-height: 24px;
                    margin-bottom: 24px;
                }
            }
            
            .otherContent-button {
                text-align: center;
                margin-top: 48px;
            }
            
            @media (max-width: 768px) {
                .otherContent-button {
                    margin-top: 24px;
                }
            }
            
            .otherContent-button p {
                font-size: 24px;
                line-height: 40px;
                margin-bottom: 32px;
                font-weight: bold;
            }
            
            @media (max-width: 768px) {
                .otherContent-button p {
                    font-size: 14px;
                    line-height: 24px;
                    margin-bottom: 24px;
                }
            }
            
            .otherContent-button.-second {
                margin-top: 110px;
            }
            
            @media (max-width: 768px) {
                .otherContent-button.-second {
                    margin-top: 48px;
                }
            }
            
            .otherContent-button a img {
                display: inline-block;
                margin: 0 auto;
            }
            
            .otherContent-button a img:hover {
                content: url("../img/img-button-other-content01-on.webp");
            }
            
            .otherContent-button.-second a img:hover {
                content: url("../img/img-button-other-content02-on.webp");
            }
            /* =====================================
Mainvisual
===================================== */
            
            .l-mainvisual {
                background: var(--bg-beige) no-repeat center;
                position: relative;
            }
            
            .l-mainvisual__img-wrapper {
                position: relative;
            }
            
            .l-mainvisual__img {
                width: 100%;
                margin: 0 auto;
                text-align: center;
            }
            
            .l-mainvisual__text-img {
                position: absolute;
                top: 10.869%;
                left: 50%;
                transform: translateX(-50%);
                z-index: 1;
                width: 100%;
                max-width: 37%;
                height: auto;
            }
            
            @media (max-width: 768px) {
                .l-mainvisual__text-img {
                    top: 21.3%;
                    max-width: 81.6%;
                }
            }
            
            .l-mainvisual__text {
                margin-top: 60px;
                text-align: center;
                font-size: 24px;
                line-height: 40px;
                font-weight: 900;
            }
            
            @media (max-width: 768px) {
                .l-mainvisual__text {
                    margin-top: 32px;
                    text-align: center;
                    font-size: 16px;
                    line-height: 30px;
                }
            }
            
            .quiz-banner {
                width: calc(100% - 32px);
                max-width: 984px;
                margin: 64px auto 136px;
                box-sizing: border-box;
            }

            .quiz-banner__link,
            .quiz-banner picture {
                display: block;
            }

            .quiz-banner img {
                display: block;
                width: 100%;
                height: auto;
            }

            .quiz-banner + .l-mainvisual__buttons {
                margin-top: 64px;
            }

            @media (max-width: 768px) {
                .quiz-banner {
                    margin: 32px auto 72px;
                }

                .quiz-banner + .l-mainvisual__buttons {
                    margin-top: 40px;
                }
            }

            .l-mainvisual__buttons {
                margin: 104px auto 0;
                padding-bottom: 192px;
            }
            
            @media (max-width: 768px) {
                .l-mainvisual__buttons {
                    margin: 40px auto 0;
                    padding-bottom: 80px;
                }
            }
            
            .inner-block {
                max-width: 984px;
                display: grid;
                grid-template-columns: repeat(3, 1fr);
                grid-template-rows: repeat(2, auto);
                gap: 10px 16px;
                justify-items: center;
                align-items: center;
            }
            
            .inner-block a img {
                display: block;
                height: auto;
                border-radius: 8px;
            }
            /* メインビジュアルのボタンを画面幅に応じて縮小（768px未満の2x3レイアウト切替まで） */
            
            .l-mainvisual__buttons .button-img {
                width: 100%;
                max-width: 318px;
                height: auto;
                aspect-ratio: 318 / 110;
            }
            
            .l-mainvisual__buttons .button-img img {
                width: 100%;
                height: 100%;
            }
            
            @media (max-width: 768px) {
                .l-mainvisual__buttons.inner-block {
                    width: 100%;
                    grid-template-columns: repeat(2, 1fr);
                    grid-template-rows: repeat(3, auto);
                    gap: 8px 8px;
                    padding-left: 16px;
                    padding-right: 16px;
                }
                .l-mainvisual__buttons.inner_block {
                    /* safety for potential underscore typo */
                    width: 100%;
                    grid-template-columns: repeat(2, 1fr);
                    grid-template-rows: repeat(3, auto);
                    gap: 8px 8px;
                }
                .l-mainvisual__buttons .button-img {
                    width: 100%;
                    aspect-ratio: 318 / 110;
                    height: auto;
                }
                .l-mainvisual__buttons .button-img img {
                    width: 100%;
                    height: 100%;
                }
            }
            /* =====================================
Cards
===================================== */
            /* デフォルト: 3列gridで折り返し */
            
            .cards-grid {
                display: grid;
                grid-template-columns: repeat(3, 1fr);
                gap: 124px 60px;
                max-width: 1145px;
                margin: 0 auto;
            }
            
            .cards-grid.-twice {
                grid-template-columns: none;
            }
            
            @media (min-width: 1600px) {
                .cards-grid.-middle {
                    display: grid;
                    grid-template-columns: repeat(4, 1fr);
                    max-width: 1600px;
                    margin-left: auto;
                    margin-right: auto;
                }
            }
            
            @media (min-width: 1960px) {
                .cards-grid.-middle {
                    display: grid;
                    grid-template-columns: repeat(4, 1fr);
                    max-width: 1600px;
                }
            }
            
            @media (min-width: 1600px) {
                .cards-grid.-long {
                    display: grid;
                    grid-template-columns: repeat(4, 1fr);
                    max-width: 1600px;
                    margin-left: auto;
                    margin-right: auto;
                }
            }
            
            @media (min-width: 1960px) {
                .cards-grid.-long {
                    display: grid;
                    grid-template-columns: repeat(5, 1fr);
                    max-width: 1960px;
                }
            }
            
            .card {
                display: flex;
                flex-direction: column;
            }
            
            .card-image {
                position: relative;
                margin-bottom: 16px;
            }
            
            .card-image::after {
                content: "";
                position: absolute;
                top: -32px;
                right: -20px;
                width: 166px;
                height: 121px;
                background: url("../img/img-cross-mark.webp") no-repeat center/contain;
                z-index: 1;
            }

            .card--circle-mark .card-image::after {
                background-image: url("../img/img-circle-mark.png");
            }
            
            .swiper::after {
                content: "";
                position: absolute;
                top: -32px;
                right: -20px;
                width: 166px;
                height: 121px;
                background: url("../img/img-cross-mark.webp") no-repeat center/contain;
                z-index: 1;
                display: none;
            }

            .trafficRules-slider-2.is-circle-mark::after,
            .trafficRules-slider-3.is-circle-mark::after {
                background-image: url("../img/img-circle-mark.png");
            }
            
            @media (max-width: 768px) {
                .swiper::after {
                    top: 0;
                    right: -10px;
                    width: 183px;
                    height: 134px;
                }
            }
            
            @media (max-width: 768px) {
                .card-image::after {
                    display: none;
                }
                .swiper::after {
                    display: block;
                }
            }
            
            @media (max-width: 768px) {
                .card {
                    width: 356px;
                    margin-left: auto;
                    margin-right: auto;
                }
                .card-image {
                    width: 356px;
                    height: auto;
                    margin-bottom: 0;
                }
                .card-text {
                    max-width: 356px;
                }
            }
            
            .card-image svg {
                position: absolute;
                inset: 0;
                width: 100%;
                height: 100%;
            }
            
            .card-text {
                font-size: 18px;
                line-height: 30px;
                font-weight: bold;
                max-width: 314px;
                margin: 0 auto;
            }
            
            .card-text-pc {
                font-size: 18px;
                line-height: 30px;
                font-weight: bold;
                max-width: 314px;
                margin: 0 auto;
                display: block;
            }
            
            @media (max-width: 768px) {
                .card-text-pc {
                    display: none;
                }
            }
            
            @media (max-width: 768px) {
                .card-text {
                    font-size: 16px;
                    line-height: 26px;
                    max-width: 100%;
                }
            }
            /* =====================================
Responsive tweaks
===================================== */
            
            @media (max-width: 1440px) {
                /* .l-section__inner {
                    max-width: var(--container);
                } */
            }
            /* 1240px以下でカード全体が縮むように調整 */
            
            @media (max-width: 1240px) {
                .cards-grid {
                    max-width: 100%;
                    padding-left: 16px;
                    padding-right: 16px;
                    box-sizing: border-box;
                }
                .card-image {
                    width: 100%;
                }
                .card-image img {
                    width: 100%;
                    height: auto;
                    display: block;
                }
                .card-text {
                    max-width: 100%;
                }
            }
            
            @media (max-width: 1024px) {
                .inner-block {
                    width: 100%;
                }
                .cards-grid {
                    grid-template-columns: repeat(2, 1fr);
                }
            }
            /* 769–1024pxのPC幅でも3列を維持して縮小表示 */
            
            @media (min-width: 769px) and (max-width: 1024px) {
                .cards-grid {
                    grid-template-columns: repeat(3, 1fr);
                }
            }
            
            @media (max-width: 768px) {
                .cards-grid {
                    gap: 0;
                    padding: 0;
                }
            }
            
            @media (max-width: 768px) {
                .road-manners-slider {
                    position: relative;
                    overflow-x: hidden;
                    /* 端のスライドを少し見切らせるため */
                    max-width: 100%;
                }
                .town-manners-slider {
                    position: relative;
                    overflow-x: hidden;
                    max-width: 100%;
                }
                .road-manners-slider .swiper-wrapper {
                    display: flex;
                }
                .town-manners-slider .swiper-wrapper {
                    display: flex;
                }
                .road-manners-slider .swiper-slide {
                    width: 356px;
                    flex-shrink: 0;
                }
                .town-manners-slider .swiper-slide {
                    width: 356px;
                    flex-shrink: 0;
                }
                .swiper-pagination {
                    display: flex;
                    justify-content: center;
                    gap: 12px;
                    margin-top: 32px;
                    position: static;
                }
                .swiper-pagination-bullet {
                    width: 6px;
                    height: 6px;
                    border-radius: 50%;
                    background-color: #fff;
                    cursor: pointer;
                    opacity: 1;
                    transition: background-color 0.3s ease;
                }
                .swiper-pagination-bullet-active {
                    background-color: #004678;
                }
                .swiper-pagination-bullet:hover {
                    background-color: rgba(0, 70, 120, 0.5);
                }
                .card-text {
                    padding: 0 52px;
                }
            }
            
            @media (min-width: 769px) {
                .road-manners-slider {
                    position: static;
                }
                /* .road-manners-slider.swiper {
					overflow-x: auto;
				} */
                .town-manners-slider {
                    position: static;
                }
                .swiper-pagination {
                    display: none;
                }
                .road-manners-slider .card {
                    opacity: 1;
                }
                .town-manners-slider .card {
                    opacity: 1;
                }
            }
            /* @media (max-width: 640px) {
                .l-section {
                    padding: 96px 0 160px;
                }
                @media (max-width: 768px) {
                    .l-section {
                        padding: 64px 0 160px;
                    }
                }
                .cards-grid {
                    grid-template-columns: 1fr;
                    max-width: 100%;
                }
                .inTown-lead {
                    font-size: 18px;
                    line-height: 28px;
                }
            } */
            /*-----------------------------------------------------------------------*/
            /* トップへ戻る */
            /*-----------------------------------------------------------------------*/
            
            .page_top {
                position: fixed;
                bottom: 20px;
                right: 10px;
                padding: 0 0;
                color: #fff;
                font-size: 20px;
                text-decoration: none;
                width: 56px;
                height: 56px;
                z-index: 1000000;
                text-indent: -9999px;
                opacity: 0;
                transition: opacity 0.7s ease;
                /* フェードのスピード調整 */
                cursor: pointer;
            }
            
            .page_top:before {
                content: '';
                width: 56px;
                height: 56px;
                /*background-color: rgba(16,41,121,0.8);*/
                background-color: rgba(0, 90, 100, 0.8);
                -moz-transition: all .3s;
                -webkit-transition: all .3s;
                transition: all .3s;
                border-radius: 50%;
                position: absolute;
                top: 0%;
                left: 0;
            }
            
            .page_top:after {
                content: '';
                width: 20px;
                height: 20px;
                border: 0px;
                border-left: solid 1px #fff;
                border-top: solid 1px #fff;
                -ms-transform: rotate(45deg);
                -webkit-transform: rotate(45deg);
                transform: rotate(45deg);
                position: absolute;
                top: 50%;
                left: 18px;
                margin-top: -6px;
            }
            
            .page_top:hover:before {
                background: rgba(85, 162, 171, 0.8);
            }
            
            @media screen and (max-width: 790px) {
                .page_top {
                    bottom: 22px;
                    font-size: 10px;
                    width: 28px;
                    height: 28px;
                }
                .page_top:before {
                    content: '';
                    width: 28px;
                    height: 28px;
                }
                .page_top:after {
                    content: '';
                    width: 12px;
                    height: 12px;
                    top: 50%;
                    left: 8px;
                    margin-top: -3px;
                }
            }
            
            @media (max-width: 768px) {
                .restrooms-slider {
                    position: relative;
                    overflow-x: hidden;
                    max-width: 100%;
                }
                .restrooms-slider .swiper-wrapper {
                    display: flex;
                }
                .restrooms-slider .swiper-slide {
                    width: 356px;
                    flex-shrink: 0;
                }
            }
            
            @media (min-width: 769px) {
                .restrooms-slider {
                    position: static;
                }
            }
            
            @media (max-width: 768px) {
                .mountain-slider {
                    position: relative;
                    overflow-x: hidden;
                    max-width: 100%;
                }
                .mountain-slider .swiper-wrapper {
                    display: flex;
                }
                .mountain-slider .swiper-slide {
                    width: 356px;
                    flex-shrink: 0;
                }
            }
            
            @media (min-width: 769px) {
                .mountain-slider {
                    position: static;
                }
            }
            
            @media (max-width: 768px) {
                .trafficRules-slider-1,
                .trafficRules-slider-2,
                .trafficRules-slider-3 {
                    position: relative;
                    overflow-x: hidden;
                    max-width: 100%;
                }
                .trafficRules-slider-1 .swiper-wrapper,
                .trafficRules-slider-2 .swiper-wrapper,
                .trafficRules-slider-3 .swiper-wrapper {
                    display: flex;
                }
                .trafficRules-slider-1 .swiper-slide,
                .trafficRules-slider-2 .swiper-slide,
                .trafficRules-slider-3 .swiper-slide {
                    width: 356px;
                    flex-shrink: 0;
                }
            }
            
            @media (min-width: 769px) {
                .trafficRules-slider-1,
                .trafficRules-slider-2,
                .trafficRules-slider-3 {
                    position: static;
                }
            }
            
            .atFacilities-slider {
                overflow: visible;
            }
            
            @media (max-width: 768px) {
                .atFacilities-slider {
                    position: relative;
                    overflow-x: hidden;
                    max-width: 100%;
                }
                .atFacilities-slider .swiper-wrapper {
                    display: flex;
                }
            }
            
            @media (min-width: 769px) {
                .atFacilities-slider {
                    position: static;
                }
            }
            
            @media (max-width: 768px) {
                .atFacilities-slider .atFacilities-content {
                    display: flex;
                    flex-wrap: nowrap;
                    gap: 0;
                    max-width: 100%;
                }
                .atFacilities-slider .atFacilities__inner {
                    max-width: 100%;
                    margin: 0 auto;
                }
                .atFacilities-slider .card-image {
                    width: 100%;
                }
            }
            
            @media (max-width: 768px) {
                /* Other Content 1st button: swap to SP images */
                .otherContent-button .button-img.button-img--large .btn-normal {
                    content: url("../img/img-button-other-content01-sp.webp");
                }
                .otherContent-button .button-img.button-img--large .btn-hover {
                    content: url("../img/img-button-other-content01-sp-on.webp");
                }
                /* Other Content 1st button: swap to SP images */
                .otherContent-button.-second .button-img.button-img--large .btn-normal {
                    content: url("../img/img-button-other-content02-sp.webp");
                }
                .otherContent-button.-second .button-img.button-img--large .btn-hover {
                    content: url("../img/img-button-other-content02-sp-on.webp");
                }
                /* 各スライダー共通: ページネーションをスライダー直下に絶対配置 */
                .road-manners-slider .swiper-pagination,
                .town-manners-slider .swiper-pagination,
                .restrooms-slider .swiper-pagination,
                .mountain-slider .swiper-pagination,
                .trafficRules-slider-1 .swiper-pagination,
                .trafficRules-slider-2 .swiper-pagination,
                .trafficRules-slider-3 .swiper-pagination {
                    position: static;
                    display: flex;
                    justify-content: center;
                    gap: 32px;
                    margin: 12px 0;
                    width: auto;
                    max-width: max-content;
                    margin-left: auto;
                    margin-right: auto;
                }
                .road-manners-slider .card-texts,
                .town-manners-slider .card-texts,
                .restrooms-slider .card-texts,
                .mountain-slider .card-texts,
                .trafficRules-slider-1 .card-texts,
                .trafficRules-slider-2 .card-texts,
                .trafficRules-slider-3 .card-texts {
                    display: flex;
                    justify-content: center;
                    align-items: flex-start;
                }
                .road-manners-slider .card-texts {
                    min-height: 104px;
                }
                .town-manners-slider .card-texts {
                    min-height: 78px;
                }
                .restrooms-slider .card-texts {
                    min-height: 104px;
                }
                .mountain-slider .card-texts {
                    min-height: 78px;
                }
                .trafficRules-slider-1 .card-texts {
                    min-height: 52px;
                }
                .trafficRules-slider-2 .card-texts {
                    min-height: 78px;
                }
                .trafficRules-slider-3 .card-texts {
                    min-height: 78px;
                }
                .road-manners-slider .card-texts .card-text,
                .town-manners-slider .card-texts .card-text,
                .restrooms-slider .card-texts .card-text,
                .mountain-slider .card-texts .card-text,
                .trafficRules-slider-1 .card-texts .card-text,
                .trafficRules-slider-2 .card-texts .card-text,
                .trafficRules-slider-3 .card-texts .card-text {
                    display: none;
                }
                .road-manners-slider .card-texts .card-text:first-child,
                .town-manners-slider .card-texts .card-text:first-child,
                .restrooms-slider .card-texts .card-text:first-child,
                .mountain-slider .card-texts .card-text:first-child,
                .trafficRules-slider-1 .card-texts .card-text:first-child,
                .trafficRules-slider-2 .card-texts .card-text:first-child,
                .trafficRules-slider-3 .card-texts .card-text:first-child {
                    display: block;
                }
                .atFacilities-slider .swiper-pagination {
                    position: absolute;
                    left: 50%;
                    bottom: 0;
                    transform: translateX(-50%);
                    display: flex;
                    justify-content: center;
                    gap: 32px;
                    margin: 0;
                    width: auto;
                    z-index: 2;
                }
                .atFacilities-slider .swiper-pagination-atfacilities {
                    position: static;
                    display: flex;
                    justify-content: center;
                    gap: 32px;
                    margin: 12px 0;
                    width: auto;
                    max-width: max-content;
                    margin-left: auto;
                    margin-right: auto;
                }
                .atFacilities-slider .card-texts {
                    display: flex;
                    justify-content: center;
                    align-items: flex-start;
                    min-height: 104px;
                }
                .atFacilities-slider .card-texts .card-text {
                    display: none;
                }
                .atFacilities-slider .card-texts .card-text:first-child {
                    display: block;
                }
                /* ページネーション分の余白を下に確保 */
                .atFacilities-slider {
                    padding-bottom: 40px;
                }
            }
            /* PC/SP表示制御 (強制適用) */
            
            .pc-only {
                display: block;
            }
            
            .sp-only {
                display: none;
            }
            
            @media (max-width: 768px) {
                .pc-only {
                    display: none;
                }
                .sp-only {
                    display: block;
                }
            }
            /* br制御: デフォルト非表示 */
            
            .br--sp {
                display: none;
            }
            
            @media (max-width: 768px) {
                .br--sp {
                    display: inline;
                }
            }
            
            @media (max-width: 768px) {
                /* Traffic Rules button: swap to SP images */
                .trafficRules-button .button-img--traffic-rules .btn-normal {
                    content: url("../img/img-button-traffic-rules-sp.webp");
                }
                .trafficRules-button .button-img--traffic-rules .btn-hover {
                    content: url("../img/img-button-traffic-rules-sp-on.webp");
                }
            }
            /* Swiper Fix */
            
            .swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,
            .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
                margin: 0 auto!important
            }
            /* PC: hide At Facilities pagination */
            
            @media (min-width: 769px) {
                .atFacilities-slider .swiper-pagination-atfacilities {
                    display: none !important;
                }
            }
            
            @media (max-width: 768px) {
                /* SP-only: ensure inner texts are visible on mobile */
                .sp-only .card-texts {
                    display: block;
                }
                .sp-only .card-text {
                    display: block;
                }
            }
            
            @media (max-width: 768px) {
                .atFacilities-slider .card-texts .card-text:not(:first-child) {
                    display: none;
                }
                .road-manners-slider .card-texts .card-text:not(:first-child),
                .town-manners-slider .card-texts .card-text:not(:first-child),
                .restrooms-slider .card-texts .card-text:not(:first-child),
                .mountain-slider .card-texts .card-text:not(:first-child),
                .trafficRules-slider-1 .card-texts .card-text:not(:first-child),
                .trafficRules-slider-2 .card-texts .card-text:not(:first-child),
                .trafficRules-slider-3 .card-texts .card-text:not(:first-child) {
                    display: none;
                }
                /* At Facilities: Fixed title for SP */
                .atFacilities-fixed-title {
                    text-align: center;
                    margin-bottom: 12px;
                }
                .atFacilities-fixed-title .l-section-title {
                    position: relative;
                    padding: 0;
                }
                .atFacilities-fixed-title .l-section-title::before {
                    position: absolute;
                    left: 50%;
                    top: -16px;
                    transform: translateX(-50%);
                    width: 316px;
                    height: 82px;
                }
                .atFacilities-fixed-title .l-section-title h3 {
                    font-size: 19px;
                    line-height: 26px;
                    white-space: nowrap;
                }
                .atFacilities-fixed-title .l-section-title h3 {
                    width: 240px;
                    white-space: wrap;
                    height: 50px;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                }
            }
            /* =====================================
            Language Switcher
            ===================================== */

            .l-language-switcher {
                position: absolute;
                top: 44px;
                right: 44px;
                z-index: 10000;
                width: 180px;
                font-family: inherit;
            }

            .l-language-switcher__toggle {
                position: relative;
                display: block;
                box-sizing: border-box;
                width: 100%;
                height: 50px;
                padding: 0 42px 0 20px;
                border: 2px solid #ffffff;
                border-radius: 10px;
                background-color: #004678;
                color: #ffffff;
                font: inherit;
                font-size: 20px;
                font-weight: 500;
                line-height: 1;
                text-align: center;
                cursor: pointer;
                transition: background-color 0.3s ease;
            }

            .l-language-switcher__toggle:hover {
                background-color: #004678;
            }

            .l-language-switcher__arrow {
                position: absolute;
                top: 16px;
                right: 20px;
                width: 10px;
                height: 10px;
                border-right: 2px solid #ffffff;
                border-bottom: 2px solid #ffffff;
                transform: rotate(45deg);
                transition: transform 0.2s ease;
            }

            .l-language-switcher__toggle[aria-expanded="true"] {
                border-radius: 10px 10px 0 0;
            }

            .l-language-switcher__toggle[aria-expanded="true"] .l-language-switcher__arrow {
                top: 21px;
                transform: rotate(225deg);
            }

            .l-language-switcher__menu {
                position: absolute;
                top: 48px;
                left: 0;
                box-sizing: border-box;
                width: 100%;
                margin: 0;
                padding: 0 0 4px;
                overflow: hidden;
                border: 2px solid #ffffff;
                border-top: 0;
                border-radius: 0 0 10px 10px;
                background-color: #004678;
                list-style: none;
            }

            .l-language-switcher__link {
                display: block;
                padding: 10px 14px;
                color: #ffffff;
                font-size: 20px;
                font-weight: 500;
                line-height: 1.2;
                text-align: center;
                text-decoration: none;
                transition: background-color 0.2s ease, color 0.2s ease;
            }

            .l-language-switcher__link.is-current {
                background-color: rgba(255, 255, 255, 0.12);
            }

            .l-language-switcher__link:hover,
            .l-language-switcher__link:focus-visible {
                background-color: #f0d24f;
                color: #004678;
            }

            @media (max-width: 768px) {
                .l-language-switcher {
                    top: 16px;
                    right: 16px;
                    width: 112px;
                }

                .l-language-switcher__toggle {
                    height: 32px;
                    padding: 0 28px 0 10px;
                    border-radius: 6px;
                    font-size: 12px;
                }

                .l-language-switcher__arrow {
                    top: 9px;
                    right: 12px;
                    width: 7px;
                    height: 7px;
                    border-width: 1.5px;
                }

                .l-language-switcher__toggle[aria-expanded="true"] {
                    border-radius: 6px 6px 0 0;
                }

                .l-language-switcher__toggle[aria-expanded="true"] .l-language-switcher__arrow {
                    top: 12px;
                }

                .l-language-switcher__menu {
                    top: 30px;
                    padding-bottom: 2px;
                    border-radius: 0 0 6px 6px;
                }

                .l-language-switcher__link {
                    padding: 7px 6px;
                    font-size: 12px;
                    line-height: 1.2;
                    white-space: nowrap;
                }
            }
            /* =====================================
            Footer
            ===================================== */
            
            .l-footer {
                background-color: #1a4a7a;
                color: #ffffff;
                text-align: center;
                padding: 166px 20px 80px;
            }
            
            .l-footer__nav {
                margin-bottom: 88px;
            }
            
            .l-footer__nav-link {
                color: #ffffff;
                text-decoration: none;
                font-size: 20px;
                line-height: 36px;
                font-weight: 400;
                transition: opacity 0.3s ease;
            }
            
            .l-footer__nav-link:hover {
                opacity: 0.8;
            }
            
            .l-footer__nav-separator {
                margin: 0 20px;
                color: #ffffff;
                font-size: 20px;
                font-weight: 400;
            }
            
            .l-footer__info {
                margin-bottom: 94px;
            }
            
            .l-footer__org-name {
                font-size: 32px;
                font-weight: 300;
                margin-bottom: 24px;
                line-height: 1.4;
            }
            
            .l-footer__contact p {
                margin: 0 0;
                font-size: 26px;
                line-height: 36px;
				font-weight: 300;
				color:#fff;
				text-decoration: none;
            }
            
            .l-footer__postal {
                font-size: 18px;
                font-weight: 600;
            }
            
            .l-footer__address {
                font-size: 16px;
				color:#fff;
				text-decoration: none;
            }

			.l-footer__address a{
				color:#fff;
				text-decoration: none;
			}
            
            .l-footer__phone {
                font-size: 16px;
                font-weight: 600;
				color:#fff;
				text-decoration: none;
            }

			.l-footer__phone a{
				color:#fff;
				text-decoration: none;
			}
            
            .l-footer__hours {
                font-size: 16px;
            }
            
            .l-footer__copyright {
                font-size: 20px;
                line-height: 34px;
                font-weight: 400;
            }
            
            .l-footer__copyright p {
                margin: 0;
            }
            
            @media (max-width: 768px) {
                .l-footer {
                    padding: 68px 16px 92px;
                }
                .l-footer__nav {
                    margin-bottom: 36px;
                }
                .l-footer__nav-link {
                    font-size: 12px;
                    line-height: 20px;
                }
                .l-footer__nav-separator {
                    margin: 0;
                    font-size: 14px;
                }
                .l-footer__info {
                    margin-bottom: 30px;
                }
                .l-footer__org-name {
                    font-size: 20px;
                    margin-bottom: 16px;
                    line-height: 26px;
					font-weight: 400;
                }
                .l-footer__contact p {
                    margin: 0;
                    font-size: 14px;
                    line-height: 24px;
					font-weight: 400;
                }
                .l-footer__postal {
                    font-size: 16px;
                    line-height: 24px;
                }
                .l-footer__address {
                    font-size: 14px;
                }
                .l-footer__phone {
                    font-size: 14px;
                }
                .l-footer__hours {
                    font-size: 14px;
                }
                .l-footer__copyright {
                    font-size: 14px;
                    line-height: 22px;
                    font-weight: 400;
                }
            }
