@charset "UTF-8";

/* ==========================================
   1. 背景のオーバーレイ（全画面固定）
========================================== */
#popup-overlay {
    display: flex;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.6); 
    z-index: 1000; 
    justify-content: center; 
    align-items: center;     
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}

#popup-overlay.active {
    display: flex;
    opacity: 1;
    pointer-events: auto;
}


/* ==========================================
   2. ポップアップ本体
========================================== */
.popup-content {
    background-color: #222222;
    color: #eeeeee;
    text-align: center;
    
    /* 4K対応：内側の余白を動的に（20px〜40px） */
    padding: clamp(20px, 4vw, 40px);
    
    /* 【修正】スマホでは画面幅の90%、最大は600pxでストップさせる */
    width: 70%;
    max-width: 600px;
    /* min-width: 400px; はスマホではみ出すため削除しました！ */

    box-shadow: 0 4px 8px rgba(0,0,0,0.2);
    position: relative;
    border-radius: 15px;

    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.4s ease, transform 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

#popup-overlay.active .popup-content {
    opacity: 1;
    transform: translateY(0);
}

#popup-close {
    position: absolute;
    /* 画面サイズに合わせて位置とサイズを動的に変更 */
    top: clamp(10px, 2vw, 20px);
    right: clamp(15px, 3vw, 30px);
    font-size: clamp(30px, 4vw, 50px);
    
    color: #ffffff;
    cursor: pointer;
    z-index: 2001; /* ポップアップより手前に出す */
    transition: color 0.3s ease;
    
    /* バツ印（&times;）が少しズレて見えるのを防ぐおまじない */
    line-height: 1; 
}

/* ホバーした時、サイトのテーマカラーで光らせる */
#popup-close:hover {
    color: #1af7fb; 
}


/* ==========================================
   3. ポップアップ内のテキストサイズ（新規追加）
========================================== */
/* 4K対応：ポップアップの中の文字も可変にしてバランスを保つ */
.popup-content h2 {
    font-size: clamp(20px, 3vw, 32px);
    margin: clamp(10px, 2vw, 20px) 0;
}

.popup-content h3 {
    font-size: clamp(14px, 2vw, 20px);
}

.popup-content p {
    font-size: clamp(12px, 1.5vw, 16px);
    line-height: 1.6;
}


/* ==========================================
   4. アイコン画像（円形クロップ）
========================================== */
/* 外側の枠（マスク）の設定 */
.circle-crop {
    /* 4K対応：画像の幅も動的に（最小120px〜最大250px） */
    width: clamp(120px, 40%, 250px);
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    overflow: hidden; 
    margin: 0 auto clamp(10px, 2vw, 20px); /* 下の余白も動的に */

    /* 4K対応：枠線の太さと距離も画面に合わせて変化 */
    outline: clamp(3px, 0.5vw, 6px) solid;
    outline-offset: clamp(3px, 0.5vw, 6px);
}

/* 中の画像の設定 */
.circle-crop img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center -15%;
    transform: scale(1.3);
    border-radius: 50%;
}


/* ==========================================
   5. リンクボタン
========================================== */
.btn-link {
    display: inline-block; 
    
    /* 4K対応：ボタンの余白（大きさ）も動的に */
    padding: clamp(8px, 1.5vw, 15px) clamp(20px, 4vw, 40px);
    font-size: clamp(14px, 1.5vw, 18px); /* 文字サイズも動的に */
    
    background-color: #000000;
    color: #ffffff;
    text-decoration: none; 
    border-radius: 25px; 
    font-weight: bold;
    border: 1px solid #333333;
    transition: all 0.3s ease; 
    
    /* ボタンの上に少し隙間を空ける */
    margin-top: clamp(15px, 2vw, 30px);
}

.btn-link:hover {
    background-color: #1877f2; 
    border-color: #1af7fb;
    transform: translateY(-3px); 
    box-shadow: 0 5px 15px rgba(255, 255, 255, 0.3); 
    color: #ffffff; 
    filter: brightness(1.0);
}


/* ==========================================
   6. 役職ごとのカラー設定（光彩・文字色・枠線）
========================================== */
/* 基本の光彩（白） */
.popup-content h2,
.popup-content p {
    text-shadow: 0 0 1px #ffffff, 0 0 15px rgba(255, 255, 255, 1.0), 0 0 30px rgba(255, 255, 255, 1.0);
}

/* 1. manager */
.popup-content h2.manager, .popup-content p.manager {
    text-shadow: 0 0 1px #ffffff, 0 0 15px rgba(79, 174, 234, 1.0), 0 0 30px rgba(79, 174, 234, 1.0);
}
.popup-content h3.manager { color: rgb(79, 174, 234); }
.circle-crop.manager { outline-color: rgb(79, 174, 234); }

/* 2. advisor */
.popup-content h2.advisor, .popup-content p.advisor {
    text-shadow: 0 0 1px #ffffff, 0 0 15px rgba(246, 195, 67, 1.0), 0 0 30px rgba(246, 195, 67, 1.0);
}
.popup-content h3.advisor { color: rgb(246, 195, 67); }
.circle-crop.advisor { outline-color: rgb(246, 195, 67); }

/* 3. amicus */
.popup-content h2.amicus, .popup-content p.amicus {
    text-shadow: 0 0 1px #ffffff, 0 0 15px rgba(183, 38, 102, 1.0), 0 0 30px rgba(183, 38, 102, 1.0);
}
.popup-content h3.amicus { color: rgb(183, 38, 102); }
.circle-crop.amicus { outline-color: rgb(183, 38, 102); }

/* 4. serenus */
.popup-content h2.serenus, .popup-content p.serenus {
    text-shadow: 0 0 1px #ffffff, 0 0 15px rgba(80, 177, 126, 1.0), 0 0 30px rgba(80, 177, 126, 1.0);
}
.popup-content h3.serenus { color: rgb(80, 177, 126); }
.circle-crop.serenus { outline-color: rgb(80, 177, 126); }

/* 5. victoria */
.popup-content h2.victoria, .popup-content p.victoria {
    text-shadow: 0 0 1px #ffffff, 0 0 15px rgba(152, 120, 176, 1.0), 0 0 30px rgba(152, 120, 176, 1.0);
}
.popup-content h3.victoria { color: rgb(152, 120, 176); }
.circle-crop.victoria { outline-color: rgb(152, 120, 176); }

/* 6. seducens */
.popup-content h2.seducens, .popup-content p.seducens {
    text-shadow: 0 0 1px #ffffff, 0 0 15px rgba(152, 120, 176, 1.0), 0 0 30px rgba(152, 120, 176, 1.0);
}
.popup-content h3.seducens { color: rgb(152, 120, 176); }
.circle-crop.seducens { outline-color: rgb(152, 120, 176); }

/* 7. specialguest */
.popup-content h2.specialguest, .popup-content p.specialguest {
    text-shadow: 0 0 1px #ffffff, 0 0 15px rgba(226, 190, 64, 1.0), 0 0 30px rgba(226, 190, 64, 1.0);
}
.popup-content h3.specialguest { color: rgb(226, 190, 64); }
.circle-crop.specialguest { outline-color: rgb(226, 190, 64); }

/* 8. specialcast */
.popup-content h2.specialcast, .popup-content p.specialcast {
    text-shadow: 0 0 1px #ffffff, 0 0 15px rgba(105, 226, 252, 1.0), 0 0 30px rgba(105, 226, 252, 1.0);
}
.popup-content h3.specialcast { color: rgb(105, 226, 252); }
.circle-crop.specialcast { outline-color: rgb(105, 226, 252); }