/*トップページのアイコン画像css*/
.top-logo{
    display:flex;
    justify-content:center;
    margin-top:-20px;
    margin-bottom:30px;
}

.top-logo img{
    width:300px;
    max-width:80%;
    height:auto;
}

.tokumin{
    font-family: "Kaisei Tokumin", serif;
    font-weight: 400;
    font-style: normal;
}

.modal-view-count {
    grid-area: media;
    align-self: end;
    margin: 4px 0 0;
    font-size: 0.85em;
    color: #666;
}

.follower-label {

    font-size:0.85em;

    font-weight:bold;

    color:#666;

    margin:0;

}

.modal-x-embed {
    overflow: hidden;
}

.follower-count-frame {

    width:100%;

    height:120px;

    border:none;

}

/* ===== 運営メンバー ===== */
.executives {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 40px;
}

.executive .role {
    display: block;
    font-size: 0.85em;
    color: #666;
}

.executive .name {
    display: block;
    font-size: 1.2em;
    font-weight: bold;
}

/* ===== メンバーグリッド ===== */
.member-card {
    text-align: center !important;
    padding: 20px 0 !important;
}

.member-icon {
    width: 200px !important;
    height: 200px !important;
    border-radius: 50% !important;
    object-fit: cover !important;
    margin-bottom: 16px !important;
}

.member-name {
    font-weight: bold !important;
    font-size: 1.4em !important;
    margin: 6px 0 6px !important;
}

.member-role {
    font-size: 1.1em !important;
    color: #666 !important;
    margin: 0 !important;
}

.modal-area-name {
    grid-area: name;
    display: flex;
    align-items: center;
    padding-left:30px;
}

.modal-area-role {
    grid-area:role;
    margin-bottom:-10px;
    padding-left:30px;
}

/* ===== モーダル ===== */
.modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.7);
    z-index: 1000;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.modal-view-count {
    grid-area:view;
    align-self:end;
    font-size:1.25em;
    color:#000;
    margin-top:8px;
}

.modal-overlay.active {
    display: flex;
}

body.modal-open {
    overflow: hidden;
}

.modal-box {

    position: relative;
    background:#fff;
    border-radius:12px;
    width:100%;
    max-width:720px;
    max-height:90vh;
    overflow-y:auto;
    padding:24px;

    display:grid;

    grid-template-columns:1fr 1fr;

    grid-template-areas:
        "icon name"
        "media role"
        "view xinfo";

    gap:4px;
}

.modal-close {
    position: absolute;
    top: 12px;
    right: 12px;
    background: none;
    border: none;
    font-size: 1.8em;
    line-height: 1;
    cursor: pointer;
    color: #666;
    z-index: 1;
}

.modal-area-icon { grid-area: icon; }
.modal-area-icon img {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    object-fit: cover;
}

.modal-area-name {
    grid-area: name;
    display: flex;
    align-items: center;
}
.modal-area-name h2 { margin: 0; }

.modal-area-role {
    grid-area:role;
    margin-bottom:-10px;
}

.modal-main-role { font-weight: bold; margin: 0 0 6px; }
.modal-sub-roles .sub-role-tag {
    display: inline-block;
    font-size: 0.8em;
    background: #eee;
    color: #555;
    padding: 2px 10px;
    border-radius: 10px;
    margin: 2px 4px 2px 0;
}

.modal-area-media {
    grid-area: media;
    background: #f5f5f5;
    border-radius: 8px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 120px;
}

.youtube-wrapper {
    position: relative;
    width: 100%;
    max-width: px;
    aspect-ratio: 16 / 9;
}

.youtube-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}

.modal-area-media iframe {
    width: 100%;
    height: 100%;
    min-height: 0;
    border: none;
    position: absolute;
    top: 0;
    left: 0;
}

