/* 下層ページ用CSS */

/* 基本設定 */
/* フォントやbodyの基本スタイルはcommon.cssで定義済み */

/* パンくずリスト */
.breadcrumb {
    max-width: 1200px;
    margin: 0 max(20px, calc((100vw - 1200px) / 2)) 20px;
}

.breadcrumb-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    list-style: none;
    margin: 0;
    padding-left: 3%;
    font-size: clamp(0.875rem, 2.5vw, 1rem);
}

.breadcrumb-item {
    display: flex;
    align-items: center;
    color: white;
}

.breadcrumb-item:not(:last-child)::after {
    content: '>';
    margin: 0 clamp(6px, 1.5vw, 10px);
    color: white;
}

.breadcrumb-item a {
    color: white;
    text-decoration: none;
}

.breadcrumb-item a:hover {
    text-decoration: underline;
}

/* コンテンツ背景 */
.content-background {
    position: relative;
    padding: 25px 0;
    background-color: #E1F5F5;
    background-image: url('../assets/background-blue.webp');
    background-size: 100% auto;
    background-position: top center;
    background-repeat: repeat-y;
}

.content-background > * {
    position: relative;
    z-index: 1;
}

/* コンテナ */
.container {
    max-width: 1200px;
    margin: 0 max(20px, calc((100vw - 1200px) / 2));
    padding: clamp(40px, 5vw, 60px) clamp(30px, calc((100vw - 1000px) * 0.6 + 20px), 100px);
    background: white;
    border-radius: clamp(40px, 5vw, 60px);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
    min-height: calc(100vh - 120px);
}

/* 見出し（コンテンツエリア内のみ） */
.container h1,
main h1 {
    color: #ffffff;
    background-image: url('../assets/h1.svg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 18px 30px;
    margin: 0 -12px 30px -12px;
    min-height: 60px;
    max-height: 100px;
    display: flex;
    align-items: center;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.3;
    border-radius: 25px;
    overflow: hidden;
}

.container h2,
main h2 {
    color: #2c3e50;
    border-top: 1px solid #3C3C3C;
    border-bottom: 1px solid #3C3C3C;
    padding: 12px 0 12px 22px;
    margin: 40px 0 20px 0;
    font-size: clamp(1.2rem, 1.08vw, 1.3rem);
    font-weight: 700;
    line-height: 1.4;
    min-height: 45px;
    display: flex;
    align-items: center;
    position: relative;
}

.container h2::before,
main h2::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: clamp(10px, 1vw, 12px);
    background: #99DCE9;
}

.container h3,
main h3 {
    color: #2c3e50;
    margin: 30px 22px 15px 22px;
    font-size: clamp(1.1rem, 1vw, 1.2rem);
    font-weight: 700;
}


.container h4,
main h4 {
  position: relative;
  padding-left: 25px;
  margin-bottom:15px;
}

.container h4:before {
  position: absolute;
  content: '';
  bottom: -3px;
  left: 0;
  width: 0;
  height: 0;
  border: none;
  border-left: solid 15px transparent;
  border-bottom: solid 15px rgb(119, 195, 223);
}
.container h4:after {
  position: absolute;
  content: '';
  bottom: -3px;
  left: 10px;
  width: 100%;
  border-bottom: solid 3px rgb(119, 195, 223);
}


/* 段落（コンテンツエリア内のみ） */
.container p,
main p {
    font-size: clamp(1rem, 0.92vw, 1.1rem);
    font-weight: 500;
    line-height: 1.8;
    margin: 0 22px 20px 22px;
    text-align: justify;
}

/* 強調テキスト */
.container strong,
.container b,
main strong,
main b {
    font-weight: 900;
}

.container p.left,
main p.left {
    text-align: left;
}

.container p.center,
main p.center {
    text-align: center;
}

.container p.right,
main p.right {
    text-align: right;
}

