/**
Theme Name: Astra Child
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
Template: astra
*/

/* ------------------------ 基本設定 ここから ------------------------*/

/* =========================
   全体レイアウト設定
   ========================= */
/* コンテンツ幅を1980pxに変更 */
.ast-container,
#main,
body.user-registration-page #user-registration.user-registration-MyAccount,
body.user-registration-page .user-registration.user-registration-MyAccount,
body.user-registration-membership_page_user-registration-login-forms #user-registration.user-registration-MyAccount, 
body.user-registration-membership_page_user-registration-login-forms .user-registration.user-registration-MyAccount{
    max-width: 1980px!important;
    padding:20!important;
}
/* パディング調整 */
#content {
    padding: 10px 40px 40px;
}
.site-primary-header-wrap.ast-builder-grid-row-container.site-header-focus-item.ast-container{
	padding:0;
}
.site-below-header-wrap.ast-builder-grid-row-container.site-header-focus-item.ast-container{
	padding:0 20px 20px 20px;
}
#user-registration.horizontal .user-registration-MyAccount-content{
    padding: 0!important;
}
#user-registration.vertical, #user-registration.horizontal,
#user-registration.horizontal, #user-registration{
    box-shadow:none!important;
}
/* コンテナの設定 */
.container, .ast-container {
    /*max-width: 1100px;*/
    margin: 0 auto;
    padding: 20px;
}
.custom-dashboard-content {
  display: flex;
  /*max-width: 1980px;*/
  max-width: 100%;
  margin: 0 auto;
  gap: 20px; /* メニューとコンテンツの間の余白 */
  box-sizing: border-box;
  background-color: #ffffff;
  border-radius: 8px;
  text-align: left;
}
/* ログインコンテナ */
body.user-registration-membership_page_user-registration-login-forms #user-registration:not(.user-registration-MyAccount),
body.user-registration-membership_page_user-registration-login-forms .user-registration:not(.user-registration-MyAccount),
body.user-registration-page #user-registration:not(.user-registration-MyAccount),
body.user-registration-page .user-registration:not(.user-registration-MyAccount) {
        margin: 0 auto;
        margin-top: 20px;
}
/* レスポンシブ対応 */
@media screen and (max-width: 1024px){
    .custom-dashboard-content{
        flex-direction: column; /* 横並び→縦並びに変更 */
        gap: 10px;
        padding: 10px;
    }
}
@media (max-width: 768px) {
    /* パディング調整 */
    #content {
        padding: 10px; /* ヘッダーが固定されていない場合、上部のパディングを調整 */
    }
    .site-primary-header-wrap.ast-builder-grid-row-container.site-header-focus-item.ast-container{
        padding:0;
    }
    .site-below-header-wrap.ast-builder-grid-row-container.site-header-focus-item.ast-container{
        padding:10px;
    }
    #user-registration.horizontal .user-registration-MyAccount-content{
        padding: 0!important;
    }
    /* コンテナの設定 */
    .container, .ast-container {
        padding: 10px!important;
    }
    .custom-dashboard-content {
        flex-direction: column; /* 横並び→縦並びに変更 */
        padding: 10px;
    }
    .custom-dashboard-content {
        max-width: 100%;
    }
}

/* =========================
   左メニューエリア
   ========================= */
.dashboard_list {
  flex-shrink: 0;
  width: 200px; /* メニューの固定幅 */
  box-sizing: border-box;
  position: sticky;
  top: 20px; /* スクロールしても上部に固定される */
  height: fit-content;
  list-style: none;
  margin: 0;
}
.dashboard_list a {
  display: block;
  text-decoration: none!important;
  color: #333;
  background: #fff;
  padding: 10px 15px;
  border: 1px solid #ddd;
  /*transition: background 0.2s, color 0.2s;*/
}
.dashboard_list a:hover,
.dashboard_list a:focus,
.dashboard_list a:active {
  background: #096A8B;
  color: #fff;
}
/* レスポンシブ対応 */
@media (max-width: 768px) {
    .dashboard_list {
    width: 100%; /* 横幅いっぱいに */
    position: static; /* 固定解除 */
    top: auto;
    margin-bottom: 20px; /* 下に余白を追加 */
  }

  .dashboard_main {
    width: 100%;
  }

}
/* =========================
   右コンテンツエリア
   ========================= */
.dashboard_main {
  flex: 1;
  background: #fff;
  padding: 0;
  border-radius: 12px;
  box-sizing: border-box;
}
.dashboard_content{
  display: flex;
  max-width: 1600px;
  margin: 0 auto;
  gap: 10px; /* コンテンツ間の余白 */
  box-sizing: border-box;
}
.dashboard_content_inner{
    padding: 10px;
    width: 50%;
}
.dashboard_box{
    padding: 10px 10px 30px 10px;
}
/* レスポンシブ対応 */
@media (max-width: 768px) {
    .dashboard_content {
        flex-direction: column; /* 横並び→縦並びに変更 */
        padding: 10px;
    }
    .dashboard_content_inner{
        width: 100%;
}
}

/* =========================
   アコーディオン
   ========================= */
.accordion-item {
  overflow: hidden;
}

/* 開閉ボタン */
.accordion-toggle {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);  /* 縦中央 */
  width: 36px;               /* 幅＝高さで丸にする */
  height: 36px;
  padding: 0;                /* 中の余白は使わない */
  display: inline-flex;      /* + を完全中央に配置するため */
  align-items: center;
  justify-content: center;
  background: #f5f5f5!important;
  border-radius: 50%;        /* 完全な円形 */
  line-height: 1;            /* text の縦ずれ防止 */
  font-weight: 700;
  font-size: 18px;
  cursor: pointer;
  z-index: 5;                /* クリック可能にするため前面に */
  -webkit-font-smoothing: antialiased;
  color: #333!important;
}
.accordion-toggle:active,
.accordion-toggle:hover{
  background: #38A609!important;
  color:#333!important;
}
/* 開いたら見た目を変える（例） */
.accordion-item.active .accordion-toggle {
  transform: translateY(-50%) rotate(45deg); /* + を × に見せたいとき */
}

