        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
html, body {
    height: auto; /* 100vhに固定せず、コンテンツに合わせる */
    margin: 0;
    padding: 0;
    /* 端での「ビヨーン」となる動きを完全に止める */
    overscroll-behavior: none;
    scroll-behavior: smooth;
    background-color: #fff;
}
        body {
            font-family: 'Noto Sans JP', sans-serif;
            background-image: url('../img/pc_ireland.jpg')!important;
            overflow-x: hidden;
            overflow-y: auto;
            background-size: cover;
            background-position: center;
            background-attachment: fixed;
        }

        /* -------------------------------------- */
        /* SP & 共通スタイル */
        /* -------------------------------------- */

        /* FV - SP時は画面全体、PC時は中央コンテンツの最初のセクションとして機能 */
        .sp-fv {
            /* JSで高さを設定するため、vh/dvh指定を削除 */
            position: relative;
            display: flex;
            flex-direction: column;
            height: auto!important;
            background-color: #fff;
        }

        .sp-header.fixed {
            z-index: 9999;
        }
        .logo-circle{
            position: absolute;
            left: 5px;
            top: 5px;
        }
        .logo-circle img {
            width: 70px;
        }

        .header-icons {
            display: flex;
            flex-direction: column;
            gap: 14px;
            position: fixed;
            right: 15px;
            top: 8px;
            z-index: 9998;
        }

        .menu-icon {
            width: 32px;
            height: 32px;
            border-radius: 5px;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            gap: 4px;
        }

        .menu-line {
            width: 24px;
            height: 2px;
            background: #000000;
        }

        .icon-btn {
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .icon-btn img {
            width: 30px;
            height: 30px;
        }
        .footer-coppy{
            font-size: 16px; 
            color: #fff; 
            font-weight: bold;
        }
/*フェードイン*/
    @keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px); /* 20px下から開始 */
    }
    to {
        opacity: 1;
        transform: translateY(0);    /* 元の位置へ */
    }
}
.on-load-fade {
    opacity: 0; /* 最初は消しておく */
    animation: fadeInUp 1s ease-out forwards; /* 0.8秒かけて実行し、最後の状態を維持 */
}
        /* PC表示時のヘッダー固定位置調整 */
        @media (min-width: 768px) {
            .sp-header.fixed {
                left: calc(50% - 240px); /* 480pxの半分 = 240px */
                right: auto;
                width: 480px;
                z-index: 9999;
            }
        }      


        /* FV画像ラッパー */
        .content-wrapper {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%; 
            display: flex;
            align-items: flex-end; /* 画像を下に寄せる */
            justify-content: center;
        }
        

        img.ireland {
            width: 100%;
            height: 100%; 
            object-fit: cover; 
            flex-shrink: 0;
        }
        
        /* FVオーバーレイコンテンツ */
        .fv-overlay {
            text-align: center;
             margin-top: 56px; /* ヘッダーとの衝突回避 */
        }

        .fv-logo img {
            width: 70vw;
            height: auto;
        }

        .fv-ribbon img {
            width: 64vw;
            height: auto;
        }

        .fv-main-text h1 {
            font-family: 'Noto Sans JP';
            font-size: 4.9vw;
            font-weight: 600;
            line-height: 1.6rem;
        }
        .fv-time{
                position: absolute;
    top: -6px;
        }
        .time-corner{
background-color: #000;
    border-radius: 4px;
    color: #fff;
    font-size: 17px;
    width: 200px;
    height: 16px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
    font-weight: 500;
    position: relative;
        }
        .day-label {
            display: inline-flex; /* flexにして中央寄せを可能にする */
            align-items: center;
            justify-content: center;
            width: 32px; /* 正円の直径 */
            height: 32px; /* 正円の直径 */
            border-radius: 50%; /* 正円にする */
            margin: 0 7px; /* 前後の文字との間隔を調整 */
            font-size: 14px; /* 文字サイズ調整 */
            font-weight: 500;
            color: #fff; /* 文字色を白に設定 */
            line-height: 1; /* 行の高さを1に設定して、中央寄せを安定させる */
            vertical-align: middle; /* 上下のずれを調整 */
            transform: translateY(-4px); /* 微妙な縦位置の調整 */
        }

        /* 土曜日の背景色（例: 緑） */
        .is-sat {
            background-color: #40c040; /* アイルランドカラーの緑系 */
            margin-right: 7px;
        }
        .is-sat .week{
            position: absolute;
            top: 8px;
            left: 4px;
        }
        .is-sun .week{
            position: absolute;
            top: 8px;
            left: 3px;
        }
        /* 日曜日の背景色（例: オレンジ） */
        .is-sun {
            background-color: #ff8000; /* アイルランド国旗のオレンジ系 */
        }
        span.day{
            display: inline-block;
        }
        span.day-margin{
            margin-left: 7px;
        }
        .fv-date{
            font-size: 40px;
            font-weight: 700;
            margin-bottom: 3px;
        }
        .fv-location {
            font-size: 16px;
            font-weight: 600;
            padding: 10px 0 15px;
            color: #000;
            text-align: center;
            background-color: #fff; 
        }

        /* カルーセル */
        .carousel-section {
            width: 100%;
            padding: 0;
        }

        .carousel-container {
            z-index: 10;
            position: relative;
            transform: translateX(-50%);
            width: 100%;
            max-width: 100%;
            overflow: hidden;
            background-color: #fff;
        }

        .carousel-wrapper {
            display: flex;
            transition: transform 0.6s ease-in-out;
            gap: 3px;
            width: max-content;
        }

        .carousel-item {
            background: white;
            flex-shrink: 0;
            width: calc((100vw - 6px) / 3);
        }

        .carousel-image {
            width: 100%;
            height: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .carousel-image img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

        /* リボン */
        .stpatrick-ribbon {
            color: #fff;
            text-align: center;
            font-size: 16px;
            overflow: hidden;
            margin: 0; 
            flex-shrink: 0;
            z-index: 100;
            width: 100%;
        }

        .stpatrick-ribbon p{
            position: absolute;
            left: 24%;
            z-index: 2;
            font-weight: 500;
            letter-spacing: 0.05rem;
        }
        .fv-main-text{
            color: #000;
        }
        .fv-content{
            background-image: url("../img/fvbk.jpg");
            background-size: cover!important;
        }
        .borantia button p{
            font-size: 18px;
        }
        /* メインコンテンツラッパー (SPでは縦に流れる) */
        #introduction {
            text-align: center;
            background-image: url("../img/backimg.jpg");
            background-size: contain;
        }
        #introduction > img:first-child{
            position: absolute;
            z-index: -1;
            width: 480px;
            right: 37.5%;
            top: 0;
        }
        .title{
            padding-top: 269px;
        }
        /* 左右カラムはSPでは非表示 */
        .left-column, .right-column {
            display: none;
        }
        
        /* ページトップボタン */
        .page-top {
            position: fixed;
            bottom: 14%;
            right: 1rem;
            width: 32px;
            height: 32px;
            background: #404040;
            color: white;
            border: none;
            border-radius: 5px;
            cursor: pointer;
            z-index: 1000;
            display: flex;
            justify-content: center;
        }
        
        .page-top.show {
            opacity: 1;
            visibility: visible;
        }
        
        
        .floating-nav{
display: flex;
    position: fixed;
    z-index: 9998;
    /* アニメーションの準備：透明・少し下へ */
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.4s ease, transform 0.4s ease, visibility 0.4s;
        }
        .floating-nav.is-show {
            opacity: 1;
    visibility: visible;
        }
        .floating-nav-btn {
            background-image: linear-gradient(0deg, #000000, #1f1f1f 37%, #363636 70%, #494949);
    color: white;
    border: none;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    box-shadow: 0 4px 15px rgba(0,0,0,0.3);
    height: 60px;
    position: relative;
    transition: background 0.3s;
        }
        .left1 span{
            font-size: 18px;
        }
td{
    text-align: left;
    border: none;
    vertical-align: top;
}
table{
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 0;
    font-size: 15px;
    line-height: 1.5;
}
        .contact{
        font-size: 20px; 
        color: #fff;
        font-weight: bold;
        }
        .fvbg{
            position: absolute;
            bottom: -85%;
        }
        .borantia{
            position: absolute;
            top: 98%;
            z-index: 999;
            text-align: center;
            background-color: #fff;
            width: 100%;
        }
        .borantia > .fvbg.sp{
            z-index: -1;
        }
        .borantia button{
            position: absolute;
    width: 280px;
    bottom: -7px;
    left: 50%;
    transform: translateX(-50%);
    border-radius: 30px;
    border: none;
    background-color: #fff;
    box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);
    z-index: 99999;
    height: 30px;
    font-weight: bold;
    font-family: 'Noto Sans JP';
    color: #202020;
        }
        .main-content-wrapper .fv-ribbon{
            margin: 15px 0 0;
            display: flow-root;
        }
        .borantia button:after{
                content: "";
    display: block;
    width: 0;
    height: 0;
    border-top: 4px solid transparent;
    border-bottom: 3px solid transparent;
    border-left: 6px solid #333;
    right: 5%;
    position: absolute;
    top: 40%;
        }
        .footerbg{
            margin: 105px 0 -5px;
        }
        
        .clover{
         width: 24px; 
         height: 22px;
         }
         .nav-button_event .nav-title, .nav-button_event span,
         .nav-button_time .nav-title, .nav-button_time span {
    opacity: 0.4;
}
.text-margin{
    margin-top: 20px;
    display: block;
}
.fade-up {
    opacity: 0;
    transform: translateY(30px); /* 30px下から開始 */
    transition: opacity 1s ease-out, transform 1s ease-out;
    will-change: opacity, transform; /* ブラウザの動作を滑らかにする */
}

