            .cyen-front-wrap{
                max-width:1200px;
                margin:0 auto;
            }
            .cyen-front-empty{
                padding:20px 0;
                color:#666;
            }
            .cyen-cast-grid{
                display:grid;
                grid-template-columns:repeat(4, minmax(0, 1fr));
                gap:24px;
            }
            @media (max-width: 767px){
                .cyen-cast-grid{
                    grid-template-columns:repeat(2, minmax(0, 1fr));
                    gap:16px;
                }
            }
.cyen-cast-card-image-link {
    display: block;
    text-decoration: none;
    cursor: pointer;
}

.cyen-cast-card-image-link img {
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.cyen-cast-card-image-link:hover img {
    transform: scale(1.03);
    opacity: 0.9;
}
            .cyen-cast-card{
                background:#fff;
                border:1px solid #e5e7eb;
                border-radius:16px;
                overflow:hidden;
                box-shadow:0 2px 8px rgba(0,0,0,.04);
            }
            .cyen-cast-card-image{
                aspect-ratio:3 / 4;
                background:#f5f5f5;
                overflow:hidden;
            }
            .cyen-front-date-weekday{
                font-weight:700;
            }
            .cyen-front-date-weekday.is-sat{
                color:#2563eb;
            }
            .cyen-front-date-weekday.is-sun,
            .cyen-front-date-weekday.is-holiday{
                color:#dc2626;
            }
            .cyen-cast-card-image img{
                width:100%;
                height:100%;
                object-fit:cover;
                object-position:center top;
                display:block;
            }
            .cyen-front-noimage{
                width:100%;
                height:100%;
                min-height:180px;
                display:flex;
                align-items:center;
                justify-content:center;
                color:#999;
                background:#f3f4f6;
            }
            .cyen-cast-card-body{
                padding:16px;
            }
            .cyen-cast-card-name{
                margin:0 0 8px;
                font-size:20px;
                line-height:1.3;
            }
            .cyen-cast-card-specs{
                font-size:14px;
                color:#555;
                margin-bottom:8px;
            }
            .cyen-cast-card-shift{
                font-size:20px;
                font-weight:700;
                line-height:1.2;
                color:#111827;
                margin-bottom:8px;
                letter-spacing:.02em;
            }
            .cyen-cast-card-copy{
                font-size:14px;
                line-height:1.6;
                color:#333;
                margin-bottom:12px;
            }
            .cyen-cast-card-actions{
                margin-top:12px;
            }
            .cyen-front-btn{
                display:inline-block;
                padding:10px 16px;
                border-radius:999px;
                background:#111827;
                color:#fff;
                text-decoration:none;
                font-size:14px;
            }
.cyen-favorite-form{
    display:inline-block;
    margin-left:8px;
}
.cyen-favorite-btn{
    border:none;
    cursor:pointer;
}
            .cyen-date-tabs{
                display:flex;
                gap:8px;
                flex-wrap:wrap;
                margin-bottom:16px;
            }
            .cyen-date-tab{
                display:flex;
                flex-direction:column;
                align-items:center;
                justify-content:center;
                gap:2px;
                min-width:64px;
                padding:10px 12px;
                border-radius:999px;
                border:1px solid #d1d5db;
                background:#fff;
                color:#111827;
                text-decoration:none;
                font-size:14px;
                line-height:1.2;
            }
            .cyen-date-tab-date{
                font-size:14px;
                font-weight:700;
                color:inherit;
            }
            .cyen-date-tab-weekday{
                font-size:11px;
                color:inherit;
            }
            .cyen-date-tab.is-weekday{
                color:#111827;
            }
            .cyen-date-tab.is-sat{
                color:#2563eb;
            }
            .cyen-date-tab.is-sun,
            .cyen-date-tab.is-holiday{
                color:#dc2626;
            }
            .cyen-date-tab.is-active{
                background:#111827;
                border-color:#111827;
                color:#fff;
            }
            .cyen-front-date-title{
                margin:0 0 18px;
                font-size:22px;
                font-weight:700;
            }
            .cyen-profile-layout{
                display:grid;
                grid-template-columns:1fr 1fr;
                gap:32px;
                align-items:start;
            }
            .cyen-profile-main-image{
                border-radius:16px;
                overflow:hidden;
                background:#111;
            }
            .cyen-gallery-slide{
                display:none;
            }
            .cyen-gallery-slide.is-active{
                display:block;
                animation:cyen-slide-in 0.3s ease;
            }
            @keyframes cyen-slide-in{
                from{opacity:0;}
                to{opacity:1;}
            }
            .cyen-gallery-slide img,
            .cyen-gallery-slide video{
                width:100%;
                height:auto;
                display:block;
            }
            .cyen-profile-thumbs{
                display:grid;
                grid-template-columns:repeat(auto-fill, minmax(72px, 1fr));
                gap:10px;
                margin-top:12px;
            }
            .cyen-profile-thumb-btn{
                display:block;
                border-radius:10px;
                overflow:hidden;
                border:2px solid transparent;
                background:none;
                padding:0;
                cursor:pointer;
                transition:border-color 0.15s;
            }
            .cyen-profile-thumb-btn.is-active{
                border-color:#111827;
            }
            .cyen-profile-thumb-btn img{
                width:100%;
                height:100%;
                object-fit:cover;
                display:block;
            }
            .cyen-thumb-video-wrap{
                position:relative;
                display:block;
                width:100%;
            }
            .cyen-thumb-video-wrap img{
                width:100%;
                height:100%;
                object-fit:cover;
                display:block;
            }
            .cyen-thumb-play-icon{
                position:absolute;
                inset:0;
                display:flex;
                align-items:center;
                justify-content:center;
                font-size:20px;
                color:#fff;
                background:rgba(0,0,0,0.35);
            }
            .cyen-thumb-video-only{
                display:flex;
                align-items:center;
                justify-content:center;
                width:100%;
                aspect-ratio:3/4;
                background:#1a1a2e;
                color:#fff;
                font-size:22px;
            }
            .cyen-profile-name{
                margin:0 0 10px;
                font-size:32px;
                line-height:1.2;
            }
            .cyen-profile-copy{
                font-size:18px;
                font-weight:600;
                margin-bottom:10px;
            }
            .cyen-profile-summary-line{
                font-size:18px;
                font-weight:600;
                letter-spacing:0;
                margin-bottom:20px;
                color:#333;
            }
            .cyen-profile-spec-list{
                display:grid;
                gap:10px;
                margin-bottom:20px;
            }
            .cyen-profile-spec-item{
                display:flex;
                gap:12px;
                padding-bottom:8px;
                border-bottom:1px solid #eee;
            }
            .cyen-profile-spec-label{
                width:110px;
                flex:0 0 110px;
                color:#666;
            }
            .cyen-profile-spec-value{
                flex:1 1 auto;
            }
            .cyen-profile-section{
                margin-top:20px;
            }
            .cyen-profile-section h3{
                margin:0 0 10px;
                font-size:20px;
            }
            .cyen-week-table{
                width:100%;
                border-collapse:collapse;
                margin-top:10px;
            }
            .cyen-week-table th,
            .cyen-week-table td{
                border:1px solid #e5e7eb;
                padding:12px 10px;
                text-align:center;
            }
            .cyen-week-table th{
                background:#f9fafb;
                font-size:14px;
            }
            .cyen-week-table th span{
                display:block;
                margin-top:4px;
                color:#666;
                font-size:12px;
            }
            .cyen-profile-main-noimage{
                min-height:420px;
                border-radius:16px;
            }
.cyen-profile-course-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.cyen-profile-course-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid #eee;
    border-radius: 8px;
    background: #fff;
}