/* コンテンツ部分 */
.accordion-content {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: all 0.4s ease;
  padding: 0 10px;
}
/* 開いたとき */
.accordion-item.active .accordion-content {
  /* max-height: 1000px; */
  max-height: 100%;
  opacity: 1;
  padding: 0;
}


/* コンテンツ内ラッパー */
/*.accordion-inner {
  padding: 12px 0;
}*/

/* =========================
   全体設定
   ========================= */
/* サイト背景 */
.site-content {
    background-color: #9BD6EA;
    background-image: url("./img/background.png");
    background-repeat: no-repeat;
    background-position: center top;
    background-size: cover;
    background-attachment: fixed;
    /* min-height: 100vh; */
}
@media (max-width: 768px) {
    .site-content {
        background-attachment: scroll;
    }
}


/* コンテンツ部分のフォントと背景色の設定 */
body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    background-color: #fff;
    color: #333;
    margin: 0;
    padding: 0;
}
.user-registration-MyAccount-navigation{
    display: none;
}

/* タイトルスタイル */
.site-title {
    font-size: 16px;
}
/* リンクの基本スタイル */
a {
    color: #38A609;
    text-decoration: none;
    transition: color 0.3s;
}
a:hover {
    color: #23560E;
    text-decoration: none;
}
a:focus, a:active {
    outline: none;
    border: none;
}

.mat20{ margin-top: 20px!important; }
.mat40{ margin-top: 40px!important; }
.mab10{ margin-bottom: 10px!important; }
.mab20{ margin-bottom: 20px!important; }
.bold{ font-weight:bold!important; }
.red{ color:red!important; }
.fs18{ font-size: 18px!important; }
.fs20{ font-size: 20px!important; }
.fs22{ font-size:22px!important; }
.fs40{ font-size:40px!important; }
.fs60{ font-size:60px!important; }
.fs160{font-size: 160px!important;}


/* =========================
   タイトル設定
   ========================= */
.title_h1{
    color: #333;
    margin-bottom: 0!important;
    font-size: 24px;
}

.title1 {
    position: relative;
    display: flex;             /* 追加：フレックスで縦中央揃え */
    align-items: center;       /* 追加：垂直中央 */
    width: 100%;
    font-size: clamp(1.6rem, 1.8vw, 2rem)!important;
    padding: 0.5em 1em!important;
    padding-right: 56px; /* ボタンスペース確保 */
    margin-top: 1em!important;
    margin-bottom: 1em!important;
    color: #fff!important;
    letter-spacing: 0.2em;
    background: #096A8B;
    text-align: left;
    font-weight: bold!important;
    line-height: 1;
    cursor: default; /* 本体はクリック不可にする場合 */
    box-sizing: border-box;
}

.title2 {
    font-size: clamp(1.4rem, 1.6vw, 1.8rem)!important;
    color: #333!important;
    font-weight: bold;
    margin:  0.5em 0 1em!important;
    padding: 0.4em 0.8em!important;
    border-top: 3px solid #915ba2;
    border-bottom: 1px solid #915ba2;
    text-align: left;
    letter-spacing: 0.1em;
}
.title3 {
    position: relative;
    font-size: clamp(1.2rem, 1.4vw, 1.6rem)!important;
    font-weight: 600;
    margin: 2em 0 1em;
    padding-left: 0.75em;
    border-left: 5px solid #0073aa; /* WordPressブルー */
    color: #333;
}

/* ダークテーマに合うバリエーション */
.title3.dark {
    border-left-color: #444;
    color: #222;
}

/* もう少し柔らかい印象にしたい場合（淡いカラー） */
.title3.soft {
    border-left-color: #87bce7;
    background: #f4f9fc;
    padding: 0.6em 0.8em;
    border-radius: 6px;
}

/* .title3 {
    font-size: clamp(1.2rem, 1.4vw, 1.6rem)!important;
    color: #333333!important;
    font-weight: bold;
    margin: 0.5em 0!important;
    padding: 0.2em;
    padding-left: 13px;
    text-align: left;
    position: relative;
}

  .title3::before {
    background: #333333;
    border-radius: 50%;
    bottom: 0;
    content: "";
    height: 5px;
    left: 0;
    margin: auto 0;
    position: absolute;
    top: 0;
    width: 5px;
  } */

.title4 {
    font-size: clamp(1.05rem, 1.2vw, 1.3rem)!important;
    font-weight: 600;
    margin: 1.2em 0 0.6em;
    padding: 0.3em 0.6em;
    color: #096A8B;
    display: inline-block;
}



/* レスポンシブ対応 */
@media (max-width: 768px){
    .title_h1 {
        font-size: 22px;
    }

}


/* =========================
   ボタン設定
   ========================= */