.modal-area-xinfo {

    grid-area:xinfo;

    display:flex;

    flex-direction:column;

    justify-content:flex-end;

    align-self:end;

    gap:0;

    margin-top:20px;

    padding-bottom:5px;

}

.modal-x-link {

    font-size:0.9em;

    color:#1DA1F2;

    text-decoration:none;

    font-weight:bold;

    margin-top:0;

}

.modal-x-link:hover { text-decoration: underline; }

.modal-right {
    display:flex;
    flex-direction:column;
    gap:4px;
}

/* =========================
   基本設定
========================= */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html, body {
    width: 100%;
    overflow-x: hidden;
}

body {

    background-color: rgb(19,19,19);

    color:white;

    font-family:
    "Noto Sans JP",
    sans-serif;

}

a {

    color:inherit;

}

/* =========================
   ロゴ
========================= */

.logo img {

    height:80px;

    width:auto;

    display:block;

}

/* =========================
   Header
========================= */

header {

    display:flex;

    align-items:center;

    padding:8px 40px;

    background:#1d1c1c;

    color:white;

}

nav {

    margin-left:auto;

}

nav a {

    font-family: "Kaisei Tokumin", serif;
    font-weight: 400;
    font-style: normal;

    color:white;

    text-decoration:none;

    font-size:21px;

    margin-left:40px;

    transition:.2s;

}

nav a:hover {

    color:#60a5fa;

}

/* PCではハンバーガー非表示 */

.menu-button {

    display:none;

}

/* =========================
   Main
========================= */

main {

    padding:40px;

}

/* =========================
   共通ページ
========================= */

.page {

    max-width:1000px;

    margin:40px auto;

    padding:0 120px 0 160px;

}

.page a {

    color:#989b9d;

    text-decoration:underline;

    transition:.2s;

}

.page a:hover {

    color:#5c5b5b;

}

.page p {

    font-size:15px;

    font-weight:400;

    line-height:1.8;

}

.page h1 {

    font-size:42px;

    margin-bottom:15px;

}

.page h2 {

    font-size:30px;

    margin-bottom:15px;

}

.page h3 {

    font-size:18px;

    margin-bottom:15px;

}

.page ul {

    padding-left:20px;

}

/* =========================
   Google Formカード
========================= */

.bookmark-card {

    display:flex;

    width:800px;

    max-width:100%;

    border:1px solid #d9d9d9;

    border-radius:12px;

    overflow:hidden;

    text-decoration:none;

    color:white;

    background:#242424;

    margin-top:30px;

    transition:.2s;

}

.bookmark-card:hover {

    transform:translateY(-2px);

    box-shadow:
    0 8px 20px rgba(0,0,0,.2);

}

.bookmark-text {

    flex:4;

    padding:15px;

}

.bookmark-text h3 {

    font-size:22px;

    margin-bottom:5px;

}

.bookmark-text p {

    font-size:15px;

    line-height:1.4;

}

.bookmark-image {

    flex:1;

}

.bookmark-image img {

    width:100%;

    height:140px;

    object-fit:cover;

}

/* =========================
   メンバー表示
========================= */

.member {

    display:flex;

    gap:40px;

    margin-bottom:10px;

}

.role {

    width:150px;

    font-weight:bold;

}

/* =========================
   YouTube動画
========================= */

.video-container {

    display:flex;

    gap:20px;

    flex-wrap:wrap;

}

.video-container iframe {

    flex:1;

    min-width:350px;

    aspect-ratio:16/9;

    border:none;

}

.youtube-videos {

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:25px;

}

.youtube-videos iframe {

    width:100%;

    aspect-ratio:16/9;

    border:none;

    border-radius:10px;

}

/* =========================
   YouTubeアカウントカード
========================= */

.link-card {

    display:flex;

    width:900px;

    max-width:100%;

    border:1px solid #444;

    border-radius:12px;

    overflow:hidden;

    text-decoration:none;

    color:white;

    background:#242424;

    margin-top:30px;

    transition:.2s;

}