/* スクロールして画面に入った時にJavaScriptで付与するクラス */
.fade-up.is-visible {
    opacity: 1;
    transform: translateY(0);
}


/* モーダルメニュー */
        .modal-menu {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: white;
            z-index: 1000;
            overflow-y: auto;
        }

        .modal-menu.active {
            display: block;
            z-index: 9999;
            background-color: #f8f8f8;
        }

        .modal-header {
            padding: 38px 0 40px;
            text-align: center;
            position: relative;
        }

        .menu-close-btn {
                position: fixed;
    top: 3px;
    right: 25px;
    width: 34px;
    height: 34px;
    background: none;
    border: none;
    cursor: pointer;
    z-index: 10000;
    transition: transform 0.3s ease;
        }
.close-icon-line.line-1{
    transform: translate(-50%, -50%) rotate(45deg);
}
.close-icon-line.line-2{
    transform: translate(-50%, -50%) rotate(-45deg);
}
.close-icon-line{
    position: absolute;
    width: 32px;
    height: 2px;
    background: #202020;
    top: 65%;
    left: 85%;
    transform-origin: center;
}
        .modal-logo {
            margin: 20px 0;
        }
        .modal-logo img{
            width: 214px;
        }
        .separator-top.short {
            width: 30px;
            margin: 0 auto 24px;
        }

        .menu-section {
            padding: 0 40px;
            margin-bottom: 20px;
        }

        .menu-item {
            padding: 0 0 6px;
            text-align: center;
            font-weight: 600;
        }

        .menu-item a {
            color: #333;
            text-decoration: none;
            font-size: 16px;
            display: block;
        }

        .menu-item a:before {
            content: '▸ ';
            color: #202020;
        }
        .footer-section .menu-item a:before {
            content: '▸ ';
            color: #ffffff;
        }
 .timetable-section {
            background: #40c040;
            padding: 20px 0 30px;
            margin: 27px 4px;
            border-radius: 4px;
        }
        .timetable-corner{
            display: flex;
        }
        .timetable-title {
            width: 50%;
            color: white;
            text-align: center;
            font-size: 16px;
            font-weight: bold;
            margin-bottom: 12px;
        }

        .timetable-buttons {
            display: flex;
            gap: 10px;
            padding: 0 10px;
        }

        .timetable-btn {
            flex: 1;
            background: white;
            border: none;
            padding: 6px;
            border-radius: 30px;
            font-size: 14px;
            cursor: pointer;
            font-weight: 600;
        }
        .time-text{
            position: relative;
        }
        .timetable-btn .time-text:after {
            content: ' ▸';
            position: absolute;
            right: 5px;
            top: 2px;
        }

        .leaflet-section {
            background: #ffffff;
            padding: 20px 0;
            margin: 32px 0;
            text-align: center;
        }

        .leaflet-title {
            color: #40c040;
            font-size: 14px;
            font-weight: 500;
            margin-bottom: 7px;
        }

        .leaflet-link {
            font-size: 19px;
            color: #40c040;
            text-decoration: none;
            font-weight: 500;
        }

        .leaflet-link:before {
            content: '▸ ';
        }

        .footer-section {
            background-image: linear-gradient(0deg, #000000, #1f1f1f 37%, #363636 70%, #494949);
            color: white;
            padding: 32px 0;
            text-align: center;
            margin-top: 32px;
            position: absolute;
            bottom: 0;
            width: 100%;
        }

        .social-icons {
            display: flex;
            justify-content: center;
            gap: 30px;
            margin: 10px 0 27px;
        }

        .social-icon {
            width: 40px;
            height: 40px;
            background: white;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            color: #444;
            text-decoration: none;
            font-weight: bold;
        }

        .contact{
            margin-bottom: 10px;
            font-size: 16px;
        }

        .copyright {
            font-size: 12px;
            margin-top: 20px;
        }


.modal-menu .icon-btn img {
            width: 38px;
            height: 38px;
        }

.title img{
            width: 320px;
        }
        .event-square{
            font-size: 28px;
            color: #ffffff;
            position: relative;
            font-weight: 600;
            margin-bottom: 20px;
            line-height: 2.3rem;
        }
        .subcopy{
            font-size: 16px;
            line-height: 2em;
            margin: 24px 0 92px;
            color: #ffffff;
            font-weight: 500;
        }
        /* #info 内のテーブルと区切り線のデザイン */
        #info{
            position: relative;
        }
        #info.content-section:before{
            content: url('../img/top_1.svg');
                position: absolute;
                top: -7px;
                width: 100%;
                right: 0;
        }
        #info.content-section:after{
             content: url('../img/bottom_1.svg');
                position: absolute;
                bottom: -20px;
                width: 100%;
                right: 0;
        }
                

                tr:first-child td {
                    padding-top: 20px;
                    font-size: 16px;
                    font-weight: 600;
                }
                td:first-child {
                    color: #202020;
                    font-size: 16px;
                    font-weight: 600;
                }
                .separator {
                    height: 2.5px;
                        background: linear-gradient(to right, #52b788 0%, #52b788 20%, #f4a261 20%, #f4a261 100%);
                    margin: 0; 
                }
                .separator-top {
                    height: 2.5px;
                    background: linear-gradient(90deg, #52b788 50%, #f4a261 50%);
                    margin: 0; 
                }
                .note-box {
                    padding: 24px 10px;
                    font-size: 14px;
                    text-align: left;
                    color: #202020;
                    font-weight: 600;
                }
                .footer-corner {
                    position: relative;
                    margin-bottom: 60px;
                }
                #introduction .copyright{
                    color: #202020;
                    font-size: 16px;
                    text-align: center;
                    position: absolute;
                    left: 50%;
                    bottom: 20px;
                    transform: translate(-50%, -50%);
                    width: 720px;
                    font-weight: 600;
                }
                .left-column .copyright{
                    bottom: 5%;
                    position: absolute;
                    color: #202020;
                    font-size: 14px;
                }
                .nav-title{
                    display: block;
                    font-weight: 500;
                    font-size: 16px;
                    margin-bottom: 3px;
                }
                /* メールリンクボタンのスタイル */
                .mail-link-button {
                    display: inline-flex;
                    align-items: center;
                    justify-content: center;
                    height: 40px;
                    border-radius: 30px; 
                    background-color: white; 
                    border: 1px solid #dee2e6; 
                    text-decoration: none;
                    color: #404040;
                    font-weight: bold;
                    margin: 0 auto 32px;
                    position: relative;
                    z-index: 10;
                    width: 320px;
                }
                .mail-icon img{
                    width: 32px;
                    height: 20px;
                    vertical-align: middle;
                }
                .mail-link-button:hover {
                    background-color: #f8f8f8;
                }
                span.mail-icon{
                    vertical-align: middle;
                    padding-right: 5px;
                }
                .mail-text {
                    font-size:14px;
                    vertical-align: middle;
                }
                .mail-text:after{
    content: "";
    display: block;
    width: 0;
    height: 0;
    border-top: 5px solid transparent;
    border-bottom: 5px solid transparent;
    border-left: 8px solid #333;
    right: 5%;
    position: absolute;
    top: 40%;
                }



/* -------------------------------------- */
/* PC用レイアウト（768px以上） */
/* -------------------------------------- */
        @media (min-width: 768px) {
            div#modalMenu{
    max-width: 480px;
    margin: 0 auto;
    position: absolute;
    right: 0;
}
div#modalMenu.active{
    display: block !important;
        visibility: visible;
        animation: slideInFromTop 0.5s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}
