/*
Theme Name: Astra Child
Theme URI: https://wpastra.com/
Template: astra
Author: Brainstorm Force
Author URI: https://wpastra.com/about/?utm_source=theme_preview&utm_medium=author_link&utm_campaign=astra_theme
Description: The Astra WordPress theme is lightning-fast and highly customizable. It has over 1 million downloads and the only theme in the world with 5,700+ five-star reviews! It’s ideal for professional web designers, solopreneurs, small businesses, eCommerce, membership sites and any type of website. It offers special features and templates so it works perfectly with all page builders like Spectra, Elementor, Beaver Builder, etc. Fast performance, clean code, mobile-first design and schema markup are all built-in, making the theme exceptionally SEO-friendly. It’s fully compatible with WooCommerce, SureCart and other eCommerce plugins and comes with lots of store-friendly features and templates. Astra also provides expert support for free users. A dedicated team of fully trained WordPress experts are on hand to help with every aspect of the theme. Try the live demo of Astra: https://zipwp.org/themes/astra/
Tags: custom-menu,custom-logo,entertainment,one-column,two-columns,left-sidebar,e-commerce,right-sidebar,custom-colors,editor-style,featured-images,full-width-template,microformats,post-formats,rtl-language-support,theme-options,threaded-comments,translation-ready,blog
Version: 4.11.1.1748890024
Updated: 2025-06-02 18:47:04

*/
#is_downloadable,
label[for="is_downloadable"],
p.downloadable_ele_title {
  display: none !important;
}


#store_name,
p.store_name.wcfm_ele.wcfm_title {
    display: none !important;
}
/* WCFM 登録完了メッセージ・プラン確認の背景を透明にする */
#wcfm-main-contentainer .wcfm_membership_review_plan,
#wcfm-main-contentainer .wcfm_membership_thankyou_content_wrapper {
    background-color: transparent !important;
}

/* WCFM風ログインフォーム */
.tutor-login-form-wrapper {
    width: 550px !important;         
    min-height: 534px !important;   /* 高さを固定せず最小値に */
    padding: 20px;
    margin: 25px 30px !important;   
    background-color: #FFFFFF;
    box-sizing: border-box;
    border-radius: 4px;
    box-shadow: 0 -4px 8px rgba(0,0,0,0.02),
                0 4px 8px rgba(0,0,0,0.02),
                2px 0 6px rgba(0,0,0,0.02),
                -2px 0 6px rgba(0,0,0,0.02);
}

/* 内部要素を親幅にフィット */
.tutor-login-form-wrapper .wcfm-container,
.tutor-login-form-wrapper .wcfm-login-form,
.tutor-login-form-wrapper .wcfm-title,
.tutor-login-form-wrapper .wcfm-action,
.tutor-login-form-wrapper .wcfm-checkbox,
.tutor-login-form-wrapper .wcfm-text.horizontal {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
}

/* ラベルと入力欄の横並び */
.tutor-login-form-wrapper .wcfm-text.horizontal {
    display: flex;
    align-items: center;
    margin-bottom: 15px;
}

/* ラベル幅固定 */
.tutor-login-form-wrapper .wcfm-text.horizontal .wcfm-label {
    width: 120px;
    margin-right: 10px;
    font-weight: bold;
    font-style: italic; /* 斜体 */
    flex-shrink: 0;
}

/* 入力欄を右寄せ、残り幅を自動調整 */
.tutor-login-form-wrapper .wcfm-text.horizontal .wcfm-text-input {
    margin-left: auto;
    flex: 1;
    height: 36.18px;
    box-sizing: border-box;
}

/* ログインボタン右寄せ */
.tutor-login-form-wrapper .wcfm-action {
    text-align: right !important;
    margin-top: 20px;
}

/* 入力欄・パスワードのスタイル */
.wcfm-login-form input[type="text"],
.wcfm-login-form input[type="password"] {
    width: 100%;
    padding: 12px;
    margin-bottom: 15px;
    border: 1px solid #dcdcdc;
    border-radius: 4px;
    font-size: 14px;
}