/* リスト（コンテンツエリア内のみ） */
.container ul,
.container ol,
main ul,
main ol {
    margin: 20px 0;
    padding-left: 22px;
}

.container ul,
main ul {
    list-style: none;
}

.container ul li,
main ul li {
    position: relative;
    padding-left: 25px;
    margin-bottom: 8px;
    font-size: 1.1rem;
    font-weight: 500;
    line-height: 1.8;
}

.container ul li::before,
main ul li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 6px;
    width: 20px;
    height: 20px;
    background: #3592D3;
    border-radius: 50%;
}

.container ul li::after,
main ul li::after {
    content: '▶';
    position: absolute;
    left: 6px;
    top: 6px;
    color: white;
    font-size: 9px;
    line-height: 20px;
}

.container ol li,
main ol li {
    margin-bottom: 8px;
    font-size: 1.1rem;
    font-weight: 500;
    line-height: 1.8;
}

/* 画像（コンテンツエリア内のみ） */
.container img,
main img {
    max-width: 100%;
    height: auto;
    border-radius: 30px;
    margin: 20px 0;
}

.image-left {
    display: block;
    margin: 20px 0 !important;
}

.image-center {
    display: block;
    margin: 20px auto !important;
}

.image-right {
    display: block;
    margin: 20px 0 20px auto !important;
}

/* 画像回り込み（float） */
.image-float-right {
    float: right;
    margin: 0 0 20px 30px !important;
    max-width: 300px;
}

.image-float-left {
    float: left;
    margin: 0 30px 20px 0 !important;
    max-width: 300px;
}

/* フロート解除 */
.clearfix::after {
    content: "";
    display: table;
    clear: both;
}

/* 動画 */
.video-container {
    margin: 20px 0;
}

.video-container.center {
    text-align: center;
}

.video-container.left {
    text-align: left;
}

.video-container.right {
    text-align: right;
}

.container video,
main video {
    max-width: 100%;
    height: auto;
}

.video-container iframe {
    width: clamp(70%, calc(100% - max(0px, (100vw - 1000px) * 0.075)), 100%);
    height: auto;
    aspect-ratio: 16 / 9;
    border-radius: 30px;
    border: none;
    display: block;
    margin: 0 auto;
}

/* テーブル（コンテンツエリア内のみ） */
.container table,
main table {
    width: 100%;
    border-collapse: collapse;
    margin: 20px 0;
    background: white;
}

.container th,
.container td,
main th,
main td {
    border: 1px solid #787878;
    padding: 12px;
    text-align: left;
    font-weight: 500;
}

.container th,
main th {
    background: #E1F5F5;
}

.container tr,
main tr {
    background-color: white;
}

/* 縦罫線なしテーブル */
.container table.table-no-vertical-border,
main table.table-no-vertical-border {
    border-collapse: collapse;
}

.container table.table-no-vertical-border th,
.container table.table-no-vertical-border td,
main table.table-no-vertical-border th,
main table.table-no-vertical-border td {
    border-left: none;
    border-right: none;
    border-top: 1px solid #787878;
    border-bottom: 1px solid #787878;
}

/* 下線だけテーブル */
.container table.table-bottom-border,
main table.table-bottom-border {
    border-collapse: collapse;
}

.container table.table-bottom-border th,
.container table.table-bottom-border td,
main table.table-bottom-border th,
main table.table-bottom-border td {
    border-left: none;
    border-right: none;
    border-top: none;
    border-bottom: 1px solid #787878;
}

/* 改行を防ぐ列用クラス */
.nowrap {
    white-space: nowrap;
}

/* 下線のみテーブル（左右セル間に等間隔マージン） */
.container table.table-bottom-border,
main table.table-bottom-border {
    border-collapse: separate;
    border-spacing: 15px 0;
    border: none;
    width: calc(100% + 30px);
    margin-left: -15px;
    margin-right: -15px;
}

