    @charset "utf-8";

    .clearfix {
        display: block;
    }

    .sp {
        display: none;
    }

    body {
        color: #000;
        font-family: "Noto Sans JP", sans-serif;
    }

    /* fv */
    #fv {
        background-color: #7ecdf9;
        line-height: 0;
        text-align: center;
        width: 100%;
        overflow: hidden;
    }

    #fv picture {
        display: block;
        width: 100%;
    }

    #fv img {
        width: 100%;
        display: block;
        height: auto;
    }

    /* PC size (viewport > 1500px):
       Maintain fixed height (878px) and crop the sides (centered) when viewport width is below 1900px.
       If viewport is above 1900px, center it with a max-width of 1900px.
    */
    @media screen and (min-width: 1501px) {
        #fv img {
            width: 100%;
            max-width: 1900px;
            height: 878px;
            object-fit: cover;
            object-position: center;
            margin: 0 auto;
        }
    }

    #wrapper,
    #map {
        width: 100%;
        margin: 0 auto;
    }

    /* box01 */
    #box01 {
        line-height: 0;
        background: #ffd2e1;
        width: 100%;
        padding: 5% 0;
    }

    #box01 div {
        width: 90%;
        max-width: 1200px;
        margin: 0 auto;
    }

    /* map */
    #map {
        padding: 5% 0;
        background-color: #f2f7fa;
    }

    #map h2 {
        text-align: center;
        margin: 0 auto 3%;
        width: 90%;
        max-width: 1200px;
    }

    #map_wrapper {
        max-width: 1000px;
        width: 90%;
        margin: 0 auto;
        position: relative;
    }

    svg {
        width: 100%;
    }

    path,
    rect {
        transition: .2s;
        cursor: pointer;

    }

    /* =========================
        hover
        ========================= */

    #fukuoka:hover {
        fill: #75bad3;
        filter: drop-shadow(0 0 2px rgba(0, 0, 0, .3));

    }

    #kitakyu:hover {
        fill: #3e8aaa;
        filter: drop-shadow(0 0 2px rgba(0, 0, 0, .3));
    }

    #saga:hover {
        fill: #a381bc;
        filter: drop-shadow(0 0 2px rgba(0, 0, 0, .3));
    }

    #nagasaki:hover {
        fill: #ffa58d;
        filter: drop-shadow(0 0 2px rgba(0, 0, 0, .3));
    }

    #kumamoto:hover {
        fill: #f6931c;
        filter: drop-shadow(0 0 2px rgba(0, 0, 0, .3));
    }

    #oita:hover {
        fill: #a3e635;
        filter: drop-shadow(0 0 2px rgba(0, 0, 0, .3));
    }

    #miyazaki:hover {
        fill: #d84176;
        filter: drop-shadow(0 0 2px rgba(0, 0, 0, .3));
    }

    #kagoshima:hover {
        fill: #009244;
        filter: drop-shadow(0 0 2px rgba(0, 0, 0, .3));
    }

    /* =========================
        map titles
        ========================= */
    #fukuoka_title,
    #kitakyu_title,
    #saga_title,
    #nagasaki_title,
    #oita_title,
    #kumamoto_title,
    #miyazaki_title,
    #kagosima_title {
        position: absolute;
        text-align: center;
        display: block;
        pointer-events: none;
    }

    /* --- 福岡 --- */
    #fukuoka_title {
        top: 14%;
        left: 53%;
        width: 12%;
    }

    #fukuoka_title.hover {
        top: 12%;
        left: 48%;
        width: 23%;
    }

    /* --- 北九州 --- */
    #kitakyu_title {
        top: 1%;
        left: 61%;
        width: 16%;
    }

    #kitakyu_title.hover {
        left: 57%;
        width: 29%;
    }

    /* --- 佐賀 --- */
    #saga_title {
        top: 11.7%;
        left: 24%;
        width: 16%;
    }

    #saga_title.hover {
    top: 8.7%;
    left: 20%;
    width: 23%;
    }

    /* --- 長崎 --- */
    #nagasaki_title {
        top: 18%;
        left: 1%;
        width: 16%;
    }

    #nagasaki_title.hover {
        top: 16%;
        left: -2%;
        width: 23%;
    }

    /* --- 大分 --- */
    #oita_title {
        top: 16%;
        left: 80.5%;
        width: 16%;
    }

    #oita_title.hover {
        top: 13%;
        left: 77.5%;
        width: 23%;
    }

    /* --- 熊本 --- */
    #kumamoto_title {
        top: 46%;
        left: 45.5%;
        width: 16%;
    }

    #kumamoto_title.hover {