.cyen-profile-course-name {
    font-weight: 700;
}

.cyen-profile-course-meta {
    display: flex;
    gap: 10px;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
}

@media (max-width: 480px) {
    .cyen-profile-course-item {
        align-items: flex-start;
        flex-direction: column;
        gap: 4px;
    }
}
            .cyen-ai-chat{
                max-width:720px;
                margin:0 auto;
                background:#fff;
                border:1px solid #e5e7eb;
                border-radius:18px;
                box-shadow:0 2px 10px rgba(0,0,0,.04);
                overflow:hidden;
            }
            .cyen-ai-chat-header{
                padding:20px 20px 12px;
                border-bottom:1px solid #f1f5f9;
            }
            .cyen-ai-chat-title{
                margin:0 0 8px;
                font-size:24px;
                line-height:1.3;
            }
            .cyen-ai-chat-lead{
                margin:0;
                color:#64748b;
                font-size:14px;
                line-height:1.6;
            }
            .cyen-ai-chat-meta{
                display:flex;
                gap:8px;
                flex-wrap:wrap;
                padding:12px 20px 0;
            }
            .cyen-ai-chat-chip{
                display:inline-flex;
                align-items:center;
                min-height:30px;
                padding:0 12px;
                border-radius:999px;
                background:#f3f4f6;
                color:#334155;
                font-size:12px;
                font-weight:600;
            }
            .cyen-ai-chat-messages{
                padding:20px;
                background:#fafafa;
                min-height:220px;
                display:flex;
                flex-direction:column;
                gap:12px;
            }
            .cyen-ai-chat-message{
                max-width:85%;
                padding:12px 14px;
                border-radius:14px;
                font-size:14px;
                line-height:1.6;
            }
            .cyen-ai-chat-message.is-ai{
                background:#fff;
                color:#111827;
                border:1px solid #e5e7eb;
                align-self:flex-start;
            }
            .cyen-ai-chat-message.is-note{
                background:#fff;
                border:1px solid #e5e7eb;
                color:#475569;
                align-self:flex-start;
            }
            .cyen-ai-chat-form{
                display:flex;
                gap:10px;
                padding:16px 20px 20px;
                background:#fff;
            }
            .cyen-ai-chat-input{
                flex:1 1 auto;
                min-width:0;
                height:46px;
                border:1px solid #d1d5db;
                border-radius:12px;
                padding:0 14px;
                font-size:14px;
                box-sizing:border-box;
            }
            .cyen-ai-chat-send{
                flex:0 0 auto;
                height:46px;
                padding:0 18px;
                border:none;
                border-radius:12px;
                background:#111827;
                color:#fff;
                font-size:14px;
                font-weight:700;
                cursor:not-allowed;
                opacity:.55;
            }