div#modalMenu.closing {
        display: block !important;
        visibility: visible;
        /* ease-in（最後に向かって加速）にすると、よりスッと消える印象になります */
        animation: slideOutToTop 0.4s cubic-bezier(0.4, 0, 1, 1) forwards;
    }
@keyframes slideInFromTop {
    from {
        transform: translateY(-100%);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

@keyframes slideOutToTop {
    from {
        transform: translateY(0);
        opacity: 1;
    }
    to {
        transform: translateY(-100%);
        opacity: 0;
    }
}
#closeMenu {
        /* 画面右端からではなく、メニューの中身に対しての右上に固定 */
        position: absolute !important;
        top: 0 !important;
        right: 31px !important;
        left: auto !important; /* 左からの指定をリセット */
        cursor: pointer;
        z-index: 10001;
    }
    .modal-menu-content {
        position: relative;
        width: 100%;
        height: 100%;
        max-width: 1200px; /* 必要に応じて調整 */
        margin: 0 auto;
    }
        .menu-item a,.timetable-title,.leaflet-link,.contact {
            font-size: 22px!important;
        }
        .timetable-btn,.leaflet-title {
            font-size: 19px!important;
        }
            body {
            overflow-y: hidden;
            overflow-x: hidden;
            display: grid;
            /* 中央カラムを520pxに固定し、左右を1fr（残りの幅を均等）に設定 */
            grid-template-columns: 1fr 480px 1fr;
            min-height: 100vh;
            background: white;
            background-size: cover;
            background-position: center;
            background-attachment: fixed;
            width: 100%;
            height: 100%;
            position: fixed;
            overscroll-behavior: none;
            touch-action: none;
            -webkit-overflow-scrolling: auto;
            }
            .header-icons{
        position: fixed;
    left: 50.5%;
    margin-left: calc(240px - 60px);
    right: auto;
    z-index: 1000;
}
.copy{
    white-space: nowrap;
    overflow: hidden;
    width: 100%;
    display: block;
}
.nav-button_event{
            border-left: 1px solid #808080;
            height: 45px;
            position: absolute;
            bottom: 7px;
            padding-left: 40px;
            padding-top: 5px;
            left: 5px;
        }
        .nav-button_time{
            border-left: 1px solid #808080;
            border-right: 1px solid #808080;
            height: 45px;
            position: absolute;
            bottom: 7px;
            padding-left: 45px;
            padding-top: 5px;
            padding-right: 39px;
        }
        .nav-button_access{
            border-right: 1px solid #808080;
            height: 45px;
            position: absolute;
            bottom: 7px;
            padding-right: 45px;
            padding-top: 5px;
            right: 5px;
        }
            .desktop-logo{
                margin-bottom: 0; /* marginをリセット */
                text-align: center;
            }
            .desktop-logo img{
                width: 256px;
            }
            /* ナビゲーション - left-column */
            .left-column { 
                display: flex; /* flexboxで中央寄せ */
                flex-direction: column;
                justify-content: center; /* 縦方向中央寄せ */
                align-items: center; /* 横方向中央寄せ */
                background-repeat: no-repeat;
                height: 100vh;
                overflow-y: auto; 
                position: relative;
                grid-column: 1 / 2; 
                background-position: 70% 90%;
                border-left: none;
            }
            .left-column::-webkit-scrollbar {
                display: none;
            }
            .left-column .copyright{
                color: #fff!important;
            }
            
            .nav-menu {
                display: none; /* ナビゲーションを非表示 */
            }
            .nav-item {
                list-style: none;
                margin-bottom: 15px;
            }
            .nav-link {
                text-decoration: none;
                color: #202020; 
                font-size: 16px;
                font-weight: 500;
                display: block;
                padding: 5px 0;
            }

            /* 中央コンテンツラッパー - main-content-wrapper */
            .main-content-wrapper {
                display: block; 
                height: 100vh; 
                overflow-y: auto;
                overflow-x: hidden; 
                scroll-behavior: smooth;
                -ms-overflow-style: none;
                scrollbar-width: none;
                grid-column: 2 / 3; 
                background-size: contain;
                position: relative;
                margin: 0 auto !important;
                user-select: none;
                -webkit-user-select: none;
                background-color: #fff;
                -webkit-overflow-scrolling: touch;
                touch-action: pan-y;
            }
            .main-content-wrapper::-webkit-scrollbar {
                display: none;
            }
             .stpatrick-ribbon p{
                left: 26%;
                bottom: 62%;
                font-size: 20px;
            }
            /* FV上のテキスト配置の調整 (PC) */
            .borantia{
            position: absolute;
            top: 110%;
        }
            .fvbg{
            position: absolute;
            bottom: -370px;
        }
        .clover{
         width: 33px; 
         height: 33px;
         }
        .borantia button{
            right: 13%;
            width: 358px;
        }
        .title{
            padding-top: 460px!important;
        }
        .title img{
            width: 405px!important;
        }
            .fv-logo img {
                width: 342px; 
            }
            .fv-ribbon img {
                width: 312px; 
            }
            .fv-main-text h1 {
                font-size: 24px;
                line-height: 2rem;
            }
            .left-column .fv-main-text h1{
                color: #fff;
                font-size: 24px;
            }
            .fv-location {
                font-size: 20px;
            }
            .left-column .fv-logo img{
                width: 240px;
                height: 240px;
            }
            .left-column .fv-ribbon img{
                width: 220px;
                height: 46px;
            }
            /* PC固定幅(520px)内のカルーセル幅の再計算 */
            .carousel-container {
                left: 0;
                transform: none;
                width: 100%;
                max-width: 480px;
                bottom: 6.5%!important;
                position: relative;
            }
            .carousel-item {
                width: calc((480px - 6px) / 3); 
            }
            
            /* 協賛 - right-column */
            .right-column { 
                display: block; 
                background-repeat: no-repeat;
                padding: 40px; 
                grid-column: 3 / 4; 
                border-right: none; 
                height: 100vh;
                position: relative; 
                overflow-y: auto; 
                background-position: 27% 75%;
            }
            .right-column::-webkit-scrollbar {
                display: none;
            }
            
            /* 協賛ロゴエリアのデザイン */
            .sponsor-section{
                display: block;
                margin-bottom: 30px;
                padding-top: 10px; 
            }
            .sponsor-heading {
                font-size: 18px;
                color: #202020;
                border-bottom: 2px solid #52b788;
                padding-bottom: 5px;
                margin-bottom: 15px;
            }
            .sponsor-box {
                display: flex;
                align-items: center;
                margin-bottom: 10px;
            }
            .sponsor-logo {
                width: 50px;
                height: 50px;
                background-color: #f0f0f0; 
                border: 1px solid #ccc;
                margin-right: 10px;
                flex-shrink: 0;
            }
            .sponsor-name {
                font-size: 14px;
                color: #202020;
            }

            /* 独自スクロールバーデザイン */
            .scroll-progress{
                position: absolute;
                /* 中央カラムから右に60pxの位置 */
                left: 30px; 
                right: auto;
                top: 50%;
                transform: translateY(-50%); 
                z-index: 1000;
                pointer-events: none;
            }
            .scroll-progress__track{
                position: relative;
                width: 24px;
                height: 480px; 
                pointer-events: none;
            }
            .scroll-progress__line{
                position: absolute;
                inset: 0;
                margin: 0 auto;
                width: 3px;
                background: #377837; 
            }
            .scroll-progress__fill{
                position: absolute;
                left: 50%;
                transform: translateX(-50%);
                width: 3px;
                height: 0%;
                background: #fff; 
            }
        #info.content-section:before{
            top: -5.5px!important;
        }
        #info.content-section:after{
            bottom: -24px!important;
        }
            /* ページトップボタン (PC用) */
            #pageTopPC{
                cursor: pointer;
                width: 37px;
                height: 37px;
                position: absolute;
                z-index: 1000;
                display: flex;
                align-items: center;
                justify-content: center;
                border-radius: 4px;
                background-color: #404040;
                font-size: x-small;
                /* scroll-progressに合わせて左60pxの位置 */
                left: 23px;
                right: auto;
                bottom: 2%;
                transform: none; 
                transition: opacity 0.3s, visibility 0.3s;
            }
            #pageTopPC.show {
                opacity: 1;
                visibility: visible;
            }

            /* PC用の固定ナビを画面下部中央に配置 */
            .floating-nav {
        bottom: 0;
        left: 50%;
        /* 中央揃えと、ふわっと出すための下移動を同時に管理 */
        transform: translateX(-50%) translateY(20px); 
    }
    
    /* 表示時のtransform（translateXを維持するのがポイント） */
    .floating-nav.is-show {
        transform: translateX(-50%) translateY(0);
    }
            #pageTopSP {
                display: none !important;
            }
            
            .floating-nav-btn{
                width: 160px;
            }
            .fvbg.sp{
                display: none;
            }
            .event-square{
                font-size: 36px!important;
                margin-bottom: 48px!important;
                line-height: 3rem!important;
            }
            
            .stpatrick-ribbon{
                bottom: -11%;
                position: absolute;
                background-color: #fff;
                padding: 12px 0 56px;
            }
            .fv-date{
                font-size: 51px;
            }
            .fv-time{
                font-size: 22px;
                width: 267px;
                height: 20px;
                font-family: 'Noto Sans JP';
            }
            .day-label{
                width: 41px;
                height: 41px;
                font-size: 18px;
            }
            .is-sat .week{
                top: 10px;
                 left: 6px;
            }
            .is-sun .week{
                top: 10px;
                left: 4px;
            }
            .time-corner{
                font-size: 23px;
                width: 267px;
                height: 20px;
                font-family: 'Noto Sans JP';
            }
            .fv-time{
                position: absolute;
                top: -8px;
            }
            .subcopy{
                font-size: 20px!important;
            }
            #info td:first-child{
                padding-bottom: 0;
                font-size: 20px!important;
            }
            #info tr:first-child td{
                font-size: 20px!important;
                padding-top: 31px!important;
            }
            td.left{
                padding-left: 35px!important;
            }
            td.left1{
                padding-left: 20px!important;
            }
            .note-box{
                font-size: 18px!important;
                padding: 31px 10px!important;
            }
            #info {
                margin: 0 6px!important;
            }
            #info td {
                padding: 6px 10px;
                padding-right: 0!important;
            }
            #info td.bottom{
                padding-bottom: 31px;
                padding-top: 0;
            }
            .contact{
                font-size: 27px;
            }
            .footer-coppy{
            font-size: 22px; 
            color: #fff; 
            font-weight: bold;
        }
        a.mail-link-button{
            width: 427px;
        }
        .mail-text{
            font-size: 19px!important;
        }
        .mail-text:after{
            top: 40%!important;
        }
          span.char1 { transform: rotate(-37deg); }
        span.char2 { transform: rotate(-32deg); }
        span.char3 { transform: rotate(-27deg); }
        span.char4 { transform: rotate(-22deg); }
        span.char5 { transform: rotate(-17deg); }
        span.char6 { transform: rotate(-12deg); }
        span.char7 { transform: rotate(-7deg); }
        span.char8 { transform: rotate(-2deg); }
        span.char9 { transform: rotate(3deg); }
        span.char10 { transform: rotate(8deg); }
        span.char11 { transform: rotate(13deg); }
        span.char12 { transform: rotate(20deg); }
        span.char13 { transform: rotate(24deg); }
        span.char14 { transform: rotate(29deg); }
        span.char15 { transform: rotate(34deg); }
        span.char16 { transform: rotate(39deg); }
        span.char17 { transform: rotate(43deg); }

        #introduction h2{
            position: relative;
            margin-bottom: 15%;
        }
        #introduction h2 span{
            height: 200px;
            position: absolute;
            transform-origin: bottom center;
            font-size: 16px;
        }
        .copyright{
            font-size: 15px!important;
        }
        .footer-corner{
            height: 156px;
        }
        }
        