top: 44%;
    left: 40.5%;
    width: 26%;
    }

    /* --- 宮崎 --- */
    #miyazaki_title {
        top: 46%;
        left: 78%;
        width: 16%;
    }

    #miyazaki_title.hover {
        top: 46%;
        left: 72%;
        width: 28%;
    }

    /* --- 鹿児島 --- */
    #kagosima_title {
        top: 74.5%;
        left: 49%;
        width: 22%;
    }

    #kagosima_title.hover {
        top: 72.5%;
        left: 43%;
        width: 33%;
    }


    #map_img {
        position: absolute;
        top: 38%;
        left: 5%;
        text-align: center;
        display: block;
        width: 30%;
    }

    #map_img picture {
        display: block;
        width: 100%;
    }

    #map_img img {
        width: 100%;
        display: block;
        height: auto;
    }

    /* =========================
        modal
        ========================= */

    .modal {
        position: fixed;
        inset: 0;

        background: rgba(0, 0, 0, .7);

        display: none;

        justify-content: center;
        align-items: center;

        padding: 20px;

        z-index: 1000;
    }

    .modal.active {
        display: flex;
    }

    .modal-content {
        width: 100%;
        max-width: 600px;
        max-height: 90vh;
        display: flex;
        flex-direction: column;
        background: #fff;
        border-radius: 20px;
        position: relative;
        overflow: hidden;
    }


    .modal-content h2 {
        margin: 0;
        font-size: 1.5em;
        padding: 3%;
        background-color: #004a9f;
        border-radius: 20px 20px 0 0;
        color: #fff;
        text-align: center;
        flex-shrink: 0;
    }

    .modal-body {
        overflow-y: auto;
        padding: 20px 0;
        -webkit-overflow-scrolling: touch;
    }

    .modal-body>figure {
        text-align: center;
        padding: 0 5%;
        border-radius: 0;
        margin: 0 0 3%;
    }

    .modal-body>p {
        line-height: 1.8;
        padding: 0 5% 3%;
        text-align: center;
        font-weight: bold;
        font-size: clamp(14px, 10.5217px + 1.087vw, 24px);
        line-height: 1.5;
    }

    .modal-body p strong {
        color: red;
    }

    .modal-body>p span {
        background-color: #eee;
        padding: .5% 2%;
        border-radius: 5px;
        display: block;
        margin: 2% 0 0;
        font-size: clamp(10px, 7.913px + 0.6522vw, 16px);
    }

    .tmoney {
        padding: 5% 5% 0;
    }

    .btn {
        width: 50%;
        text-align: center;
        margin: 0 auto;
    }

    .btn a {
        display: block;
        background-color: #75bad3;
        color: #fff;
        text-decoration: none;
        border-radius: 5px;
        margin: 0 auto;
        padding: 2% 0;
        font-size: clamp(10px, 7.913px + 0.6522vw, 16px);
    }

    .close {
        position: absolute;
        top: 15px;
        right: 15px;

        width: 40px;
        height: 40px;

        border: none;
        border-radius: 50%;

        cursor: pointer;
        line-height: 1;
        font-size: 20px;
        padding: 0;
        background: none;
        color: #fff;
        font-size: 2em;
    }



    #ken_logo {
        width: 90%;
        max-width: 1200px;
        margin: 0 auto;
        padding: 5% 0;
    }

    .logo_row {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 2em;
        margin-bottom: 1.5em;
    }

    .logo_row.top li {
        width: 48%;
    }

    .logo_row.top li img {
        max-width: none;
    }

    .logo_row li {
        list-style: none;
    }

    .logo_row img {
        display: block;
        max-width: 200px;
        width: 100%;
        height: auto;
    }

    /* footer */
    footer {
        width: 100%;
        background: #e2dcd1;
        padding: 5% 0;
        text-align: center;
    }

    footer h2 {
        margin: 0 0 2em;
    }

    footer h2 img {
        margin: 0 auto;
    }

    footer ul:first-of-type {
        gap: .5em;
        max-width: 1100px;
        margin: 0 auto 2em;
        width: 90%;
    }


    footer ul {
        display: flex;
        justify-content: center;
        gap: 1em;
    }



    /*スマホ
------------------------------*/

    @media screen and (max-width: 750px) {
        .pc {
            display: none;
        }

        .sp {
            display: block;
        }

        .logo_row {
            flex-wrap: wrap;
        }

        .logo_row {
            justify-content: space-between;
            gap: 0;
            margin: 0;
        }

        .logo_row li {
            width: 47%;
            text-align: center;
            margin: 0 0 1em;
        }

        .logo_row.top li {
            width: 100%;
        }

        .logo_row.top li img {
            max-width: none;
        }

        footer h2 {
            width: 50%;
            margin: 0 auto 3%;
        }

        footer ul {
            display: flex;
            justify-content: center;
            gap: 1em;
        }

        footer ul li {
            width: 10%;
        }
    }

    /* ==========================================================================
       Hamburger Menu Styles
       ========================================================================== */
    /* Hamburger Menu Button */
    .hamburger-btn {
        position: fixed;
        top: 25px;
        right: 25px;
        z-index: 1010;
        width: 30px;
        height: 24px;
        background: none;
        border: none;
        cursor: pointer;
        padding: 0;
        transition: all 0.3s ease;
    }

    .hamburger-btn span {
        position: absolute;
        left: 0;
        width: 100%;
        height: 2px;
        background-color: #004a9f;
        transition: all 0.3s ease-in-out;
    }

    .hamburger-btn span:nth-child(1) {
        top: 0;
    }

    .hamburger-btn span:nth-child(2) {
        top: 11px;
    }

    .hamburger-btn span:nth-child(3) {
        top: 22px;
    }

    /* Hamburger Active Transform to X */
    .hamburger-btn.active span:nth-child(1) {
        top: 11px;
        transform: rotate(45deg);
        background-color: #fff;
    }

    .hamburger-btn.active span:nth-child(2) {
        opacity: 0;
    }

    .hamburger-btn.active span:nth-child(3) {
        top: 11px;
        transform: rotate(-45deg);
        background-color: #fff;
    }

    /* Navigation Menu Overlay */
    .hamburger-nav {
        position: fixed;
        top: 0;
        right: -100%;
        width: 100%;
        height: 100vh;
        background-color: rgba(0, 74, 159, 0.98);
        backdrop-filter: blur(15px);
        -webkit-backdrop-filter: blur(15px);
        z-index: 1005;
        transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
        display: flex;
        flex-direction: column;
        justify-content: center;
        overflow-y: auto;
    }

    .hamburger-nav.active {
        right: 0;
    }

    .nav-container {
        max-width: 1500px;
        width: 90%;
        margin: 0 auto;
        padding: 40px 0;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .nav-title {
        font-size: clamp(1rem, 0.85rem + 0.5vw, 1.2rem);
        font-weight: bold;
        color: rgba(255, 255, 255, 0.8);
        margin-bottom: 2rem;
        position: relative;
        padding-bottom: 8px;
        text-align: center;
        letter-spacing: 0.1em;
    }

    .nav-title::after {
        content: "";
        position: absolute;
        bottom: 0;
        left: 50%;
        transform: translateX(-50%);
        width: 40px;
        height: 2px;
        background-color: #fff;
    }

    .nav-list {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 20px;
        width: 100%;
        padding: 0;
        margin: 0;
        list-style: none;
    }

    .nav-list li {
        text-align: center;
    }

    .nav-list a {
        display: block;
        padding: 22px 15px;
        background-color: rgba(255, 255, 255, 0.08);
        border: 2px solid rgba(255, 255, 255, 0.15);
        border-radius: 16px;
        color: #fff;
        font-size: clamp(1rem, 0.9rem + 0.3vw, 1.15rem);
        font-weight: bold;
        text-decoration: none;
        transition: all 0.25s ease;
        letter-spacing: 0.05em;
    }

    .nav-list a:hover {
        background-color: #fff;
        border-color: #fff;
        color: #004a9f;
        transform: translateY(-4px);
        box-shadow: 0 8px 25px rgba(255, 210, 225, 0.3);
    }

    /* Prevent scrolling when menu is open */
    body.menu-open {
        overflow: hidden;
    }

    /* Responsive adjustments for Navigation Grid */
    @media screen and (max-width: 1024px) {
        .nav-list {
            grid-template-columns: repeat(2, 1fr);
            gap: 16px;
        }
    }

    @media screen and (max-width: 600px) {
        .nav-list {
            grid-template-columns: 1fr;
            gap: 12px;
        }

        .nav-list a {
            padding: 16px;
        }
    }