.cyen-profile-spec-list {
    width: 100%;
}

.cyen-profile-spec-item {
    display: grid;
    grid-template-columns: 160px 1fr;
    align-items: center;
    border-bottom: 1px solid #eee;
    padding: 10px 0;
}

.cyen-profile-spec-label {
    font-weight: bold;
    text-align: left;
    white-space: nowrap;
    padding-left: 16px;
}

.cyen-profile-spec-value {
    text-align: right;
    padding-right: 16px;
}
.cyen-week-table {
    width: 100%;
    table-layout: fixed; /* ← これが重要 */
    border-collapse: collapse;
}
.cyen-week-table th {
    font-size: 13px;
    font-weight: bold;
}

.cyen-week-table td {
    font-size: 14px;
    font-weight: 500;
}
.cyen-week-table th,
.cyen-week-table td {
    width: calc(100% / 7); /* ← 7等分 */
    text-align: center;
    padding: 8px 4px;
    border: 1px solid #ddd;
    font-size: 12px;
}

.cyen-week-table th {
    background: #f5f5f5;
}
/* 土曜 */
.cyen-week-table .sat {
    color: #007bff;
}

/* 日曜・祝日 */
.cyen-week-table .sun,
.cyen-week-table .holiday {
    color: #e60033;
}

            @media (max-width: 900px){
                .cyen-profile-layout{
                    grid-template-columns:1fr;
                }
            }
            @media (max-width: 767px){
                .cyen-ai-chat{
                    border-radius:14px;
                }
                .cyen-ai-chat-title{
                    font-size:20px;
                }
                .cyen-ai-chat-form{
                    flex-direction:column;
                }
                .cyen-ai-chat-send{
                    width:100%;
                }
            }
.cyen-profile-layout .cyen-profile-blog-section {
    grid-column: 1 / -1;
}

.cyen-profile-blog-list {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 16px;
}

.cyen-profile-blog-item {
    border: 1px solid #eee;
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
}

.cyen-profile-blog-link {
    display: block;
    text-decoration: none;
    color: inherit;
}

.cyen-profile-blog-thumb {
    width: 100%;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: #f5f5f5;
}

.cyen-profile-blog-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cyen-no-thumb {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #999;
    font-size: 12px;
}

.cyen-profile-blog-title {
    font-size: 14px;
    font-weight: 700;
    padding: 8px;
}

.cyen-profile-blog-date {
    font-size: 12px;
    color: #666;
    padding: 0 8px 8px;
}