/* Loginボタン：WCFM Registration と完全一致 */
.tutor-login-form-wrapper .wcfm-btn-primary {
    background-color: #313131;
    color: #fff;
    border-radius: 3px;
    padding: 10px 25px;
    font-size: 15px;
    font-weight: 600;
    min-width: 120px;
    height: auto;             /* 固定解除 */
    min-height: 42px;         /* 最小高さを設定 */
    line-height: 1.2;
    border: none;
    box-shadow: none;
    transition: background-color 0.2s ease;
}

/* Hover時：WCFM標準ブルー */
.tutor-login-form-wrapper .wcfm-btn-primary:hover {
    background-color: #1a73e8;
    color: #fff;
}

/* Lost password リンク */
.tutor-lost-password {
    margin: 10px 0 20px;
    text-align: right;
}

.tutor-lost-password a {
    font-size: 13px;
    color: #1a73e8;
    text-decoration: none;
}

.tutor-lost-password a:hover {
    text-decoration: underline;
}

/* カート件数のレイアウト調整*/
a:has(.menu-cart-count) {
    position: relative;
    display: inline-block;
}

.menu-cart-count {
    position: absolute;
    top: -6px;            /* 上方向の位置 */
    right: -10px;         /* 右方向の位置 */
    background: #ff0000;  /* 赤丸 */
    color: #fff;           /* 白文字 */
    font-size: 14px;       /* 大きめの数字 */
    font-weight: bold;
    line-height: 1;
    min-width: 22px;       /* 横幅 */
    height: 22px;          /* 高さ */
    padding: 0 6px;        /* 左右の余白 */
    border-radius: 50%;    /* 完全な円形 */
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* FullCalendar イベントタイトルを折り返し表示 */
.fc-event-title {
    white-space: normal;
    word-break: break-word;
}

/* 未来のレッスン（赤） */
.fc-event-future {
    background-color: #e74c3c;
    border-color: #e74c3c;
    color: #fff;
}

/* 過去のレッスン（灰色） */
.fc-event-past {
    background-color: #bdc3c7;
    border-color: #bdc3c7;
    color: #555;
}

/* ===== Lesson Room Layout ===== */
/* Astra の中央カラム制限を解除 */
.page-template-page-lesson-room .ast-container {
    display: block;
    max-width: none;
    padding-left: 0;
    padding-right: 0;
}

/* Lesson Room 本体 */
.page-template-page-lesson-room .lesson-room-container {
    max-width: 1200px;
    width: 100%;
    margin: 40px auto;
    padding: 30px;
    background: #ffffff;
    border-radius: 10px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
    text-align: left;
}

/* タイトル */
.lesson-room-container h1 {
    font-size: 28px;
    margin-bottom: 10px;
}

/* セクション見出し */
.lesson-room-container h3 {
    margin-top: 40px;
    margin-bottom: 15px;
    font-size: 20px;
    border-bottom: 2px solid #eee;
    padding-bottom: 6px;
}

/* テキスト */
.lesson-room-container p {
    font-size: 16px;
    line-height: 1.7;
    margin-bottom: 10px;
}

/* レッスン情報ブロック */
.lesson-room-info {
    background: #f7f9fb;
    padding: 20px;
    border-radius: 8px;
    margin-bottom: 30px;
}

/* リンク */
.lesson-room-container a {
    color: #0066cc;
    font-weight: 600;
    text-decoration: none;
}

.lesson-room-container a:hover {
    text-decoration: underline;
}

/* フォーム */
.lesson-room-container form {
    margin-top: 20px;
}

.lesson-room-container input[type="url"],
.lesson-room-container input[type="text"],
.lesson-room-container input[type="file"] {
    width: 100%;
    max-width: 500px;
    padding: 10px;
    border-radius: 6px;
    border: 1px solid #ccc;
}

/* ボタン */
.lesson-room-container button {
    background: #0066cc;
    color: #fff;
    border: none;
    padding: 10px 18px;
    border-radius: 6px;
    cursor: pointer;
}

.lesson-room-container button:hover {
    opacity: 0.9;
}

/* 教材リスト */
.lesson-room-container ul {
    padding-left: 20px;
}

.lesson-room-container li {
    margin-bottom: 6px;
}

/* チャット */
.lesson-chat {
    background: #fafafa;
    border: 1px solid #ddd;
    padding: 15px;
    border-radius: 8px;
    max-height: 300px;
    overflow-y: auto;
}

/* キャンセルボタンフォーム */
.lesson-cancel-wrapper {
    text-align: right; /* ボタンも注意書きも右寄せ */
    margin-top: 20px;
}

.lesson-cancel-form {
    display: inline-block; /* ボタン幅を自然に */
}

.lesson-cancel-button {
    background-color: #c00 !important;
    color: #fff !important;
    padding: 12px 24px;
    border: none;
    border-radius: 6px;
    font-size: 16px;
    font-weight: bold;
    cursor: pointer;
    display: inline-block !important;
    float: none !important;
    max-width: 100%;
    box-sizing: border-box;
    transition: opacity 0.2s ease;
}

.lesson-cancel-button:hover {
    opacity: 0.8;
}

.lesson-cancel-note {
    font-size: 12px;
    color: #555;
    margin-top: 5px;
    display: block;
}

.lesson-cancel-warning {
    color: red;
    font-weight: bold;
    font-size: 1.2em;
    background-color: #fff3f3; /* 薄い赤背景でさらに目立たせる */
    padding: 8px;
    border-radius: 4px;
}

/* Online Lesson Join Area*/
.lesson-join-area {
    margin: 48px 0;
    padding: 28px 32px;
    border-radius: 14px;
    background: #ffffff;
    border: 1px solid #e5e7eb; /* 薄いグレーで柔らかく */
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

/* 左のテキスト */
.lesson-join-area .join-info {
    flex: 1;
}

.lesson-join-area .join-info h3 {
    margin: 0 0 6px 0;
    font-size: 18px;
    font-weight: 600;
    color: #0d9488; /* ティール色をタイトルに */
}

.lesson-join-area .join-info p {
    margin: 0;
    font-size: 14px;
    color: #6b7280;
}

/* Joinボタン */
.join-lesson-button {
    background: #14b8a6; /* 明るめのティール色 */
    color: #ffffff;
    font-size: 16px;
    font-weight: 600;
    padding: 14px 28px;
    border-radius: 10px;
    border: none;
    cursor: pointer;
    transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.join-lesson-button:hover {
    background: #0d9488; /* 少し濃くしてホバー時のアクセント */
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(0,0,0,0.15);
}

/* 待機中メッセージ */
.lesson-waiting-message {
    font-size: 14px;
    color: #6b7280;
}

/* モバイル対応 */
@media (max-width: 768px) {
    .lesson-join-area {
        flex-direction: column;
        align-items: stretch;
        text-align: left;
    }

    .join-lesson-button {
        width: 100%;
        text-align: center;
    }
}

/* Joinメッセージの基本スタイル */
.join-message {
    font-size: 18px;
    font-weight: 600;
    margin-top: 10px;
}

/* Online lesson ready */
.join-message.join-now {
    color: #0ea5e9 !important;   /* 明るめブルー */
    font-size: 18px !important;
    font-weight: 600 !important;
}

/* Lesson link not yet available */
.join-message.too-early {
    color: #f59e0b !important;   /* 明るめオレンジ */
    font-size: 18px !important;
    font-weight: 600 !important;
}

/* Lesson ended */
.join-message.ended {
    color: #ef4444 !important;   /* 赤色で終了を明確に */
    font-size: 18px !important;
    font-weight: 600 !important;
}