.container table.table-bottom-border th,
.container table.table-bottom-border td,
main table.table-bottom-border th,
main table.table-bottom-border td {
    border: none;
    border-bottom: 1px solid #787878;
    padding: 12px 0;
}

/* 列幅指定クラス */
.w-10 { width: 10%; }
.w-15 { width: 15%; }
.w-20 { width: 20%; }
.w-25 { width: 25%; }
.w-30 { width: 30%; }
.w-40 { width: 40%; }
.w-50 { width: 50%; }

/* メンバーグリッド（名誉会員等） */
.member-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0 20px;
}

.member-item {
    padding: 12px 0;
    border-bottom: 1px solid #787878;
    white-space: nowrap;
}

@media (max-width: 768px) {
    .member-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 480px) {
    .member-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* リンク（コンテンツエリア内のみ） */
.container a,
main a {
    color: #00A0E9;
    text-decoration: none;
}

.container a:hover,
main a:hover {
    text-decoration: underline;
}

/* セレクトボックスナビゲーション */
.select-navigation {
    margin: 20px 22px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.select-navigation label {
    font-size: 1rem;
    font-weight: 500;
    color: #333;
    white-space: nowrap;
}

.select-navigation select {
    padding: 10px 40px 10px 16px;
    font-size: 1rem;
    font-family: "Zen Kaku Gothic New", sans-serif;
    border: 1px solid #3C3C3C;
    border-radius: 15px;
    background: white;
    cursor: pointer;
    transition: border-color 0.3s;
    min-width: 200px;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url('data:image/svg+xml;charset=UTF-8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="8" viewBox="0 0 12 8"><path fill="%23666" d="M6 8L0 0h12z"/></svg>');
    background-repeat: no-repeat;
    background-position: right 16px center;
    background-size: 12px 8px;
}

.select-navigation select:hover {
    border-color: #00A0E9;
}

.select-navigation select:focus {
    outline: none;
    border-color: #00A0E9;
    box-shadow: 0 0 0 3px rgba(0, 160, 233, 0.1);
}

/* アコーディオン */
.accordion {
    margin: 20px -10px;
}

.accordion summary {
    background: white;
    padding: 15px 28px;
    padding-right: 70px;
    cursor: pointer;
    font-weight: 900;
    list-style: none;
    position: relative;
    border: 1px solid #3C3C3C;
    border-radius: 23px;
    transition: background 0.3s;
}

.accordion summary::-webkit-details-marker {
    display: none;
}

.accordion summary:after {
    content: '+';
    position: absolute;
    right: -2px;
    top: 50%;
    transform: translateY(-50%);
    transition: all 0.3s;
    font-size: 2em;
    font-weight: 300;
    color: #3C3C3C;
    width: 55px;
    height: 55px;
    border: 1px solid #3C3C3C;
    border-radius: 23px;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 0.85;
    background: white;
}

.accordion[open] summary {
    background: #F0F0F0;
}

.accordion[open] summary:after {
    content: '×';
    font-size: 2em;
    background: #F0F0F0;
}

.accordion-content {
    padding: clamp(45px, 6vw, 60px) clamp(25px, 7.5vw, 75px) clamp(30px, 4vw, 40px) clamp(25px, 7.5vw, 75px);
    background: white;
    border: 1px solid #3C3C3C;
    border-radius: clamp(30px, 4vw, 40px);
    margin: -30px calc(-1 * clamp(20px, calc((100vw - 1000px) * 0.3 + 20px), 50px)) 30px calc(-1 * clamp(20px, calc((100vw - 1000px) * 0.3 + 20px), 50px));
}

/* 装飾 */
.text-red {
    color: #e74c3c;
}

.text-blue {
    color: #00A0E9;
}

/* コードブロック（コンテンツエリア内のみ） */
.container pre,
main pre {
    background: #f5f5f5;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 20px;
    overflow-x: auto;
    margin: 20px 22px;
}

.container code,
main code {
    font-family: 'Consolas', 'Monaco', 'Courier New', monospace;
    font-size: 0.9em;
    line-height: 1.6;
    color: #333;
}

/* レスポンシブ対応：1000px以下でp要素とリスト要素の左右マージンを0に */
@media (max-width: 1000px) {
    .container p,
    main p {
        margin: 0 0 20px 0;
    }

    .container h3,
    main h3 {
        margin: 30px 0 15px 0;
    }

    .select-navigation {
        margin: 20px 0;
        flex-wrap: wrap;
    }

    .container pre,
    main pre {
        margin: 20px 0;
    }

    .container ul,
    main ul,
    .container ol,
    main ol {
        margin: 20px 0;
        padding-left: 0;
    }

    main ul li {
        padding-left: 20px;
    }
}

/* 目次ページ用スタイル */
body.toc-page .content-background {
    padding-top: 25px;
    padding-bottom: 100px;
    background-position:
        top center,
        center calc(100% + 500px);
}

body.toc-page .breadcrumb {
    margin-bottom: 55px;
}

body.toc-page .container {
    padding-top: 0;
    min-height: auto;
    padding-bottom: 80px;
    background-image: url('../assets/background-toc.webp');
    background-size: auto auto;
    background-position: calc(100% + clamp(0px, calc((1200px - 100vw) * 0.3), 150px)) 0;
    background-repeat: repeat-y;
}

/* 目次ページでは通常の見出しスタイルを無効化 */
body.toc-page .container h1,
body.toc-page main h1,
body.toc-page .container h2,
body.toc-page main h2,
body.toc-page .container h3,
body.toc-page main h3 {
    color: inherit;
    background: none;
    background-image: none;
    border: none;
    padding: 0;
    margin: 0;
    min-height: auto;
    max-height: none;
    display: block;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    border-radius: 0;
    overflow: visible;
    position: static;
}

body.toc-page .container h1::before,
body.toc-page main h1::before,
body.toc-page .container h2::before,
body.toc-page main h2::before,
body.toc-page .container h3::before,
body.toc-page main h3::before {
    display: none;
}

body.toc-page .container h1::after,
body.toc-page main h1::after,
body.toc-page .container h2::after,
body.toc-page main h2::after,
body.toc-page .container h3::after,
body.toc-page main h3::after {
    display: none;
}

.toc-container {
    display: flex;
    flex-direction: column;
    gap: clamp(30px, 4vw, 50px);
}

.toc-title {
    color: #3C3C3C !important;
    background: white !important;
    border: 1px solid #3C3C3C !important;
    padding: 18px 30px !important;
    margin: -30px -6px 10px -6px !important;
    min-height: 60px !important;
    max-height: 100px !important;
    display: flex !important;
    align-items: center !important;
    font-size: 1.25rem !important;
    font-weight: 900 !important;
    line-height: 1.3 !important;
    border-radius: 25px !important;
    background-image: none !important;
}

.toc-items {
    display: flex;
    flex-direction: column;
    gap: clamp(30px, 2.5vw, 30px);
}

.toc-item {
    color: #ffffff !important;
    background-image: url('../assets/h1.svg') !important;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    padding: clamp(8px, 1.2vw, 18px) 30px !important;
    margin: 0 -6px !important;
    min-height: 60px !important;
    max-height: 100px !important;
    display: flex !important;
    align-items: center !important;
    font-size: 1.25rem !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
    border-radius: 25px !important;
    overflow: hidden !important;
    text-decoration: none !important;
    transition: all 0.3s ease !important;
    border: none !important;
}

.toc-item:hover {
    opacity: 0.9;
    transform: translateY(-2px);
}

/* 目次ページのアコーディオン */
.toc-accordion {
    margin: 20px -10px;
}

.toc-accordion summary {
    background: white !important;
    padding: 15px 28px !important;
    padding-right: 70px !important;
    cursor: pointer;
    font-weight: 900 !important;
    list-style: none;
    position: relative;
    border: 1px solid #3C3C3C !important;
    border-radius: 23px !important;
    transition: background 0.3s;
    color: inherit !important;
    background-image: none !important;
    margin: 0 !important;
    min-height: auto !important;
    max-height: none !important;
    display: block !important;
    font-size: inherit !important;
    line-height: inherit !important;
    overflow: visible !important;
}

.toc-accordion summary::-webkit-details-marker {
    display: none;
}

.toc-accordion summary:after {
    content: '+';
    position: absolute;
    right: -2px;
    top: 50%;
    transform: translateY(-50%);
    transition: all 0.3s;
    font-size: 2em;
    font-weight: 300;
    color: #3C3C3C;
    width: 55px;
    height: 55px;
    border: 1px solid #3C3C3C;
    border-radius: 23px;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 0.85;
    background: white;
}

.toc-accordion[open] summary {
    background: #F0F0F0 !important;
}

.toc-accordion[open] summary:after {
    content: '×';
    font-size: 2em;
    background: #F0F0F0;
}

.toc-accordion-content {
    padding: clamp(45px, 6vw, 60px) clamp(25px, 7.5vw, 75px) clamp(30px, 4vw, 40px) clamp(25px, 7.5vw, 75px);
    background: white;
    border: 1px solid #3C3C3C;
    border-radius: clamp(30px, 4vw, 40px);
    margin: -30px calc(-1 * clamp(20px, calc((100vw - 1000px) * 0.3 + 20px), 50px)) 30px calc(-1 * clamp(20px, calc((100vw - 1000px) * 0.3 + 20px), 50px));
}

.toc-subitem {
    color: #ffffff !important;
    background-image: url('../assets/h1.svg') !important;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    padding: 18px 30px !important;
    margin: 0 -6px !important;
    min-height: 60px !important;
    max-height: 100px !important;
    display: flex !important;
    align-items: center !important;
    font-size: 1.25rem !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
    border-radius: 25px !important;
    overflow: hidden !important;
    text-decoration: none !important;
    transition: all 0.3s ease !important;
    border: none !important;
}

.toc-subitem:hover {
    opacity: 0.9;
    transform: translateY(-2px);
}

/* フォーム要素のレスポンシブ対応 */
.container table td,
main table td {
    overflow: visible;
}

.container table td label,
main table td label {
    display: inline-block;
    margin-right: clamp(10px, 2vw, 20px);
    margin-bottom: 5px;
}

.container table td input[type="text"],
main table td input[type="text"] {
    max-width: 100%;
    width: clamp(150px, 100%, 300px);
    padding: 8px;
    font-size: 14px;
    box-sizing: border-box;
}

.container table td input[type="radio"],
main table td input[type="radio"] {
    margin-right: 5px;
    vertical-align: middle;
}

/* 検索結果テーブルのレスポンシブ対応 */
#search-results {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

#results-table {
    width: 100%;
    table-layout: fixed;
    font-size: clamp(0.65rem, 2.2vw, 1rem);
}

#results-table th,
#results-table td {
    padding: clamp(4px, 1.5vw, 12px);
    font-size: clamp(0.65rem, 2.2vw, 1rem);
    word-wrap: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
}