.cyen-blog-cast-name {
    font-size: 11px;
    font-weight: 700;
    color: #888;
    padding: 6px 8px 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cyen-front-wrap.cyen-price-system {
    display: grid;
    gap: 24px;
    max-width: 100%;
    width: 100%;
}

.cyen-front-wrap.cyen-price-system .cyen-price-section {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    overflow: hidden;
    width: 100%;
}

.cyen-front-wrap.cyen-price-system .cyen-price-heading {
    background: #111827;
    color: #fff;
    font-size: 20px;
    line-height: 1.4;
    margin: 0;
    padding: 14px 18px;
}

.cyen-front-wrap.cyen-price-system .cyen-price-table-wrap {
    display: block;
    overflow-x: auto;
    width: 100%;
}

.cyen-front-wrap.cyen-price-system .cyen-price-table {
    border-collapse: collapse;
    display: table !important;
    max-width: none !important;
    min-width: 100% !important;
    table-layout: fixed !important;
    width: 100% !important;
}

.cyen-front-wrap.cyen-price-system .cyen-price-table-courses .cyen-price-col-course {
    width: 50% !important;
}

.cyen-front-wrap.cyen-price-system .cyen-price-table-courses .cyen-price-col-minutes {
    width: 20% !important;
}

.cyen-front-wrap.cyen-price-system .cyen-price-table-courses .cyen-price-col-price {
    width: 30% !important;
}

.cyen-front-wrap.cyen-price-system .cyen-price-table-half .cyen-price-col-half {
    width: 50% !important;
}

.cyen-front-wrap.cyen-price-system .cyen-price-table th,
.cyen-front-wrap.cyen-price-system .cyen-price-table td {
    border-bottom: 1px solid #e5e7eb;
    padding: 13px 16px;
    text-align: left;
    vertical-align: middle;
    word-break: break-word;
}

.cyen-front-wrap.cyen-price-system .cyen-price-table th {
    background: #f8fafc;
    color: #374151;
    font-weight: 700;
}

.cyen-front-wrap.cyen-price-system .cyen-price-table td:last-child,
.cyen-front-wrap.cyen-price-system .cyen-price-table th:last-child {
    text-align: right;
    white-space: nowrap;
}

.cyen-front-wrap.cyen-price-system .cyen-price-table-courses td:nth-child(2),
.cyen-front-wrap.cyen-price-system .cyen-price-table-courses th:nth-child(2) {
    text-align: center;
    white-space: nowrap;
}

.cyen-front-wrap.cyen-price-system .cyen-price-table tr:last-child td {
    border-bottom: 0;
}

@media (max-width: 1024px) {
    .cyen-profile-blog-list {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    .cyen-profile-blog-list {
        grid-template-columns: repeat(2, 1fr);
    }

    .cyen-front-wrap.cyen-price-system .cyen-price-heading {
        font-size: 18px;
        padding: 12px 14px;
    }

    .cyen-front-wrap.cyen-price-system .cyen-price-table th,
    .cyen-front-wrap.cyen-price-system .cyen-price-table td {
        font-size: 14px;
        padding: 11px 10px;
    }
}
@media (max-width: 480px) {
    .cyen-profile-spec-item {
        grid-template-columns: 130px 1fr;
    }

    .cyen-profile-spec-label {
        padding-left: 8px;
    }

    .cyen-profile-spec-value {
        padding-right: 8px;
    }
}
@media (max-width: 768px) {
    .cyen-week-table th,
    .cyen-week-table td {
        font-size: 10px;
        padding: 6px 2px;
    }
}
@media (max-width: 768px) {
    .cyen-week-table th {
        font-size: 10px;
    }

    .cyen-week-table td {
        font-size: 11px;
    }
}

/* お気に入り限定プレースホルダー */
.cyen-gallery-slide--placeholder {
    position: relative;
}
.cyen-gallery-slide--placeholder .cyen-placeholder-img {
    filter: blur(6px);
    opacity: 0.55;
    transform: scale(1.04);
}
.cyen-favorite-lock-badge {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}
.cyen-favorite-lock-badge span {
    background: rgba(0, 0, 0, 0.72);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.03em;
    padding: 7px 16px;
    border-radius: 999px;
    white-space: nowrap;
    text-shadow: none;
}
.cyen-thumb-placeholder-wrap {
    position: relative;
    display: block;
    width: 100%;
}
.cyen-thumb-placeholder-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: blur(3px);
    opacity: 0.5;
    transform: scale(1.06);
}
.cyen-thumb-placeholder-badge {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    color: #fff;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.9);
}