/* ログインボタン */
.user-registration-Button.button {
    display: block!important;
    width: fit-content!important;
    margin: 1em!important;
    padding: 0.8em 4em 0.8em 3em!important;
    font-size: clamp(1.2rem, 1.4vw, 1.5rem)!important;
    font-weight: 500!important;
    text-decoration: none!important;
    text-align: center!important;
    background-color: #23560E!important;
    color: #FFF;
    letter-spacing: 0.2em!important;
    cursor: pointer!important;
    position: relative!important;
    border-radius: 0!important;
    border:none!important;
    border-radius: 5px!important;
}
.ur-form-container .button,.ur-form-container button,
.user-registration .button,.user-registration button {
    box-shadow: none!important;
}
.user-registration-Button.button:after{
    content: "";
    display: block;
    width: 1.5em;
    height: 1.5em;
    background: url(img/pik.png);
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    top: 50%;
    right: 2em;
    transform: translate(0,-50%);
}
.user-registration-Button.button:hover,
.user-registration-Button.button:active,
.user-registration-Button.button:focus {
    color: #FFF;
    /* background-color: #2980b9!important; */
    opacity: .7;
    transform: translateY(-2px)!important;
}
.ur-form-container .button:hover,
.ur-form-container button:hover,
.user-registration .button:hover,
.user-registration button:hover {
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
/* ログアウトボタン */
.logout-link {
    background-color: #e74c3c;
}
.logout-link:hover {
    background-color: #c0392b;
}

/* ボタン */
.btn {
    display: block!important;
    width: fit-content!important;
    margin: 1em!important;
    padding: 0.8em 4em 0.8em 3em!important;
    font-size: clamp(1.2rem, 1.4vw, 1.5rem)!important;
    font-weight: 500!important;
    text-decoration: none!important;
    text-align: center!important;
    background-color: #23560E!important;
    color: #FFF!important;
    letter-spacing: 0.1em!important;
    cursor: pointer!important;
    position: relative!important;
    transition: background-color 0.3s, transform 0.3s!important;
    border-radius: 5px!important;
}
.btn:after {
    content: ""!important;
    display: block!important;
    width: 1.5em!important;
    height: 1.5em!important;
    background: url(img/pik.png)!important;
    background-repeat: no-repeat!important;
    background-size: contain!important;
    position: absolute!important;
    top: 50%!important;
    right: 2em!important;
    transform: translate(0,-50%)!important;
}
.btn:hover {
    opacity: .7;
    transform: translateY(-2px);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

/* ボタンカラー */
.is_bule {
    background-color: #5596D7!important;
}
.is_red {
    background-color: red!important;
}
.is_gray{
    background-color: #a9a9a9!important;
}
.is_purple{
    background-color: #915ba2!important;
}
.is_green{
    background-color: #23560E!important;
}



/* お知らせを登録するボタン */
.oshirase_submit{
    display: block;
    width: fit-content;
    padding: 10px 15px!important;
    font-size: clamp(1rem, 1.3vw, 1.5rem)!important;
    /*font-weight: bold!important;*/
    background-color: #23560E!important;
    color: #FFF!important;
    border-radius: 5px!important;
}
.oshirase_submit:hover{
    opacity: .7;
}
/* アカウント情報を変更ボタン */
.custom-dashboard-links {
    display: flex;
    gap: 20px; /* リンク間のスペース */
    justify-content: center; /* 中央配置を追加 */
    flex-wrap: wrap; /* 必要に応じて折り返し */
    margin-top: 10px;
}
.dashboard-link {
    display: flex;
    align-items: center;
    background-color: gray;
    color: #ffffff;
    padding: 10px 20px;
    text-decoration: none!important;
    transition: background-color 0.3s, transform 0.3s;
    font-weight: 500;
    border-radius: 5px!important;
}
.dashboard-link .dashicons {
    margin-right: 8px;
    font-size: 20px;
}
.dashboard-link span {
    display: inline-block;
}
.dashboard-link:hover {
    opacity: .7;
    transform: translateY(-2px);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    color:#fff;
}
.dashboard-link:hover .dashicons {
    color: #ffffff;
}

/* レスポンシブ対応 */
@media (max-width: 768px){
    .custom-dashboard-links {
        gap: 10px;
    }
    .dashboard-link {
        padding: 8px 16px;
    }
    .dashboard-link .dashicons {
        font-size: 18px;
        margin-right: 6px;
    }
}


/* 独自PDFダウンロードボタン */
.pdf-download-btn {
    position: absolute;
    top: 20px;
    right: 20px;
    background-color: #333;
    color: #fff;
    border: none;
    padding: 10px 20px;
    font-size: 16px;
    border-radius: 6px;
    cursor: pointer;
}
.pdf-download-btn:hover {
    background-color: #555;
}


/* =========================
   メッセージのスタイル
   ========================= */
/* 支払い完了 */
.payment-complete {
    background-color: #dff0d8;
    color: #3c763d;
    padding: 15px;
    border-radius: 4px;
    margin-top: 20px;
    font-weight: bold;
}

/* 支払い未完了 */
.payment-pending {
    background-color: #ffd1e8;
    color: red;
    padding: 15px;
    border-radius: 4px;
    margin-top: 20px;
    font-weight: bold;
}
.payment-pending a{
    color: red;
}
.payment-pending a:hover{
    color: #ff8820;
}


/* =========================
   テーブルのスタイル設定
   ========================= */
.user-info-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 20px;
    table-layout: auto; /* 自動調整に変更 */
    box-sizing: border-box; /* パディングの影響を幅に含める */
}
.user-info-table th,
.user-info-table td {
    padding: 12px 15px;
    text-align: left;
    border-bottom: 1px solid #e1e1e1;
    word-wrap: break-word; /* コンテンツを折り返し */
    word-break: break-word; /* 長い単語も折り返し */
    white-space: normal; /* 改行を許可 */
}
.user-info-table th {
    background-color: #EFF5ED;
    width: 35%;
    font-weight: bold;
    color: #333;
}
.user-info-table td {
    color: #555;
}
.user-info-table tr:nth-child(even) td {
    background-color: #fafafa;
}
.user-info-table tr:hover td {
    background-color: #f1f1f1;
}

/* レスポンシブ対応 */
@media (max-width: 768px){
    .user-info-table {
    min-width: 700px; /* 必要に応じて調整 */
  }
    /*
    .user-info-table {
        display: block;
        width: 100%;
    }
    .user-info-table tr {
        display: block;
    }
    .user-info-table th,
    .user-info-table td {
        padding: 8px 10px;
        display: block;
        text-align: left;
        width: 100%;
    }
    .user-info-table th {
        background-color: #f5f5f5;
    }
        */
}

/* =========================
   TOPメッセージのスタイル
   ========================= */
/* 新規アカウント登録 */
.registration-message {
    background-color: #fff;
    padding: 20px;
    border-radius: 5px;
    box-shadow: 0 4px 16px 0 rgba(17, 17, 26, .05), 0 8px 32px 0 rgba(17, 17, 26, .05);
    border: 0;
}
/* ログイン */
body.user-registration-membership_page_user-registration-login-forms #user-registration:not(.user-registration-MyAccount),
body.user-registration-membership_page_user-registration-login-forms .user-registration:not(.user-registration-MyAccount),
body.user-registration-page #user-registration:not(.user-registration-MyAccount), 
body.user-registration-page .user-registration:not(.user-registration-MyAccount){
    max-width: 1980px!important;
}
.ur-frontend-form.login {
    max-width: 1980px!important;
    padding: 20px!important;
}


/* =========================
   管理者スタイル設定
   ========================= */
/*  登録状況スタイル  */
.user_counts_table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 10px;
    background-color: #fff;
    table-layout: fixed; /* ← 幅を均等にするのにここがポイント */
}
.user_counts_table th,
.user_counts_table td {
    border: 1px solid #ccc;
    padding: 8px 12px;
    text-align: left;
    /* width: 33%; */ /* ← widthは設定しない */
}
.user_counts_table th {
    background-color: #EFF5ED;
    font-weight: bold;
    white-space: nowrap;
}