.link-card:hover {

    transform:translateY(-2px);

    box-shadow:
    0 10px 25px rgba(0,0,0,.25);

}

.link-text {

    flex:4;

    padding:18px;

}

.link-text h3 {

    font-size:22px;

    margin-bottom:8px;

}

.link-text p {

    color:#c8c8c8;

    line-height:1.5;

}

.link-url {

    display:flex;

    align-items:center;

    gap:8px;

    color:#999;

    font-size:14px;

}

.link-url img {

    width:18px;

    height:18px;

}

.link-image {

    flex:1;

}

.link-image img {

    width:100%;

    height:100%;

    object-fit:cover;

}

/* =========================
   メニューカード
========================= */

.menu-box {

    font-family: "Kaisei Tokumin", serif;
    font-weight: 400;
    font-style: normal;

    max-width:900px;

    margin:40px auto;

    background:#2b2b2b;

    border-radius:12px;

    overflow:hidden;

}

.menu-item {

    display:block;

    padding:20px 24px;

    color:white;

    text-decoration:none;

    font-size:22px;

    border-bottom:1px solid #444;

    transition:.2s;

}

.menu-item:last-child {

    border-bottom:none;

}

.menu-item:hover {

    background:#383838;

}

/* =========================
   SNS
========================= */

.sns-links {

    display:flex;

    gap:25px;

    align-items:center;

}

.sns-links img {

    width:40px;

    height:40px;

    filter:
    brightness(0)
    invert(1);

    transition:.2s;

}

.sns-links img:hover {

    transform:translateY(-3px);

    opacity:.7;

}

/* =========================
   Worksページ
========================= */

.works {

    max-width:1400px;

    margin:40px auto;

}

/* =========================
   Timeline
========================= */

.timeline-item {

    display:flex;

    gap:30px;

}

.timeline .date {

    width:150px;

}

/* =========================
   iPad、スマホ
========================= */

@media screen and (max-width:1024px) {

/* =========================
   Header
========================= */

header {

    flex-direction:row;

    justify-content:space-between;

    align-items:center;

    padding:10px 25px;

}

.logo img {

    height:60px;

}

/* =========================
   ハンバーガーボタン
========================= */

.menu-button {

    display:block;

    width:42px;

    height:42px;

    background:none;

    border:none;

    cursor:pointer;

    z-index:1100;

}

.menu-button span {

    display:block;

    width:32px;

    height:3px;

    background:white;

    margin:7px auto;

    transition:.3s;

}

/* ☰ → × */

.menu-button.active span:nth-child(1){

    transform:
    translateY(10px)
    rotate(45deg);

}

.menu-button.active span:nth-child(2){

    opacity:0;

}

.menu-button.active span:nth-child(3){

    transform:
    translateY(-10px)
    rotate(-45deg);

}

/* =========================
   ナビゲーション
========================= */

nav {

    position:fixed;

    top:0;

    right:-320px;

    width:300px;

    height:100vh;

    background:#1d1c1c;

    display:flex;

    flex-direction:column;

    padding-top:100px;

    transition:.35s;

    z-index:1000;

}

nav.active {

    right:0;

}

nav a {

    width:100%;

    margin:0;

    padding:22px 10px;

    text-align:center;

    font-size:18px;

}

/* =========================
   背景暗転
========================= */

.menu-overlay {

    position:fixed;

    inset:0;

    background:
    rgba(0,0,0,.65);

    opacity:0;

    pointer-events:none;

    transition:.35s;

    z-index:999;

}

.menu-overlay.active {

    opacity:1;

    pointer-events:auto;

}

/* =========================
   Main
========================= */

main {

    padding:25px;

}

/* =========================
   共通ページ
========================= */

.page {

    padding:0 30px;

    margin:30px auto;

}

.page h1 {

    font-size:36px;

}

.page h2 {

    font-size:26px;

}

.page h3 {

    font-size:17px;

}

.page p {

    font-size:14px;

}

/* =========================
   Googleフォーム
========================= */

.bookmark-card {

    width:100%;

}

.bookmark-text {

    padding:14px;

}

.bookmark-text h3 {

    font-size:20px;

}

.bookmark-text p {

    font-size:14px;

}

.bookmark-image {

    width:35%;

}

.bookmark-image img {

    height:100%;

    min-height:120px;

}

/* =========================
   メンバー
========================= */

.member {

    gap:20px;

}

.role {

    width:130px;

}

/* =========================
   動画
========================= */

.video-container {

    flex-direction:column;

}

.video-container iframe {

    min-width:100%;

    width:100%;

}

/* =========================
   YouTubeカード
   PCと同じ右画像表示
========================= */

.link-card {

    flex-direction:row;

    width:100%;

}

.link-text {

    flex:4;

    padding:14px;

}

.link-text h3 {

    font-size:18px;

}

.link-text p {

    font-size:13px;

}

.link-url {

    font-size:11px;

}

.link-image {

    flex:1;

    width:auto;

    height:auto;

}

.link-image img {

    height:100%;

    object-fit:cover;

}

/* =========================
   メニューカード
========================= */

.menu-box {

    width:100%;

}

.menu-item {

    font-size:18px;

    padding:18px;

}

/* =========================
   SNS
========================= */

.sns-links {

    justify-content:center;

}

.sns-links img {

    width:35px;

    height:35px;

}

/* =========================
   YouTube 3列動画
========================= */

.youtube-videos {

    grid-template-columns:1fr;

    gap:20px;

}

/* =========================
   Timeline
========================= */

.timeline-item {

    flex-direction:column;

    gap:8px;

}

.timeline .date {

    width:auto;

}

}

