@charset "UTF-8";
#ykbzgjhr .pb20{padding-bottom: 20px;}

        #ykbzgjhr .container {
            max-width: 770px;
            margin: 0 auto;
            border-radius: 0;
            box-sizing: border-box;
            background: #c30036;
            color: #fff;
        }

        #ykbzgjhr .campaign-kv {
            width: 100%;
            height: auto;
            display: block;
        }

        #ykbzgjhr .campaign-banner{
            background: #252424;
            padding: 20px;
        }

        #ykbzgjhr .campaign-banner img {
            width: 90%;
            height: auto;
            display: block;
            margin: 0 auto;
        }

        #ykbzgjhr .campaign-intro-main {
            font-size: 20px;
            font-weight: bold;
            color: #e0a92b;
            margin-bottom: 8px;
        }

        #ykbzgjhr .campaign-intro-sub {
            font-size: 14px;
            color: #e0e0e0;
            margin: 0;
        }

        /* キャンペーン期間 */
        #ykbzgjhr .campaign-header {
            text-align: center;
            font-weight: bold;
            font-size: 18px;
            color: #fffdfa;
        }

        #ykbzgjhr .section-title-bar {
            background-color: #c20336; 
            color: #fff;
            text-align: center;
            padding: 12px 10px;
            font-size: 20px;
            font-weight: bold;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            box-sizing: border-box;
        }

        #ykbzgjhr .title-icon {
            height: 24px;
            width: auto;
            display: inline-block;
            vertical-align: middle;
        }

        #ykbzgjhr .tag-campaign-outer {
            position: relative;
            background-color: #ffffff;
            padding: 15px 0;
            margin-bottom: 30px;
            box-shadow: 0 4px 20px rgba(166, 124, 30, 0.12); 
        }

        #ykbzgjhr .tag-campaign-outer::after {
            content: "";
            position: absolute;
            top: 0;
            right: 0;
            width: 40px;
            height: 100%;
            background: linear-gradient(to right, rgba(240, 238, 233, 0) 0%, rgba(255, 253, 248, 0.95) 100%);
            pointer-events: none;
            z-index: 2;
        }

        #ykbzgjhr .tag-campaign-wrapper {
            overflow-x: auto;
            -webkit-overflow-scrolling: touch; 
            padding: 0 20px 8px 15px;
        }

        #ykbzgjhr .tag-scroll-row {
            display: flex;
            flex-direction: column;
            gap: 12px;
            width: max-content;
            padding-right: 20px;
        }
        
        #ykbzgjhr .tag-line {
            display: flex;
            gap: 10px;
        }

        #ykbzgjhr .tag-campaign-wrapper::-webkit-scrollbar {
            height: 5px;
        }
        #ykbzgjhr .tag-campaign-wrapper::-webkit-scrollbar-track {
            background: rgba(0, 0, 0, 0.03);
            border-radius: 3px;
        }
        #ykbzgjhr .tag-campaign-wrapper::-webkit-scrollbar-thumb {
            background: #c20336;
            border-radius: 3px;
        }

        #ykbzgjhr .tag-btn {
            border: 1px solid #d2d2d6;    
            background-color: #f4f4f7; 
            color: #242426;               
            padding: 8px 18px;
            border-radius: 20px;
            cursor: pointer;
            font-size: 14px;
            font-weight: bold;
            transition: all 0.2s ease;
            height: 36px;
            box-sizing: border-box;
            white-space: nowrap;
            flex-shrink: 0;
        }

        #ykbzgjhr .tag-btn.active {
            background-color: #00f1fa;    
            color: #252424;
            box-shadow: 0 2px 7px rgba(82, 82, 82, 0.4);
            border-color: #17969b;
        }

        #ykbzgjhr .work-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 20px;
            padding: 0 10px;
        }
        
        #ykbzgjhr .work-item {
            overflow: hidden;
            display: flex;
            flex-direction: column;
            height: 100%;
            transition: transform 0.2s ease;
        }
        #ykbzgjhr .work-item:hover {
            transform: translateY(-2px);
        }

        #ykbzgjhr .work-item.is-hidden {
            display: none;
        }
        
        #ykbzgjhr .work-link {
            text-decoration: none;
            display: block;
            width: 100%;
        }
        
        #ykbzgjhr .work-thumbnail {
            background-color: transparent; 
            aspect-ratio: auto;
            width: 100%;
            display: block;
            object-fit: cover;
        }

        #ykbzgjhr .work-info {
            font-size: 14px;
            color: #ffffff;
            padding: 10px 8px; 
            text-align: left;
            box-sizing: border-box;
        }
        
        #ykbzgjhr .work-btn {
            background-color: #252424;    
            color: #fff;
            text-align: center;
            transition: background 0.2s;
            margin-top: auto; 
        }

        #ykbzgjhr .work-btn a{
            display: block;
            padding: 12px;
            font-size: 14px;
            font-weight: bold;
            text-decoration: none;
        }

        #ykbzgjhr .work-btn:hover {
            background-color: #00f0ff;
        }

        #ykbzgjhr .work-btn a:hover{
            text-decoration: none;
        }

        #noMatchMessage {
            display: none;
            text-align: center;
            margin: 0 10px;
            padding: 60px 0;
            color: #ffffff; 
            font-size: 16px;
            font-weight: bold;
            border: 2px dashed #ffffff; 
            border-radius: 0; 
        }

        #ykbzgjhr .campaign-footer-copyright {
            margin-top: 30px;
            padding-top: 20px;
            padding-bottom: 20px;
            border-top: 1px solid #fff;
            font-size: 10px;
            line-height: 1.6;
            color: #fff; 
            text-align: center;
        }

        @media (max-width: 480px) {
            #ykbzgjhr .work-grid {
                grid-template-columns: repeat(2, 1fr);
                gap: 10px;
            }
            #ykbzgjhr .section-title-bar {
                font-size: 17px;
            }
            #ykbzgjhr .campaign-intro-main {
                font-size: 17px;
            }
            #ykbzgjhr .campaign-intro-sub {
                font-size: 12px;
            }
        }