/* AI page modal */
:root {
            --bg-color: #ffffff;
            --text-color: #333333;
            /* 白背景での視認性のための濃いアクセントカラー */
            --highlight-blue: #0077cc; 
            --highlight-orange: #e65100;
            --highlight-green: #009933;
            --modal-bg: rgba(255, 255, 255, 0.95);
            --modal-shadow: rgba(0, 0, 0, 0.15);
            --illustration-bg: #f4f4f9;
}

.quote-section {
            max-width: 800px;
            margin: 40px auto 20px;
            padding: 0 40px;
}

.blkquote {
            font-size: 1.05rem;
            color: #555;
            font-style: italic;
            /*border-left: 4px solid var(--highlight-blue);*/
	        border-left: 0px;
            margin: 0;
            padding-left: 20px;
            line-height: 1.8;
}


.blk-footer {
	font-style: normal;
}

/* --- インタラクティブマップコンテナ --- */
.map-container {
            width: 100%;
            max-width: 1100px;
            margin: 30px auto;
            padding: 0 10px;
            position: relative;
}

.brain-svg {
            width: 100%;
            height: auto;
            max-height: 600px;
            filter: drop-shadow(0 5px 15px rgba(0, 0, 0, 0.05));
            display: block;
}

/* SVG インタラクション */
.zone-group {
            cursor: pointer;
            transition: opacity 0.3s ease;
}

/* ゾーンの初期状態 */
.zone-group .network-lines { opacity: 0.2; transition: opacity 0.3s; }
.zone-group .node-circle { transition: r 0.3s, fill 0.3s; }
.zone-group .zone-label { opacity: 0.8; font-weight: bold; font-size: 14px; text-transform: uppercase; letter-spacing: 2px;}

/* 透明なヒットボックス */
.hit-box {
            fill: #ffffff; 
            opacity: 0;    
            pointer-events: all; 
}

/* ホバー効果 */
.zone-group:hover .network-lines { opacity:1; stroke-width:2; } 
.zone-group:hover .node-circle { filter: drop-shadow(0 2px 4px rgba(0,0,0,0.2)); }
.zone-group:hover .zone-label { opacity: 1; fill: #000; text-decoration: underline; }

/* ホバー時の特定色 */
/*
#zone-input:hover .network-lines { stroke: var(--highlight-blue); }
#zone-middle:hover .network-lines { stroke: var(--highlight-orange); }
#zone-output:hover .network-lines { stroke: var(--highlight-green); }
*/
.critical-section {
            max-width: 800px;
            margin: 40px auto 80px;
            padding: 40px;
            background: #fafafa;
            border-left: 4px solid #444;
            border-radius: 0 8px 8px 0;
            box-shadow: 0 4px 20px rgba(0,0,0,0.03);
}
        
.critical-section h3 {
            margin-top: 0;
            color: #222;
            font-size: 1.6rem;
            margin-bottom: 15px;
}
        
.critical-section p {
            color: #555;
            font-size: 1.05rem;
            line-height: 1.8;
            margin: 0;
}
/* --- モーダル --- */
.modal[open] {
            border: none;
            border-radius: 8px;
            padding:0;
            animation-name: fadeIn;
            animation-fill-mode: forwards;
            animation-duration: 200ms;
            animation-timing-function: ease-out;
}

/* モーダル開時に背景のスクロールを防ぐ */
:root:has(.modal[open]) {
            overflow: hidden;
}

/* modal(dialog)の背景は::backdropを使って設定 
         .modal::backdrop {
*/

/* アニメーション */
@keyframes fadeIn {
            from {
                opacity: 0;
            }
            to {
                opacity: 1;
            }
}

.modal-content {
            background: var(--modal-bg);
            border: 1px solid #ddd;
            border-left: 5px solid var(--highlight-blue); 
            padding: 40px;
            max-width: 700px;
	        border-radius: 8px;
            box-shadow: 0 20px 60px var(--modal-shadow);
            position: relative;
			margin: 0;
}

.modal .close-btn {
            position: absolute;
            top: 20px;
            right: 25px;
            color: #999;
            font-size: 30px;
            cursor: pointer;
            line-height: 1;
            z-index: 1001;
            transition: color 0.2s;
}
.modal .close-btn:hover { color: #333; }


.modal-body {
            display: flex;
            flex-direction: column;
            gap: 20px;
            margin-top: 20px;
}

.illustration-box {
            width: 100%;
            height: 150px;
            background: var(--illustration-bg);
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 6px;
            overflow: hidden;
            border: 1px solid #e0e0e0;
            flex-shrink: 0;
}

.output-circle {
	background: url('data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\' width=\'100\' height=\'100\'><rect width=\'100\' height=\'100\' fill=\'white\'/><circle cx=\'50\' cy=\'50\' r=\'40\' fill=\'green\' opacity=\'0.2\'/></svg>'); 
	background-size: cover;
}

.modal-body .text-box {
            color: #444;
            font-size: 1.05rem;
}

.modal-body .text-box strong {
            color: #222;
            display: block;
            margin-bottom: 4px;
            margin-top: 12px;
}

.modal-body .text-box p {
            margin-top: 0;
            margin-bottom: 10px;
        }

.modal-body .text-box a {
            color: var(--highlight-blue);
            text-decoration: none;
            border-bottom: 1px dotted var(--highlight-blue);
            transition: all 0.2s;
            font-weight: 500;
}

.modal-body .text-box a:hover {
            color: #000;
            border-bottom-style: solid;
}

/* モーダルの色バリエーション */
#modal-input .modal-content { border-left-color: var(--highlight-blue); }
#modal-input h2 { color: var(--highlight-blue); }
        
#modal-engine .modal-content { border-left-color: var(--highlight-orange); }
#modal-engine h2 { color: var(--highlight-orange); }

#modal-output .modal-content { border-left-color: var(--highlight-green); }
#modal-output h2 { color: var(--highlight-green); }