#results-table th {
    font-size: clamp(0.7rem, 2.2vw, 1rem);
    font-weight: bold;
}

#results-table thead th {
    line-height: 1.3;
}

/* ========================================
   動画ライブラリページ
======================================== */
body.video-library-page .content-background {
    padding-top: 25px;
    padding-bottom: 100px;
}

body.video-library-page .breadcrumb {
    margin-bottom: 55px;
}

body.video-library-page .container {
    padding-top: 0;
    min-height: auto;
    padding-bottom: 80px;
    background-image: none;
    background-color: #ffffff;
}

/* 動画ライブラリページでは通常の見出しスタイルを無効化 */
body.video-library-page .container h1,
body.video-library-page main h1,
body.video-library-page .container h2,
body.video-library-page main h2,
body.video-library-page .container h3,
body.video-library-page main h3,
body.video-library-page .container p,
body.video-library-page main p {
    color: inherit;
    background: none;
    background-image: none;
    border: none;
    padding: 0;
    margin: 0;
    min-height: auto;
    max-height: none;
    display: block;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    border-radius: 0;
    overflow: visible;
    position: static;
    text-align: left;
}

body.video-library-page .container h1::before,
body.video-library-page main h1::before,
body.video-library-page .container h2::before,
body.video-library-page main h2::before,
body.video-library-page .container h3::before,
body.video-library-page main h3::before {
    display: none;
}

