
    .html {
        scroll-behavior: smooth;
    }
    .html_login {
        scroll-behavior: smooth;
    }
    @media screen and (max-width: 767px) {
        .html {
            scroll-padding-top: 60px;
        }
        .html_login {
            scroll-padding-top: 60px;
        }
    }
    @media screen and (min-width: 768px) {
        .html {
            scroll-padding-top: 65px;
        }
        .html_login {
            scroll-padding-top: 105px;
        }
    }

    body{
        font-family: "Zen Kaku Gothic Antique", sans-serif;
        font-weight: 500;
        font-size: 16px;
        font-style: normal;
        color: #000;
        background: #fff;
        margin: 0;
    }
    a {
        color: #007bff;
        text-decoration: none;
    }
    a:hover {
        color: #0056b3;
        text-decoration: none;
    }

    @keyframes reveal-image {
        from {
            opacity: 0;
        }
        to {
            opacity: 1;
        }
    }



    @media screen and (max-width: 767px) {
        .section_tp {
            scroll-padding-top: 160px;
        }
    }
    @media screen and (min-width: 768px) {
        .section_tp {
            scroll-padding-top: 165px;
        }
        .section_tp_login {
            scroll-padding-top: 205px;
        }
    }
    
    .page-container {
        max-width: 1200px;
        margin: 0 auto;
    }

    @media screen and (max-width: 767px) {

        .page-container {
            padding: 20px;
        }

        .mobile_menu {
            z-index: 100;
            border-bottom: solid 1px; 
            border-color: #aaaaaa;
            background-color: #ffffff;
            height: 60px;
            width: 100%;
            position: fixed;

        }
        .mobile_menu_logo {
            position: absolute;
            top: calc(50% - 10px);
            left: calc(50% - 105px);
            width: 210px;
            height: 20px;
            background-size: 210px;
        }
        .mobile_menu_shadow {
            height: 61px;
        }
        .mobile_title {
            position: relative;
            background-position: center;
            background-size: cover;
            background-repeat: no-repeat;
            background-image: url("img/title_bg.png");
            height: 300px;
        }
        .title {
            display: none;
        }
        .title_login {
            display: none;
        }
        .title_top {
            display: none;
        }
    }
    @media screen and (min-width: 768px) {
        .member_body {
            margin-top: 65px;
        }
        
        .member_body_login {
            margin-top: 105px;
        }
        
        .page-container {
            padding: 30px;
        }

        .mobile_menu {
            display: none;
        }
        .mobile_menu_shadow {
            display: none;
        }
        .mobile_title {
            display: none;
        }
        .mobile_user {
            display: none;
        }
        .mobile_title_info {
            display: none;
        }
        .title {
            width: 100%;
            position: relative;
            min-height: calc(100%);
            background-image: url("img/title_bg.png");
            background-position: center;
            background-size: contain;
            background-repeat: no-repeat;
        }

        .title_top {
            z-index: 1000;
            position: absolute;
            width: 100%;
            height: 110px;
        }
 
        .title_logo {
            position: absolute;
            width: 500px;
            top: 30px;
            left: 30px;
        }

    }

    
	.mobile_right_menu_login {
        position: absolute;
        width: 26px;
        top: 12px;
        left: 20px;
    }
	.mobile_right_menu_login_text {
        position: absolute;
        width: 92px;
        text-align:center;
        top: 36px;
        left: -13px;
        font-size: 10px;
        font-weight: 700;
        color: #000000;
    }


	.title_login {
        position: absolute;
        width: 32px;
        top: 30px;
        right: 30px;
    }
	.title_login_text {
        position: absolute;
        width: 92px;
        text-align:center;
        top: 60px;
        right: 0px;
        font-size: 10px;
        font-weight: 700;
        color: #000000;
    }

    .title_login2 {
        position: absolute;
        width: 32px;
        top: 11px;
        right: 30px;
    }
	.title_login_text2 {
        position: absolute;
        width: 92px;
        text-align:center;
        top: 41px;
        right: 0px;
        font-size: 10px;
        color: #000000;
    }


	.index {
        font-weight: 700;
        font-size: 16px;
        background: #000;
        color: #fff;
		padding: 2px 2px 2px 4px; 
        letter-spacing: 2px; 
        display: inline-block;
    }

	.title_schedule {
        position: absolute;
        top: 120px;
        right: 30px;
    }

	.title_info {
        position: absolute;
        bottom: 40px;
        left: 30px;
        box-sizing: border-box;
        padding: 0px;
        font-size: 16px;
        color: #000000;
        -webkit-text-stroke: 2px white;
        text-stroke: 2px white;
        paint-order: stroke;
    }

    @media screen and (max-width: 767px) {
        .title_info_mobile {
            position: absolute;
            bottom: 0px;
            box-sizing: border-box;
            padding: 0px 20px 30px 20px;
            width: 100%;
            font-size: 16px;
            color: #000000;
            -webkit-text-stroke: 2px white;
            text-stroke: 2px white;
            paint-order: stroke;
        }
    }
    @media screen and (min-width: 768px) {
        .title_info_mobile {
            display: none;
        }
    }

	.title_schedule_table {
        -webkit-text-stroke: 2px white;
        text-stroke: 2px white;
        paint-order: stroke;
    }

	.title_schedule_table_cel1 {
        font-weight: 900;
        font-size: 16px;
        width: 90px;
        display: inline-block;
        -webkit-text-stroke: 2px white;
        text-stroke: 2px white;
        paint-order: stroke;
    }

	.title_schedule_dow {
        font-size: 12px;
        display: inline-block;
        -webkit-text-stroke: 2px white;
        text-stroke: 2px white;
        paint-order: stroke;
    }

	.title_schedule_table_cel2 {
        font-size: 14px;
        width: 90px;
        display: inline-block;
        -webkit-text-stroke: 2px white;
        text-stroke: 2px white;
        paint-order: stroke;
    }

	.title_schedule_table_cel3 {
        font-size: 16px;
        width: 80px;
        display: inline-block;
        text-align: right;
        -webkit-text-stroke: 2px white;
        text-stroke: 2px white;
        paint-order: stroke;
    }
    


	.title_fee {
        position: absolute;
        top: 350px;
        right: 50px;
    }

	.title_fee_table_cel1 {
        font-size: 16px;
        width: 100px;
        display: inline-block;
    }

	.title_fee_table_cel2 {
        font-size: 16px;
        text-align: right;
        width: 200px;
        display: inline-block;
    }




    @media screen and (max-width: 767px) {
        #title_bottom_menu {
            display: none;
        }
        #title_menu2 {
            display: none;
        }
        #title_menu2_login {
            display: none;
        }
        #member_menu {
            display: none;
        }
        #member_menu_login {
            display: none;
        }
    }
    @media screen and (min-width: 768px) {
        #title_bottom_menu {
            position: absolute;
            bottom: 0px;
            width: 100%;
            margin-bottom: 130px; 
            
        }
        .title_bottom_menu_inner {
            display: flex;  
            justify-content: center;
            align-items: center;
            margin: 0px 0px 10px 0px;
            padding-top: 30px;
        }
        .title_bottom_menu_inner_login_line {
            margin: 0px 8% 0px 8%;
            border-top: solid 1px; 
            border-color: #aaaaaa;
        }
        .title_bottom_menu_inner_login {
            display: flex;  
            justify-content: center;
            align-items: center;
            padding-top: 10px;
        }
        #title_menu2 {
            z-index: 100;
            position: fixed;
            top: 0px;
            width: 100%;
            height: 64px;
            
            background-color: #ffffff;

            animation: linear progress;
            animation-timeline: scroll();
            animation-range: 0 200px;
            
            border-bottom: solid 1px; 
            border-color: #aaaaaa;
        }
        #title_menu2_login {
            z-index: 100;
            position: fixed;
            top: 0px;
            width: 100%;
            height: 104px;
            
            background-color: #ffffff;

            animation: linear progress;
            animation-timeline: scroll();
            animation-range: 0 200px;
            
            border-bottom: solid 1px; 
            border-color: #aaaaaa;
        }
        #member_menu {
            z-index: 100;
            position: fixed;
            top: 0px;
            width: 100%;
            height: 64px;
            
            background-color: #ffffff;
            
            border-bottom: solid 1px; 
            border-color: #aaaaaa;
        }
        #member_menu_login {
            z-index: 100;
            position: fixed;
            top: 0px;
            width: 100%;
            height: 104px;
            
            background-color: #ffffff;
            
            border-bottom: solid 1px; 
            border-color: #aaaaaa;
        }
        .title_menu_member {
            position: relative;
            display: flex;
            justify-content:space-between;
            margin: 0px 30px 0px auto;
            height: 39px;
            border-top: solid 1px; 
            border-color: #dddddd;
            width: 690px;
            background-color: #ffffff;
            z-index: 10000;
        }
        @keyframes progress {
            0% {
                opacity: 0;
                transform:translate(0, -100px);
            }
           
            100% {
                opacity: 1;
                transform:translate(0, 0px);
            }
        }
        .title_menu_inner1 {
            margin: auto;
            dmax-width: 1260px;
        }
        .title_menu_inner2 {
            position: relative;
            display: flex;  
            justify-content: flex-end;
            align-items: center;
            top: 0px;
            width: 100%;
            height: 64px;
        }

        
    }
    @media screen and (min-width: 868px) {
        .title_bottom_menu_inner_login_line {
            margin: 0px 12% 0px 12%;
            border-top: solid 1px; 
            border-color: #aaaaaa;
        }
    }
    @media screen and (min-width: 968px) {
        .title_bottom_menu_inner_login_line {
            margin: 0px 16% 0px 16%;
            border-top: solid 1px; 
            border-color: #aaaaaa;
        }
    }
    @media screen and (min-width: 1068px) {
        .title_bottom_menu_inner_login_line {
            margin: 0px 20% 0px 20%;
            border-top: solid 1px; 
            border-color: #aaaaaa;
        }
    }
    .title_menu_logo {
        position: absolute;
        top: 0px;
        left: 32px;
        width: 90px;
        height: 64px;
        background-image: url("img/kcht_title_simple_small.svg");
        background-position: center;
        background-size: contain;
        background-repeat: no-repeat;
        opacity: 1;
    }
    .title_menu_member_name_login {
        display: none;
    }
    @media screen and (min-width: 890px) {
        .title_menu_logo {
            dwidth: 116px;
            dheight: 76px;
            sbackground-color: #0056b3;
        }
        .title_menu_member_name_login {
            position: absolute;
            left: 6px;
            bottom: 8px;
            color: #000000;
            display: inline-block;
            padding: 0px 24px 0px 24px; 
            z-index: 5000;
        }
    }

	.title_menu_tp {
        color: #000000;
        font-weight: 700;
        font-size: 16px;
        display: inline-block;
		padding: 0px 24px 0px 24px; 
        -webkit-text-stroke: 2px white;
        text-stroke: 2px white;
        paint-order: stroke;
    }
	.title_menu_tp:hover {
        color: #888888;
        dtext-decoration-line: underline;
        dtext-underline-offset: 4px;
        dtext-decoration-thickness: 2px;
    }
	.title_menu_tp_login {
        color: #000000;
        font-weight: 700;
        font-size: 16px;
        display: inline-block;
		padding: 0px 12px 0px 12px; 
        -webkit-text-stroke: 2px white;
        text-stroke: 2px white;
        paint-order: stroke;
    }
	.title_menu_tp_login:hover {
        color: #888888;
        dtext-decoration-line: underline;
        dtext-underline-offset: 4px;
        dtext-decoration-thickness: 2px;
    }
	.title_menu_tp2 {
        color: #000000;
        font-weight: 700;
        font-size: 16px;
        display: inline-block;
		padding: 0px 32px 0px 0px; 
    }
	.title_menu_tp2:hover {
        color: #888888;
        dtext-decoration-line: underline;
        dtext-underline-offset: 4px;
        dtext-decoration-thickness: 2px;
    }
	.title_menu_member_tp {
        color: #000000;
        flex: 1;
        font-weight: 700;
        font-size: 16px;
        display: inline-block;
		padding: 8px 0px 8px 0px; 
    }
	.title_menu_member_tp:hover {
        color: #888888;
        dtext-decoration-line: underline;
        dtext-underline-offset: 4px;
        dtext-decoration-thickness: 2px;
    }
	.title_menu_member_tp2 {
        color: #000000;
        flex: 1;
        font-weight: 700;
        font-size: 16px;
        display: inline-block;
		padding: 8px 0px 4px 0px; 
        border-bottom: solid 3px;
        border-color: #000000;
    }
	.title_menu_member_tp2:hover {
        color: #888888;
        dtext-decoration-line: underline;
        dtext-underline-offset: 4px;
        dtext-decoration-thickness: 2px;
    }

	.title_menu_tp2_right {
        color: #000000;
        font-weight: 700;
        font-size: 16px;
        display: inline-block;
		width: 70px;
    }
	.title_menu_tp2_right:hover {
        color: #888888;
    }

    .alart {
        color: #cc0000;
        font-weight: 700;
        display: inline-block;
    }

    .bold {
        font-weight: 900;
    }


    
    .category_block {
		padding-top: 40px; 
		padding-bottom: 40px; 
    }
    @media screen and (max-width: 767px) {
        .category_block {
            padding-right: 20px; 
            padding-left: 20px; 
        }
    }
    @media screen and (min-width: 768px) {
        .category_block {
            padding-right: 10%; 
            padding-left: 10%; 
        }
    }

    .about {
            background-color: #f4f4f4;
    }

    .category_block_text {
		padding-top: 10px; 
    }

    .category_title {
        text-align: center;
        font-weight: 900;
        font-size: 26px;
		padding-bottom: 40px; 
    }


    td {
        font-weight: 500;
        border-bottom: solid 1px; 
        border-color: #aaaaaa;
        padding: 10px;
        text-align: center;
    }
    th {
        font-weight: 700;
        text-align: center;
        border-bottom: solid 1px; 
        border-color: #aaaaaa;
        padding: 10px;
        text-align: center;
        background-color: #f4f4f4;
    }
    table {
        border-collapse:  collapse;
        border: solid 1px; 
        border-color: #aaaaaa;
    }
    .schedule_table {
        width:  100%;
    }
    .schedule_table_mobile {
        width:  100%;
    }
    
    @media screen and (max-width: 767px) {
        .schedule_table {
            display: none;
        }
    }
    @media screen and (min-width: 768px) {
        .schedule_table_mobile {
            display: none;
        }
    }

    .fee_table {
    }

    @media screen and (max-width: 767px) {
        .d {
            background-image: url("img/tatsumi.png");
            background-repeat: no-repeat;
            background-position: right 20px bottom 0px;
            background-origin: padding-box;
            background-size: 260px;
            padding-bottom: 40px; 
            -webkit-text-stroke: 2px white;
            text-stroke: 2px white;
            paint-order: stroke;
        }
    }
    @media screen and (min-width: 768px) {
        .d {
            background-image: url("img/tatsumi.png");
            background-repeat: no-repeat;
            background-position: right 7% bottom 0px;
            background-origin: padding-box;
            background-size: 360px;
            padding-bottom: 40px; 
            -webkit-text-stroke: 2px white;
            text-stroke: 2px white;
            paint-order: stroke;
        }
    }

    .footer {
        background-color: #000000;
        color: #ffffff;
        padding: 60px 10% 60px 10%;
    }


    @media screen and (max-width: 767px) {
        .tp-grid {
            display: grid;
            grid-template-columns: repeat(1);
            gap: 20px;
            margin-top: 15px;
        }

        .tp-card {
            background: #f8f9fa;
            padding: 15px 15px 25px 15px;
            border-radius: 8px;
            border: 1px solid #dee2e6;
            position: relative;

            background-image: url("img/triangle_y.svg");
            background-repeat: no-repeat;
            background-position: center bottom 5px;
            background-origin: padding-box;
            background-size: 20px;
        }
    }
    @media screen and (min-width: 768px) {
        .tp-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 20px;
            margin-top: 15px;
        }

        .tp-card {
            background: #f8f9fa;
            padding: 15px 25px 15px 15px;
            border-radius: 8px;
            border: 1px solid #dee2e6;
            position: relative;

            background-image: url("img/triangle.svg");
            background-repeat: no-repeat;
            background-position: right 5px center;
            background-origin: padding-box;
            background-size: 10px;
        }
    }
    .tp-card-end {
        background: #f8f9fa;
        padding: 15px 15px 15px 15px;
        border-radius: 8px;
        border: 1px solid #dee2e6;
        position: relative;
    }





    /* UIボタン */
    .action-button {
        padding: 8px 16px;
        border: none;
        border-radius:4px;
        transition: background-color 0.2s;
        font-size: 14px;
        cursor: pointer;
    }
    .ellipsis-button {
        position: absolute;
        top: 6px;
        right: 3px;
        width: 30px;
        height: 30px;
        padding: 0px;
        border: none;
        border-radius: 32px;
        transition: background-color 0.2s;
        font-size: 20px;
        background: #00000000;
        color: #00000088;
        cursor: pointer;
    }
    .ellipsis-button:hover {
        background: #00000011;
    }
    .reserve-button {
        background: #007bff;
        color: white;
    }
    .reserve-button {
        background: #007bff;
        color: white;
    }
    .reserve-button:hover {
        background: #0056b3;
    }
    .reserve-button:disabled {
        background:rgb(182, 217, 255);
    }
    .gb-button {
        background: #00a552;
        color: white;
    }
    .gb-button:hover {
        background: #007c3e;
        color: white;
    }
    .cancel-button {
        background: #dc3545;
        color: white;
    }
    .cancel-button:hover {
        background: #c82333;
    }
    .cancel-button:disabled {
        background: #f8d7da;
    }
    .disabled-button {
        background: #6c757d;
        color: white;
        cursor: not-allowed;
    }
    /* チケット状態 */
    .member-status {
        display: inline-block;
        font-size: 12px;
        margin-left: 6px;
        padding: 0px 4px 1px;
        border-radius: 4px;
        line-height: 16px;
    }
    .status-reserved {
        background: #d4edda;
        color: #155724;
        border: 1px solid #c3e6cb; /* 柔らかい緑系の枠線 */
    }
    .status-available {
        background: #fff8e1;  /* #fff3cd より明るく、#eef5ff に近い柔らかいトーン */
        color: #b58c05;       /* 既存の色でOK、調和が取れている */
        border: 1px solid #ffe9a7; /* reserved と同じように薄めの枠線を追加 */
    }
    .status-unavailable {
        background: #f8d7da;
        color: #721c24;
        border: 1px solid #f5c6cb; /* ピンクがかった赤系の枠線 */
    }
    .status-ticketed {
        background: #cce5ff;
        color: #004085;
        border: 1px solid #b8daff; /* 淡い青系の枠線 */
    }
    .status-reserved {
        background: #cce5ff;
        color: #004085;
        border: 1px solid #b8daff; /* 淡い青系の枠線 */
    }
    .status-available {
        background: #f8f9fa; 
        border: 1px solid #dee2e6;
        color: #666666; 
    }
    .status-unavailable {
        background: #f8f9fa; 
        border: 1px solid #dee2e6;
        color: #666666; 
    }
    .status-ticketed {
        background: #d4edda;
        color: #155724;
        border: 1px solid #c3e6cb; /* 柔らかい緑系の枠線 */
    }
    .member-actions {
        display: flex;
        align-items: center;
        gap: 8px;
    }
    .member-actions button {
        margin-left: 8px;
    }

    /* スケジュール一覧共通スタイル（dashboard.phpベース） */
    .schedule-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
        gap: 20px;
        margin-top: 15px;
    }
    .schedule-card {
        border: 1px solid #ddd;
        border-radius: 8px;
        padding: 15px;
        background: #f8f9fa;
    }
    .schedule-date {
        font-weight: bold;
        color: #007bff;
        margin-bottom: 10px;
    }
    .schedule-location {
        margin-bottom: 5px;
    }
    .schedule-time {
        color: #666;
        margin-bottom: 10px;
    }
    .schedule-capacity {
        font-size: 14px;
        color: #666;
        margin-bottom: 15px;
    }
    .schedule-members-section {
        margin-top: 15px;
    }
    .schedule-member-row {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 8px 8px;
        margin-bottom: 5px;
        border-radius: 4px;
        background: white;
        border: 1px solid #e9ecef;
    }
    .schedule-member-name {
        flex: 1;
        font-weight: 500;
    }
    .schedule-member-right {
        display: flex;
        align-items: center;
        gap: 8px;
    }
    .schedule-puck-warning {
        color: #dc3545;
        font-size: 12px;
        font-weight: bold;
    }
    .schedule-no-members {
        text-align: center;
        padding: 20px;
        color: #666;
    }
    .schedule-button-link {
        display: inline-block;
        margin-top: 10px;
        padding: 8px 16px;
        background: #007bff;
        color: white;
        text-decoration: none;
        border-radius: 4px;
    }
    .schedule-button-link:hover {
        background: #0056b3;
    }
    .schedule-no-data, .schedule-no-reservations {
        text-align: center;
        padding: 20px;
        color: #666;
    }

    /* モーダル */
    .modal { 
        display: none; 
        position: fixed; 
        z-index: 1000; 
        left: 0; 
        top: 0; 
        width: 
        100%; 
        height: 100%; 
    }
    .modal-bg {
        position: fixed;
        inset: 0;
        background-color: rgba(0,0,0,0.4);
        opacity: 0;
        transition: opacity .25s ease;
    }
    @media screen and (max-width: 767px) {
        .modal-content { 
            background-color: #fefefe; 
            position: fixed;
            inset: 0;
            margin: auto 0px 0px 0px;
            padding: 24px 20px 30px 20px; 
            max-width: 100%; 
            border-radius: 16px 16px 0px 0px; 
            max-height: 546px; 
            overflow-y: auto;
            box-shadow: 2px 2px 6px rgba(0, 0, 0, .4);
            /* アニメーション初期状態 */
            transform: translateY(100vh);
            transition: transform .25s ease;
            display: flex;
            flex-direction: column;
        }
    }
    @media screen and (min-width: 768px) {
        .modal-content { 
            background-color: #fefefe; 
            position: fixed;
            inset: 0;
            margin: auto;
            padding: 24px 20px 30px 20px; 
            max-width: 360px; 
            border-radius: 8px; 
            max-height: 546px; 
            overflow-y: auto;
            box-shadow: 2px 2px 6px rgba(0, 0, 0, .4);
            /* アニメーション初期状態 */
            transform: translateY(100vh);
            transition: transform .25s ease;
            display: flex;
            flex-direction: column;
        }
    }
    
    /* 背景表示 */
    .modal-bg.show {
        opacity: 1;
    }
    /* 表示用クラスを付けたとき */
    .modal-content.show {
        transform: translateY(0);
    }

    .modal-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
    .modal-header h3 { margin: 0px 0px 0px 0px; }
    .modal-header .close { position: absolute; right: 20px; top: 17px; color: #aaa; font-size: 28px; font-weight: bold; cursor: default; }
    .modal-header .close:hover { color: black; }
    .modal-body { margin-bottom: 0px; flex: 1; }
    .modal-footer { margin-top: auto; padding-top: 0px; display: flex; gap: 60px; justify-content: center; }
    .modal-section { margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid #eee; }
    .modal-section:last-child { margin-bottom: 0px; padding-bottom: 0px; border-bottom: none; }
    .modal-topic { font-weight: 500; padding-bottom: 8px; padding-top: 8px; }
    .modal-section h4 { margin: 0 0 12px 0; color: #333; }
    
    /* モーダルボディのフレックスレイアウト */
    .modal-body-container {
        display: flex;
        flex-direction: column;
        height: 100%;
    }




.mobile_menu_text {
    position: absolute;
    width: 92px;
    text-align:center;
    top: 36px;
    right: -13px;
    font-size: 10px;
    font-weight: 700;
    color: #000000;
}

/* 成功・アクティブ強調（緑） */
.text-success-strong {
    color: #28a745;
    font-weight: 700;
}
#menu__toggle {
  opacity: 0;
}
#menu__toggle:checked + .menu__btn > span {
  transform: rotate(45deg);
  dbackground-color: #fff;
}
#menu__toggle:checked + .menu__btn > span::before {
  top: 0;
  transform: rotate(0deg);
  dbackground-color: #fff;
}
#menu__toggle:checked + .menu__btn > span::after {
  top: 0;
  transform: rotate(90deg);
  dbackground-color: #fff;
}
#menu__toggle:checked ~ .menu__box {
  right: 0 !important;
}
.menu__btn {
  position: fixed;
  top: 12px;
  right: 20px;
  width: 26px;
  height: 26px;
  cursor: pointer;
  z-index: 12;
}
.menu__btn > span,
.menu__btn > span::before,
.menu__btn > span::after {
  display: block;
  position: absolute;
  width: 100%;
  height: 2px;
  top: 12px;
  background-color: #000;
  transition-duration: .25s;
  z-index: 20;
}
.menu__btn > span::before {
  content: '';
  dtransform: translateY(-8px);  /* 上にずらす */
  top: -8px;
}
.menu__btn > span::after {
  content: '';
  dtransform: translateY(8px);   /* 下にずらす */
  top: 8px;
}
.menu__box {
  display: block;
  position: fixed;
  top: 0;
  right: -100%;
  width: 300px;
  height: 100%;
  margin: 0;
  box-sizing: border-box;
  padding: 40px 0px 0px 0px;
  list-style: none;
  dbackground-color: #333;
  background-color: #ffffff;
  box-shadow: 2px 2px 6px rgba(0, 0, 0, .4);
  transition-duration: .25s;
  overflow:auto;
  z-index: 11;
}
.menu__item {
  border-radius: 0px;
  display: block;
  padding: 4px 10px;
  margin: 20px 14px;
  dcolor: #ECEFF1;
  color: #333;
  font-size: 20px;
  font-weight: 600;
  text-decoration-line: none;
  transition-duration: .25s;
}
.menu__item:hover {
  background-color: #eeeeee;
  color: #000;
}
.menu__item2 {
  border-radius: 0px;
  display: block;
  padding: 4px 10px;
  margin: 20px 14px;
  background-color: #eeeeee;
  color: #000;
  font-size: 20px;
  font-weight: 600;
  text-decoration: none;
  transition-duration: .25s;
}
.menu__item2:hover {
  background-color: #cccccc;
  color: #000;
}
.menu__item_select {
  border-left: solid 4px;
  padding: 4px 10px 4px 8px;
  border-color: #000;
}
:target ~ .mobile_menu .menu__box {
    left: -100% !important;
}
:target ~ .mobile_menu #menu__toggle {
    checked: false;
}
.mobile_menu_bg {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.4); /* 半透明の黒 */
    opacity: 0;
    visibility: hidden;
    transition: opacity .25s ease, visibility .25s ease;
    z-index: 10;
}
/* チェックされたら表示（フェードイン） */
#menu__toggle:checked ~ .mobile_menu_bg {
    opacity: 1;
    visibility: visible;
}