/*  購読者一覧スタイル  */
/* 購読者一覧テーブル全体をスクロール可能にする */
.user_subscriber_list_table{
    width: 100%;
    border-collapse: collapse;
    background-color: #fff;
}
.user_subscriber_list_table th,
.user_subscriber_list_table td {
    border: 1px solid #ccc;
    padding: 8px 12px;
    text-align: left;
}
.user_subscriber_list_table th {
    background-color: #EFF5ED;
    font-weight: bold;
    white-space: nowrap;
}


/*  協賛企業一覧スタイル  */
.user-list-table{
    width: 100%;
    border-collapse: collapse;
    margin-top: 10px;
    background-color: #fff;
}
.user-list-table th,
.user-list-table td {
    border: 1px solid #ccc;
    padding: 8px 12px;
    text-align: left;
}
.user-list-table th {
    background-color: #EFF5ED;
    font-weight: bold;
    white-space: nowrap;
    text-align: center;
}
.btn_small {
  display: inline-block;
  padding: 4px 8px;
  margin: 4px;
  border-radius: 6px;
  text-decoration: none!important;
  color: #fff;
  width:100%;
  text-align: center;
}
.btn_blue { background: #0073aa; }
.btn_green { background: #28a745; }
.btn_gray { background: #a0522d; }
.btn_orange { background: #ff8c00; }
.btn_purple { background: #6a5acd; }
.btn_red    { background: #d9534f; }

.btn_small:hover,
.btn_small:focus,
.btn_small:active { 
    opacity: 0.8;
    color:#fff;
}

/* タブレット */
@media (max-width: 1024px){
    .user-list-table-wrapper {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch; /* スマホでスムーズスクロール */
    }
    /* テーブル幅が画面より大きくても崩れないように */
    .user-list-table {
        min-width: 900px; /* 必要に応じて調整 */
    }
}
/* スマホ */
@media (max-width: 768px) {
  .user-list-table {
    min-width: 700px; /* 必要に応じて調整 */
  }
}

/* =========================
   お知らせスタイル設定
   ========================= */
.oshirase-box {
    border: 1px solid #ccc;
    padding: 10px;
    /*max-height: 300px;  必要に応じて高さ調整 */
    max-height: 400px; /* 必要に応じて高さ調整 */
    overflow-y: auto;
    background-color: #f9f9f9;
}
.oshirase-box dl {
    display: flex;
    flex-wrap: wrap;
    border-bottom: 1px solid #ddd;
    padding: 8px 0;
}
.oshirase-box dt {
    width: 150px;
    font-weight: bold;
    color: #333;
}
.oshirase-box dd {
    flex: 1;
    margin: 0;
    white-space: pre-wrap;
}

/* =========================
   協賛企業詳細ページ設定
   ========================= */
.sponsor-detail-table {
        width: 100%;
        border-collapse: collapse;
        margin: 1.2em 0;
    }
    .sponsor-detail-table th,
    .sponsor-detail-table td {
        border: 1px solid #ddd;
        padding: 0.6em 0.8em;
        vertical-align: top;
    }
    .sponsor-detail-table th {
        background: #f9f9f9;
        width: 25%;
        font-weight: 600;
    }
    .sponsor-detail-table td {
        width: 75%;
    }

/* =========================
   パスワード編集フォーム設定
   ========================= */
   .edit-user-password-form {
    max-width: 500px;
    margin: 0 auto;
}
.edit-user-password-form p {
    margin-bottom: 15px;
}
.edit-user-password-form label {
    display: block;
    margin-bottom: 5px;
    font-weight: bold;
}
.edit-user-password-form input[type="password"] {
    width: 100%;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
}
.edit-user-password-form button {
    background-color: #3498db;
    color: #ffffff;
    padding: 10px 20px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-weight: bold;
    transition: background-color 0.3s;
}
.edit-user-password-form button:hover {
    background-color: #2980b9;
}
/* エラーメッセージのスタイル */
.password-edit-errors {
    background-color: #f8d7da;
    color: #721c24;
    padding: 10px 15px;
    border-radius: 4px;
    margin-bottom: 15px;
}
.password-edit-errors p {
    margin: 0;
}
/* パスワード変更後のメッセージスタイル */
.password-changed-message {
    background-color: #dff0d8;
    color: #3c763d;
    padding: 15px;
    border: 1px solid #d6e9c6;
    border-radius: 4px;
    margin-bottom: 20px;
}

/* =========================
   参加登録フォーム設定
   ========================= */

   /* フォーム全体を中央に配置し、最大幅を設定 */
#cp_calculatedfieldsf_pform_1,
#main {
    max-width: 1100px;
    margin: 0 auto;
    background-color: #ffffff;
    padding: 30px;
    border-radius: 8px;
    /*box-shadow: 0 2px 8px rgba(0,0,0,0.05);*/
}

/* フォームタイトルのスタイル */
#cp_calculatedfieldsf_pform_1 h2 {
    text-align: center;
    color: #2c3e50;
    margin-bottom: 20px;
    font-size: 24px;
}
/* 各フォームフィールドのラベルをスタイリッシュに */
#cp_calculatedfieldsf_pform_1 label {
    display: block;
    margin-bottom: 8px;
    font-weight: bold;
    color: #34495e;
}
/* 入力フィールドのスタイル */
#cp_calculatedfieldsf_pform_1 input[type="text"],
#cp_calculatedfieldsf_pform_1 input[type="email"],
#cp_calculatedfieldsf_pform_1 input[type="password"] {
    width: 100%;
    padding: 10px 15px;
    margin-bottom: 5px;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box;
    transition: border-color 0.3s;
}
#cp_calculatedfieldsf_pform_1 input[type="text"]:focus,
#cp_calculatedfieldsf_pform_1 input[type="email"]:focus,
#cp_calculatedfieldsf_pform_1 input[type="password"]:focus {
    border-color: #3498db;
    outline: none;
}
/* 必須フィールドのスタイル */
#cp_calculatedfieldsf_pform_1 .r {
    color: #e74c3c;
}
/* キャプチャ画像のスタイル */
#cp_calculatedfieldsf_pform_1 .captcha img {
    display: block;
    margin: 10px auto 15px;
    border: 1px solid #ccc;
    border-radius: 4px;
}
/* セキュリティコード入力フィールドのスタイル */
#cp_calculatedfieldsf_pform_1 .captcha input[type="text"] {
    width: 100%;
    padding: 10px 15px;
    margin-bottom: 20px;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-sizing: border-box;
    transition: border-color 0.3s;
}
#cp_calculatedfieldsf_pform_1 .captcha input[type="text"]:focus {
    border-color: #3498db;
    outline: none;
}
/* 送信ボタンのスタイル */
#cp_calculatedfieldsf_pform_1 .pbSubmit {
    display: flex;
    justify-content: center; /* 中央揃え */
    align-items: center;
    background-color: #3498db;
    color: #ffffff;
    padding: 12px 24px;
    border-radius: 6px;
    cursor: pointer;
    transition: background-color 0.3s, transform 0.3s;
    font-weight: 500;
    text-align: center;
    text-decoration: none;
}
#cp_calculatedfieldsf_pform_1 .pbSubmit:hover {
    background-color: #2980b9;
    transform: translateY(-2px);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