/* 動画ライブラリタイトル（目次見出しと同様） */
.video-library-title {
    color: #3C3C3C !important;
    background: white !important;
    border: 1px solid #3C3C3C !important;
    padding: 18px 30px !important;
    margin: 0 -6px 10px -6px !important;
    min-height: 60px !important;
    max-height: 100px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 1.25rem !important;
    font-weight: 900 !important;
    line-height: 1.3 !important;
    border-radius: 25px !important;
    background-image: none !important;
    position: relative !important;
    top: -35px !important;
    margin-bottom: 15px !important;
}

/* 動画グリッド */
.video-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px 30px;
}

/* 動画カード */
.video-card {
    display: flex;
    flex-direction: column;
}

/* 動画サムネイル */
.video-thumbnail {
    position: relative;
    cursor: pointer;
    overflow: hidden;
    margin-bottom: 15px;
}

.video-thumbnail img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 0 !important;
    margin: 0 !important;
    transition: transform 0.3s;
}

.video-thumbnail:hover img {
    transform: scale(1.05);
}

/* 再生ボタン */
.video-play-btn {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 60px;
    height: 60px;
    background: rgba(255, 255, 255, 0.8);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    transition: background 0.3s;
}

.video-thumbnail:hover .video-play-btn {
    background: rgba(255, 255, 255, 0.95);
}