/* =========================
   小型スマホ
   500px以下
========================= */

@media screen and (max-width:500px) {

header {

    padding:10px 15px;

}

.logo img {

    height:50px;

}

nav {

    width:260px;

}

.page {

    padding:0 15px;

}

.page h1 {

    font-size:30px;

}

.link-card {

    min-height:120px;

}

.link-image {

    width:35%;

}

.link-text {

    padding:12px;

}

.link-text h3 {

    font-size:16px;

}

.link-text p {

    font-size:12px;

}

.link-url {

    display:none;

}

.bookmark-image {

    width:40%;

}

}

/* ==========================================
   GitHub Projects Theme
========================================== */

#calendar{

    max-width:1200px;

    margin:40px auto;

    padding:22px;

    background:#0d1117;

    border:1px solid #30363d;

    border-radius:12px;

}

/* ==========================
   本体
========================== */

.fc{

    background:#0d1117;

    color:#e6edf3;

    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;

}

/* ==========================
   背景
========================== */

.fc-view-harness,
.fc-scrollgrid,
.fc-scrollgrid table,
.fc-daygrid-body,
.fc-daygrid-body table,
.fc-daygrid-day-frame,
.fc-scroller{

    background:#0d1117 !important;

}

/* ==========================
   枠線
========================== */

.fc-theme-standard td,
.fc-theme-standard th{

    border:1px solid #30363d;

}

.fc-scrollgrid{

    border:none !important;

}

/* ==========================
   曜日
========================== */

.fc-col-header-cell{

    background:#161b22 !important;

}

.fc-col-header-cell-cushion{

    color:#8b949e;

    text-decoration:none;

    font-weight:600;

    padding:12px;

}

/* ==========================
   日付セル
========================== */

.fc-daygrid-day{

    background:#0d1117;

    transition:.15s;

}

.fc-daygrid-day:hover{

    background:#161b22;

}

.fc-daygrid-day-number{

    color:#e6edf3;

    text-decoration:none;

    font-weight:500;

    padding:8px;

}

.fc-day-other .fc-daygrid-day-number{

    color:#6e7681;

}