/* エラーメッセージのスタイル */
#cp_calculatedfieldsf_pform_1 .password-edit-errors,
#cp_calculatedfieldsf_pform_1 .cff-error-dlg {
    background-color: #f8d7da;
    color: #721c24;
    padding: 15px;
    border: 1px solid #f5c6cb;
    border-radius: 4px;
    margin-bottom: 20px;
}
/* メッセージのテキストスタイル */
#cp_calculatedfieldsf_pform_1 .password-changed-message {
    background-color: #dff0d8;
    color: #3c763d;
    padding: 15px;
    border: 1px solid #d6e9c6;
    border-radius: 4px;
    margin-bottom: 20px;
}

/* レスポンシブ対応 */
@media (max-width: 768px){
    #cp_calculatedfieldsf_pform_1,
    #main{
        padding: 10px;
    }
    #cp_calculatedfieldsf_pform_1 {
        padding: 20px;
    }
    #cp_calculatedfieldsf_pform_1 h2 {
        font-size: 20px;
    }
    #cp_calculatedfieldsf_pform_1 .pbSubmit {
        padding: 10px 20px;
    }
}


/* =========================
   領収証スタイル設定
   ========================= */
   .receipt {
    border: 1px solid #ccc;
    padding: 30px 60px;
    max-width: 1000px!important;
    min-width: 800px!important;
    margin: 20px auto;
    /*background: #f9f9f9;*/
    background: #fff;
}
.receipt h2 {
    text-align: center;
    color: #333;
}
.receipt p {
    font-size: 14px;
    margin: 0;
}
.text_right{
    text-align: right;
}
.receipt_name{
    text-align:center;
    font-weight: bold;
    border-bottom: solid 1px #333;
    margin-top: 20px;
    margin-bottom: 20px;
}
.receipt_total{
    text-align:center;
    font-weight: bold;
    background-color: #d3d3d3;
    padding: 20px;
    margin-bottom: 20px;
}
.receipt_total p{
    font-size: 16px;
}
.receipt_table{
    width:100%;
}
.receipt_table,
.receipt_table th,
.receipt_table td{
    border-style: solid;
    border-width: 1px;
    border-collapse: collapse;
    font-size: 12px;
    margin-bottom: 20px;
}
.receipt_table th,
.receipt_table td{
    text-align: left;
    width:33%;
}
.receipt_table th{
    background-color: #dcdcdc;
}
.receipt_sign {
    width: 70%;
    position: relative;
    margin-top: 100px;
    margin-left:auto;
    margin-right: 0;
    text-align: right;
}
.receipt_sign p {
    position: relative;
    font-size:14px;
    z-index: 1000;
    margin-right: 20px;
}
/* 画像 */
.inkan {
    position: absolute;
    top: -10px; /* 30px */
    right: 0; /* 右上に配置 */
    max-width: 70px;
    height: auto;
    z-index: 1;
}

/* PDF専用の調整 */
@media print {
    div#page {
        height: auto; /* 高さを自動調整 */
        min-height: 90vh; /* ビューポートに合わせた高さを確保 */
        overflow: hidden; /* 内容のはみ出しを防ぐ */
        page-break-inside: avoid; /* ページ内で改ページを避ける */
    }
    body {
        margin: 0;
        padding: 0;
    }
}

/* レスポンシブ対応 */
@media (max-width: 768px){
    .receipt {
        padding: 15px;
    }
    .receipt h2 {
        margin: 0;
    }
    .receipt_total{
        padding: 10px;
        margin-bottom: 10px;
    }
    .receipt_table,
    .receipt_table th,
    .receipt_table td{
        margin-bottom: 10px;
    }
    .receipt_sign {
        width: 80%;
        margin-top: 40px;
    }
    .receipt_sign p {
        font-size:12px;
    }
    /* 画像 */
    .inkan {
        top: -30px;
    }
}