.video-play-btn::after {
    content: '';
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 12px 0 12px 20px;
    border-color: transparent transparent transparent #666;
    margin-left: 4px;
}

/* 動画タイトル */
.video-card-title {
    font-size: 1rem !important;
    font-weight: 900 !important;
    color: #333 !important;
    margin-bottom: 8px !important;
    line-height: 1.4 !important;
}

/* 動画説明文 */
.video-card-description {
    font-size: 0.9rem !important;
    font-weight: 500 !important;
    color: #333 !important;
    line-height: 1.6 !important;
}

/* 動画モーダル */
.video-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.85);
    z-index: 10000;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s;
}

.video-modal.active {
    display: flex;
    opacity: 1;
}

.video-modal-content {
    position: relative;
    width: 90%;
    max-width: 900px;
    background: transparent;
}

.video-modal-close {
    position: absolute;
    top: -40px;
    right: 0;
    width: 32px;
    height: 32px;
    background: transparent;
    border: none;
    cursor: pointer;
    font-size: 32px;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.3s;
}

.video-modal-close:hover {
    opacity: 0.7;
}

.video-modal video {
    width: 100%;
    height: auto;
    border-radius: 15px;
    max-height: 80vh;
}

/* YouTube iframe用 */
.video-modal-iframe-wrapper {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%; /* 16:9 */
    height: 0;
    overflow: hidden;
    border-radius: 15px;
}

.video-modal-iframe-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 15px;
}

/* レスポンシブ対応 */
@media (max-width: 900px) {
    .video-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 30px 20px;
    }
}

@media (max-width: 600px) {
    .video-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .video-library-title {
        top: -35px !important;
        margin-bottom: 15px !important;
    }

    .video-play-btn {
        width: 50px;
        height: 50px;
    }

    .video-play-btn::after {
        border-width: 10px 0 10px 16px;
    }
}