/* 今日 */

.fc-day-today{

    background:#161b22 !important;

}

/* ==========================
   イベント
========================== */

.fc-event{

    background:#238636 !important;

    color:white !important;

    border:none !important;

    border-radius:6px;

    padding:2px 8px;

    font-size:12px;

    font-weight:500;

}

.fc-event:hover{

    filter:brightness(1.08);

}

/* ==========================
   ヘッダー
========================== */

.fc-toolbar{

    margin-bottom:20px !important;

}

.fc-toolbar-title{

    color:#e6edf3;

    font-size:30px !important;

    font-weight:700;

}

/* ==========================
   ボタン
========================== */

.fc-button{

    background:#21262d !important;

    color:#e6edf3 !important;

    border:1px solid #30363d !important;

    border-radius:6px !important;

    box-shadow:none !important;

    transition:.15s;

}

.fc-button:hover{

    background:#30363d !important;

}

.fc-button-active{

    background:#1f6feb !important;

    border-color:#1f6feb !important;

}

/* ==========================
   +○件
========================== */

.fc-daygrid-more-link{

    color:#58a6ff;

}

/* ==========================
   スクロールバー
========================== */

.fc-scroller::-webkit-scrollbar{

    width:8px;

}

.fc-scroller::-webkit-scrollbar-thumb{

    background:#30363d;

    border-radius:10px;

}

@media screen and (max-width:500px) {

    header {
        padding:10px 15px;
    }

    .logo img {
        height:50px;
    }

    nav {
        width:260px;
    }

    /* レギュラー・準レギュラーメンバー */
    .member-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 16px;
    }

    .member-card {
        width:100%;
    }

    .member-icon {
        width:100px !important;
        height:100px !important;
    }

    .member-name {
        font-size:1.2em !important;
    }

    .member-role {
        font-size:1em !important;
    }

    /* モーダル */
    .modal-box {
        grid-template-columns:1fr;
        grid-template-areas:
            "icon"
            "name"
            "role"
            "media"
            "xinfo";
        padding:16px;
    }

}

/* =========================
   メンバーグリッド
========================= */

.member-grid {

    display:grid;

    grid-template-columns:repeat(3, 1fr);

    gap:40px;

}

/* タブレット */

@media screen and (max-width:1024px){

    .member-grid {

        grid-template-columns:repeat(2,1fr);

        gap:25px;

    }

}

/* スマホ */

@media screen and (max-width:500px){

    .member-grid {

        grid-template-columns:repeat(2,1fr);

        gap:15px;

    }

}

@media screen and (max-width:500px) {

    .modal-box {
        grid-template-columns:1fr;

        grid-template-areas:
            "icon"
            "name"
            "role"
            "media"
            "view"
            "xinfo";

        padding:16px;
        gap:4px;
    }

    /* 動画エリア */
    .modal-area-media {
        width:100%;
        aspect-ratio:16 / 9;
        min-height:auto;
    }

    .youtube-wrapper {
        width:100%;
        aspect-ratio:16 / 9;
    }

    /* 再生回数 */
    .modal-view-count {

        grid-area:view;

        height:22px;

        margin-top:2px;
        margin-bottom:2px;

        color:#000;

        font-size:1.25em;

        display:flex;
        align-items:center;

    }

    /* X情報 */
    .modal-area-xinfo {

        grid-area:xinfo;

        width:100%;

        margin-top:2px;

        padding-bottom:0;

        gap:2px;

    }

    /* Xフォロワー表示 */
    .modal-x-embed {

        width:100%;

        height:120px;

        overflow:hidden;

    }

    .follower-count-frame {

        width:100%;

        height:120px;

    }

    .follower-label {

        margin:0;

        height:20px;

        display:flex;

        align-items:center;

    }

    .modal-x-link {

        margin-top:0;

        font-size:0.9em;

    }

}