/* -------------------------------------- */
/* SP用レイアウト（768px以下） */
/* -------------------------------------- */
                @media (max-width: 768px) {
                .fvbg.pc{
                display: none;
            }
                .stpatrick-ribbon img{
            position: relative;
            bottom: 188%;
            left: 0;
            background-color: #fff;
            padding: 15px 0 56px;
        }
        .stpatrick-ribbon p{
           padding-top: 10px;
        }
  span.char1 { transform: rotate(-37deg); }
  span.char2 { transform: rotate(-30deg); }
  span.char3 { transform: rotate(-23deg); }
  span.char4 { transform: rotate(-16deg); }
  span.char5 { transform: rotate(-9deg); }
  span.char6 { transform: rotate(-2deg); }
  span.char7 { transform: rotate(5deg); }
  span.char8 { transform: rotate(12deg); }
  span.char9 { transform: rotate(19deg); }
  span.char10 { transform: rotate(26deg); }
  span.char11 { transform: rotate(33deg); }
  span.char12 { transform: rotate(40deg); }

        #introduction h2{
            position: relative;
        }
        #introduction h2 span{
            height: 200px;
            position: absolute;
            transform-origin: bottom center;
            font-size: 12px;
        }
        #introduction .copyright{
            font-size: 12px;
            width: 100%;
        }
        .borantia button{
            bottom: 0;
            height: 30px;
            width: 70%;
        }
        .borantia button p{
            font-size: 14px;
        }
        .copy {
    /* コピーライトも下の余白をゼロにする */
    margin-bottom: 0 !important;
    /* 下のナビゲーション（約60-80px）の上に文字を置くための余白 */
    white-space: nowrap;
    overflow: hidden;
}