/* =========================
   参加証スタイル設定
   ========================= */
.certificate_name{
    text-align:left;
    font-weight: bold;
    border-bottom: solid 1px #333;
    margin-top: 20px;
    margin-bottom: 20px;
}
.certificate_sign {
    width: 70%;
    position: relative;
    margin-top: 100px;
    margin-left:auto;
    margin-right: 0;
    text-align: right;
}
.certificate_sign p {
    position: relative;
    font-size:18px;
    z-index: 1000;
    margin-right: 20px;
}
/* 画像 */
.certificate_inkan {
    position: absolute;
    top: -40px; /* 30px */
    right: 0; /* 右上に配置 */
    max-width: 70px;
    height: auto;
    z-index: 1;
}
/* =========================
   リフレッシュセミナー参加チケットスタイル設定
   ========================= */
   .ticket {
    background: linear-gradient(135deg, #FAE29C, #E6B800, #C09040); /* ゴールド系のグラデーション */
    padding: 20px;
    margin-bottom: 20px !important;
    border-radius: 12px;
    color: #fff;
    text-align: center;
    font-weight: bold;
    box-shadow: 5px 5px 20px rgba(0, 0, 0, 0.3);
    position: relative;
    overflow: hidden;
    border: 3px solid #E6B800;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
}

/* 光沢感を追加（全体を均等に照らす） */
.ticket::before {
    content: "";
    position: absolute;
    top: 10%;
    left: -30%;
    width: 160%;
    height: 50%;
    background: linear-gradient(120deg, rgba(255, 255, 255, 0.4) 0%, rgba(255, 255, 255, 0) 50%);
    transform: rotate(15deg);
    opacity: 0.6;
}

/* 右側も光を追加してバランスを取る */
.ticket::after {
    content: "";
    position: absolute;
    bottom: 10%;
    right: -30%;
    width: 160%;
    height: 50%;
    background: linear-gradient(120deg, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0.3) 100%);
    transform: rotate(-15deg);
    opacity: 0.3;
}

/* =========================
   演題登録スタイル設定
   ========================= */
/* テキストエリアの背景色 */
.cff-textarea-field iframe {
    background-color: #fff !important;
}
/* Trumbowyg specialChars ボタンアイコンを Ω に置き換える */
button.trumbowyg-specialChars-button svg {
    display: none; /* 元のSVGアイコンを非表示に */
}
button.trumbowyg-specialChars-button::before {
    content: "Ω";
    font-size: 16px;
    font-weight: bold;
    display: inline-block;
    vertical-align: middle;
    color: #333;
}
.trumbowyg-editor,
.trumbowyg-textarea{
    background-color: #fff;
}
.trumbowyg-box,
.trumbowyg-editor{
    border: none;
}

/* =========================
   整理券スタイル設定
   ========================= */
/* チケット全体コンテナ */
.page-id-322 .receipt {
    padding: 0!important;
    margin: 0 auto!important;
    width: 210mm;
}
.page-id-322 #main{
    padding: 0!important;
    background-color: transparent;
}
.ticket_page {
    display: flex;
    flex-wrap: wrap;
    box-sizing: border-box;
    justify-content: space-between;
    page-break-after: always;
    margin-bottom: 4mm; /* ← PDF分割の際に余裕を持たせる */
}
.numbered_ticket_content {
    flex: 0 0 calc(100% / 3); /* 横3列 */
    height: calc((297mm / 4) - 10px); /* 縦4行 */
    /*height: calc(297mm / 4 );/* 縦4行 */
    margin: 0;
    padding: 6px;
    border: 1px solid #000;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    page-break-inside: avoid;
}
/* ヘッダー部分 */
.numbered_ticket_header {
    background: linear-gradient(to bottom right, #ffe6f2, #ffd6e7);
    padding: 6px;
    margin-bottom: 4px;
    text-align: center;
}
/* 学会名 */
.numbered_ticket_society_name {
    font-size: 11pt!important;
    font-weight: bold;
    margin: 0;
}
/* タイトル */
.numbered_ticket_title {
    font-size: 10.5pt!important;
    font-weight: bold;
    margin: 2px 0;
}
/* チケット番号 */
.numbered_ticket_no {
    font-size: 9pt!important;
    font-weight: bold;
    text-align: right;
    margin-bottom: 2px;
}
/* セミナー名 */
.numbered_ticket_name {
    margin: 8px 0;
    text-align: center;
    border-bottom: #000 solid 1px;;
}
.numbered_ticket_name_text{
    font-size: 10pt!important;
    font-weight: bold;
}
/* 日時・会場・共催 */
.numbered_ticket_datetime,
.numbered_ticket_venue,
.numbered_ticket_sponsors {
    font-size: 8pt!important;
    margin: 3px 0;
}
.numbered_ticket_sponsors {
    font-size: 9pt;
    margin: 4px 0;
    line-height: 1.4;
    white-space: pre-wrap; /* 改行と全角スペースを維持 */
}
/* 注意書き */
.numbered_ticket_note {
    font-size: 7pt!important;
    margin-top: auto;
    text-align: left;
    line-height: 1.3;
}

/* =========================
   ストックルーム荷物表スタイル設定
   ========================= */
.page-id-324 .receipt {
    padding: 0!important;
    margin: 0 auto!important;
    width: 297mm;
    height: 210mm;
}
.page-id-324 #main{
    padding: 0!important;
    background-color: transparent;
}
.luggage_page{
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    padding: 20px;
}

.luggage_box {
    width: 100%;
    margin-top: 200px;
    margin-bottom: 30px;
    display: flex;
    justify-content: center;
}

.underline_box {
    border-bottom: solid 5px #333;
    width: 90%;
}
.kosuu{
    font-size: 70px!important;
    font-weight: bold;
    width:10%;
}
.sponsor_id_box p{
    font-size: 26px!important;
    font-weight: bold;
}