tr:first-child td, td:first-child{
    font-size: 16px;
    padding: 24px 0 0 10px;
}
.left1.bottom{
    padding-top: 0;
    padding-bottom: 24px;
}
.second td.left{
    padding-left: 20px !important;
    padding-top: 0;
}
.second tr:nth-of-type(2) td, .second tr:nth-of-type(3) td{
    font-size: 16px;
}
.second td:nth-of-type(2) {
    padding-top: 24px !important;
    padding-bottom: 5px;
}
.second tr:nth-of-type(3) td{
    padding-bottom: 24px;
}
        td.left1 span{
            font-size: 14px!important;
        }
        .floating-nav {
        bottom: 0;
        left: 0;
        width: 100%;
        background-image: linear-gradient(0deg, #000000, #1f1f1f 37%, #363636 70%, #494949);
        padding: 0 5px;
        box-sizing: border-box;
        /* SPは真下から出す */
        transform: translateY(100%); 
    }

    .floating-nav.is-show {
        transform: translateY(0);
    }

    .floating-nav-btn {
        flex: 1;
        text-align: center;
        padding: 12px 0;
        text-decoration: none;
    }
        .floating-nav-btn:first-child::before{
            content: "";
    position: absolute;
    left: 0;
    top: 10%;
    height: 80%;
    width: 1px;
    background-color: #808080;
        }
        .floating-nav-btn::after{
                content: "";
    position: absolute;
    right: 0;
    top: 10%;
    height: 80%;
    width: 1px;
    background-color: #808080;

        }
        .page-top img{
            width: 13px;
        }
        
        .page-top.show {
       position: fixed;
        left: auto;      /* PC用の設定をリセット */
        right: 15px;     /* 右端からの距離 */
        bottom: 120px;
    }
    div#modalMenu.active {
        display: block !important;
        animation: slideInRight 0.4s cubic-bezier(0.25, 1, 0.5, 1) forwards;
    }
    div#modalMenu.closing {
        display: block !important;
        animation: slideOutRight 0.4s cubic-bezier(0.5, 0, 0.75, 0) forwards;
    }
    @keyframes slideInRight {
    from { transform: translate3d(100%, 0, 0); opacity: 0; }
    to { transform: translate3d(0, 0, 0); opacity: 1; }
}
@keyframes slideOutRight {
    from { transform: translate3d(0, 0, 0); opacity: 1; }
    to { transform: translate3d(100%, 0, 0); opacity: 0; }
}

/* PC用 */
@keyframes slideInTop {
    from { transform: translate3d(0, -100%, 0); opacity: 0; }
    to { transform: translate3d(0, 0, 0); opacity: 1; }
}
@keyframes slideOutTop {
    from { transform: translate3d(0, 0, 0); opacity: 1; }
    to { transform: translate3d(0, -100%, 0); opacity: 0; }
}
            }
            