.box_yellow{
    width: 100%;
    height: 45%;
    padding: 5px 20px;
    background-color: #fc0;
    display: flex;
    flex-direction: column;
    justify-content: center; /* 縦方向中央寄せ */

}
.underline_box_yellow {
    display: flex;
}

.underline_box_yellow_center {
    width: 90%;
    text-align: center;
}

.underline_box_yellow_right {
    width: 10%;
    text-align: right;
}

/* =========================
   最後尾スタイル設定
   ========================= */
/* チケット全体コンテナ */
.page-id-326 .receipt {
    padding: 0!important;
    margin: 0 auto!important;
    /*width: 210mm;*/
    width: 297mm;
    height: 210mm;
}
.page-id-326 #main{
    padding: 0!important;
    background-color: transparent;
}

.last_place_box {
    box-sizing: border-box;
    border: 15px solid #333;
    width: 100%;
    height: 100%;
}

.last_place_box_inner{
    text-align: center;
}

/* セミナーテーマ表示部分 */
.last_place_theme_box {
    background-color: #fc0;
    padding: 60px 20px;
    margin-bottom: 60px;
}

.last_place_theme_box p {
    font-size: 65px!important;
    font-weight: bold;
    margin: 0;
    line-height: 1.2;
}

/* 注意書き */
.last_place_note {
    font-size: 60px!important;
    font-weight: bold;
    margin: 20px 0 40px 0!important;
}

/* 「最後尾」メッセージ */
.last_place_message {
    font-size: 250px!important;
    font-weight: bold;
    line-height: 1;
    margin: 40px 0!important;
    letter-spacing: 0.2em;
}



/* =========================
   看板W600×H900(1/6)のスタイル
   ========================= */
   .signboard-container {
  width: 600px;
  height: 900px;
  border: 2px solid gray;
  background: #fff;
  margin: 20px auto;
  padding: 10px;
  box-sizing: border-box;
  font-family: "Noto Sans JP", sans-serif;
}

/* タイトル */
.signboard-title {
  background: #000;
  color: #fff;
  font-size: 28px;
  font-weight: bold;
  text-align: center;
  padding: 10px;
}

/* セミナー名 */
.seminar-block {
  background: #ffeb3b;
  margin-top: 10px;
  text-align: center;
  padding: 8px;
}
.seminar-name {
  font-size: 32px;
  font-weight: bold;
}
.seminar-name-en {
  font-size: 18px;
  margin-top: 4px;
}
.seminar-place {
  font-size: 18px;
  margin-top: 4px;
}

/* テーマ */
.theme-block {
  background: #ffeb3b;
  text-align: center;
  padding: 20px 10px;
  margin: 10px 0;
}
.theme-title {
  font-size: 28px;
  font-weight: bold;
}

/* 座長 */
.chairperson-block {
  display: flex;
  align-items: flex-start;
  margin: 10px 0;
  gap: 10px;
}
.chairperson-label {
  background: #ffeb3b;
  padding: 5px 8px;
  font-weight: bold;
}
.chairperson-info {
  flex: 1;
}
.chairperson-name {
  background: #ffeb3b;
  padding: 5px;
  font-size: 20px;
  font-weight: bold;
}
.chairperson-aff {
  background: #ffeb3b;
  padding: 5px;
  font-size: 16px;
}
.teacher {
  margin-left: 4px;
  font-size: 16px;
  color: #555;
}

/* 演題 */
.presentation-block {
  margin: 20px 0;
}
.presentation-title {
  background: #ffeb3b;
  text-align: center;
  font-size: 24px;
  font-weight: bold;
  padding: 8px;
}
.performer {
  display: flex;
  align-items: flex-start;
  margin-top: 8px;
  gap: 10px;
}
.performer-label {
  background: #ffeb3b;
  padding: 5px 8px;
  font-weight: bold;
}
.performer-info {
  flex: 1;
}
.performer-name,
.performer-aff {
  background: #ffeb3b;
  padding: 5px;
}
.performer-name {
  font-size: 20px;
  font-weight: bold;
}

/* 共催 */
.cohost-block {
  margin-top: 30px;
  text-align: center;
}
.cohost-title {
  font-weight: bold;
  margin-bottom: 4px;
}
.cohost-name {
  background: #ffeb3b;
  font-size: 22px;
  font-weight: bold;
  padding: 6px;
}
.cohost-company {
  background: #ffeb3b;
  font-size: 18px;
  padding: 4px;
  margin-top: 4px;
}

/* =========================
   看板W450×H450(1/6)のスタイル
   ========================= */
.signboard450-container {
  width: 450px;
  height: 450px;
  border: 6px solid gold;
  background: #fff;
  margin: 20px auto;
  box-sizing: border-box;
  font-family: "Noto Sans JP", sans-serif;
  text-align: center;
  display: flex;
  flex-direction: column;
}

.signboard450-header {
  background: #000;
  color: #fff;
  font-size: 26px;
  font-weight: bold;
  padding: 8px;
}

.signboard450-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 10px;
  padding: 10px;
}

/* セミナー名（日本語） */
.seminar-name-ja {
  background: #ffeb3b;
  font-size: 28px;
  font-weight: bold;
  padding: 6px;
}

/* セミナー名（英語） */
.seminar-name-en {
  background: #ffeb3b;
  font-size: 18px;
  padding: 4px;
}

/* 控室ラベル */
.room-label {
  font-size: 72px;
  font-weight: 900;
  color: #333;
  letter-spacing: 0.3em;
  margin: 20px 0;
}

/* 共催会社 */
.cohost-company {
  background: #ffeb3b;
  font-size: 18px;
  font-weight: bold;
  padding: 4px;
}

/* =========================
   荷物送付表スタイル設定
   ========================= */
/* チケット全体コンテナ */
.page-id-376 .receipt {
    padding: 0!important;
    margin: 0 auto!important;
    width: 210mm;
}
.page-id-376 #main{
    padding: 0!important;
    background-color: transparent;
}

.shipping-list {
    border: 1px solid #333;
    padding: 30px;
    box-sizing: border-box;
    page-break-inside: avoid; /* 印刷時に分断されないように */
    width: 210mm;
    height: 297mm;
}


/* --- ヘッダー部 --- */
.shipping-header {
  display: flex;
  border-bottom: 1px solid #000;
  margin-bottom: 30px;
}

.luggage-box {
  width: 30%;
  background: #000;
  color: #fff;
  text-align: center;
  font-weight: bold;
  padding: 20px;
}

.luggage-title {
  font-size: 30px;
  line-height: 1.4;
}

.luggage-frame {
  border: 2px solid #fff;
  background-color: #fff;
  color: #000;
  margin-top: 30px;
  font-size: 30px;
  line-height: 1.4;
  padding: 10px;
}

.shipping-info {
  flex: 1;
  background: #00e0ff;
  padding: 30px;
  box-sizing: border-box;
}

.shipping-info h2 {
  margin: 0;
  font-size: 40px;
  font-weight: bold;
}

.shipping-info .must {
  color: red;
  font-weight: bold;
  font-size: 30px;
  margin: 2mm 0;
}

.shipping-info .address {
  font-size: 22px;
  line-height: 1.5;
}
.yellow{
    background-color: #ffeb3b;
}

/* --- 情報テーブル --- */
.shipping-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 2mm;
  font-size: 22px;
}

.shipping-table th,
.shipping-table td {
  border: 1px solid #000;
  padding: 30px;
  height: 10mm;
  vertical-align: middle;
}

.shipping-table th {
  width: 25%;
  text-align: center;
  font-weight: bold;
}

/* 注意書き・フッターを横並び */
.shipping-list-box {
    display: flex;
    justify-content: space-between; /* 左右に配置 */
    align-items: center;           /* 縦中央揃え */
    margin-top: 3mm;
    padding-top: 20px;
    border-top: 1px solid #000;
}

.note {
    font-size: 18px!important;
    text-align: left;
    margin: 0;
    line-height: 1.4;
}
.pa90{
    padding: 90px 30px!important;
}

.footer-box {
    font-size: 20px;
    font-weight: bold;
    background: #000;
    color: #fff;
    padding: 40px 20px;
    border-radius: 2px;
    text-align: center;
}


/* =========================
   氏名掲示スタイル設定
   ========================= */
/* チケット全体コンテナ */
.page-id-379 .receipt {
    padding: 0!important;
    margin: 0 auto!important;
    width: 210mm;
}
.page-id-379 #main{
    padding: 0!important;
    background-color: transparent;
}
.name_display_page {
    width: 210mm;
    height: 297mm;
    position: relative;
    page-break-after: always;
    background: #fff;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* 全体ラッパー */
.name_display_inner {
    position: relative;
    width: 100%;
    height: 100%;
    font-family: "Yu Mincho", "游明朝体", serif;
}

/* 氏名（左側・中央寄せ） */
.name_display_name {
    position: absolute;
    left: 35%;
    top: 50%;
    transform: translateY(-50%) rotate(0deg); /* 回転なしで自然な縦配置 */
    writing-mode: vertical-rl;
    text-orientation: upright;
    font-size: 80pt;
    font-weight: bold;
    text-align: center;
    white-space: nowrap; /* ← 折り返し防止 */
    word-break: keep-all; /* ← 漢字やかなでの分割を防ぐ */
    max-height: 80%; /* ← ページ内に収まるように制限 */
}

/* 所属（右側・やや小さめ） */
.name_display_affiliation {
    position: absolute;
    right: 20%;
    top: 50%;
    transform: translateY(-50%);
    writing-mode: vertical-rl;
    text-orientation: upright;
    font-size: 40pt;
    color: #333;
    text-align: center;
    white-space: normal; /* ← 折り返しを許可 */
    word-break: keep-all;
    max-height: 80%;
}


@media print {
    /* サイト全体の余分な部分を非表示に */
    header, footer, nav, .site-header, .site-footer, .sidebar, .pdf-download-btn {
        display: none !important;
    }

    /* 背景画像や余白をリセット */
    body {
        background: none !important;
        -webkit-print-color-adjust: exact; /* Chromeで背景色印刷を有効化 */
        print-color-adjust: exact;
        margin: 0;
        padding: 0;
    }

    /* サイト背景色 */
    .site-content,
    #main{
        background: none;
        margin: 0;
        padding: 0;
    }

    /* 印刷範囲を指定 */
    .name_display_page {
        page-break-after: always;
        width: 210mm;
        height: 297mm;
        margin: 0 auto;
        background: #fff !important;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    /* 位置や文字のバランスはそのまま維持 */
    .name_display_name {
        writing-mode: vertical-rl;
        text-orientation: upright;
    }

}


/* =========================
   デスクボードスタイル設定
   ========================= */
/* チケット全体コンテナ */
.page-id-381 .receipt {
    padding: 0!important;
    margin: 0 auto!important;
    width: 297mm;
    /*height: 210mm;*/
}
.page-id-381 #main{
    padding: 0!important;
    background-color: transparent;
}
.desk_board_box {
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* 各ページ：A4横向きサイズに固定 */
.desk_board_page {
    page-break-after: always;
    width: 297mm !important;
    height: 210mm !important;
    background: #fff;
    border: 2px solid #000;
    position: relative;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    /*flex-wrap: wrap;*/
}

/* 氏名部分（上下2分割） */
.desk_board_name_area {
    width: 100%;
    height: 50%;
    display: flex;
    justify-content: center!important;
    align-items: center!important;
    font-family: "Yu Mincho", "游明朝体", serif;
    font-size: 130px;
    font-weight: bold;
    letter-spacing: 5px;
    line-height: 1.1;
    box-sizing: border-box;
    padding: 10px 30px;
}


/* 上段*/
.desk_board_name_area.top {
    transform: rotate(180deg);
}

/* 下段 */
.desk_board_name_area.bottom {
    position: absolute;
    bottom: 0;
    transform: rotate(0deg);
    transform-origin: center;
}
